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

来源:互联网 发布:tomcat部署域名访问 编辑:程序博客网 时间:2024/06/06 04:29

一个项目包涵多个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

0 0
原创粉丝点击