本地构建module
模块的AAR
gradle.properties
isCommonApp = false
模块的build.gradle
apply plugin: 'com.android.library'
:module
模块编译manifest.srcFile 'src/main/AndroidManifest.xml'
:读取没有启动App
和Activity
的配置文件
if (isCommonApp.toBoolean()){apply plugin: 'com.android.application'
}else{apply plugin: 'com.android.library'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'android {namespace 'com.example.lib_common'compileSdk 34sourceSets{main{if (isCommonApp.toBoolean()) {manifest.srcFile 'src/main/java/moduleDebug/AndroidManifest.xml'} else {manifest.srcFile 'src/main/AndroidManifest.xml'}}}signingConfigs{release{storeFile file('../build_keystore/release.jks')storePassword '19980226'keyAlias 'release_key'keyPassword '19980226'}}defaultConfig {if (isCommonApp.toBoolean()){applicationId "com.example.lib_common"}minSdk 24testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {signingConfig signingConfigs.releaseminifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}kotlinOptions {jvmTarget = '17'}}dependencies {api libs.androidx.core.ktxapi libs.androidx.appcompatapi libs.materialapi libs.androidx.activityapi libs.androidx.constraintlayoutapi libs.junitapi libs.androidx.junitapi libs.androidx.espresso.coreapi "androidx.lifecycle:lifecycle-process:2.6.2"
}
读取没有启动页的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
</manifest>
Gradle
指令编译AAR
./gradlew :lib_common:assembleDebug

本地构建module
模块的APK
gradle.properties
isCommonApp = true
模块的build.gradle
apply plugin: 'com.android.application'
:app
模块编译manifest.srcFile 'src/main/java/moduleDebug/AndroidManifest.xml'
:读取指定启动App
和Activity
的配置文件
if (isCommonApp.toBoolean()){apply plugin: 'com.android.application'
}else{apply plugin: 'com.android.library'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'android {namespace 'com.example.lib_common'compileSdk 34sourceSets{main{if (isCommonApp.toBoolean()) {manifest.srcFile 'src/main/java/moduleDebug/AndroidManifest.xml'} else {manifest.srcFile 'src/main/AndroidManifest.xml'}}}signingConfigs{release{storeFile file('../build_keystore/release.jks')storePassword '19980226'keyAlias 'release_key'keyPassword '19980226'}}defaultConfig {if (isCommonApp.toBoolean()){applicationId "com.example.lib_common"}minSdk 24testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {signingConfig signingConfigs.releaseminifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}kotlinOptions {jvmTarget = '17'}}dependencies {api libs.androidx.core.ktxapi libs.androidx.appcompatapi libs.materialapi libs.androidx.activityapi libs.androidx.constraintlayoutapi libs.junitapi libs.androidx.junitapi libs.androidx.espresso.coreapi "androidx.lifecycle:lifecycle-process:2.6.2"
}
读取有启动页的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"><application android:name=".LibCommonApp"android:theme="@style/Theme.AppCompat"><activity android:name=".LibCommonActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>
</manifest>
Gradle
指令编译APK
./gradlew :lib_common:assembleDebug
