從apk文件中獲取app相關的相關信息(包名,應用名稱等),在Android API中給我們提供了PackageManager,那么在python如何來實現呢?
要完成這一目的,首先需要了解兩點:
1.python中有個subprocess庫,利用它可以執行命令,並且能夠得到命令執行的結果以及錯誤信息,例如Linux中的ls,cd 等命令。
2.android sdk目錄下/build-tools/20.0.0文件夾中有aapt工具,aapt全名叫做Android Asset Packaging Tool,相關參數可以自己了解。下面直接上我的代碼:我這里只取了app的名字
import subprocess
COMMOND1 = "/root/android/android-sdk-linux/build-tools/20.0.0/aapt dump badging "
COMMOND2 = " | grep application-label:"
def get_apk_name(commond):
p = subprocess.Popen(commond, stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE,shell=True)
(output, err) = p.communicate()
if output != "":
try:
result = output[19:-2]
return result
except Exception,e:
return ""
return ""
apk_path = "/var/www/test.apk"
commond = COMMOND1+apk_path+COMMOND2
get_apk_name(commond)