美文网首页Android开发
Android应用Small组件化实例

Android应用Small组件化实例

作者: chsasaw | 来源:发表于2016-08-16 18:26 被阅读189次

Small插件化方案适用于将一个APK拆分为多个公共库插件、业务模块插件的场景。

  • 完美内置所有插件支持内置于宿主包中

  • 高度透明插件编码、布局编写方式与独立应用开发无异
    插件代码调试与整包开发无异

  • 极致剪裁对插件分离所有一切能分离的公共代码、资源

  • 无缝链接通过设定URI,宿主、本地化应用插件、本地化web插件、在线网页,以及任何自定义的插件之间能够相互调起与传递参数

  • 跨平台目前已支持AndroidiOS以及html5插件。并且三者之间可以通过同一套Javascript接口进行通信。

工程build.gradle中引入small,目前已发布gradle插件1.0.0-beta7版本,small组件1.1.0-beta4.

buildscript {    
    ...
    dependencies {        
          classpath 'com.android.tools.build:gradle:2.1.2'        
          classpath 'net.wequick.tools.build:gradle-small:1.0.0-beta7'      
          .... 
    }
}
...
apply plugin: 'net.wequick.small'

small {    
      aarVersion = '1.1.0-beta4'
}

工程结构包括宿主工程app,业务模块插件app.*,以及lib.*公共库插件工程。如:

工程目录结构
  • 1.app 宿主工程
宿主工程结构

宿主工程中仅仅应用入口HostApp,启动首屏展示LoadingActivity(不包含任何网络加载逻辑,广告图片加载逻辑放在业务插件app.launch中)。build.gradle中包含signingConfigs、buildTypes等,插件公共依赖可放到dependencies中,不会打包到插件中。

bundle.json

记得在assets中bundle.json文件配置插件包名和路由rules,否则small将找不到对应插件。

  • 2.app.业务模块*

业务模块之间互相独立,通过small来管理跳转和fragment的获取。业务模块包含自己的APIService(网络请求使用lib.net,底层是retroifit+okhttp)、UI(Activity、Fragment、View、Adapter)、Model、Application。

Small Activity跳转

Small.openUri("main", LaunchActivity.this);

Small获取Fragment

BaseFragment fragment = (BaseFragment)Small.createObject("fragment-v4", "community/community", MainActivity.this);
  • 3.lib.模块*

lib模块的引用最好在宿主工程中也保留一份,这样不会打包到插件中,可以使最后只保留一份引用。Account也可以做成lib,供其他app插件调用。

lib.*模块

lib.style中包含通用的动画、颜色、规格、尺寸、主题。

lib.utils放置一些通用help、utils,依赖style(dialog主题)。

lib.config 应用的配置信息,版本号、包名、系统信息等。

lib.constant 暂时放置一些常量、枚举、key、id等。

lib.analytics统计API

lib.net 网络请求框架,retroifit+okhttp,处理token错误等全局错误。

lib.base放置Activity、Application、Fragment等的基类。

lib.router Small的uri特殊处理

  • 4.其他第三方模块和aar

其他依赖最好通过私有maven仓库管理。

jni_plugin用来存放一些so文件,以及jni接口。

jsbridge--webview和native交互的一个库,参考
https://github.com/gzsll/WebViewJavascriptBridge

相关文章

  • Android应用Small组件化实例

    Small插件化方案适用于将一个APK拆分为多个公共库插件、业务模块插件的场景。 完美内置所有插件支持内置于宿主包...

  • iOS组件化 文章

    iOS组件化 BeeHive iOS应用架构谈 组件化方案 Small iOS BeeHive —— 一个优雅但还...

  • Think-Swoole 启动流程

    启动流程 think - 入口 引入自动加载 应用初始化实例化App,并获取Console组件实例化Console...

  • [系统掌握Android] 单线程模型

    是什么 Android官方并没有明确的关于单线程模型的定义。我给出了我的理解 应用组件的实例化及应用与系统的交互,...

  • android 组件化

    Android组件化项目地址:Android组件化项目AndroidModulePattern Android组件...

  • Android组件化开发,Small应用实践

    插件化与组件化 插件化就是将一个app分为一个宿主和多个模块(插件),宿主是被真正安装到设备的apk,负责加载插件...

  • Android 组件化应用

    一个软件系统的开发可能只需要2到3个月就能完成,而这个系统的迭代和维护时间可能达2到3年之久——《不记得哪本书上说...

  • Vue学习笔记2

    组件化应用构建 Vue实例 创建一个Vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实...

  • ARouter V1.5.1 框架解析

    ARouter是阿里开源的Android路由框架,主要用于解决Android应用组件化改造解耦后组件间跳转、通信等...

  • Android组件化方案

    Android组件化方案Android彻底组件化demo发布

网友评论

    本文标题:Android应用Small组件化实例

    本文链接:https://www.haomeiwen.com/subject/csbpsttx.html