https://github.com/bingoogolapple/appinit
AppInit 是一款 Android 应用初始化框架,基于组件化的设计思路,功能灵活,使用简单。
https://github.com/bingoogolapple/appinit
Last synced: 3 days ago
JSON representation
AppInit 是一款 Android 应用初始化框架,基于组件化的设计思路,功能灵活,使用简单。
- Host: GitHub
- URL: https://github.com/bingoogolapple/appinit
- Owner: bingoogolapple
- Created: 2020-03-26T16:55:25.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-12-10T17:04:09.000Z (10 months ago)
- Last Synced: 2025-05-24T10:06:28.359Z (5 months ago)
- Language: Groovy
- Size: 7.56 MB
- Stars: 193
- Watchers: 2
- Forks: 21
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# AppInit:Android 应用初始化框架
[](https://bintray.com/bingoogolapple/maven/bga-appinit-plugin/_latestVersion)
[](https://github.com/bingoogolapple/AppInit/pulls)AppInit 是一款 Android 应用初始化框架,基于组件化的设计思路,功能灵活,使用简单。
AppInit 用于解决美团收银 B 端 App 在业务演进过程中的实际问题,取得了不错的效果,因此我们决定将其开源,希望更多技术同行一起开发,应用到更广泛的场景里去。
## 背景
随着业务的快速发展,新项目新业务不断出现,以及项目组件化的实施,项目里需要初始化的业务模块和 SDK 也逐渐增多,而且有些业务模块间可能有着错综复杂的依赖关系,在项目开发和测试人员不足、新加入开发同学不熟悉项目的情况下,难免会出现少测漏测的情况,如何使各模块初始化代码解耦、按正确的顺序初始化是我们需要思考的问题。
## 功能简介
* 可以在指定进程的指定线程,按指定顺序分发 Application 生命周期方法给初始化类(继承自 SimpleAppInit 并添加 AppInit 注解,低耦合)
* 可以配置各模块间的初始化顺序,模块内部自己管理各初始化类的顺序,也可配置在其他模块的某个初始化类之前初始化(编译期间排序,运行期高性能)
* 可以在应用启动时拉取配置信息动态修改初始化顺序,及时修复线上包初始化顺序错乱问题(高稳定)
* 可以统计各模块和具体初始化类的初始化时间,便于优化冷启动时间## TODO
* 非主 dex 懒加载
* 初始化线程池优化## 业界初始化方案对比

## 设计与使用文档
* [使用文档](docs/user-manual.md)
* [设计文档](docs/principle.md)## 更新日志
[更新日志](CHANGELOG.md)
## 免责声明
AppInit 于 2019 年 1 月 21 日以公司名义在 Meituan-Dianping 账号下开源 ,并于 2020 年 1 月 13 日停止从 Meituan-Dianping 账号开源。
由于之前开源的 1 年时间内已经有开发者将 AppInit 应用到了实际项目中,后续业务项目升级 Gradle 版本后可能也需要 AppInit 升级进行兼容,且在之前开源的 1 年时间内已经大量 Fork,因此再次 Fork 一份到个人账号下进行维护。代码包名不变,为了便于后续上传 JitPack,Gradle 依赖由「com.sankuai.erp.component:appinit-plugin」变为「com.github.bingoogolapple.AppInit:buildSrc」

## 作者联系方式
| 个人主页 | 邮箱 |
| ------------- | ------------ |
| bingoogolapple.cn | bingoogolapple@gmail.com || 个人微信号 | 微信群 | 公众号 |
| ------------ | ------------ | ------------ |
||
|
|
| 个人 QQ 号 | QQ 群 |
| ------------ | ------------ |
||
|
## 打赏支持作者
如果您觉得 BGA 系列开源库或工具软件帮您节省了大量的开发时间,可以扫描下方的二维码打赏支持。您的支持将鼓励我继续创作,打赏后还可以加我微信免费开通一年 [上帝小助手浏览器扩展/插件开发平台](https://github.com/bingoogolapple/bga-god-assistant-config) 的会员服务
| 微信 | QQ | 支付宝 |
| ------------- | ------------- | ------------- |
||
|
|
## 作者项目推荐
* 欢迎您使用我开发的第一个独立开发软件产品 [上帝小助手浏览器扩展/插件开发平台](https://github.com/bingoogolapple/bga-god-assistant-config)