Skip to content

Commit dbc7a78

Browse files
committed
1、添加混淆
1 parent 5eef069 commit dbc7a78

File tree

16 files changed

+703
-202
lines changed

16 files changed

+703
-202
lines changed

.idea/workspace.xml

Lines changed: 296 additions & 186 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ allprojects {
3030
然后把 ZDloader 写上:
3131
[![](https://jitpack.io/v/LillteZheng/AppUpdate.svg)](https://jitpack.io/#LillteZheng/AppUpdate)
3232
```
33-
implementation 'com.github.LillteZheng:AppUpdate:v1.3'
33+
implementation 'com.github.LillteZheng:AppUpdate:v1.4'
3434
```
3535

3636
**由于使用了 retrofit 和rxjava 等框架,所以,还需要在您的工程中添加以下关联,不然报错**
@@ -109,6 +109,12 @@ ZDown.with(MainActivity.this)
109109
110110
```
111111

112+
## 二、混淆
113+
内部已混淆,但如果使用 CheckListener 传入 bean 类,bean类需要自己混淆,eg:
114+
```
115+
-keep class com.zhengsr.appupdate.bean.** { *; }
116+
```
117+
112118
ZDown 为程序入口,它提供以下方法:
113119

114120
- pause() 暂停任务

app/build.gradle

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,16 @@ android {
1313
}
1414
buildTypes {
1515
release {
16-
minifyEnabled false
17-
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
16+
//开启混淆
17+
minifyEnabled true
18+
19+
// 移除无用的resource文件
20+
shrinkResources true
21+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'update-proguard-rules.pro'
1822
}
23+
24+
25+
1926
}
2027

2128
}
@@ -37,5 +44,4 @@ dependencies {
3744
implementation 'com.squareup.retrofit2:converter-scalars:2.4.0'
3845
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
3946
implementation 'com.daimajia.numberprogressbar:library:1.4@aar'
40-
4147
}

app/proguard-rules.pro

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,54 @@
1919
# If you keep the line number information, uncomment this to
2020
# hide the original source file name.
2121
#-renamesourcefileattribute SourceFile
22+
23+
24+
# 保留所有的本地native方法不被混淆
25+
-keepclasseswithmembernames class * {
26+
native <methods>;
27+
}
28+
29+
# 保留了继承自Activity、Application这些类的子类
30+
# 因为这些子类有可能被外部调用
31+
# 比如第一行就保证了所有Activity的子类不要被混淆
32+
-keep public class * extends android.app.Activity
33+
-keep public class * extends android.app.Application
34+
-keep public class * extends android.app.Service
35+
-keep public class * extends android.content.BroadcastReceiver
36+
-keep public class * extends android.content.ContentProvider
37+
-keep public class * extends android.app.backup.BackupAgentHelper
38+
-keep public class * extends android.preference.Preference
39+
-keep public class * extends android.view.View
40+
-keep public class com.android.vending.licensing.ILicensingService
41+
42+
# 如果有引用android-support-v4.jar包,可以添加下面这行
43+
-keep public class com.null.test.ui.fragment.** {*;}
44+
45+
# 保留Activity中的方法参数是view的方法,
46+
# 从而我们在layout里面编写onClick就不会影响
47+
-keepclassmembers class * extends android.app.Activity {
48+
public void * (android.view.View);
49+
}
50+
51+
# 枚举类不能被混淆
52+
-keepclassmembers enum * {
53+
public static **[] values();
54+
public static ** valueOf(java.lang.String);
55+
}
56+
57+
58+
59+
60+
61+
-keepattributes Signature
62+
63+
64+
65+
66+
# Application classes that will be serialized/deserialized over Gson
67+
-keep class com.zhengsr.appupdate.bean.** { *; }
68+
69+
70+
71+
72+

app/release/app-release.apk

1.11 MB
Binary file not shown.

app/release/output.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]

app/src/main/java/com/zhengsr/appupdate/MainActivity.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,12 @@
55
import android.os.Bundle;
66
import android.util.Log;
77
import android.view.View;
8-
import android.widget.Button;
98

10-
import com.daimajia.numberprogressbar.NumberProgressBar;
9+
import com.alibaba.fastjson.JSON;
1110

11+
import com.zhengsr.appupdate.bean.CheckBean;
1212
import com.zhengsr.zdwon_lib.ZDown;
13-
import com.zhengsr.zdwon_lib.bean.ZBean;
1413
import com.zhengsr.zdwon_lib.callback.CheckListener;
15-
import com.zhengsr.zdwon_lib.callback.TaskListener;
16-
import com.zhengsr.zdwon_lib.utils.ZCommontUitls;
1714

1815

1916
public class MainActivity extends AppCompatActivity {
@@ -44,9 +41,30 @@ protected void onCreate(Bundle savedInstanceState) {
4441

4542
public void check(View view) {
4643

44+
ZDown.checkWith(this)
45+
.url("http://app.huake-tek.com/api/v1/channelInfo.co")
46+
.get()
47+
.params("devpkg", "com.hk.hkwelcome")
48+
.listener(new CheckListener<String>() {
49+
@Override
50+
public void onCheck(String data) {
4751

52+
Log.d(TAG, "zsr onCheck: "+data);
4853

49-
ZDown.checkWith(this)
54+
CheckBean parse = JSON.parseObject(data, CheckBean.class);
55+
Log.d(TAG, "zsr onCheck: "+parse);
56+
57+
58+
}
59+
60+
@Override
61+
public void onFail(String errorMsg) {
62+
Log.d(TAG, "zsr onFail: "+errorMsg);
63+
}
64+
}).check();
65+
66+
67+
/* ZDown.checkWith(this)
5068
.url(jsonUrlTest)
5169
.get()
5270
.listener(new CheckListener<TestBean>() {
@@ -110,7 +128,7 @@ public void onFail(String errorMsg) {
110128
public void onFail(String errorMsg) {
111129
Log.d(TAG, "zsr onFail: " + errorMsg);
112130
}
113-
}).check();
131+
}).check();*/
114132
}
115133

116134

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
package com.zhengsr.appupdate.bean;
2+
3+
/**
4+
* @author by zhengshaorui on 2019/9/6
5+
* Describe:
6+
*/
7+
public class CheckBean {
8+
9+
10+
/**
11+
* erroCode : 0
12+
* message : null
13+
* data :
14+
*/
15+
16+
private int erroCode;
17+
private Object message;
18+
private DataBean data;
19+
20+
public int getErroCode() {
21+
return erroCode;
22+
}
23+
24+
public void setErroCode(int erroCode) {
25+
this.erroCode = erroCode;
26+
}
27+
28+
public Object getMessage() {
29+
return message;
30+
}
31+
32+
public void setMessage(Object message) {
33+
this.message = message;
34+
}
35+
36+
public DataBean getData() {
37+
return data;
38+
}
39+
40+
public void setData(DataBean data) {
41+
this.data = data;
42+
}
43+
44+
@Override
45+
public String toString() {
46+
return "CheckBean{" +
47+
"erroCode=" + erroCode +
48+
", message=" + message +
49+
", data=" + data +
50+
'}';
51+
}
52+
53+
public static class DataBean {
54+
/**
55+
* channelid : 10
56+
* channelname : 欢迎词
57+
* remark : 1、增加多人签名功能,效率更高、2、增加多种字体,满足会议需求
58+
* packagename : com.hk.hkwelcome
59+
* classname :
60+
* img :
61+
* apk :
62+
* tag : null
63+
* isdelete : null
64+
* versioncode : 2
65+
* versionname : 1.1.0.9
66+
* uptime : 2020-05-20 15:27:33
67+
* apksize : 42342500
68+
* downtimes : 0
69+
* isforce : 0
70+
*/
71+
72+
private int channelid;
73+
private String channelname;
74+
private String remark;
75+
private String packagename;
76+
private String classname;
77+
private String img;
78+
private String apk;
79+
private Object tag;
80+
private Object isdelete;
81+
private String versioncode;
82+
private String versionname;
83+
private String uptime;
84+
private int apksize;
85+
private int downtimes;
86+
private int isforce;
87+
88+
public int getChannelid() {
89+
return channelid;
90+
}
91+
92+
public void setChannelid(int channelid) {
93+
this.channelid = channelid;
94+
}
95+
96+
public String getChannelname() {
97+
return channelname;
98+
}
99+
100+
public void setChannelname(String channelname) {
101+
this.channelname = channelname;
102+
}
103+
104+
public String getRemark() {
105+
return remark;
106+
}
107+
108+
public void setRemark(String remark) {
109+
this.remark = remark;
110+
}
111+
112+
public String getPackagename() {
113+
return packagename;
114+
}
115+
116+
public void setPackagename(String packagename) {
117+
this.packagename = packagename;
118+
}
119+
120+
public String getClassname() {
121+
return classname;
122+
}
123+
124+
public void setClassname(String classname) {
125+
this.classname = classname;
126+
}
127+
128+
public String getImg() {
129+
return img;
130+
}
131+
132+
public void setImg(String img) {
133+
this.img = img;
134+
}
135+
136+
public String getApk() {
137+
return apk;
138+
}
139+
140+
public void setApk(String apk) {
141+
this.apk = apk;
142+
}
143+
144+
public Object getTag() {
145+
return tag;
146+
}
147+
148+
public void setTag(Object tag) {
149+
this.tag = tag;
150+
}
151+
152+
public Object getIsdelete() {
153+
return isdelete;
154+
}
155+
156+
public void setIsdelete(Object isdelete) {
157+
this.isdelete = isdelete;
158+
}
159+
160+
public String getVersioncode() {
161+
return versioncode;
162+
}
163+
164+
public void setVersioncode(String versioncode) {
165+
this.versioncode = versioncode;
166+
}
167+
168+
public String getVersionname() {
169+
return versionname;
170+
}
171+
172+
public void setVersionname(String versionname) {
173+
this.versionname = versionname;
174+
}
175+
176+
public String getUptime() {
177+
return uptime;
178+
}
179+
180+
public void setUptime(String uptime) {
181+
this.uptime = uptime;
182+
}
183+
184+
public int getApksize() {
185+
return apksize;
186+
}
187+
188+
public void setApksize(int apksize) {
189+
this.apksize = apksize;
190+
}
191+
192+
public int getDowntimes() {
193+
return downtimes;
194+
}
195+
196+
public void setDowntimes(int downtimes) {
197+
this.downtimes = downtimes;
198+
}
199+
200+
public int getIsforce() {
201+
return isforce;
202+
}
203+
204+
public void setIsforce(int isforce) {
205+
this.isforce = isforce;
206+
}
207+
208+
@Override
209+
public String toString() {
210+
return "DataBean{" +
211+
"channelid=" + channelid +
212+
", channelname='" + channelname + '\'' +
213+
", remark='" + remark + '\'' +
214+
", packagename='" + packagename + '\'' +
215+
", classname='" + classname + '\'' +
216+
", img='" + img + '\'' +
217+
", apk='" + apk + '\'' +
218+
", tag=" + tag +
219+
", isdelete=" + isdelete +
220+
", versioncode='" + versioncode + '\'' +
221+
", versionname='" + versionname + '\'' +
222+
", uptime='" + uptime + '\'' +
223+
", apksize=" + apksize +
224+
", downtimes=" + downtimes +
225+
", isforce=" + isforce +
226+
'}';
227+
}
228+
}
229+
}

0 commit comments

Comments
 (0)