Android知识程序员Android开发

Small插件化方案

2017-11-24  本文已影响0人  乐小文

创建工程

集成Small

gradle.jpeg
    dependencies 
    {    
        classpath 'com.android.tools.build:gradle:2.2.3' //注意gradle版本号   
        classpath 'net.wequick.tools.build:gradle-small:1.1.0-alpha2'  
    } 
    
    //在文件末尾加上
    apply plugin: 'net.wequick.small'
    
    small 
    {
        aarVersion = '1.1.0-alpha2'
    }

验证Small环境

在底部面板Terminal中输入命令:./gradlew small

如果一切正常,将成功输出:

  gradle-small plugin : 1.1.0-alpha2 (maven)
            small aar : 1.1.0-alpha2 (maven)
          gradle core : 3.3
       android plugin : 2.2.3
                   OS : Mac OS X 10.13.1 (x86_64)
type name PP sdk aapt support file(armeabi) size
host app 26 26.0.2 26.+
app app.main 0x77 26 26.0.2 26.+ *_main.so 43.7 KB

BUILD SUCCESSFUL

配置宿主

public class SmallApp extends Application
{    
        public SmallApp() 
        {        
            Small.preSetUp(this);    
        }
}

创建插件模块

创建一个应用模块 Phone & Tablet Module,设置 Application/Library name 为 App.main,此时 Module name 自动为 app.main,Package name 为 com.leo.smalldemo.app.main

修改插件的布局文件 app.main > res > layout > activity_main.xml,将 TextView 的内容改为 This is Small Model!

编译插件

./gradlew buildLib -q
./gradlew buildBundle -q -Dbundle.arch=x86

在模拟器调试时,-Dbundle.arch=xx,可以使用x86架构,真机打包时,需要使用到armeabi架构

启动插件

 {
  "version": "1.0.0",//文件格式版本,目前始终为1.0.0
  "bundles": [//插件数组
    {
      "uri": "main",//插件唯一ID
      "pkg": "com.leo.smalldemo.app.main"//插件包名
    }
  ]
}

回到宿主的 app > java > com.leo.smalldemo > MainActivity,
在 onStart 方法中我们通过上述配置的 uri 来启动 app.main 插件:

 @Override
    protected void onStart() {
        super.onStart();
        Small.setUp(this, new Small.OnCompleteListener() {
            @Override
            public void onComplete() {
                Small.openUri("main",MainActivity.this);
            }
        });
    }

运行宿主

文中的代码已上传至github
SmallDemo

上一篇下一篇

猜你喜欢

热点阅读