Aze*_*eem 53 android android-install-apk
是否有任何命令cmd.exe允许我使用该应用程序的.apk文件启动特定Android应用程序的主要活动.请注意,我知道这个命令只安装一个Android应用程序:
adb install myapp.apk
Run Code Online (Sandbox Code Playgroud)
此命令仅安装myapp到模拟器上,我必须从模拟器手动运行此应用程序(通过单击其图标).
我想要做的是使用一个命令,它不仅安装应用程序,而且还启动它的主要活动(请注意我只有它的.apk文件所以我不知道包名称或任何活动名称是什么).
Air*_*Ltd 81
您不能一次安装和运行 - 但您当然可以使用adb来启动已安装的应用程序.使用adb shell开始激活一个意图 - 你需要为你的应用程序使用正确的意图.几个例子:
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings
Run Code Online (Sandbox Code Playgroud)
将启动设置,和
adb shell am start -a android.intent.action.MAIN -n com.android.browser/.BrowserActivity
Run Code Online (Sandbox Code Playgroud)
将启动浏览器.如果要将浏览器指向特定页面,请执行此操作
adb shell am start -a android.intent.action.VIEW -n com.android.browser/.BrowserActivity http://www.google.co.uk
Run Code Online (Sandbox Code Playgroud)
如果您不知道APK中活动的名称,请执行此操作
aapt d xmltree <path to apk> AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
输出内容将包括这样的部分:
E: activity (line=32)
A: android:theme(0x01010000)=@0x7f080000
A: android:label(0x01010001)=@0x7f070000
A: android:name(0x01010003)="com.anonymous.MainWindow"
A: android:launchMode(0x0101001d)=(type 0x10)0x3
A: android:screenOrientation(0x0101001e)=(type 0x10)0x1
A: android:configChanges(0x0101001f)=(type 0x11)0x80
E: intent-filter (line=33)
E: action (line=34)
A: android:name(0x01010003)="android.intent.action.MAIN"
XE: (line=34)
Run Code Online (Sandbox Code Playgroud)
这告诉你主要活动的名称(MainWindow),现在你可以运行了
adb shell am start -a android.intent.action.MAIN -n com.anonymous/.MainWindow
Run Code Online (Sandbox Code Playgroud)
dlj*_*ava 12
如果你正在寻找相当于"adb run myapp.apk"
您可以使用此答案中显示的脚本
(仅限linux和mac - 可能在windows上使用cygwin)
linux/mac用户还可以创建一个脚本来运行apk,其内容如下:
使用以下3行创建名为"adb-run.sh"的文件:
pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}')
act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}')
adb shell am start -n $pkg/$act
Run Code Online (Sandbox Code Playgroud)
然后"chmod + x adb-run.sh"使其可执行.
现在你可以简单地说:
adb-run.sh myapp.apk
这样做的好处是您不需要知道包名称或可启动活动名称.同样,您可以创建"adb-uninstall.sh myapp.apk"
注意:这要求您遵循自己的道路.您可以在SDK中的新构建工具文件夹下找到它
小智 6
从GUI启动应用程序时,adb logcat可能会显示相应的操作/类别/组件:
$ adb logcat
[...]
I/ActivityManager(1607):START {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = com.android.browser/.BrowserActivity来自pid 1792
[...]
这是shell脚本中的解决方案:
apk="$apk_path"
Run Code Online (Sandbox Code Playgroud)
adb install "$apk"
sleep 1
Run Code Online (Sandbox Code Playgroud)
pkg_info=`aapt dump badging "$apk" | head -1 | awk -F " " '{print $2}'`
eval $pkg_info > /dev/null
Run Code Online (Sandbox Code Playgroud)
pkg_name=$name
adb shell monkey -p "${pkg_name}" -c android.intent.category.LAUNCHER 1
Run Code Online (Sandbox Code Playgroud)
小智 5
首先安装您的应用程序:
\n\nadb install -r path\\ProjectName.apk\nRun Code Online (Sandbox Code Playgroud)\n\n-r 的伟大之处在于,即使尚未安装 \xe2\x80\x99,它也能工作。
\n\n要启动 MainActivity,您可以像这样启动它:
\n\nadb shell am start -n com.other.ProjectName/.MainActivity
| 归档时间: |
|
| 查看次数: |
95806 次 |
| 最近记录: |