- 最直接的就是
包名每个应用包名都是唯一且有意义的
针对 包名 替换问题,已编写 DevReplace 项目进行快捷替换
便于直接使用该模板进行组件化开发,减少使用者包名替换、重新搭建组件化流程。
核心实现代码 DevReplace.Code,代码执行入口 ReplaceMain
- Clone
https://github.com/afkT/DevComponent.git项目到本地 - 打开项目根目录,进入
/interesting/DevReplace文件目录,定位并打开Code.kt文件 - 搜索
const val REPLACE_PACKNAME = ""并修改字符串值为待变更包名,例:com.afkt.shop - 同目录打开
ReplaceMain.kt文件,执行main方法,完成替换包名第一步 - 进行全局搜索 afkt_replace 并替换为刚才
REPLACE_PACKNAME字符串设置的包名,并结束替换流程
至此整个流程结束,成功将该项目包名替换为指定包名
- 最后只需 clean project 并进行 rebuild 即可使用该组件化模板进行个人、公司项目开发
- 项目文件名 ( DevComponent ) 直接手动修改即可
- 执行该操作结束后记得把 .git 文件夹删除,再 push 到 git 服务器上
- core | 根目录
- core | com.afkt.shop.core
- core_base_lib | com.afkt.shop.core.base.lib
- libs |
- lib_base | com.afkt.shop.core.lib.base
- lib_base_split | com.afkt.shop.core.lib.base.split
- lib_bean | com.afkt.shop.core.lib.bean
- lib_channel_flavors | com.afkt.shop.core.lib.channel
- lib_config | com.afkt.shop.core.lib.config
- lib_debug_assist | com.afkt.shop.core.lib.debug
- lib_engine | com.afkt.shop.core.lib.engine
- lib_environment | com.afkt.shop.core.lib.environment
- lib_language | com.afkt.shop.core.lib.language
- lib_mvvm | com.afkt.shop.core.lib.mvvm
- lib_network | com.afkt.shop.core.lib.network
- lib_property | com.afkt.shop.core.lib.property
- lib_receiver | com.afkt.shop.core.lib.receiver
- lib_router | com.afkt.shop.core.lib.router
- lib_ui | com.afkt.shop.core.lib.ui
- lib_ui_skin | com.afkt.shop.core.lib.ui.skin
- lib_upload | com.afkt.shop.core.lib.upload
- lib_utils | com.afkt.shop.core.lib.utils
- lib_web | com.afkt.shop.core.lib.web
- application | 根目录
- app | com.afkt.shop.component
- module |
- module_main | com.afkt.shop.module.main
- module_movie | com.afkt.shop.module.movie
- module_person | com.afkt.shop.module.person
- module_splash | com.afkt.shop.module.splash
- module_template | com.afkt.shop.module.template
- module_tv | com.afkt.shop.module.tv
如上结果展示可得出
- 主体应用 ( APP 壳工程 ) 包名为 com.afkt.shop.component
- 各个 module 包名为 com.afkt.shop.module.xxxx
- core-libs 为 com.afkt.shop.core.lib.xxx
如果对该包名结构不满意,可自行在执行替换操作之后进行修改,最大程度减少替换包名的复杂性。
并同步修改 file/gradle/modular.gradle 文件中 modularVersion 的各个 module applicationId 包名配置即可