Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
6382336
1、用CompositeDisposable来防止内存泄露 2、实现了rxjava+retrof+mvp
Jun 15, 2018
2b0755d
添加加载数据时,圆形进度条Dialog
Jun 17, 2018
4c9695e
Okhttp添加了一些interceptor
Jun 17, 2018
3aa6324
基本实现了todomvp
Jun 18, 2018
b43b972
修改glide 4.6.1的图片缓存路径
Jun 28, 2018
5d4076a
glide增加内存缓存大小设置
Jun 28, 2018
6646336
添加了几个iterceptor
Jul 1, 2018
21afc3a
实现了CacheInterceptor来缓存网络数据
Jul 3, 2018
ad346cd
1、完善proguard-rules.pro 2、添加glide加载图片fade动画
Jul 5, 2018
6ae7c82
删掉retrofitdemo模块
Jul 5, 2018
482627f
把一些包名重命名
Jul 5, 2018
70284d9
1、把第三方框架放到thirdframe包中 2、捕获缓存无效时504
Jul 5, 2018
2a847b8
1、把第三方框架放到thirdframe包中 2、捕获缓存无效时504
Jul 5, 2018
a492d07
去掉BaseMvpFragment中无用的V范型
Jul 10, 2018
10a52b8
添加LeakCanary和BlockCanary
Jul 11, 2018
9a56a7b
Merge branch 'todomvp+retrofit+rxjava' of https://github.com/gaoleian…
Jul 11, 2018
34d27a5
删除无用代码
Jul 11, 2018
f8bec69
添加参数加密Interceptor
Jul 20, 2018
4030c23
增加了捕获所有异常保存到sd卡
Jul 21, 2018
7e3151f
去掉制造的异常
Jul 21, 2018
fedd3c4
添加cookie
Jul 28, 2018
3668aab
申请权限抽出来一个类
Aug 19, 2018
417cd40
重新封装PermissionUtil,功能单一原则
Aug 22, 2018
4736083
想要把公用类抽抽出来做一个basemodule,现在还有问题
Aug 22, 2018
638c020
1、优化CrashHandler 2、修改缓存路径
Aug 22, 2018
ef744f0
抽出来的basemodule,编译有问题,改了一部分
Aug 23, 2018
e44b22d
1、抽出来basemodule后可以运行,但还需优化
Aug 23, 2018
8b3f9d4
1、修改crash后重启 2、修改glide、net缓存路径
Aug 23, 2018
161c65b
1、实现basemodule
Aug 25, 2018
b4390ad
添加友盟统计
Aug 29, 2018
3e6e431
签名打包,开启混淆,有问题
Aug 29, 2018
a984994
修改输出包名
Aug 29, 2018
fcf7c8b
依然不能打混淆包
Aug 30, 2018
9a4ac01
打混淆包,编译通过
Aug 30, 2018
1d83837
1、去掉崩溃后app重启2、修改混淆打包报NullPointerException3、优化一些Utils
Aug 31, 2018
f135527
主页底部tab改为TabLayout
Sep 5, 2018
f69b667
实现了TabLayout+ViewPager框架
Sep 5, 2018
e66beda
替换tab的icon
Sep 5, 2018
a3b96f4
1、实现了获取文章列表2、改变app的主色为绿色
Sep 5, 2018
0d40071
调整一些UI
Sep 6, 2018
7671dfe
实现了首页和项目的下拉刷新
Sep 6, 2018
521e465
1、更换splash图片 2、添加点击顶部列表回到顶部
Sep 6, 2018
ba58493
1、permission抽出一个dandudeActivity类2、去掉数据加载dialog 3、换图标和应用名
Sep 7, 2018
ca26a78
完成多模块开发
Sep 9, 2018
c6e7a19
1、添加崩溃跳转界面
Oct 6, 2018
d697761
1、修改崩溃后显示的界面
Oct 19, 2018
e0869d7
1
Oct 19, 2018
46f6a8b
1、调整TitleView
Oct 19, 2018
1f880ba
修改一些细节
Nov 18, 2018
a3353bf
整理代码
Jan 1, 2019
65794a3
完善一些代码
Jan 2, 2019
3f1f00a
Update README.md
Jan 3, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file modified MVPModel/.idea/caches/build_file_checksums.ser
Binary file not shown.
1 change: 1 addition & 0 deletions MVPModel/.idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

98 changes: 5 additions & 93 deletions MVPModel/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions MVPModel/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 13 additions & 1 deletion MVPModel/app/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
/build
.gradle/
.DS_Store
local.properties

# build files
build/
bin/
gen/
output/

# android studio
*.iml
.idea
221 changes: 197 additions & 24 deletions MVPModel/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,40 +1,213 @@
apply plugin: 'com.android.application'

ext.getCNName = {
java.util.HashMap<String, String> map = new HashMap<>();
map.put("xiaomi", "xiaomi-小米.apk");
map.put("Baidu", "Baidu-百度.apk");
map.put("Tencent", "Tencent-腾讯应用宝.apk");
map.put("Wandoujia", "Wandoujia-豌豆荚.apk");
map.put("huawei", "huawei-华为.apk");
map.put("Qihoo", "Qihoo-360手机助手.apk");
map.put("meizu", "meizu-魅族.apk");
map.put("oppo", "oppo-oppo手机.apk");
map.put("lenovo", "lenovo-联想手机.apk");
map.put("ppzhushou", "ppzhushou-pp助手.apk");
map.put("letv", "letv-乐视手机.apk");
map.put("vivo", "vivo-vivo手机.apk");

// map.put("XuetangX", "XuetangX-学堂主站.apk");
// map.put("qingning", "qingning-青柠.apk");
// map.put("duomeng", "duomeng-多盟.apk");
// map.put("offline_event", "offline_event-线下活动.apk");
// map.put("xueba", "xueba-学霸推广.apk");
// map.put("yingyonghui", "yingyonghui-应用汇.apk");
// map.put("sougou", "sougou-搜狗.apk");
// map.put("jlyyh", "jlyyh-金立.apk");
// map.put("Anzhi", "Anzhi-安智.apk");
// map.put("taobao", "taobao-淘宝.apk");
// map.put("TencentTg", "Tencent-yyytg-应用宝推广.apk");
// map.put("BaiduTg", "Baidu-bdtg-百度推广.apk");
// map.put("google", "google-谷歌Play.apk");

return map;
}

