- 只读文件系统
需要把APK Push到模拟器下面的 /system/app 目录下面,报告
1 2 |
$ adb push app-debug.apk /system/app failed to copy 'app-debug.apk' to '/system/app/app-debug.apk': Read-only file system |
解决方法
1 |
$ adb remount |
- 内存不足
1 2 |
$ adb push app-debug.apk /system/app failed to copy 'app-debug.apk' to '/system/app/app-debug.apk': Out of memory |
原因众说纷纭,基本上大家都没怎么深究,有些镜像没有这个问题,有些就有问题。
解决方法:
不要使用Eclipse或者Android Studio 或者 AVD Manager的图形界面去启动模拟器,而是使用下面的命令:
1 |
$Android_SDK_HOME/tools/emulator -partition-size 256 -avd "模拟器的名字" |
- 包含SO的APK启动崩溃,日志中显示无法找到SO文件
原因,Android 设计问题,如果system/app下面的APK包含SO文件,不会自动安装,需要手工PUSH 到 "/system/lib"目录下面。
- Android 5.0之后,最好推送到/system/priv-app目录
5.0之后的Android,最好推送到/system/priv-app目录。
- Android 5.0之后,推送到系统目录后,没有自动安装应用
原因,Android 5.0之后,没有实时监视/system/priv-app目录的变化,只有在系统启动的时候才会扫描一下(重启系统很慢,我们可以按照如下操作节约时间),因此需要手工通知一下(有时候需要修改一下权限才可以)。
1 2 3 |
$ chown 644 /system/priv-app/my-app.apk $ adb shell am restart |
Android 5.0之后,推送到系统目录后,没有自动安装应用
原因,Android 5.0之后,没有实时监视/system/priv-app目录的变化,只有在系统启动的时候才会扫描一下(重启系统很慢,我们可以按照如下操作节约时间),因此需要手工通知一下(有时候需要修改一下权限才可以)。
问题:1.没有自动安装还有权限不对的情况存在吧,copy过去默认权限不是644,需要修改权限为644才能安装?
2.使用adb shell am restart命令会让手机重启,这里除了重启手机还有其他方法吗?
权限问题,目前貌似与手机系统有关,有的厂家可以无视权限,系统会自动修改,有些则需要手工修改一下。
adb shell am restart 并不是手机重启,而是application manager(am)服务重启了。