以下是本人写的一个打包Android apk的批处理程序,实在不晓得应该在哪一步、以及如何添加proguard来混淆及优化代码。
网上查了下,proguard混淆优化普通的java程序是在生成了jar以后,然后通过命令:java -jar proguard.jar @config,@config是配置文件,会根据配置文件生成混淆优化后的jar.
但是Android 项目并没有生成jar包,只是在生成了.class字节码文件以后通过dx工具打包成了一个.dex文件,而且我看了proguardgui程序,里面一共就支持jar,war,ear,zip等文件格式,我该如何使用proguard呢?在生成.class和.dex之间怎么混淆优化?
或者还有更好的混淆以及优化代码的工具?
- javac -encoding UTF-8 -source %JDK_Version% -bootclasspath %AndroidJar% -classpath %ExternerJar% -d %AndroidProjectBin% %AndroidProjectSrc%
- if %errorlevel% NEQ 0 goto fail
- call dx --dex --output=%AndroidProjectBin%/classes.dex %AndroidProjectBin% %LibJar%
- if %errorlevel% NEQ 0 goto fail
- call aapt package -f -M %AndroidProjectAndroidMainfest% -S %AndroidProjectRes% -A %AndroidProjectAsset% -I %AndroidJar% -F %AndroidProjectBin%/resources.ap_
- if %errorlevel% NEQ 0 goto fail
- call apkbuilder %AndroidProjectBin%/%unsign_apk% -v -u -z %AndroidProjectBin%/resources.ap_ -f %AndroidProjectBin%/classes.dex -rf %AndroidProject%/src
- if %errorlevel% NEQ 0 goto fail
- jarsigner -keystore %apk_keystore% -storepass %apk_keypass% %AndroidProjectBin%/%unsign_apk% %apk_key%
- if %errorlevel% NEQ 0 goto fail
- pushd %AndroidProject%
- del /S/Q %sign_apk%
- popd
- zipalign -v 4 %AndroidProjectBin%/%unsign_apk% %AndroidProject%/%sign_apk%
- if %errorlevel% NEQ 0 goto fail
- jarsigner -verify -verbose %AndroidProject%/%sign_apk%
- if %errorlevel% NEQ 0 goto fail
- echo signed-{tag_qudao} build success !
- goto end
- :fail
- echo signed-{tag_qudao} build failed !
我也遇到同样的问题,请问你现在解决了吗?