从apk文件中获取app相关的相关信息(包名,应用名称等),在Android API中给我们提供了PackageManager,那么在python如何来实现呢?
要完成这一目的,首先需要了解两点:
1.python中有个subprocess库,利用它可以执行命令,并且能够得到命令执行的结果以及错误信息,例如Linux中的ls,cd 等命令。
2.android sdk目录下<sdk-path>/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)