BAT - 通过脚本直接从apk文件获取包名等信息
此博客原创于: http://blog.csdn.net/lys211
转载请保留标识。
有时,我需要从android应用包里直接获取到应用程序的包名,别的不需要,此时想方便快捷的拿到想到的信息,只需要打开命令行窗口,然后输入命令
aapt d badging xxx.apk
xxx.apk是你想解析的包,就可以得到apk的资源信息
比如输入 aapt d badging 58tongcheng_6080.apk
得到如下信息:
aapt.exe 这个放置在你的android sdk 目录下的 build-tools\22.0.1 文件夹下
脚本太简单,简单说下思路
批量的解析apk的时候,直接将apk放到一个文件夹下,然后弄一个bat脚本,逐个对该文件夹下的apk文件进行解析,然后放入一个txt文件中。
脚本的主要部分如下:
echo 开始...
set ApksPath="%currentPath%\apps"
set ErrorLogFileName=%currentPath%\ParseApkErrorLog.txt
set ParselApksLogFile=%currentPath%\ParselApksLogFile.txt
set /a var=1
for /f "delims=" %%i in ('dir/b/a-d %ApksPath%\*.apk') do (
echo 正在解析第 !var! 个应用: %%i
for /f "delims=" %%a in ( 'aapt d badging "%ApksPath%\%%i"^|findstr "package: "') do (
echo %%a
for /f "delims=' tokens=2" %%b in ( "%%a" ) do ( echo %%b>>%ParselApksLogFile% )
)
set /a var+=1
)
echo 完成
上面这部分脚本的主要功能是,对
%currentPath%\apps 目录下的所有文件进行解析,将获取到apk的包名并将包名存入文件
%ParselApksLogFile
% 中。 这里的话,一般将aapt.exe复制到脚本路径下方便调用即可。