1. 重庆云诚科技 > 名人名言 >

〈app开发混淆〉解混淆APP

导读Android如何代码混淆,防止apk程序被反编译本文最佳回答用户:【熙妍】 ,现在由重庆云诚科技小编为你讲解与【app开发混淆】的相关内容!答下面具体说一说怎么样让SDK2.3下的proguard...

本篇文章给大家谈谈app开发混淆,以及解混淆APP对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

Android如何代码混淆,防止apk程序被反编译

本文最佳回答用户:【熙妍】 ,现在由重庆云诚科技小编为你讲解与【app开发混淆】的相关内容!

下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:view plain 1. -optimizationpasses 5 2. -dontusemixedcaseclassnames 3. -dontskipnonpubliclibraryclasses 4. -dontpreverify 5. -verbose 6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 7. 8. -keep public class * extends android.app.Activity 9. -keep public class * extends android.app.Application 10. -keep public class * extends android.app.Service 11. -keep public class * extends android.content.BroadcastReceiver 12. -keep public class * extends android.content.ContentProvider 13. -keep public class * extends android.app.backup.BackupAgentHelper 14. -keep public class * extends android.preference.Preference 15. -keep public class com.android.vending.licensing.ILicensingService 16. 17. -keepclasseswithmembernames class * { 18. native <methods>; 19. } 20. 21. -keepclasseswithmembernames class * { 22. public <init>(android.content.Context, android.util.AttributeSet); 23. } 24. 25. -keepclasseswithmembernames class * { 26. public <init>(android.content.Context, android.util.AttributeSet, int); 27. } 28. 29. -keepclassmembers enum * { 30. public static **[] values(); 31. public static ** valueOf(java.lang.String); 32. } 33. 34. -keep class * implements android.os.Parcelable { 35. public static final android.os.Parcelable$Creator *; 36. } 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService, 并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。) 让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了 完整的default.properties文件应该如下:view plain 1. # This file is automatically generated by Android Tools. 2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3. # 4. # This file must be checked in Version Control Systems. 5. # 6. # To customize properties used by the Ant build system use, 7. # "build.properties", and override values to adapt the script to your 8. # project structure. 9. 10. # Project target. 11. target=android-9 12. proguardproguard.config=proguard.cfg 大功告成,正常的编译签名后就可以防止代码被反编译了。

上文就是重庆云诚科技小编解答贡献者:(熙妍)回答的关于“Android如何代码混淆,防止apk程序被反编译”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,下面继续谈谈下文用户【丑的想整容】分析的“如何读懂 代码混淆的安卓app”的一些相关问题做出分析与解答,如果能找到你的答案,可以关注本站。

Android如何代码混淆,防止apk程序被反编译

如何读懂 代码混淆的安卓app

本文最佳回答用户:【丑的想整容】 ,现在由重庆云诚科技小编为你分析与【app开发混淆】的相关内容!

2.3SDK的两个新特点: 1.刚安装上2.3时,查看sdk目录,发现在\tools下新增了一文件夹“proguard”,如下图,我就在想是不是Google终于官方对proguard考虑进去了。理论上,对java的混淆都是可以的,但关键在于如何编写proguard的混淆脚本。 2.使用SDK2.3后,新建的工程下和之前相比,都会多了一个文件“proguard.cfg”。一打开,相当惊喜,这就是混淆所需的proguard脚本啊。 如下图: 其代码如下: view plaincopy to clipboardprint -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native ; } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native ; } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件。 并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考\examples中的例子及注释。) 好了,进行得了,下面就来看看如何真正的生成混淆APK吧。这儿又得提醒一下,SDK新的特性在文档里都是有的,所以文档很重要。 查看SDK2.3的文档,在路径“/docs/guide/developing/tools/proguard.html”的“Enabling ProGuard ”中是这样描述的: To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config property in the /default.properties file. The path can be an absolute path or a path relative to the project's root. 好的,那就这样做吧。 在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”,如下图: 这样就已经设置好ADT的混淆操作了。接下来就是正常的打包和签名了 下图是我混淆SDK Demo中自带的Notepad效果图: 注意要点: 1.混淆以后的包会比混淆前的包小一点,一定要注意这点. 如果混淆不成功,请在第2步,将proguard.config=proguard.cfg修改为proguard.config=E:\Mobile_Develop\Google_Android\publicGoldenBeach_new\proguard.cfg这种类似的用绝对路径,请注意绝对路径中的文件夹名不能含有空格,如果有空格请替换为"_". 2.android在用proguard混淆时,一般情况下使用系统自带的配置文件就可以保持大部分外部需要引用的类,比如Activity,view扩展等等,但是有些情况下一些引入的外部lib,如果被混淆也会出现各种各样的问题,如果不想混淆这些包,就要加上 -keep class packagename.** {*;} 这样就能完整保持原有class了

关于[app开发混淆]的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

推荐文章:

  • 董璇和高云翔什么时候离的婚-董璇高云翔差几岁
  • 李宗泫和孔升妍主演的电视剧 李宗泫和孔升妍主演的电视剧是什么
  • dc是哪个演员,dc有哪些人
  • 关于古代战争的名言 关于古代战争的名言有哪些
  • 申世京整容,申世京的牙
  • e租宝丁宁个人资料,e租宝丁宁案
  • 古人名言 古人名言及批注
  • 明星吻戏真-明星吻戏谁最强
  • 王紫潼个人简历,王紫潼的照片
  • 何穗个人资料和图片 何穗百科
  • 本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:https://www.cqycseo.com/kaifa/1438.html

    联系我们