我必須使用命令行在android模擬器上啓動應用程序。爲此我知道adb命令有一個方法;獲取.apk文件的主包名稱
adb shell am start -a android.intent.action.MAIN -n com.example.myApplication
,但我必須在執行此命令之前,找到應用程序包的名稱,所以任何人都幫我找到包名,或運行APK任何替代的解決方案在模擬器
我必須使用命令行在android模擬器上啓動應用程序。爲此我知道adb命令有一個方法;獲取.apk文件的主包名稱
adb shell am start -a android.intent.action.MAIN -n com.example.myApplication
,但我必須在執行此命令之前,找到應用程序包的名稱,所以任何人都幫我找到包名,或運行APK任何替代的解決方案在模擬器
這就是我在我的一個項目中使用的一個shell腳本。
apk= #apk path
package=`.//aapt dump badging $apk | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
echo $package
adb install $apk
,如果你只想在CMD提示符下輸入,那麼這將是
.//aapt dump badging ***apk relative path*** | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g
,應該工作。
如果我在命令提示符下輸入,命令是什麼? – user3387036
我編輯了我原來的帖子,告訴我它是否不起作用? –
顯示錯誤grep不被識別爲內部外部命令 – user3387036
在Linux上,只需使用這個命令來獲得軟件包名稱:
aapt dump badging {apk-file.apk} | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g
獲取主(發射器)活動是相似的:
aapt dump badging {apk-file.apk} | grep launchable-activity: | awk '{print $2}' | sed s/name=//g | sed s/\'//g
對於我個人的使用情況,我已經寫了一個叫做apkinfo.sh
的shell腳本,如下所示:
#!/bin/bash package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g` activity=`aapt dump badging $* | grep launchable-activity: | awk '{print $2}' | sed s/name=//g | sed s/\'//g` echo echo package : $package echo activity: $activity
並以此爲以下幾點:
./apkinfo.sh {path-to-apk-file.apk}
你想要什麼樣的包,以獲得?我們只需要先解決您的問題。 –
我想獲取主要活動的應用程序包名稱,就像我在命令行參數 – user3387036