Small组件化系列

Small组件化系列

宿主集成:

==编辑该文时暂时不支持gradle 3.0.0版本,会出现找不到libraries的错误,使用android studio3.0的同学请将gradle版本设置为2.3.3或以下==

  1. 在 buildscript > dependencies 下添加Small编译插件 gradle-small:
classpath 'net.wequick.tools.build:gradle-small:1.3.0-beta3'
  1. 在文件末尾引用 gradle-small 插件:
apply plugin: 'net.wequick.small'
  1. 设置Small运行库版本:
small {
    aarVersion = '1.3.0-beta3'
}

当 gradle-small 在 1.1.0-alpha2 以上版本时可以不指定 aarVersion,默认为 gradle-small 版本。

  1. 验证:
    .\gradlew small
    
输出:
    
### Compile-time


  gradle-small plugin : 1.3.0-beta3 (maven)
            small aar : 1.3.0-beta3 (maven)
          gradle core : 4.1
       android plugin : 2.3.3
                   OS : Windows 7 6.1 (amd64)

### Bundles

| type | name | PP | sdk |  aapt  | support | file | size |
|------|------|----|-----|--------|---------|------|------|
| host | app  |    | 26  | 26.0.0 | 26.0.0  |      |      |

组件集成

  1. 组件依赖声明

==组件声明均配置在app/src/main/assets/bundle.json目录下,公共库也需要声明==

==app+stub会被所有的lib.x依赖、所有的app.x组件依赖。而app.x则可以额外依赖不同的lib.x==

  1. 编译库
.\gradlew buildLib -q

指定插件存放架构目录(armeabi-v7a):
.\gradlew buildLib -q -Dbundle.arch=armeabi-v7a

3.编译依赖:

.\gradlew buildLib -q

指定插件存放架构目录(armeabi-v7a):
.\gradlew buildBundle -q -Dbundle.arch=armeabi-v7a

常见问题:

  1. android.content.res.Resources$NotFoundException:Resource ID #0x3c030025
    解决方案:没有将lib公共库模块加入到bundle.json,没有注册该模块资源。
  2. Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library
    解决方案:不能再插件的Application中指定Theme,需要在标签中指定,并且重新编译插件。

效果图

Small组件化系列_第1张图片
Screenshot_2017-10-31-18-00-02-233_com.salton123.sf.png

Screenshot_2017-10-31-18-00-08-075_com.salton123.sf.png

Demo源码参考:

github: https://github.com/456838/smallFragmentation

你可能感兴趣的:(Small组件化系列)