Tinker中的dex配置'raw'与'jar'模式应该如何选择?
它们应该说各有优劣势,大概应该有以下几条原则:
- 如果你的minSdkVersion小于14, 那你务必要选择'jar'模式;
- 以一个
10M
的dex为例,它压缩成jar大约为4M
,即'jar'模式能节省6M
的ROM空间。 - 对于'jar'模式,我们需要验证压缩包流中dex的md5,这会更耗时,在
小米2S
上数据大约为'raw'模式126ms
, 'jar'模式为246ms
。因为在合成过程中我们已经校验了各个文件的Md5,并将它们存放在/data/data/..目录中。默认每次加载时我们并不会去校验tinker文件的Md5
,但是你也可通过开启loadVerifyFlag强制每次加载时校验,但是这会带来一定的时间损耗。
简单来说,'jar'模式更省空间,但是运行时校验的耗时大约为'raw'模式的两倍。如果你没有打开运行时校验,推荐使用'jar'模式。