Mac下のApkマルチチャネル検証ツール
1853 ワード
Windowsプラットフォームの下でjre環境に基づくApkマルチチャネル検証ツールを書いたことがあります.詳しくはhttp://blog.csdn.net/h3c4lenovo/article/details/10041047
このようなシーンは限られており、チャネルプロバイダを変更してから変更するにはjarパッケージを再コンパイルする必要があります.
そこで今回はshellスクリプトとpythonスクリプトに基づくマルチチャネル検証ツールを書きました.私の開発環境はmacなので、macにとってこのスクリプトは環境を個別に構成する必要もコンパイルする必要もなく、少し修正すればすべての人のニーズを満たすことができます.
cannal.sh
pythonを使用してxmlを解析し、必要なチャネル名を見つけます.
リソースのダウンロード:
http://download.csdn.net/detail/h3c4lenovo/8123251
このようなシーンは限られており、チャネルプロバイダを変更してから変更するにはjarパッケージを再コンパイルする必要があります.
そこで今回はshellスクリプトとpythonスクリプトに基づくマルチチャネル検証ツールを書きました.私の開発環境はmacなので、macにとってこのスクリプトは環境を個別に構成する必要もコンパイルする必要もなく、少し修正すればすべての人のニーズを満たすことができます.
cannal.sh
count=0
rootPath=./
toolsPath=./tools/
currentFolderName=${PWD##*/}
# tools
if [ "$currentFolderName" == "tools" ] ; then
rootPath=../
toolsPath=./
fi
apkUnzipFolder="${rootPath}apkUnzipFolder"
androidManifestTxt="${rootPath}AndroidManifest.txt"
for line in $(find ${rootPath}* -prune -iname '*.apk'); do
echo " :$line"
unzip -o -q -d $apkUnzipFolder $line
java -jar ${toolsPath}AXMLPrinter2.jar $apkUnzipFolder/AndroidManifest.xml > $androidManifestTxt
python ${toolsPath}xmlParsePy.py
let count=$count+1
done
if [ -d $apkUnzipFolder ]; then
rm -rf $apkUnzipFolder
fi
if [ -f $androidManifestTxt ]; then
rm -r $androidManifestTxt
fi
echo " , ${count} "
xmlParsePy.py import os
toolsPath = './'
if os.path.basename(os.getcwd())=='tools':
toolsPath = '../'
from xml.dom import minidom
xmldoc = minidom.parse(toolsPath+'AndroidManifest.txt')
itemlist = xmldoc.getElementsByTagName('meta-data')
for s in itemlist :
name = s.attributes['android:name'].value
value = s.attributes['android:value'].value
if name == 'UMENG_CHANNEL' :
print value
主な考え方は、現在のディレクトリを巡り、ディレクトリの下にあるすべての*.apkで終わるファイルを見つけ、そのunzipを解凍し、AXMLPrinter 2.jarを通じて混同されたAndroidManifestファイルを逆コンパイルすることです.pythonを使用してxmlを解析し、必要なチャネル名を見つけます.
リソースのダウンロード:
http://download.csdn.net/detail/h3c4lenovo/8123251