Android代码混淆的实践-编程小技巧_第1页
Android代码混淆的实践-编程小技巧_第2页
Android代码混淆的实践-编程小技巧_第3页
Android代码混淆的实践-编程小技巧_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、android代码混淆的实践开发apk的时候当然要考虑保护好口己的代码,android环境就提供了 proguard来进行代码混淆,确实是一个非常有用的工具,但用起来也确实够折 腾的。, ; 3 "$和0加诃hk, $withn6ms ; ' sasnums) = (0fc ro);'°' my $formatstr = $format1 show* . ”n"jir iconfiw -j diru* *$conligtmpdl return if (icjieck ticket werr($ticket) poslx: :strftlme

2、(localtl®er)1;while ($#subs > -1 && $subsro /a-/) my $arg = shifty subs;dir/* $showblank =1 2;.i elsif (sara =- /a-b/) ;蛛howb曲rm uay elsif ($arg =* /-n/) $withnums = 1;.、(;,. y elsifsifsarg =- /-n/) sasnumsi = 1; elsif (sarg =- /-i/) sformatstr = $format* showlong 1基本配置eclipse卜建立andr

3、oid工程,就会生成proguard, cfg和 project, properties,在后面的文件追加 proguard, config=proguard. cfg 即可 让前面的配置文件在export时生效。默认的那个文件有一些内容,这里给一个 更通用点的。#begin: proguard configuration common for all android apps -optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses- don tskip non publ icl ibra

4、rclassmcmbcrs-dontpreverify-verbose-optimizations !code/s impli f icat ion/arithmetic, field/*, !class/mergin g/*"keepattributes *armotation*-renamesourcefileattribute sourcefile-keepattributes sourcefile, linenumbertable#以下两个命令配合让类的路径给删除了-allowaccessmodification-repackageclasses ”#记录生成的fl志数据,在

5、proguard目录下 -dump class_files.txt-printseeds seeds.txt-printusage unused, txt-printmapping mapping.txt#异常都可以忽略就打开 #-dontwarnkeep public keep public keep public keep public keep public keep public keep public keep publicclass class class class class class class class*extends extends cxtcnds extends e

6、xtends extends extendsandroid, app. activity android, app. application android, app. service android, content. broadcastreceiver android, content. contentprovider android, app. backup. backupagenthelper android, preferenee. preferencecom. an droid, vending, lice rising. ilicc nsin gscrviccdontnote c

7、om. android, vending, licensing. ilicensingservice -keepnames class * implements java. io. serializable# explicitly preserve al 1 serialization members. the serializable intcrfacc# is only a marker interface, so it wouldn" t save them, -keepclassmembers class * implements java. io.serializable

8、static final long serialversionuid;private static final java. io. objectstreamfield scrialpcrsistentficlds;private void writeobject(java. io. objectoutputstream); private void readobject (java. io. objectlnputstream); java. lang. object writereplace();java. lang. object readresolve();# preserve all

9、native method names and the names of their classes, -keepclasseswithmembernames class * native ;-keepclasseswithmembernames class * public (android, content. context, android.util. attributeset);-keepclasseswithmembernames class * publ ic (android, content. context, android, util. attributeset, int)

10、;ij# preserve static fields of inner classes of r classes that might be accessed# through introspection. "kccpclassmcmbcrs class *r$* public static ;# preserve the special static methods theit are required in al 1 enumeration classes.-keepclassmembers enum * public static * values ();public sta

11、tic * valueof (java, lang. string);-keep class * implements android.os.parcelable public static final android, os. parcelable$creator *;#如果你的工程是对外提供方法调用就打开#-keep public class * # public protected *;#end: proguard conf igurati on comm on for al 1 an droid apps2解决export打包的报错这个吋候 export 提示 "conver

12、sion to dalvik format failed with error 1 ”错误,网上说法有好多种,最后我还是把proguard从4. 4升级到4. 8就解决 to官方地址是http:/proguard, sourceforge, note .h6的配置文件参数可以 在这里查阅。升级办法很简单,就是把android sdk目录下的tool/proguard目录覆盖一 下即可。3.打包出来的程序如何调试一旦打包出來,就不能用eclipse的logcat去看了,这里可以用android sdk 屮ddms. bat的tool来看,一用就发现和logcat其实还是一个东西,就是多了 个设备

13、的选择。4使用gson需要的配置当gson用到了泛型就会有报错,这个真给郁闷了半天,提示“missing type parameter。最后找到一个资料给了一个解决办法,参考: http:/stackoverflow. com/questions/8129040/proguard-missing-type-para metero另外我又用到了 jsonobject,提交的object里面的members居然被改成了 ao所以上面给的东西还不够,还要加上#用到口己拼接的jsonobject-keep class com. google, gson. jsonobject *; 我个人建议减少这些依赖包混淆带來的麻烦,干脆都全部保留不混淆。例如-keep class com. badlogic. * *; -keep class * impleinents com bndlogic. gdx. utils. json* -keep class com. google * *; 5. 使用libgdx需要的配置参考 http:/code. google. com/p/libgdx-users/wik

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论