本示例基于Qihoo360/RePlugin tag v2.2.0 GIT地址
新建2个项目在同一个工程里面app,appplugin
主项目的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.0'
classpath 'com.qihoo360.replugin:replugin-plugin-gradle:2.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app/build.gradle 配置如下
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "energy.trinabess.com.retest"
minSdkVersion 14
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
apply plugin: 'replugin-host-gradle'
repluginHostConfig {
useAppCompat =true
countNotTranslucentStandard =6
countNotTranslucentSingleTop =2
countNotTranslucentSingleTask =3
countNotTranslucentSingleInstance =2
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'com.qihoo360.replugin:replugin-host-lib:2.2.0'
}
appplugin/build.gradle 配置如下
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "energy.trinabess.com.appplugin"
minSdkVersion 14
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'com.qihoo360.replugin:replugin-plugin-lib:2.2.0'
}
// 这个plugin需要放在android配置之后,因为需要读取android中的配置项
apply plugin: 'replugin-plugin-gradle'
repluginPluginConfig {
//插件名
pluginName = "appplugin"
//宿主app的包名
hostApplicationId = "energy.trinabess.com.retest"
//宿主app的启动activity
hostAppLauncherActivity = "energy.trinabess.com.appplugin.MainActivity"
}
同时appplugin/AndroidManifest.xml 配置如下
<meta-data
android:name="com.qihoo360.plugin.name"
android:value="appplugin" />
<meta-data
android:name="com.qihoo360.plugin.version.ver"
android:value="100" />
同时也要给予一些基本权限给予主项目:
<!-- ======= REPLUGIN ======= -->
<!-- SDK Only (4Stats)。也是“常用的”几个权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
至此项目基本配置完成,可以运行项目了。
开始Replugin之旅!!!!!!!!!!!!!!!