模块创建
一般来说,我们用三方库都是在build文件里面去写网络仓库的。
但有时候,也需要做成本地模块。就像下面这样。
![image-20230529131932326](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![image-20230529131712566](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
模块引入
![image-20230529132317170](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![image-20230529132401507](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![image-20230529132554482](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
等同于这样:
![image-20230529132706224](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
然后 MainActivity 里面就可以用 super-java 里面的类和方法
common.gradle
app模块和super-java模块都有自己的build.gradle文件。
但里面很多东西是相同的,如果要更改还要一个个打开改。
所以提取封装出来成一个公共的 common.gradle 这样一些目标 sdk 什么的只用直接改 common.gradle 就可以了。
项目根目录创建 common.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
android { compileSdk rootProject.ext.targetSdk
defaultConfig { minSdk rootProject.ext.miniSdk
targetSdk rootProject.ext.targetSdk
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } }
dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' }
|
然后 项目下的 TestAndroid 加一个:
1 2 3 4 5 6 7 8 9 10 11
|
ext { targetSdk = 33
miniSdk = 24 }
|
其他gradle引入common.gradle
1 2
| apply from: '../common.gradle'
|
然后其他 gradle 文件中如果有和 common.gradle 文件相同的,那就会重写那个属性。
总结
通过上面的两大步骤配置,我们就把多个模块直接的公众配置集中到了一起方便管理。
以后还有别的模块,就只用在他们的build.gradle文件里面引入common.gradle
。
然后删除自己重复的。
而且以后想改app的目标版本什么的就只要在项目的build.gradle
文件中改一下就可以了。
这样就做到了高复用。