首页 > 系统 > Android > 正文

android插件化small框架初探(一)

2019-11-09 18:45:19
字体:
来源:转载
供稿:网友

一个项目包涵多个module,且互相独立,没有依赖关系,但是可以相互跳转,方便维护,多个module插在一个app宿主上,这是我理解的插件化。

包含公共库插件lib,业务插件module及宿主app(只做壳用没有业务逻辑)

由于插件化是彻底分离的,底层是通过path来找到彼此,因此需要规定好path 映射关系,动态加载。 这里学习的是small框架。

首先需要在PRoject根目录的build.gradle中添加如下代码

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'net.wequick.tools.build:gradle-small:1.1.0-beta4' }}allprojects { repositories { jcenter() }}task clean(type: Delete) { delete rootProject.buildDir}apply plugin: 'net.wequick.small'small { aarVersion = '1.1.0-alpha1'}

然后 创建跳转的第一个module 这里叫做app.main并在app的assets下的bundle.json指定映射关系

{ "version": "1.0.0", "bundles": [ { "uri": "main",//跳转时指定main即到pkg包的启动activity中 "pkg": "com.xiaov.mysmall.app.main" } ]}

第三步 配置签名文件根目录下新建sign–>release.jks app的build.gradle下指定

signingConfigs { release { storeFile file('../sign/release.jks') storePassWord "111111" keyAlias "small" keyPassword "111111" } } buildTypes { release { signingConfig signingConfigs.release } }

最后在代码中做简单配置

public class Myapplication extends Application { @Override public void onCreate() { super.onCreate(); Small.preSetUp(this); }}<application android:name="MyApplication" ... >

最后执行跳转 在app的MainActivity中

@Override protected void onStart() { super.onStart();// Small.setBaseUri("http://example.com/"); Small.setUp(this, new net.wequick.small.Small.OnCompleteListener() { @Override public void onComplete() { Small.openUri("main", MainActivity.this);//启动默认的Activity,参考wiki中的UI route启动其他Activity } }); }

运行app前需要执行如下两个命令

gradlew buildLib -qgradlew buildBundle -q

官方:https://github.com/wequick/Small 此简易demo地址:https://github.com/androidjiawei/MySmall/tree/master/Android/MySmall


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表