Android 应用安装到/system/app下

安卓的系统一般会有4个重要的分区:boot,system,cache,data。装在system区的就是系统应用(system app),data分区的是用户应用。应用程序都安装在/app子目录下。
  不管是系统应用还是用户应用,安卓会建立缓存以加速应用的启动,该缓存是在/data/dalvik-cache下面。应用安装的越多,data分区可用的空间就越少。
app一旦移动到system空间,就是系统应用了!

以下应用是可以移动到system分区的:
1) 开机就要启动的程序,比如权限管理啊,Widget啊。
2) 常常用到的程序,比如文件管理器。
3) 一些不会有内存驻留的小程序,比如autostarts,SD Maid啊。

有一些应用是不适合移动到system空间的:
1) 退出仍然会驻留内存的程序,因为这些程序一旦变成了system应用,杀进程的软件就拿他们没办法了。
2) 应用程序内含lib库的,这个可以用压缩工具查看该apk,假如内部有lib文件夹的,里面有*.so文件的,那就说明他用到了这些lib。

移动方法:
1) 将该apk先卸载,然后将apk文件拷贝到system/app下,修改权限,有必要的话,重启一下。这样做的好处是,该软件的缓存会在卸载是自动删除。
2) 为防止有些应用卸载后数据丢失,可以不卸载,方法是:将apk拷贝到system/app下,然后删除data/app的apk,最后手动把/data/dalvik-cache/下该程序的缓存清除。
3) 假如要移动的应用太多,可以进入recovery,清除一下dalvik-cache,让启动的时候自动再生成cache。

在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下。
一般手机/system目录是mount成只读的,所以我们需要重新mount成读写的
下面以 test.apk 为例,演示这个操作。需要准备一台已经获得 Root 权限的手机。

1、通过 USB 连接手机和电脑。
2、使用 adb 控制手机。

运行cmd显示命令行窗口,直接输入adb devices 即可查看设备(如果没有反应则说明失败)。
adb push test.apk /system/app 将test.app推到/system/app目录下
如果出现adb: error: failed to copy ‘test.apk’ to ‘/system/app’: remote Read-only file
则使用 adb remount 重新挂在系统进行读写
然后在adb push test.apk /system/app
成功之后拔掉数据线,重启手机,则test.apk安装完成

猜你喜欢

转载自blog.csdn.net/HevenYin/article/details/79062269