android {
compileSdkVersion 26
signingConfigs {
release {
keyAlias 'mvpmodel'
keyPassword 'android1201'
storeFile file('mvpmodel.jks')
storePassword 'android1201'
}
}
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
applicationId "com.gaolei.mvpmodel"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}
buildTypes {
debug {
minifyEnabled false //是否启用Proguard
shrinkResources false //是否清理无用资源,依赖于minifyEnabled
zipAlignEnabled false //是否启用zipAlign压缩
signingConfig signingConfigs.release
}
//执行lint检查,有任何的错误或者警告提示,都会终止构建
// lintOptions {
// abortOnError false
// }
release {
minifyEnabled false
minifyEnabled true //是否启用Proguard
shrinkResources true //是否清理无用资源,依赖于minifyEnabled
zipAlignEnabled true //是否启用zipAlign压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
//def date = new Date().format('yy-MM-dd-HH');
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为XuetangXRelease-3.1.0(3100)_Baidu-百度.apk
def channel = variant.productFlavors[0].name
def releaseFileName = "build/outputs/MVPModel-${variant.buildType.name}-V${variant.versionName}(${variant.versionCode})_${getCNName().get(channel)}"
outputFileName = releaseFileName
}
}
}
}

}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation "com.android.support:design:26+"

implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.squareup.okhttp3:okhttp:3.10.0'
compile 'com.squareup.retrofit2:retrofit:2.4.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
implementation 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
compile 'com.youth.banner:banner:1.4.10'
flavorDimensions("dimension1")
productFlavors {
xiaomi {
dimension "dimension1"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi", SPAM_VALUE: "xiaomi"];
}

Baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Baidu", SPAM_VALUE: "Baidu"];
dimension "dimension1"
}
Tencent {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Tencent", SPAM_VALUE: "Tencent"];
dimension "dimension1"
}

Wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Wandoujia", SPAM_VALUE: "Wandoujia"];
dimension "dimension1"
}
huawei {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei", SPAM_VALUE: "huawei"];
dimension "dimension1"
}
Qihoo {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Qihoo", SPAM_VALUE: "Qihoo"];
dimension "dimension1"
}
meizu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "meizhu", SPAM_VALUE: "meizhu"];
dimension "dimension1"
}

oppo {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "oppo", SPAM_VALUE: "oppo"];
dimension "dimension1"
}
lenovo {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "lenovo", SPAM_VALUE: "lenovo"];
dimension "dimension1"
}

ppzhushou {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "ppzhushou", SPAM_VALUE: "ppzhushou"];
dimension "dimension1"
}

letv {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "letv", SPAM_VALUE: "letv"];
dimension "dimension1"
}

vivo {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "vivo", SPAM_VALUE: "vivo"];
dimension "dimension1"
}



// qingning {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qingning", SPAM_VALUE: "qingning"];
// dimension "dimension1"
// }
// duomeng {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "duomeng", SPAM_VALUE: "duomeng"];
// //duomeng-duomeng被市场当做推广来用了。
// dimension "dimension1"
// }
//
// offline_event {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "offline_event", SPAM_VALUE: "offline_event"];
// dimension "dimension1"
// }
// xueba {
// dimension "dimension1"
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xueba", SPAM_VALUE: "xueba"];
// }
// Anzhi {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Anzhi", SPAM_VALUE: "Anzhi"];
// dimension "dimension1"
// }
// yingyonghui {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyonghui", SPAM_VALUE: "yingyonghui"];
// dimension "dimension1"
// }
// sougou {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "sougou", SPAM_VALUE: "sougou"];
// dimension "dimension1"
// }
// jlyyh {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "jlyyh", SPAM_VALUE: "jlyyh"];
// dimension "dimension1"
// }
// taobao {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "taobao", SPAM_VALUE: "taobao"];
// dimension "dimension1"
// }
// XuetangX {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "XuetangX", SPAM_VALUE: "XuetangX"];
// dimension "dimension1"
// }
// TencentTg {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Tencent", SPAM_VALUE: "yyytg"];
// dimension "dimension1"
// }
// BaiduTg {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Baidu", SPAM_VALUE: "bdtg"];
// dimension "dimension1"
// }
// google {
// manifestPlaceholders = [UMENG_CHANNEL_VALUE: "google", SPAM_VALUE: "google"];
// dimension "dimension1"
// }

}
}

dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
// api rootProject.ext.dependencies.appcompatV7
// api rootProject.ext.dependencies.design
// testImplementation 'junit:junit:4.12'
// implementation 'com.android.support.constraint:constraint-layout:1.1.0'
annotationProcessor rootProject.ext.dependencies["butterknife-compiler"]
api project(':basemodule')
}
Binary file added MVPModel/app/mvpmodel.jks
Binary file not shown.
Loading