我以前写过一个关于包混淆的帖子《android项目混淆打包注意事项》。 它介绍了对第三方jar包进行模糊处理,几乎可以解决模糊处理问题。 我还不知道,你去看看。 地址在这里。 是http://my.eoe.cn/smile _ it/archive/3820.html。
现在的APP或多或少都引用开源项目作为外部库。 如果你对大多数开源项目还不太了解,请去我的博客看看。 《开源Club》:http://my.eoe.cn/smile _ it/archive/17918
因此,本文主要介绍了在APP应用程序中将外部第三方库作为liarary引用时的混淆方法。 另外,因为最近的项目引用了五个开源库,并且在联机之前专门实践了混淆方法。
闲话休提,言归正传:
1 .在project.properties文件中,必须指定模糊化规则并指定默认第三方库的路径。
1
2
3
proguard.config=proguard.CFG target=Android-14 Android.library.reference.1=. 引入的外部library的工程名称
2、如果你对引入的第三方数据库不太了解,或者官方没有就该混淆给出具体实例,建议直接屏蔽,以免混淆。
在proguard.cfg文件中主要做的是
1
2
3
4
5
-libraryjars .第三方库的工程名称--------引入的第三方库-----dontwarn包名称. **-----找到包名称**关于此包中的类的引用- keepclassassar------ -不要混淆此包中的所有类和所有方法
示例:
我的项目里还有其他的jar包,所以我发布了我的
1、project.properties
2、proguard.cfg :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
-优化过程5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontskipnonpubliclibraryclassmembers-- 字段/*, class/merging/*-keep公共类* extends Android.app.activity-keep公共类* extends Android.app.application extends Android.app.service-keep公共类* extends Android.content.broadcast receiiies extends Android.content.content provider-keep公共类* extends Android.app.backup.backupagenthelper-keeppublicclic extends Android.preference.preference-keeppubliclascoscod 服务# umeng _ service }-keepclasseswithmembersclass * { public (Android.content.context,Android.util.atriburibute ) }-keepclasseswithmembersclass * { public (Android.content.context,android.util.AttributeSet,int ); }-keepclassmembersclass * extends Android.app.activity { public void * (Android.view.view ); }-keepclassmembersenum * {公共静态* * [ ] values (; 公共静态* * value of (Java.lang.string ); }-keepclass * implements Android.OS.parcelable { publicstaticfinalandroid.OS.parcelable $ creator *; }-dontwarncom.umeng.*-dontwarnorg.Apache.com mons.*-dontwarncom.Tencent.Weibo.SDK.*-keepattribus } }-keepclasscom.Tencent.open.t诊断$ *-keepclasscom.Tencent.t诊断$ * { *; }-keepclasscom.Tencent.open.pkdialog-keepclasscom.Tencent.open.pkdialog { *; }-keepclasscom.Tencent.open.pkdialog $ *-keepclasscom.Tencent.open.pkdialog $ * { *; }-keepclasscom.Tencent.mm.SDK.open API.wxmediamessage { *; }-keepclasscom.Tencent.mm.SDK.open API.* * implements com.Tencent.mm.SDK.open API.wxmediamessage $ imediaobbe }
注意:如果还有其他类库,您可以继续在此处按上述格式添加。 默认情况下,它不会混淆。
如果有什么不明白的地方,请给我留言哦。