• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

RePlugin主程序接入教程

JAVA web前端中文站 3年前 (2017-07-06) 1056次浏览 已收录 0个评论

随着 360 的 RePlugin 全面插件化方案被提出。我相信 RePlugin 会越来越流行。因此便编写了本篇教程。

更多精彩内容请看 web 前端中文站
http://www.lisa33xiaoq.net 可按 Ctrl + D 进行收藏

根据官方的文档提示,我们只需要 3 步,即可实现 RePlugin 主程序接入功能。

RePlugin 主程序接入教程

添加 RePlugin Host Gradle 依赖

在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-host-gradle 依赖:

 buildscript {     dependencies {         classpath 'com.qihoo360.replugin:replugin-host-gradle:2.1.0'         ...     } }

添加 RePlugin Host Library 依赖

在 app/build.gradle 中应用 replugin-host-gradle 插件,并添加 replugin-host-lib 依赖:

 apply plugin: 'replugin-host-gradle'  dependencies {     compile 'com.qihoo360.replugin:replugin-host-lib:2.1.0'     ... }

配置 Application 类

让工程的 Application 直接继承自 RePluginApplication。

如果您的工程已有 Application 类,则可以将基类切换到 RePluginApplication 即可。或者您也可以用“非继承式”接入。

 public class MainApplication extends RePluginApplication {}

既然声明了 Application,自然还需要在 AndroidManifest 中配置这个 Application。

 <application android:name=".MainApplication" ... />

备选:“非继承式”配置 Application

若您的应用对 Application 类继承关系的修改有限制,或想自定义 RePlugin 加载过程(慎用!),则可以直接调用相关方法来使用 RePlugin。

 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);         ....     } }

针对“非继承式”的注意点

  • 所有方法必须在 UI 线程来“同步”调用。切勿放到工作线程,或者通过 post 方法来执行
  • 所有方法必须一一对应,例如 RePlugin.App.attachBaseContext 方法只在 Application.attachBaseContext 中调用
  • 请将 RePlugin.App 的调用方法,放在“仅次于 super.xxx()”方法的后面

实际接入过程中碰到的问题

下载 RePlugin 依赖包出错:

D:/jeff_workspace/TestRePlugin/app/build.gradle
Error:(33, 13) Failed to resolve: com.qihoo360.replugin:replugin-host-lib:2.1.0

解决过程:查看官方 Sample 源码中的 build.gradle 发现问题所在,需要在 project 下的 build.gradle 文件中添加以下代码:

 //buildscript repositories 以及 allprojects repositories 中添加 RePlugin Repository maven {     url  "https://dl.bintray.com/qihoo360/replugin" }

Gradle 构建出现以下错误:

 Execution failed for task ':app:processDebugResources'. > D:/jeff_workspace/TestRePlugin/app/src/main/assets/plugins

解决过程:在 Github Issues 中发现#48 也提到了这个问题,解决办法在里面已经给出:

在 assets 下新建文件夹 plugins。

【注:本文源自网络文章资源,由站长整理发布】


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:RePlugin 主程序接入教程
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址