无业游民

千里之行始于足下

导航

命令行编译android程序,欢迎探讨命令行如何使用proguard混淆优化代码

以下是本人写的一个打包Android apk的批处理程序,实在不晓得应该在哪一步、以及如何添加proguard来混淆及优化代码。

网上查了下,proguard混淆优化普通的java程序是在生成了jar以后,然后通过命令:java -jar proguard.jar @config,@config是配置文件,会根据配置文件生成混淆优化后的jar.

但是Android 项目并没有生成jar包,只是在生成了.class字节码文件以后通过dx工具打包成了一个.dex文件,而且我看了proguardgui程序,里面一共就支持jar,war,ear,zip等文件格式,我该如何使用proguard呢?

或者还有更好的混淆以及优化代码的工具?

  1. javac -encoding UTF-8 -source %JDK_Version% -bootclasspath %AndroidJar% -classpath %ExternerJar% -d %AndroidProjectBin% %AndroidProjectSrc%
  2. if %errorlevel% NEQ 0 goto fail
  3. call dx --dex --output=%AndroidProjectBin%/classes.dex %AndroidProjectBin% %LibJar%
  4. if %errorlevel% NEQ 0 goto fail
  5. call aapt package -f -M %AndroidProjectAndroidMainfest% -S %AndroidProjectRes% -A %AndroidProjectAsset% -I %AndroidJar% -F %AndroidProjectBin%/resources.ap_
  6. if %errorlevel% NEQ 0 goto fail
  7. call apkbuilder %AndroidProjectBin%/%unsign_apk% -v -u -z %AndroidProjectBin%/resources.ap_ -f %AndroidProjectBin%/classes.dex -rf %AndroidProject%/src
  8. if %errorlevel% NEQ 0 goto fail
  9. jarsigner -keystore %apk_keystore% -storepass %apk_keypass% %AndroidProjectBin%/%unsign_apk% %apk_key%
  10. if %errorlevel% NEQ 0 goto fail
  11. pushd %AndroidProject%
  12. del /S/Q %sign_apk%
  13. popd
  14. zipalign -v 4 %AndroidProjectBin%/%unsign_apk% %AndroidProject%/%sign_apk%
  15. if %errorlevel% NEQ 0 goto fail
  16. jarsigner -verify -verbose %AndroidProject%/%sign_apk%
  17. if %errorlevel% NEQ 0 goto fail
  18. echo signed-{tag_qudao} build success !
  19. goto end
  20. :fail
  21. echo signed-{tag_qudao} build failed !

 

已解决,先把.class打包成jar,然后调用proguard混淆,再用dx把混淆后的jar打包成dex,成功。

posted on 2012-05-01 03:24  PeterHuang  阅读(2361)  评论(1编辑  收藏  举报