RePlugin框架怎么在Android中使用

  介绍

RePlugin框架怎么在Android中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> 1。应用场景

Android开发人员不多,又要求使用插件化开发的模式。(简单点讲就是自己需要写宿主应用,还多有N个插件需要开发)

如下图:

 RePlugin框架怎么在Android中使用“> </p> <p> 360官方给的演示是宿主一个工程,插件一个工程,并且工程的build.gradle文件中添加宿主和插件对应所需要的依赖,多人开发时,每个人或多个人维护一个宿主工程或者插件工程,都没有什么问题,但是一个人需要同时维护宿主和多个插件时,来回切换工程调试以及打包就异常头疼了…</p> <p> <强> 2。一个工程配置宿主和插件的所有依赖</强> <br/> </p> <p> 2.1工程的构建。gradle文件中添加</p> <pre类= buildscript  {   ,……   ,dependencies  {   classpath 才能;& # 39;com.android.tools.build: gradle: 2.3.3 # 39;,,//插才能件化框架,宿主工程所需依赖   classpath 才能;& # 39;com.qihoo360.replugin: replugin-host-gradle: 2.2.0 # 39;   ,,//插件化框架,插件工程所需依赖   classpath 才能;& # 39;com.qihoo360.replugin: replugin-plugin-gradle: 2.2.0 # 39;   ,,…   ,}   ,……   }

2.2宿主应用程序的构建。gradle文件中添加

//replugin插件化框架,这一行建议就放在依赖项的上面,千万不要放在android {…}的上面
应用插件:& # 39;replugin-host-gradle& # 39;

dependencies  {   ,compile  fileTree(包括:,(& # 39;* . jar # 39;],, dir:, & # 39;填词# 39;)   ,……   ,releaseCompile 项目(路径:& # 39;:图书馆的模组名字& # 39;,,配置:,& # 39;发布# 39;)   ,,debugCompile 项目(路径:& # 39;:图书馆的模组名字& # 39;,,配置:,& # 39;调试# 39;)   ,compile  & # 39; com.qihoo360.replugin: replugin-host-lib: 2.2.0 # 39;   ,……   }

2.3插件模组对应的构建。gradle文件中添加

//replugin插件化框架,这一行建议就放在依赖项的上面,千万不要放在android {…}的上面

apply 插件:,& # 39;replugin-plugin-gradle& # 39;   repluginPluginConfig  {=,pluginName “你自己的插件名字“;=,hostApplicationId “宿主包名,=,hostAppLauncherActivity “宿主包名.MainActivity"   }      dependencies  {   ,……   ,releaseCompile 项目(路径:& # 39;:图书馆的模组名字& # 39;,,配置:,& # 39;发布# 39;)   ,debugCompile 项目(路径:& # 39;:图书馆的模组名字& # 39;,,配置:,& # 39;调试# 39;)   ,compile  & # 39; com.qihoo360.replugin: replugin-plugin-lib: 2.2.0 # 39;   ,……   }

<强> 3。宿主及所有插件使用到的库,这里建议自己做成一个模组,配置方法上面的代码理由了(库的模组名字)
如有依赖的冲突,在对应模组中添加

android {   ,……   ,configurations.all  {   ,resolutionStrategy.eachDependency  {DependencyResolveDetails  details →   def 才能;requested =details.requested   if 才能;(requested.group ==, & # 39; com.android.support& # 39;), {   ,,if  (! requested.name.startsWith (“multidex")), {   ,,,details.useVersion  & # 39; 25.3.1& # 39;//这里可根据个人需要改成自己想要的版本   ,,}   ,,}   ,}   }   …   }

<>强4。关于调试以及成品包。

调试时有几个模组,就安装几个应用,调用的地方

if  (! BuildConfig.DEBUG),{//非调试成品包   ,if  (RePlugin.isPluginInstalled(“插件包名“)),{//已才能安装   Intent 才能;intentHasInstall =, RePlugin.createIntent(“插件包名,,,   ,,,“插件包名.MainActivity");   intentHasInstall.putExtras才能(包);   RePlugin.startActivity才能(mContext, intentHasInstall);   其他,,}{//没有安装,自己写下载的代码}   }else {//调试模式   Intent  intent1 =, new 意图();   intent1.setComponent (new  ComponentName(“插件包名,,,“插件包名.MainActivity"));   intent1.putExtras(包);   startActivity (intent1);   }

<强> 5。关于FileProvider

5.1这个首先公用图书馆的那个模组要有一个公用的效用,并且每个模组(插件或宿主)都初始化此工具类

RePlugin框架怎么在Android中使用