项目中的目录结构:
其中,host为项目主工程 ,plugin为项目插件工程。
RePlugin 插件的使用方法:
host部分:
主目录下的build.gradle 加入:dependencies { classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.0' … }
app目录下的build.gradle添加:
apply plugin: 'replugin-host-gradle'
/**
* 配置项均为可选配置,默认无需添加
* 更多可选配置项参见replugin-host-gradle的RepluginConfig类
* 可更改配置项参见 自动生成RePluginHostConfig.java
*/<br>
repluginHostConfig {
/**
* 是否使用 AppCompat 库
* 不需要个性化配置时,无需添加
*/
useAppCompat = true
/**
* 背景不透明的坑的数量
* 不需要个性化配置时,无需添加
*/
countNotTranslucentStandard = 6
countNotTranslucentSingleTop = 2
countNotTranslucentSingleTask = 3
countNotTranslucentSingleInstance = 2
}
dependencies {
compile 'com.qihoo360.replugin:replugin-host-lib:2.2.0'
…
}
注意:需方在android{…} 后面。
Application 需继承RepluginApplication。
或者自行配置:
public class MainApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
RePlugin.App.attachBaseContext(this);
....
}
@Override
public void onCreate() {
super.onCreate();
RePlugin.App.onCreate();
....
}
@Override
public void onLowMemory() {
super.onLowMemory();
/* Not need to be called if your application's minSdkVersion > = 14 */
RePlugin.App.onLowMemory();
....
}
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
/* Not need to be called if your application's minSdkVersion > = 14 */
RePlugin.App.onTrimMemory(level);
....
}
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
/* Not need to be called if your application's minSdkVersion > = 14 */
RePlugin.App.onConfigurationChanged(config);
....
}
}
2.plugin 部分:
主目录下的build.gradle 加入:
dependencies {
classpath 'com.qihoo360.replugin:replugin-plugin-gradle:2.2.0'
…
}
app目录下的build.gradle 加入:
apply plugin: 'replugin-plugin-gradle'
repluginPluginConfig {
pluginName = <font color='red'>"插件名"</font>
hostApplicationId = <font color='red'>"host ApplicationId"</font>
hostAppLauncherActivity =<font color='red'> "host 的 launchActivity"</font>
}
dependencies {
compile 'com.qihoo360.replugin:replugin-plugin-lib:2.2.0'
…
}
同样也需放在android {…} 后面。
注意标红的部分,pluginName 插件名,在host中会使用到(包括安装,启动,卸载)。
Replugin 使用原理参考:
http://www.360doc.com/content/17/0725/16/9200790_674042171.shtml
开源地址:
https://github.com/Qihoo360/RePlugin