我可以通过adb安装apk而不会出现任何问题。
但是在我安装之后,我想通过adb打开该包。我想向打开MAIN或LAUNCHER活动的包发送一个Intent,就像发射器一样。
但adb似乎总是希望我在我的意图中包含一个活动名称。
我如何解决这个问题? 我可以扫描apk以获取所有包名吗?对于主要的一个? 有没有办法通过没有活动名称的adb打开它?
答案 0 :(得分:0)
通过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)))
答案 1 :(得分:0)
通过adb,您可以使用adb本身的Monkey来简化应用程序打开过程,而无需查找可启动的活动。
例如,打开Facebook:
adb shell monkey -p com.facebook.katana 1