回答

收藏

Android代码学习中的误区解决

其他 其他 1066 人阅读 | 0 人回复 | 2012-10-28

学习Android开发当中,会遇到很多的代码误区,Android环境就提供了proguard来进行代码混淆,这确实是一个非常有用的工具,但用起来也并不是那么容易的。下面就由卓跃教育为大家做一个介绍。?
1.基本的配置?
eclipse下建立的android工程,就会生成proguard.cfg和project.properties,在后面的文件追加proguard.config=proguard.cfg就可以让前面的配置文件在export时生效。默认的那个文件有一些内容,这里给一个更通用点的。?
2.打包出来的程序如何进行调试?
一旦打包出来,就不能用eclipse的logcat去看了,这里可以用androidsdk中ddms.bat的tool来看,一用就发现和logcat其实还是一个东西,就是多了个设备的选择。?
3.解决export打包的报错?
这个时候export提示“conversiontoDalvikformatfailedwitherror1”错误,网上说法有非常多种,最后还是把proguard从4.4升级到4.8就解决了。升级办法很简单,就是把androidsdk目录下的tool/proguard目录覆盖一下即可。?
4.使用gson需要的配置?
当Gson用到了泛型就会有报错,会提示“Missingtypeparameter”。最后找到一个资料给了一个解决办法,另外用到了JsonObject,提交的Object里面的members居然被改成了a。所以上面给的东西还不够,还要加上用到自己拼接的JsonObjectkeepclasscom.google.gson.JsonObject{*;}?
个人建议减少这些依赖包混淆带来的麻烦,干脆都全部保留不混淆。例如?
keepclasscom.badlogic.**{*;}?
keepclass*implementscom.badlogic.gdx.utils.Json*?
keepclasscom.google.**{*;}?
您有任何关于android开发的疑问,欢迎咨询在线老师?
5.验证打包效果?
利用了apktool的反编译工具,把打包文件又解压了看了一下,如果包路径、变量名、类名、方法名这些变化和你期望一致,那就可以了。命令:apktool.batdxxx.apkdestdir。?
总结:这个东西用起来也不是很简单,特别当大家的程序用到的高级特性多,这就更容易出问题。另外proguard的参数看起来确实也有点不好理解,打包过程慢,测试也比较浪费时间。东西虽好用,但真不是那么容易上手看,需要大家在这方面下一番功夫去了解的。?
?
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条