先说下Android系统应用划分:系统App(System application)和用户App(User application),特点如下:
- 系统App:系统自带的应用程序,位于system/app,该目录是只读的,操作(如删除、更新该目录app)前,需要先adb root获取root权限 ,该目录apk安装使用adb push
system/app是只读的,所以只有有root权限才能push apk进去,而且在push进去的apk会把原本的apk覆盖掉。常见App如邮件、浏览器、天气、应用市场等等
- 用户App:用户程序安装的目录,位于data/app。安装时把 apk文件复制到此目录,该目录apk安装用adb install
adb push 和 adb install 区别
- adb push 能够指定安装目录,如system/app、vendor/app等。adb push本身的意思是将文件复制到系统中的某个文件夹下,但是将apk push到system/app下并且重启手机以后会注册应用程序。
- adb install 安装的软件位于data/app 目录。adb install -r xxx.apk 参数-r 表示强制安装,当出现Read-only错误时,可以使用强制安装命令来安装apk。
data/app ---------------用户程序安装的目录。安装时把 apk文件复制到此目录
data/data -----------------存放应用程序的数据
data/dalvik-cache--------将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一) 安装过程: 复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。adb unstall: 删除安装过程中在上述三个目录下创建的文件及目
adb install 安装软件包的原理是怎么样的呢,感兴趣的朋友可以看下安装过程。