我可以通过 adb 安装 apk 没有任何问题。
但是在我安装它之后,我想通过 adb 打开那个包。我想向打开 MAIN 或 LAUNCHER 活动的包发送一个 Intent,就像启动器一样。
但是 adb 似乎总是希望我在我的意图中包含一个活动名称。
我该如何解决这个问题?我可以扫描一个 apk 以获取所有包名称吗?对于主要的?有没有办法通过没有活动名称的 adb 打开它?
我可以通过 adb 安装 apk 没有任何问题。
但是在我安装它之后,我想通过 adb 打开那个包。我想向打开 MAIN 或 LAUNCHER 活动的包发送一个 Intent,就像启动器一样。
但是 adb 似乎总是希望我在我的意图中包含一个活动名称。
我该如何解决这个问题?我可以扫描一个 apk 以获取所有包名称吗?对于主要的?有没有办法通过没有活动名称的 adb 打开它?
通过 adb,您可以通过使用 adb 本身的猴子来简化应用程序打开过程,而无需查找可启动的活动。
例如,要打开 Facebook:
adb shell monkey -p com.facebook.katana 1
使用 aapt 您可以找到可启动的活动,例如:
$ aapt dump badging file.apk | grep package
package: name='com.triposo.droidguide.world' versionCode='161' versionName='2.1'
$ aapt dump badging file.apk | grep launchable
launchable-activity: name='com.triposo.droidguide.world.SplashActivity' label='' icon=''
要在启动活动时指定意图,可以使用 MonkeyRunner 脚本和MonkeyDevice.startActivity:
from com.android.monkeyrunner import MonkeyRunner
device = MonkeyRunner.waitForConnection()
package = 'com.triposo.droidguide.world'
launchable_activity = 'com.triposo.droidguide.world.SplashActivity'
device.startActivity(component='%s/%s' % (package, launchable_activity)))