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,需要在<activity>标签中指定,并且重新编译插件。

效果图

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,751评论 25 709
  • 1.框架的选择:本次选择的插件化框架在经过数次比较之后选择了国产大神开发的目前在市场上较为流行的small插件化框...
    凤天凌阅读 3,580评论 8 11
  • 插件化与组件化 插件化就是将一个app分为一个宿主和多个模块(插件),宿主是被真正安装到设备的apk,负责加载插件...
    CYRUS_STUDIO阅读 4,133评论 3 19
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 竹林,在风中,与路人传情 路人,在日下,汗水与风 做着一个游戏 婴孩,在路人的手心里,蒲扇 妄图,折煞谁的能量 竹...
    粮食和花圈阅读 239评论 4 3