本地构建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 34
sourceSets{
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 24
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
}
dependencies {
api libs.androidx.core.ktx
api libs.androidx.appcompat
api libs.material
api libs.androidx.activity
api libs.androidx.constraintlayout
api libs.junit
api libs.androidx.junit
api libs.androidx.espresso.core
api "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 34
sourceSets{
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 24
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
}
dependencies {
api libs.androidx.core.ktx
api libs.androidx.appcompat
api libs.material
api libs.androidx.activity
api libs.androidx.constraintlayout
api libs.junit
api libs.androidx.junit
api libs.androidx.espresso.core
api "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
