Skip to content

android Sample 目录结构

tfc edited this page Aug 31, 2017 · 5 revisions

基本原则

宿主中不要放业务逻辑。只做加载插件以及调起主插件的操作。

重构步骤

1. 拆lib.* - 公共模块插件

  1. 把各个 第三方库 拆出来做成一个个lib.*插件模块,包括统计、地图、网络、图片等库。
  2. 把老项目积累的 业务公共代码 (utils)分离出来封装成一个lib.utils插件
  3. 把基础的样式、主题分离出来封装成一个lib.style插件

2. 拆app.* - 业务模块插件

  1. 把业务模块拆成app.*模块,他们可以依赖lib.*模块,显示调用lib.*中的各个API
  2. 相对独立的业务模块先拆,比如“详情页”、“关于我们”,如果剩下的业务不好拆,先放一个插件里
  3. 如果都不好拆,先把全部业务做成一个app.main主插件

3. 下沉宿主 - 宿主分身模块

宿主分身模块要求以 app+ 格式命名,他们将被宿主、lib.、app. 模块自动依赖并允许这些模块透明地访问自己的代码或者资源。需要注意的是,分身模块最终是并入到宿主的而非插件,建议使用分身的情形有*

  1. 必须在宿主占坑的manifest,包括:
  • 受限 Activity
    • 包含了暂不支持的属性:process, configChanges 等
    • 可能使用 FLAG_ACTIVITY_CLEAR_TOP 标签来启动 (#415)
  • 任何 Provider, Service, BroadcastReceiver 必须在宿主占坑的资源,包括:
    • 转场动画
    • 通知栏图标、自定义视图
    • 桌面快捷方式图标
    • 确信稳定的公共库与资源

Sample示例

  • lib.style - 公共主题
  • lib.utils - 公共API、公共控件
  • lib.analytics - 第三方统计
  • app.main - 主插件
  • app.home - 首页
  • app.detail - 详情页
  • app+stub - 占坑组件、资源 宿主分身全部的 app lib 默认引用

来自 #207