在实际的项目开发过程中,我们经常会遇到与各种第三方应用的对接,在实际的产品中,我们也开发了SDK来方便第三方的二次开发,那接下来大家一起去看看详解Android插件化-RePlugin项目集成与使用吧!
1.什么是RePlugin?
在Android开发领域,有关插件化的讨论一直热度不减。目前市面上的插件化方案虽然很多,但多数只能实现某些功能的插件化,距离开发者的预期尚有相当差距。对此,在近期GMTC全球移动技术大会上,360手机卫士主程序架构负责人张炅轩宣布,360的插件化框架RePlugin已经可以实现“全面插件化”,同时具有出色的稳定性和灵活性,可适用于各种类型的应用上。
“RePlugin预计7月份开源,这将是我们献给安卓世界最好的礼物。”360如是说。
2.RePlugin有什么用?
RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。
3.RePlugin官方介绍
其主要优势有:
一、集成主工程
1、在项目根目录的 build.gradle 下添加 RePlugin Host Gradle 依赖:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' // 1、添加RePlugin Host Gradle依赖 classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.1' }}
2、在 app/build.gradle 下添加 RePlugin Host Library 依赖(为了更清晰的表示出代码添加的位置,将原有代码也一并贴出):
apply plugin: 'com.android.application'
android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "cn.codingblock.repluginstudy" minSdkVersion 21 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'// 集成 RePlugin 添加的配置// 集成 RePlugin 添加的配置repluginHostConfig { useAppCompat = true // 如果项目需要支持 AppComat,则需要将此配置置为 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' compile 'com.qihoo360.replugin:replugin-host-lib:2.2.1' // 集成 RePlugin 添加的配置 testCompile 'junit:junit:4.12'}
以上代码有三点需要注意:
countNotTranslucentStandard = 6countNotTranslucentSingleTop = 2countNotTranslucentSingleTask = 3countNotTranslucentSingleInstance = 2
3、让工程的 Application 直接继承自 RePluginApplication:
public class MyApplication extends RePluginApplication { }
当然,同时不要忘了在 AndroidManifest 对 MyApplication 的相关配置。
说明:有时候由于项目原有结构的需要,我们可能不能直接使用继承 RePluginApplication 的方式,这个问题看来 RePlugin 开发者也想到了,所以还特地多了一种选择,下面是项目的 Application 不继承 RePluginApplication 的方式:
public class MyApplication 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(); RePlugin.App.onLowMemory(); } @Override public void onTrimMemory(int level) { super.onTrimMemory(level); RePlugin.App.onTrimMemory(level); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); RePlugin.App.onConfigurationChanged(newConfig); }}
二、集成插件
新建一个工程做为插件APP,这里为了方便起见,直接在主工程中新建了一个 Module。
1、同集成主工程类似,在根目录的 build.gradle 添加 RePlugin Plugin Gradle 依赖(若是单独创建插件工程,则不需要添加注释1下面的代码):
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' // 1、添加RePlugin Host Gradle依赖(主工程用) classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.1' // 2、添加RePlugin Plugin Gradle依赖(插件工程用) classpath 'com.qihoo360.replugin:replugin-plugin-gradle:2.2.1' }}
2、在 app/build.gradle 中添加 replugin-plugin-gradle 插件和 replugin-plugin-lib 依赖:
apply plugin: 'com.android.application'android { ...}apply plugin: 'replugin-plugin-gradle' // 集成 RePlugin 添加的配置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' compile 'com.qihoo360.replugin:replugin-plugin-lib:2.2.1' // 集成 RePlugin 添加的配置 testCompile 'junit:junit:4.12'}
三、管理插件
RePlugin 对插件定义两种方式一种是外置插件、一种是内置插件。
(一)外置插件的安装(升级)、启动、卸载
安装插件:
PluginInfo pluginInfo = RePlugin.install(Environment.getExternalStorageDirectory().getPath().toString() + "/plugin1.apk");System.out.println(pluginInfo);
同时别忘了添加文件读写的权限。 输出日下:
""""
""""
""""""
""
<1>"""""""""""""""""""""""""">
“”
以上就是武林技术频道小编给大家介绍的详解Android插件化-RePlugin项目集成与使用,看完这篇文章,大家赶快去操作看看,有任何问题及时反馈给小编哦。
新闻热点
疑难解答