本地构建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. releaseminifyEnabled false proguardFiles 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 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. releaseminifyEnabled false proguardFiles 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