您的位置:首页 > 移动开发 > Android开发

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

2017-02-06 14:52 316 查看
一个项目包涵多个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 -q
gradlew buildBundle -q


官方:https://github.com/wequick/Small

此简易demo地址:https://github.com/androidjiawei/MySmall/tree/master/Android/MySmall
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: