繁体   English   中英

如何在树莓派3上停止android Things应用程序并启动另一个活动

[英]how to stop android things app on raspberry pi 3 and start another activity

我从“ https://developer.android.com/things/training/first-device/peripherals.html#handle_button_events ”网站开发了我的第一个android Things应用。 并将其部署在raspberry pi 3(在4.1版上启动)上。

轻松部署在树莓派3上,也让我闪烁了。

但是现在我不知道如何停止它,进行更改或启动其他项目。

它不断闪烁,我不知道如何停止它。

在我的Android Studio中,当我按下开始按钮时,它会显示已连接的设备菜单,其中显示树莓派处于脱机状态。 像这样

您可以使用adb做很多事情,让我们看一些adb命令,这些命令将帮助您进行android应用程序的开发和测试。

假设您的设备具有IP 10.10.0.123

通过adb连接到设备

$ adb connect 10.10.0.123:5555

检查可用的已连接设备列表

$ adb devices

上面的命令给出输出

List of devices attached 
10.10.0.123:5555    device

使用以下命令可以完成应用程序的安装

$ adb -s 10.10.0.123:5555 install <path to your apk file>

例:

$ adb -s 10.10.0.123:5555 install /home/shahbaz/Android-apps/example.apk

安装需要时间,具体取决于应用程序的大小,因此请耐心等待

上面的安装命令输出

502 KB/s (15896167 bytes in 30.870s)
Success

卸载应用程序

为此,您必须知道应用程序的软件包名称

$ adb uninstall com.example.app

启动应用程序首先连接到设备,然后运行以下命令

$ adb shell 'am start $(cmd package resolve-activity --brief <package-name> | tail -n 1)'

 $ adb shell 'am start $(cmd package resolve-activity --brief com.example.app | tail -n 1)'

这个命令的输出是这样的

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.app/.SpalshScreen }

关闭启动的应用程序

$ adb shell am force-stop <package-name>

$ adb shell am force-stop com.example.app

您可以进一步检查adb的手册页以进行其他操作。

希望这会有所帮助!

发生这种情况是因为您已将应用程序设置为默认启动应用程序。 因此,它将在您打开Android Thing设备后立即加载。 克服此问题的一种方法是使用命令简单地远程卸载当前软件包:

adb卸载pkg-name

或使用以下命令并手动将其卸载:

adb shell是start -a android.settings.SETTINGS

如果您处于调试阶段,最好转到清单文件并替换以下几行:

    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.IOT_LAUNCHER"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>

与:

    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>

这样做会阻止将该应用程序作为您的默认启动应用程序

更新1:不推荐使用IOT_LAUNCHER,应将其替换为HOME

通过在CMD上执行“ adb kill-server”命令可以解决此问题。 然后重新连接raspberry pi3。因此,脱机标签已从raspberry pi 3仿真器中删除。

Android Things OS仅“自动启动”一个应用程序。 因此,您的旧应用程序将继续启动。

您必须卸载旧应用程序,以确保新应用程序已启动。 您可以使用

adb uninstall your.package.name

或者,如果您安装了一些旧应用程序,则可以使用以下脚本文件:

https://gist.github.com/blundell/7c0c3bb17898b28fe8122b0dc230af50

卸载它们(不需要知道软件包名称!)


如果您看到Rasp Pi处于脱机状态,则可以重新启动它(将其关闭再打开)。 :-)


脚本现已更新,可以查找:

 <category android:name="android.intent.category.HOME"/> 

在最新版本(DP8)中取代了IOT_LAUNCHER

在android中,您一次只能使用一个应用程序,因此请使用adb uninstall <installed-app-pkg-name> ,然后开始将另一个项目安装到Raspberry Pi 3中。还要删除<category android:name="android.intent.category.IOT_LAUNCHER"/>因此您的应用将无法在启动时启动。

目前,此<category android:name="android.intent.category.IOT_LAUNCHER"/>已在android Things稳定版1.0中替换为<category android:name="android.intent.category.HOME"/>

希望这会帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM