Android插件化(Small框架使用教程1)

2025-10-26 15:32:45

1、1.创建项目,这一步和以往创建项目都一样,包名工程名,放置路径都可以自己定

Android插件化(Small框架使用教程1)

2、2.集成small,对project/build.gradle修改如下,现在版本是1.3.0-beta5:

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.2.2'        classpath 'net.wequick.tools.build:gradle-small:1.3.0-beta5'        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}apply plugin: 'net.wequick.small'allprojects {    repositories {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}small {    aarVersion = '1.3.0-beta5'}

Android插件化(Small框架使用教程1)

3、新建applicaiton,如果项目中用到数据库,初始化也在宿主的applicaiton中初始化

public class MyApplicaiton extends Application {    @Override    public void onCreate() {        super.onCreate();        Small.preSetUp(this);        Small.setLoadFromAssets(BuildConfig.LOAD_FROM_ASSETS);        Small.setUp(this, new Small.OnCompleteListener() {            @Override            public void onComplete() {            }        });    }}

4、新建插件Module:

实例:

Application Name: App.main

Module name: app.main

package name: com.example.mysmall.app.main

如果选择Android Library,app.*换成lib.*

Android插件化(Small框架使用教程1)

5、要启动插件,先配置路由:

1.新建assets文件夹,新建bundle.json文件

{  "version": "1.0.0",  "bundles": [    {      "uri": "app.main",      "pkg": "com.beckett.smalldemo.app.mian"    },    {      "uri": "lib.common",      "pkg": "com.beckett.smalldemo.lib.common"    }      ]}

参数含义:

version,是 bundle.json 文件格式版本,目前始终为 1.0.0

bundles,插件数组

uri,插件唯一ID

pkg,插件包名

Android插件化(Small框架使用教程1)

Android插件化(Small框架使用教程1)

6、跳转到插件Activity:

实例:从宿主调到app.main插件

1.为了看出跳转,在app.main插件里的启动activity的布局里放入“我是app.main插件”的textview

2.在宿主app的启动activity里加入代码:

Small.openUri("app.main", MainActivity.this);

注意:宿主不宜放过多的东西,如果有很多东西要放必须另建一个替身,即app+stub,特别注意替身是library而不是applicaiton,这里暂时不涉及替身

Android插件化(Small框架使用教程1)

Android插件化(Small框架使用教程1)

7、编译插件(特别注意:如果你是要模拟器调试,需要编译生成插件到 x86 架构下,不然模拟器运行会闪退,编译过程很慢,需要等待

在 Terminal 面板,依次打以下命令:

gradlew cleanLib cleanBundle

gradlew buildLib

gradlew buildBundle

如果是要打模拟器运行的包,后两句换成即可:

gradlew buildLib -q -Dbundle.arch=x86

gradlew buildBundle -q -Dbundle.arch=x86

Android插件化(Small框架使用教程1)

8、成功后,可以在宿主的jnilibs/armeabi文件路径下找到插件的.so包,然后运行宿主即可运行,也可以单个插件调试,如下图3所示,small框架的方便之处就是这个,可以单个插件调试!

Android插件化(Small框架使用教程1)

Android插件化(Small框架使用教程1)

Android插件化(Small框架使用教程1)

9、运行app和app.main的最后截图,对比发现单个插件运行调试时,toolbar显示的名字为插件的名字

Android插件化(Small框架使用教程1)

Android插件化(Small框架使用教程1)

10、输入命令后打包不成功的可能的原因:

1.查看你的module和lib是否创建错了

2.查看配置路由的json文件是否包名有写错

3.查看jnilibs下是否正确生成.so包

11、demo代码上传百度云盘,链接:链接:https://pan.baidu.com/s/1bb2fKR2L8-dJD57nwLcicA 密码:3cj1

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