1、期望项目如何运行?
普通 App 在 run 之后,会编译出 APK,然后 AS 会自动调用 install 命令进行安装,完成安装后会启动 App 的 Launcher Activity。这些 AS 已经帮你自动完成了。如果你的 App 不像 SystemUI 或 Settings 这样贴近 Framework 层,且有入口 Activity,那么完全可以直接运行。
如果你开发的系统应用,并不局限于指定设备,比如相册应用,那么完全可以将 /system/app 下的 APK 删除,重启,然后即可直接运行,或者如果你用的是系统签名,无需删除 APK 即可覆盖安装运行。
但是像 SystemUI 这样的应用,首先是没有默认的 Activity 的,其次它必须 push 到指定目录后,杀死进程才能生效,因此接下来需要解决 APK push 到设备指定目录的问题。
当然,经过前面文章的操作,已经可以生成 APK 了,那么手动使用 adb 命令 push 也没问题的,但是我们这里要做到的是全自动,在需要运行的时候只需要点击 run 按钮即可。这样才能达到节省开发时间的目的。
不管测试设备使用的是手机或模拟器,都需要执行:
adb root
adb remount
使得 system 目录处于可重写的状态。在 remount 之前,也许还需要执行:
adb disable-verity
再重启设备,具体得看 remount 是否成功。
在我写这篇文章时,我发现 Android 10 的模拟器是无法 remount 的