Skip to content

Commit

Permalink
1、添加混淆
Browse files Browse the repository at this point in the history
  • Loading branch information
Zzhengsr committed May 29, 2020
1 parent 5eef069 commit dbc7a78
Show file tree
Hide file tree
Showing 16 changed files with 703 additions and 202 deletions.
482 changes: 296 additions & 186 deletions .idea/workspace.xml

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ allprojects {
然后把 ZDloader 写上:
[![](https://jitpack.io/v/LillteZheng/AppUpdate.svg)](https://jitpack.io/#LillteZheng/AppUpdate)
```
implementation 'com.github.LillteZheng:AppUpdate:v1.3'
implementation 'com.github.LillteZheng:AppUpdate:v1.4'
```

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

## 二、混淆
内部已混淆,但如果使用 CheckListener 传入 bean 类,bean类需要自己混淆,eg:
```
-keep class com.zhengsr.appupdate.bean.** { *; }
```

ZDown 为程序入口,它提供以下方法:

- pause() 暂停任务
Expand Down
12 changes: 9 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,16 @@ android {
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
//开启混淆
minifyEnabled true

// 移除无用的resource文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'update-proguard-rules.pro'
}



}

}
Expand All @@ -37,5 +44,4 @@ dependencies {
implementation 'com.squareup.retrofit2:converter-scalars:2.4.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation 'com.daimajia.numberprogressbar:library:1.4@aar'

}
51 changes: 51 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,54 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile


# 保留所有的本地native方法不被混淆
-keepclasseswithmembernames class * {
native <methods>;
}

# 保留了继承自Activity、Application这些类的子类
# 因为这些子类有可能被外部调用
# 比如第一行就保证了所有Activity的子类不要被混淆
-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 * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
-keep public class com.android.vending.licensing.ILicensingService

# 如果有引用android-support-v4.jar包,可以添加下面这行
-keep public class com.null.test.ui.fragment.** {*;}

# 保留Activity中的方法参数是view的方法,
# 从而我们在layout里面编写onClick就不会影响
-keepclassmembers class * extends android.app.Activity {
public void * (android.view.View);
}

# 枚举类不能被混淆
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}





-keepattributes Signature




# Application classes that will be serialized/deserialized over Gson
-keep class com.zhengsr.appupdate.bean.** { *; }





Binary file added app/release/app-release.apk
Binary file not shown.
1 change: 1 addition & 0 deletions app/release/output.json
Original file line number Diff line number Diff line change
@@ -0,0 +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":{}}]
32 changes: 25 additions & 7 deletions app/src/main/java/com/zhengsr/appupdate/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,12 @@
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import com.daimajia.numberprogressbar.NumberProgressBar;
import com.alibaba.fastjson.JSON;

import com.zhengsr.appupdate.bean.CheckBean;
import com.zhengsr.zdwon_lib.ZDown;
import com.zhengsr.zdwon_lib.bean.ZBean;
import com.zhengsr.zdwon_lib.callback.CheckListener;
import com.zhengsr.zdwon_lib.callback.TaskListener;
import com.zhengsr.zdwon_lib.utils.ZCommontUitls;


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

public void check(View view) {

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

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

ZDown.checkWith(this)
CheckBean parse = JSON.parseObject(data, CheckBean.class);
Log.d(TAG, "zsr onCheck: "+parse);


}

@Override
public void onFail(String errorMsg) {
Log.d(TAG, "zsr onFail: "+errorMsg);
}
}).check();


/* ZDown.checkWith(this)
.url(jsonUrlTest)
.get()
.listener(new CheckListener<TestBean>() {
Expand Down Expand Up @@ -110,7 +128,7 @@ public void onFail(String errorMsg) {
public void onFail(String errorMsg) {
Log.d(TAG, "zsr onFail: " + errorMsg);
}
}).check();
}).check();*/
}


