想要了解插件化,首先得知道如何加载外部的dex文件,这里的插件APK会存放在主APP的assets目录中,用于模拟服务器下载插件。
第一步:创建主项目和插件项目
先创建我们的主项目,并在项目中创建一个插件依赖库,取名为pluginlibrary,主项目依赖pluginlibrary。
主项目创建完毕后,接着创建插件项目,将项目中的app模块复制到主项目并重命名为plugin,同时也依赖pluginlibrary。
修改settings.gradle文件,如下:
include ':app',':plugin', ':pluginlibrary'
重新编译一下。
第二步:编译插件APK
将pluginlibrary依赖库编译成jar包,并放在插件项目plugin的lib目录下,不是libs目录,通过compileOnly引用pluginlibrary的jar包,compileOnly只会在编译时用到相应的jar,打包成APK后不会存在于APK中。
pluginlibrary编译jar包,在pluginlibrary的build.gradle的配置如下:
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar&