Skip to content

Commit 7e403d3

Browse files
committed
1:适配Android Studio 3.0;
1 parent c4870b6 commit 7e403d3

File tree

15 files changed

+173
-88
lines changed

15 files changed

+173
-88
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,17 @@
1414
Android项目组件化示例代码
1515

1616
**Android组件化方案**http://blog.csdn.net/guiying712/article/details/55213884
17+
1718
**Android组件化之终极方案**http://blog.csdn.net/guiying712/article/details/78057120
1819

1920
1. 现在的 AndroidModulePattern 使用 阿里ARouter作为路由;
21+
2022
2. Android组件化方案已经支持 **Fragment组件化**,使用方法请下载Demo查看;
23+
2124
3. 目前Android组件化方案还没有写完,后续会**继续更新**,完善组件化方案。
2225

26+
4. 本项目已适配Android Studio 3.0.1版本(Google仓库会带来一定影响)
27+
2328

2429
## 集成开发模式和组件开发模式转换
2530

build.gradle

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4+
apply from: '/versions.gradle'
5+
46
repositories {
7+
google()
58
jcenter()
6-
mavenCentral()
79
}
8-
910
dependencies {
1011
//classpath "com.android.tools.build:gradle:$localGradlePluginVersion"
1112
//$localGradlePluginVersion是gradle.properties中的数据
@@ -15,10 +16,9 @@ buildscript {
1516

1617
allprojects {
1718
repositories {
19+
google()
1820
jcenter()
19-
mavenCentral()
20-
//Add the JitPack repository
21-
maven { url "https://jitpack.io" }
21+
maven { url 'https://jitpack.io' }
2222
//支持arr包
2323
flatDir {
2424
dirs 'libs'
@@ -30,32 +30,3 @@ task clean(type: Delete) {
3030
delete rootProject.buildDir
3131
}
3232

33-
// Define versions in a single place
34-
//时间:2017.2.13;每次修改版本号都要添加修改时间
35-
ext {
36-
// Sdk and tools
37-
//localBuildToolsVersion是gradle.properties中的数据
38-
buildToolsVersion = localBuildToolsVersion
39-
compileSdkVersion = 25
40-
minSdkVersion = 16
41-
targetSdkVersion = 25
42-
versionCode = 1
43-
versionName = "1.0"
44-
javaVersion = JavaVersion.VERSION_1_8
45-
46-
// App dependencies version
47-
supportLibraryVersion = "25.3.1"
48-
retrofitVersion = "2.1.0"
49-
glideVersion = "3.7.0"
50-
loggerVersion = "1.15"
51-
eventbusVersion = "3.0.0"
52-
gsonVersion = "2.8.0"
53-
photoViewVersion = "2.0.0"
54-
55-
//检查时间:2017.6.6
56-
annotationProcessor = "1.0.3"
57-
routerVersion = "1.2.1.1"
58-
easyRecyclerVersion = "4.4.0"
59-
cookieVersion = "v1.0.1"
60-
toastyVersion = "1.1.3"
61-
}

gradle.properties

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ org.gradle.jvmargs=-Xmx2048m
1818
org.gradle.daemon=true
1919
org.gradle.configureondemand=true
2020
org.gradle.parallel=true
21-
# 为自动化出包配置(因为每个开发的电脑坏境不一致)
22-
localBuildToolsVersion=25.0.3
2321
# 这个值一般跟你的AndroidStudio版本号一致
24-
localGradlePluginVersion=2.3.3
22+
localGradlePluginVersion=3.0.1
2523

2624
# 每次更改“isModule”的值后,需要点击 "Sync Project" 按钮
2725
# isModule是“集成开发模式”和“组件开发模式”的切换开关

keystore.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
storePassword=guiying712
2+
keyPassword=guiying712
3+
keyAlias=guiying712
4+
storeFile=/mykey.jks

lib_common/build.gradle

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ apply plugin: 'com.android.library'
22

33
android {
44
compileSdkVersion rootProject.ext.compileSdkVersion
5-
buildToolsVersion rootProject.ext.buildToolsVersion
6-
75
defaultConfig {
86
minSdkVersion rootProject.ext.minSdkVersion
97
targetSdkVersion rootProject.ext.targetSdkVersion
@@ -13,25 +11,26 @@ android {
1311
}
1412

1513
dependencies {
16-
compile fileTree(dir: 'libs', include: ['*.jar'])
14+
api fileTree(dir: 'libs', include: ['*.jar'])
1715
//Android Support
18-
compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
19-
compile "com.android.support:design:$rootProject.supportLibraryVersion"
20-
compile "com.android.support:percent:$rootProject.supportLibraryVersion"
16+
api "com.android.support:support-v4:$rootProject.supportLibraryVersion"
17+
api "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
18+
api "com.android.support:design:$rootProject.supportLibraryVersion"
19+
api "com.android.support:percent:$rootProject.supportLibraryVersion"
2120
//网络请求相关
22-
compile "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion"
23-
compile "com.squareup.retrofit2:retrofit-mock:$rootProject.retrofitVersion"
24-
compile "com.github.franmontiel:PersistentCookieJar:$rootProject.cookieVersion"
21+
api "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion"
22+
api "com.squareup.retrofit2:retrofit-mock:$rootProject.retrofitVersion"
23+
api "com.github.franmontiel:PersistentCookieJar:$rootProject.cookieVersion"
2524
//稳定的
26-
compile "com.github.bumptech.glide:glide:$rootProject.glideVersion"
27-
compile "com.orhanobut:logger:$rootProject.loggerVersion"
28-
compile "org.greenrobot:eventbus:$rootProject.eventbusVersion"
29-
compile "com.google.code.gson:gson:$rootProject.gsonVersion"
30-
compile "com.github.chrisbanes:PhotoView:$rootProject.photoViewVersion"
25+
api "com.github.bumptech.glide:glide:$rootProject.glideVersion"
26+
api "com.orhanobut:logger:$rootProject.loggerVersion"
27+
api "org.greenrobot:eventbus:$rootProject.eventbusVersion"
28+
api "com.google.code.gson:gson:$rootProject.gsonVersion"
29+
api "com.github.chrisbanes:PhotoView:$rootProject.photoViewVersion"
3130

32-
compile "com.jude:easyrecyclerview:$rootProject.easyRecyclerVersion"
33-
compile "com.github.GrenderG:Toasty:$rootProject.toastyVersion"
31+
api "com.jude:easyrecyclerview:$rootProject.easyRecyclerVersion"
32+
api "com.github.GrenderG:Toasty:$rootProject.toastyVersion"
3433

3534
//router
36-
compile "com.alibaba:arouter-api:$rootProject.routerVersion"
35+
api "com.alibaba:arouter-api:$rootProject.routerVersion"
3736
}

lib_common/src/main/java/com/guiying/module/common/base/ApplicationDelegate.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
* @version V2.8.3
88
* @name ApplicationDelegate
99
*/
10-
11-
1210
public interface ApplicationDelegate {
1311

1412
void onCreate();

lib_common/src/main/java/com/guiying/module/common/base/BaseApplication.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public void onCreate() {
4141
for (ApplicationDelegate delegate : mAppDelegateList) {
4242
delegate.onCreate();
4343
}
44+
4445
}
4546

4647
@Override

lib_common/src/main/java/com/guiying/module/common/base/ClassUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ private static SharedPreferences getMultiDexPreferences(Context context) {
5353
* @param <T> U know
5454
* @return 对象列表
5555
*/
56-
public static <T> List<T> getObjectsWithInterface(Context context, Class<T> clazz, String path) {
56+
public static <T> List<T>
57+
getObjectsWithInterface(Context context, Class<T> clazz, String path) {
5758
List<T> objectList = new ArrayList<>();
5859
try {
5960
//找出所有路径中的类名,主要用于各个组件根包名一致的情况
@@ -273,7 +274,7 @@ private static boolean isVMMultidexCapable() {
273274

274275
}
275276

276-
Log.i("galaxy", "VM with name " + vmName + (isMultidexCapable ? " has multidex support" : " does not have multidex support"));
277+
Log.i(TAG, "VM with name " + vmName + (isMultidexCapable ? " has multidex support" : " does not have multidex support"));
277278
return isMultidexCapable;
278279
}
279280

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package com.guiying.module.common.utils;
2+
3+
import android.app.Activity;
4+
import android.app.KeyguardManager;
5+
import android.app.KeyguardManager.KeyguardLock;
6+
import android.content.Context;
7+
import android.os.PowerManager;
8+
import android.os.PowerManager.WakeLock;
9+
import android.util.Log;
10+
11+
import java.util.HashMap;
12+
13+
/**
14+
* 用于保持屏幕高亮的工具
15+
*/
16+
public class ScreenLockUtil {
17+
private static final String TAG = "ScreenLockUtil";
18+
19+
private ScreenLockUtil() {
20+
throw new UnsupportedOperationException("cannot be instantiated");
21+
}
22+
23+
static private HashMap<Activity, WakeLock> mWakeLockArray = new HashMap<>();
24+
static private HashMap<Activity, Boolean> mIsUnlockArray = new HashMap<>();
25+
26+
27+
/**
28+
* 保持屏幕常亮
29+
*
30+
* @param activity you know
31+
*/
32+
public static void keepScreenOn(Activity activity) {
33+
WakeLock wakeLock = mWakeLockArray.get(activity);
34+
if (wakeLock == null) {
35+
PowerManager powerManager = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
36+
wakeLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.FULL_WAKE_LOCK,
37+
activity.getClass().getName());
38+
}
39+
40+
if (!wakeLock.isHeld()) {
41+
wakeLock.acquire();
42+
}
43+
44+
mWakeLockArray.put(activity, wakeLock);
45+
46+
cancelLockScreen(activity);
47+
48+
Log.i(TAG, "开启屏幕常亮");
49+
}
50+
51+
52+
/**
53+
* 取消屏幕常亮
54+
*
55+
* @param activity you know
56+
*/
57+
public static void cancelKeepScreen(Activity activity) {
58+
WakeLock wakeLock = mWakeLockArray.get(activity);
59+
if (wakeLock != null) {
60+
if (wakeLock.isHeld()) {
61+
wakeLock.release();
62+
}
63+
}
64+
65+
Log.i(TAG, "取消屏幕常亮");
66+
}
67+
68+
/**
69+
* 取消锁屏限制
70+
*
71+
* @param activity you know
72+
*/
73+
private static void cancelLockScreen(Activity activity) {
74+
Boolean isUnlock = mIsUnlockArray.get(activity);
75+
if (isUnlock != null && isUnlock) {
76+
return;
77+
}
78+
KeyguardManager mKeyguardManager = (KeyguardManager) activity.getSystemService(Context.KEYGUARD_SERVICE);
79+
KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock(activity.getClass().getName());
80+
mKeyguardLock.disableKeyguard();
81+
82+
mIsUnlockArray.put(activity, true);
83+
}
84+
}

module_app/build.gradle

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
apply plugin: 'com.android.application'
22

3+
// Create a variable called keystorePropertiesFile, and initialize it to your
4+
// keystore.properties file, in the rootProject folder.
5+
def keystorePropertiesFile = rootProject.file("keystore.properties")
6+
// Initialize a new Properties() object called keystoreProperties.
7+
def keystoreProperties = new Properties()
8+
// Load your keystore.properties file into the keystoreProperties object.
9+
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
10+
311
static def buildTime() {
412
return new Date().format("yyyyMMdd");
513
}
614

715
android {
816
signingConfigs {
917
release {
10-
keyAlias 'guiying712'
11-
keyPassword 'guiying712'
12-
storeFile file('/mykey.jks')
13-
storePassword 'guiying712'
18+
keyAlias keystoreProperties['keyAlias']
19+
keyPassword keystoreProperties['keyPassword']
20+
storeFile file(keystoreProperties['storeFile'])
21+
storePassword keystoreProperties['storePassword']
1422
}
1523
}
1624

1725
compileSdkVersion rootProject.ext.compileSdkVersion
18-
buildToolsVersion rootProject.ext.buildToolsVersion
1926
defaultConfig {
2027
applicationId "com.guiying.module"
2128
minSdkVersion rootProject.ext.minSdkVersion
@@ -60,13 +67,12 @@ android {
6067
}
6168

6269
dependencies {
63-
compile fileTree(dir: 'libs', include: ['*.jar'])
64-
compile 'com.android.support:multidex:1.0.1'
65-
if (isModule.toBoolean()) {
66-
compile project(':lib_common')
67-
} else {
68-
compile project(':module_main')
69-
compile project(':module_girls')
70-
compile project(':module_news')
70+
implementation fileTree(dir: 'libs', include: ['*.jar'])
71+
implementation 'com.android.support:multidex:1.0.2'
72+
implementation project(':lib_common')
73+
if (!isModule.toBoolean()) {
74+
implementation project(':module_main')
75+
implementation project(':module_girls')
76+
implementation project(':module_news')
7177
}
7278
}

module_girls/build.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ if (isModule.toBoolean()) {
66

77
android {
88
compileSdkVersion rootProject.ext.compileSdkVersion
9-
buildToolsVersion rootProject.ext.buildToolsVersion
10-
119
defaultConfig {
1210
minSdkVersion rootProject.ext.minSdkVersion
1311
targetSdkVersion rootProject.ext.targetSdkVersion
@@ -39,7 +37,7 @@ android {
3937
}
4038

4139
dependencies {
42-
compile fileTree(dir: 'libs', include: ['*.jar'])
40+
implementation fileTree(dir: 'libs', include: ['*.jar'])
4341
annotationProcessor "com.alibaba:arouter-compiler:$rootProject.annotationProcessor"
44-
compile project(':lib_common')
42+
implementation project(':lib_common')
4543
}

module_main/build.gradle

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ if (isModule.toBoolean()) {
66

77
android {
88
compileSdkVersion rootProject.ext.compileSdkVersion
9-
buildToolsVersion rootProject.ext.buildToolsVersion
10-
119
defaultConfig {
1210
minSdkVersion rootProject.ext.minSdkVersion
1311
targetSdkVersion rootProject.ext.targetSdkVersion
@@ -42,9 +40,7 @@ android {
4240
}
4341

4442
dependencies {
45-
compile fileTree(dir: 'libs', include: ['*.jar'])
43+
implementation fileTree(dir: 'libs', include: ['*.jar'])
4644
annotationProcessor "com.alibaba:arouter-compiler:$rootProject.annotationProcessor"
47-
compile project(':lib_common')
48-
compile 'com.android.support:design:25.3.1'
49-
compile 'com.android.support:support-vector-drawable:25.3.1'
45+
implementation project(':lib_common')
5046
}

module_news/build.gradle

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ if (isModule.toBoolean()) {
66

77
android {
88
compileSdkVersion rootProject.ext.compileSdkVersion
9-
buildToolsVersion rootProject.ext.buildToolsVersion
10-
119
defaultConfig {
1210
minSdkVersion rootProject.ext.minSdkVersion
1311
targetSdkVersion rootProject.ext.targetSdkVersion
@@ -39,8 +37,7 @@ android {
3937
}
4038

4139
dependencies {
42-
compile fileTree(dir: 'libs', include: ['*.jar'])
40+
implementation fileTree(dir: 'libs', include: ['*.jar'])
4341
annotationProcessor "com.alibaba:arouter-compiler:$rootProject.annotationProcessor"
44-
compile project(':lib_common')
45-
compile 'com.android.support:support-v4:25.3.1'
42+
implementation project(':lib_common')
4643
}

0 commit comments

Comments
 (0)