主程序接入Replugin
1. 添加Replugin Host Gradle依赖
在项目根目录里的build.gradle(不是app/build.gradle)中添加replugin-host-gradle依赖:
dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }
2. 添加Replugin Host Lib依赖
在app/build.gradle里应用replugin-host-gradle插件,并添加replugin-host-lib依赖:
android { compileSdkVersion 26 defaultConfig { applicationId "com.android.plugin" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } android.applicationVariants.all { variant -> variant.outputs.all { output -> def outputFile = output.outputFile if (outputFile.name.contains("debug")){ outputFileName = new File("../debug/", "plugin_debug_v${android.defaultConfig.versionName}_${releaseTime()}.apk") } if (outputFile.name.contains("release")){ outputFileName = new File("../release/", "plugin_release_v${android.defaultConfig.versionName}_${releaseTime()}.apk") } } } } def releaseTime() { return new Date().format("yyyyMMddHHmmss", TimeZone.getTimeZone("Asia/Chongqing")) } apply plugin: 'replugin-host-gradle' repluginHostConfig {
// 是否支持AppComat useAppCompat = true // 定义常驻进程的名字 //persistentName = ":XXService"}dependencies { implementation fileTree( dir: 'libs', include: [ '*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation 'com.qihoo360.replugin:replugin-host-lib:2.2.4'}
3 配置AndroidManifest.xml文件
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application android:name="com.android.plugin.MyApplication"
<meta-data android:name="com.qihoo360.plugin.name" android:value="plugintest" /> <meta-data android:name="com.qihoo360.plugin.version.ver" android:value="100" /> </application>
4 配置Application类
让工程的 Application 直接继承自 RePluginApplication。
如果您的工程已有Application类,则可以将基类切换到RePluginApplication即可。或者您也可以用“非继承式”接入,可参考官网介绍。
public class MyApplication extends RePluginApplication { }
下面就开发插件了。可参考360 Replugin运行配置(二)