Expand Down
229 changes: 229 additions & 0 deletions app/src/main/java/com/zhengsr/appupdate/bean/CheckBean.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
package com.zhengsr.appupdate.bean;

/**
* @author by zhengshaorui on 2019/9/6
* Describe:
*/
public class CheckBean {


/**
* erroCode : 0
* message : null
* data :
*/

private int erroCode;
private Object message;
private DataBean data;

public int getErroCode() {
return erroCode;
}

public void setErroCode(int erroCode) {
this.erroCode = erroCode;
}

public Object getMessage() {
return message;
}

public void setMessage(Object message) {
this.message = message;
}

public DataBean getData() {
return data;
}

public void setData(DataBean data) {
this.data = data;
}

@Override
public String toString() {
return "CheckBean{" +
"erroCode=" + erroCode +
", message=" + message +
", data=" + data +
'}';
}

public static class DataBean {
/**
* channelid : 10
* channelname : 欢迎词
* remark : 1、增加多人签名功能,效率更高、2、增加多种字体,满足会议需求
* packagename : com.hk.hkwelcome
* classname :
* img :
* apk :
* tag : null
* isdelete : null
* versioncode : 2
* versionname : 1.1.0.9
* uptime : 2020-05-20 15:27:33
* apksize : 42342500
* downtimes : 0
* isforce : 0
*/

private int channelid;
private String channelname;
private String remark;
private String packagename;
private String classname;
private String img;
private String apk;
private Object tag;
private Object isdelete;
private String versioncode;
private String versionname;
private String uptime;
private int apksize;
private int downtimes;
private int isforce;

public int getChannelid() {
return channelid;
}

public void setChannelid(int channelid) {
this.channelid = channelid;
}

public String getChannelname() {
return channelname;
}

public void setChannelname(String channelname) {
this.channelname = channelname;
}

public String getRemark() {
return remark;
}

public void setRemark(String remark) {
this.remark = remark;
}

public String getPackagename() {
return packagename;
}

public void setPackagename(String packagename) {
this.packagename = packagename;
}

public String getClassname() {
return classname;
}

public void setClassname(String classname) {
this.classname = classname;
}

public String getImg() {
return img;
}

public void setImg(String img) {
this.img = img;
}

public String getApk() {
return apk;
}

public void setApk(String apk) {
this.apk = apk;
}

public Object getTag() {
return tag;
}

public void setTag(Object tag) {
this.tag = tag;
}

public Object getIsdelete() {
return isdelete;
}

public void setIsdelete(Object isdelete) {
this.isdelete = isdelete;
}

public String getVersioncode() {
return versioncode;
}

public void setVersioncode(String versioncode) {
this.versioncode = versioncode;
}

public String getVersionname() {
return versionname;
}

public void setVersionname(String versionname) {
this.versionname = versionname;
}

public String getUptime() {
return uptime;
}

public void setUptime(String uptime) {
this.uptime = uptime;
}

public int getApksize() {
return apksize;
}

public void setApksize(int apksize) {
this.apksize = apksize;
}

public int getDowntimes() {
return downtimes;
}

public void setDowntimes(int downtimes) {
this.downtimes = downtimes;
}

public int getIsforce() {
return isforce;
}

public void setIsforce(int isforce) {
this.isforce = isforce;
}

@Override
public String toString() {
return "DataBean{" +
"channelid=" + channelid +
", channelname='" + channelname + '\'' +
", remark='" + remark + '\'' +
", packagename='" + packagename + '\'' +
", classname='" + classname + '\'' +
", img='" + img + '\'' +
", apk='" + apk + '\'' +
", tag=" + tag +
", isdelete=" + isdelete +
", versioncode='" + versioncode + '\'' +
", versionname='" + versionname + '\'' +
", uptime='" + uptime + '\'' +
", apksize=" + apksize +
", downtimes=" + downtimes +
", isforce=" + isforce +
'}';
}
}
}
Loading

0 comments on commit dbc7a78

Please sign in to comment.