Android系统下将应用程序集成到ROM的正确方法

精简ROM自带的软件,是不会增加手机内存可用空间的,因为手机内存被分成了多个分区,ROM自带的程序在system分区,而用户安装的程序在userdata分区。所以,精简了系统自带软件后,system分区的空间相当于浪费掉了,以HTC官官方ROM为例,精简掉国内用不到的软件,不喜欢的系统铃声等等,ROM空间还有超过30M,如果是CM,剩余的空间能有上100M。这些空间实际上是可以放一些常用的软件进去的,通常的做法是把apk包直接放在/system/app下。但是这样做的话,APK包中的class.dex文件在系统运行是会被缓存到/data/dalvik-cache文件夹中去,还是要占用一部分的userdata分区空间。

通过摸索,我发现正确的做法应该是:

  1. 用dexopt-wrapper工具从apk包中提取出.odex文件,以Maps.apk为例,命令是:dexopt-wrapper Maps.apk Maps.odex
  2. 将APK包的后缀改为.zip,解压,删除其中的class.dex文件,然后重新压缩为zip格式,然后将后缀改回.apk
  3. 将得到的.apk文件和.odex文件复制到/system/app/中去
  4. 此外,如果APK包中包含lib文件夹,需要将其中lib*.so文件复制到/system/lib文件夹下

至此,将应用程序集成到ROM就完成了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.