Skip to content

Commit 436af49

Browse files
committed
新增文本输入、地区选择、日期选择对话框,新增忘记密码、重置密码、设置界面模板、新增ios风格的切换按钮和设置条目栏自定义控件,新增Glide图片加载隔离模块,对混淆规则进行解耦
1 parent f2a0142 commit 436af49

File tree

178 files changed

+10477
-1596
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+10477
-1596
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
*.iml
2+
*/build
23
.gradle
34
/local.properties
45
/.idea/workspace.xml

AndroidProject.apk

332 KB
Binary file not shown.

README.md

+45-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,40 @@
2626

2727
![](picture/8.png)
2828

29+
![](picture/9.png)
30+
31+
![](picture/10.png)
32+
33+
![](picture/11.png)
34+
35+
![](picture/12.png)
36+
37+
![](picture/13.png)
38+
39+
![](picture/14.png)
40+
41+
![](picture/15.png)
42+
43+
![](picture/16.png)
44+
45+
![](picture/17.png)
46+
47+
![](picture/18.png)
48+
49+
![](picture/19.png)
50+
51+
![](picture/20.png)
52+
53+
![](picture/21.png)
54+
55+
![](picture/22.png)
56+
57+
![](picture/23.png)
58+
59+
![](picture/24.png)
60+
61+
![](picture/25.png)
62+
2963
#### 集成框架
3064

