为什么要用 adb 控制 uniapp 的启动与关闭
目前的工作主要应用于 uniapp 开发,过程中经常会遇到使用 adb install
安装应用后无法自动启动的情况,例如机器人 TV 之类的没有桌面的终端。这种情况下,既然有 adb 链接,我们可以直接控制我们 uniapp 的启动与关闭。
事实上,Hbuilder X 集成一套 APP 控制逻辑。但是有些设备不是很好用,APP不会自动启动。
相关步骤
要启动 APP,实际上只需要一行命令:
adb shell am start 包名/启动的Activity
在日常Android开发中,我们一般了解包名与主Activity,所以可以轻松的使用这行命令进行APP启动。但是 uniapp 的主 Activity 我们是不知道的。要寻找主 Activity, 我们有三种办法获取:
- 使用
adb shell dumpsys package
指令 - 使用
adb shell dumpsys window
指令 - 使用
aapt 工具
详细的使用教程请查看 这篇文章
我通常倾向于使用 aapt 工具
,因为我能直接拿到自己的 APK 包,而且过程简单。aapt 工具
内置于 Android SDK 的 build-tools
文件夹中,如果你安装了 Android Studio 可以很方便地获取到这个工具, cmd 切换到 SDK 目录即可使用。
言归正传
uniapp 的主 Activity 名称是固定的。使用 aapt 工具获取到的结果是 io.dcloud.PandoraEntry
。即是说,要启动基于 uniapp 的 APP ,需要使用下面的指令:
adb shell am start 包名/io.dcloud.PandoraEntry
关闭 APP 也是很方便的,不需要 Activity 参数
# 使用 am force-stop
adb shell am force-stop 包名
# 或者使用 pm 进程管理器
adb shell pm clear app 包名