殷之望

“adb push”和“adb install”的使用区别

adb push和adb install是apk包安装的两种方法,两者的区别是

1.adb push可以自定义推送路径,adb install 只能安装在/data/app文件下。

2.adb push 是将apk包复制到路径下面,重启后/system/app和/data/app下的apk包都会自动安装。

adb push和adb install用法如下:

1.adb push XXX.apk /你想推送的路径

2.adb install XXX.apk

adb install是将apk安装到手机里,流程是:

复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录(so文件也在./包名/lib下,或者/data/app-lib/包名)。

另外,install复制APK安装包到data/app目录下的过程中,会将apk名改为包名-1.apk,数字为android接收到的版本号。

其中对于/system文件夹比较容易碰到的问题是报read only file的错误,哪怕/system已经被你改成了777的权限,解决的方法是:

1.adb shell

2.su 3.mount -o remount rw /system重新挂载一下/system文件系统


 

“adb push”和“adb install”的区别有:

  1. 目录:“adb push”是system/app,“adb install”是data/app。

  2. 权限:“adb push”是系统级(权限全开),“adb install”用户级(没全开)。

  3. 卸载:“adb push”root后删除,“adb install”可卸载。

  4. 大小:“adb push”无限制,自定义,“adb install”有限制。

  5. 安装:“adb push”pm重新注册,“adb install”不会重新弄注册。

在Android实际开发中,经常会使用adb命令,安装应用程序可以使用adb push 或者adb install。

  1. adb push 能够指定安装目录。比如执行”adb push xxx.apk system/app” 后,xxx.apk被安装到了system/app目录下,此目录下的软件为上文中提到的system application。(注意,system/app是只读的,所以只有有root权限才能push apk进去,而且在push进去的apk会把原本的apk覆盖掉。)adbpush本身的意思是将文件复制到系统中的某个文件夹下,但是将apk push到system/app下并且重启手机以后会注册应用程序。

  2. adb install 用此命令安装的软件位于 data/app 目录,带有参数 -r才能强制安装,为user application。


评论(1)