3165
* 权限请求框架:[https://github.com/getActivity/XXPermissions](https://github.com/getActivity/XXPermissions)
@@ -72,18 +106,26 @@
72106

73107
* 修正 Android 9.0 限制 Http 明文请求的问题
74108

109+
#### 作者的其他开源项目
110+
111+
* 权限框架:[XXPermissions](https://github.com/getActivity/XXPermissions)
112+
113+
* 吐司框架:[ToastUtils](https://github.com/getActivity/ToastUtils)
114+
115+
* 悬浮窗框架:[XToast](https://github.com/getActivity/XToast)
116+
117+
* 标题栏框架:[TitleBar](https://github.com/getActivity/TitleBar)
118+
75119
#### Android技术讨论Q群:78797078
76120

77121
#### 如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:
78122

79123
![](picture/pay_ali.png) ![](picture/pay_wechat.png)
80124

81-
![](picture/pay_bonus.png)
82-
83125
## License
84126

85127
```text
86-
Copyright 2018 Huang Jinqun
128+
Copyright 2018 Huang JinQun
87129
88130
Licensed under the Apache License, Version 2.0 (the "License");
89131
you may not use this file except in compliance with the License.

app/.gitignore

-1
This file was deleted.

app/build.gradle

+15-7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ android {
44
compileSdkVersion rootProject.ext.compileSdkVersion
55
buildToolsVersion rootProject.ext.buildToolsVersion
66
defaultConfig {
7+
// 无痛修改包名:https://www.jianshu.com/p/17327e191d2e
78
applicationId "com.hjq.demo"
89
minSdkVersion 14
910
targetSdkVersion rootProject.ext.targetSdkVersion
@@ -87,19 +88,21 @@ dependencies {
8788
implementation project(':base')
8889
// 自定义 View
8990
implementation project(':widget')
91+
// 图片加载封装
92+
implementation project(':image')
9093
// 友盟
9194
implementation project(':umeng')
9295
// Dialog
9396
implementation project(':dialog')
9497

9598
// 示例:添加一个 aar 包
96-
// implementation(name: 'password_dialog', ext: 'aar')
99+
// implementation(name: 'library', ext: 'aar')
97100

98101
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion"
99102
implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion"
100103
implementation "com.android.support:support-v4:$rootProject.ext.supportLibraryVersion"
101104
implementation "com.android.support:cardview-v7:$rootProject.ext.supportLibraryVersion"
102-
implementation "com.android.support.constraint:constraint-layout:$rootProject.ext.constraintlayoutVersion"
105+
implementation "com.android.support.constraint:constraint-layout:$rootProject.ext.constraintLayoutVersion"
103106

104107
// Dex分包,解决 65k 问题
105108
implementation 'com.android.support:multidex:1.0.3'
@@ -109,26 +112,31 @@ dependencies {
109112
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
110113

111114
// 状态栏沉浸:https://github.com/gyf-dev/ImmersionBar
112-
implementation 'com.gyf.immersionbar:immersionbar:2.3.3-beta09'
115+
implementation 'com.gyf.immersionbar:immersionbar:2.3.3'
113116
// 侧滑功能:https://github.com/bingoogolapple/BGASwipeBackLayout-Android
114117
implementation 'cn.bingoogolapple:bga-swipebacklayout:1.2.0'
115118

116119
// 权限请求框架:https://github.com/getActivity/XXPermissions
117-
implementation 'com.hjq:xxpermissions:5.2'
120+
implementation 'com.hjq:xxpermissions:latest.integration'
118121
// 标题栏:https://github.com/getActivity/TitleBar
119-
implementation 'com.hjq:titlebar:5.0'
122+
implementation 'com.hjq:titlebar:latest.integration'
120123
// 吐司工具类:https://github.com/getActivity/ToastUtils
121-
implementation 'com.hjq:toast:5.2'
124+
implementation 'com.hjq:toast:latest.integration'
122125

123126
// 圆形的ImageView:https://github.com/hdodenhof/CircleImageView
124127
implementation 'de.hdodenhof:circleimageview:2.2.0'
125128

129+
// 悬浮窗:https://github.com/getActivity/XToast
130+
// 网络请求:https://github.com/zhou-you/RxEasyHttp
131+
// RxJava: https://github.com/ReactiveX/RxAndroid
126132
// RecyclerView:https://github.com/CymChad/BaseRecyclerViewAdapterHelper
127-
// 工具类集合:https://github.com/Blankj/AndroidUtilCode
133+
// 工具类:https://github.com/Blankj/AndroidUtilCode
128134
// 图片选择:https://github.com/zhihu/Matisse
129135
// 上拉下拉:https://github.com/bingoogolapple/BGARefreshLayout-Android
130136
// 轮播图:https://github.com/bingoogolapple/BGABanner-Android
131137
// 二维码:https://github.com/bingoogolapple/BGAQRCode-Android
138+
// 第三方支付:https://github.com/getActivity/RxPay
139+
// Log 打印:https://github.com/JakeWharton/timber
132140
}
133141

134142
repositories {

app/proguard-rules.pro

+9-172
Original file line numberDiff line numberDiff line change
@@ -1,174 +1,24 @@
1-
#指定代码的压缩级别
2-
-optimizationpasses 5
3-
4-
#包明不混合大小写
5-
-dontusemixedcaseclassnames
6-
7-
#不去忽略非公共的库类
8-
-dontskipnonpubliclibraryclasses
9-
10-
#优化 不优化输入的类文件
11-
-dontoptimize
12-
13-
#预校验
14-
-dontpreverify
15-
16-
#混淆时是否记录日志
17-
-verbose
18-
19-
# 混淆时所采用的算法
20-
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
21-
22-
#保护注解
23-
-keepattributes *Annotation*
24-
25-
# 保持哪些类不被混淆
26-
-keep public class * extends android.app.Fragment
27-
-keep public class * extends android.app.Activity
28-
-keep public class * extends android.app.Application
29-
-keep public class * extends android.app.Service
30-
-keep public class * extends android.content.BroadcastReceiver
31-
-keep public class * extends android.content.ContentProvider
32-
-keep public class * extends android.app.backup.BackupAgentHelper
33-
-keep public class * extends android.preference.Preference
34-
-keep public class com.android.vending.licensing.ILicensingService
35-
#如果有引用v4包可以添加下面这行
36-
-keep public class * extends android.support.v4.app.Fragment
37-
38-
39-
#忽略警告
40-
-ignorewarning
41-
42-
#####################记录生成的日志数据,gradle build时在本项目根目录输出################
43-
44-
#apk 包内所有 class 的内部结构
45-
-dump class_files.txt
46-
#未混淆的类和成员
47-
-printseeds seeds.txt
48-
#列出从 apk 中删除的代码
49-
-printusage unused.txt
50-
#混淆前后的映射
51-
-printmapping mapping.txt
52-
53-
#####################记录生成的日志数据,gradle build时 在本项目根目录输出-end################
54-
55-
56-
################混淆保护自己项目的部分代码以及引用的第三方jar包library#########################
1+
# 混淆保护自己项目的部分代码以及引用的第三方jar包
572
#-libraryjars libs/umeng-analytics-v5.2.4.jar
58-
#-libraryjars libs/alipaysdk.jar
59-
#-libraryjars libs/alipaysecsdk.jar
60-
#-libraryjars libs/alipayutdid.jar
61-
#-libraryjars libs/wup-1.0.0-SNAPSHOT.jar
62-
#-libraryjars libs/weibosdkcore.jar
633

4+
# 标题栏框架
5+
-keep class com.hjq.bar.** {*;}
646

65-
#三星应用市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar
66-
#-libraryjars libs/sdk-v1.0.0.jar
67-
#-libraryjars libs/look-v1.0.1.jar
7+
# 吐司框架
8+
-keep class com.hjq.toast.** {*;}
689

69-
#我是以libaray的形式引用了一个图片加载框架,如果不想混淆 keep 掉
70-
-keep class com.nostra13.universalimageloader.** { *; }
10+
# 权限请求框架
11+
-keep class com.hjq.permissions.** {*;}
7112

72-
#友盟
13+
# 友盟
7314
-keep class com.umeng.**{*;}
7415

75-
#支付宝
16+
# 支付宝
7617
-keep class com.alipay.android.app.IAliPay{*;}
7718
-keep class com.alipay.android.app.IAlixPay{*;}
7819
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
7920
-keep class com.alipay.android.app.lib.ResourceMap{*;}
8021

81-
82-
#信鸽推送
83-
-keep class com.tencent.android.tpush.** {* ;}
84-
-keep class com.tencent.mid.** {* ;}
85-
86-
87-
#自己项目特殊处理代码
88-
89-
#忽略警告
90-
-dontwarn com.veidy.mobile.common.**
91-
#保留一个完整的包
92-
-keep class com.veidy.mobile.common.** {
93-
*;
94-
}
95-
96-
-keep class com.veidy.activity.login.WebLoginActivity{*;}
97-
-keep class com.veidy.activity.UserInfoFragment{*;}
98-
-keep class com.veidy.activity.HomeFragmentActivity{*;}
99-
-keep class com.veidy.activity.CityActivity{*;}
100-
-keep class com.veidy.activity.ClinikActivity{*;}
101-
102-
#如果引用了v4或者v7包
103-
-dontwarn android.support.**
104-
105-
############混淆保护自己项目的部分代码以及引用的第三方jar包library-end##################
106-
107-
-keep public class * extends android.view.View {
108-
public <init>(android.content.Context);
109-
public <init>(android.content.Context, android.util.AttributeSet);
110-
public <init>(android.content.Context, android.util.AttributeSet, int);
111-
public void set*(...);
112-
}
113-
114-
#保持 native 方法不被混淆
115-
-keepclasseswithmembernames class * {
116-
native <methods>;
117-
}
118-
119-
#保持自定义控件类不被混淆
120-
-keepclasseswithmembers class * {
121-
public <init>(android.content.Context, android.util.AttributeSet);
122-
}
123-
124-
#保持自定义控件类不被混淆
125-
-keepclasseswithmembers class * {
126-
public <init>(android.content.Context, android.util.AttributeSet, int);
127-
}
128-
#保持自定义控件类不被混淆
129-
-keepclassmembers class * extends android.app.Activity {
130-
public void *(android.view.View);
131-
}
132-
133-
#保持 Parcelable 不被混淆
134-
-keep class * implements android.os.Parcelable {
135-
public static final android.os.Parcelable$Creator *;
136-
}
137-
138-
#保持 Serializable 不被混淆
139-
-keepnames class * implements java.io.Serializable
140-
141-
#保持 Serializable 不被混淆并且enum 类也不被混淆
142-
-keepclassmembers class * implements java.io.Serializable {
143-
static final long serialVersionUID;
144-
private static final java.io.ObjectStreamField[] serialPersistentFields;
145-
!static !transient <fields>;
146-
!private <fields>;
147-
!private <methods>;
148-
private void writeObject(java.io.ObjectOutputStream);
149-
private void readObject(java.io.ObjectInputStream);
150-
java.lang.Object writeReplace();
151-
java.lang.Object readResolve();
152-
}
153-
154-
#保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可
155-
#-keepclassmembers enum * {
156-
# public static **[] values();
157-
# public static ** valueOf(java.lang.String);
158-
#}
159-
160-
-keepclassmembers class * {
161-
public void *ButtonClicked(android.view.View);
162-
}
163-
164-
#不混淆资源类
165-
-keepclassmembers class **.R$* {
166-
public static <fields>;
167-
}
168-
169-
#避免混淆泛型 如果混淆报错建议关掉
170-
#–keepattributes Signature
171-
17222
#移除log 测试了下没有用还是建议自己定义一个开关控制是否输出日志
17323
#-assumenosideeffects class android.util.Log {
17424
# public static boolean isLoggable(java.lang.String, int);
@@ -206,19 +56,6 @@
20656
-dontwarn cn.jiguang.**
20757
-keep class cn.jiguang.** { *; }
20858

209-
# support-v7-appcompat
210-
-keep public class android.support.v7.widget.** { *; }
211-
-keep public class android.support.v7.internal.widget.** { *; }
212-
-keep public class android.support.v7.internal.view.menu.** { *; }
213-
-keep public class * extends android.support.v4.view.ActionProvider {
214-
public <init>(android.content.Context);
215-
}
216-
# support-design
217-
-dontwarn android.support.design.**
218-
-keep class android.support.design.** { *; }
219-
-keep interface android.support.design.** { *; }
220-
-keep public class android.support.design.R$* { *; }
221-
22259
########################################################
22360

22461
# 友盟统计

0 commit comments

Comments
 (0)