All Projects → Meituan-Dianping → Appinit

Meituan-Dianping / Appinit

Licence: apache-2.0
AppInit 是一款 Android 应用初始化框架,基于组件化的设计思路,功能灵活,使用简单。

Programming Languages

groovy
2714 projects

Projects that are alternatives of or similar to Appinit

19CSE100-Solving-and-Algorithmic-Thinking
19CSE100 - Problem Solving and Algorithmic Thinking (PSAT) - 1st Sem - B.E. (CSE-CYS) - ASC, CBE.
Stars: ✭ 76 (-90.65%)
Mutual labels:  modularization
waylan android
A dictionary concept for Android ~ Making words and their meanings available through a natural and beautiful experience
Stars: ✭ 13 (-98.4%)
Mutual labels:  modularization
unity-ui-manager
🎫 A Simple UI Manager for rapid prototyping and ease of collaboration
Stars: ✭ 44 (-94.59%)
Mutual labels:  modularization
Games
The Games app has two features which are listing and showing detail of games.
Stars: ✭ 15 (-98.15%)
Mutual labels:  modularization
MVI-Clean-Architecture
MVI + Clean Architecture + Best Practices | Example of Clean Architecture of Android app using MVI design pattern with Jetpack and popular libraries
Stars: ✭ 50 (-93.85%)
Mutual labels:  modularization
BESTV
Android TV App powered by TMDb. It is a easy way to find the best TV content, the top movies, series... all of that in your TV.
Stars: ✭ 49 (-93.97%)
Mutual labels:  modularization
Web Dev Tools Android
Sample Android Application - MVVM, Clean Architecture, Modularization, Repository Pattern
Stars: ✭ 215 (-73.55%)
Mutual labels:  modularization
Kotlin Modular Tdd Coroutines Mvvm
A sample Kotlin app which was built with modular structure, Kotlin DSL, Kotlin Coroutines, TDD and MVVM patterns.
Stars: ✭ 256 (-68.51%)
Mutual labels:  modularization
FunFacts
FunFacts is an example of Modular architecture
Stars: ✭ 42 (-94.83%)
Mutual labels:  modularization
devonfw4flutter-mts-app
Large-Scale Flutter Reference Application. An Extension of DevonFw's My Thai Star Project
Stars: ✭ 54 (-93.36%)
Mutual labels:  modularization
discovery
辅助Android开发者在多模块工程间跨模块获取接口(或抽象类)的实现类的开源库,可实现模块的顺序初始化、业务的动态组合等实现。基于AGP和ASM开发。
Stars: ✭ 46 (-94.34%)
Mutual labels:  modularization
Swiftmazing
A iOS application with layout based on App Store that can check the most starred and last updated Swift repository
Stars: ✭ 73 (-91.02%)
Mutual labels:  modularization
flutter modularization
[Flutter SDK V.2] - This repo will introduce you how to mastering your app with implementation Flutter Modularization in several ways
Stars: ✭ 78 (-90.41%)
Mutual labels:  modularization
android-kick-start-modular
Android Kick Start Project Template Framework FrogoBox || Admob, MVVM Archictecture || Clean Architecture Modularization
Stars: ✭ 16 (-98.03%)
Mutual labels:  modularization
FootballNews2
Personal Android project for Football daily updates
Stars: ✭ 16 (-98.03%)
Mutual labels:  modularization
Alkaa
Open-source app to manage your tasks quickly and easily
Stars: ✭ 235 (-71.09%)
Mutual labels:  modularization
movies
An example approach for modularization, reactive clean architecture and persistancy.
Stars: ✭ 110 (-86.47%)
Mutual labels:  modularization
Modularizationproject
Android 模块化示例项目
Stars: ✭ 386 (-52.52%)
Mutual labels:  modularization
Easify-iOS
An iOS application to test out Spotify API. It uses SwiftUI and Combine.
Stars: ✭ 15 (-98.15%)
Mutual labels:  modularization
arch-pattern-modularization
🌵Implementation of Modularization on Architecture Pattern
Stars: ✭ 27 (-96.68%)
Mutual labels:  modularization

AppInit:Android 应用初始化框架

Download PRs Welcome License

AppInit 是一款 Android 应用初始化框架,基于组件化的设计思路,功能灵活,使用简单。

AppInit 用于解决美团收银 B 端 App 在业务演进过程中的实际问题,取得了不错的效果,因此我们决定将其开源,希望更多技术同行一起开发,应用到更广泛的场景里去。

背景

随着业务的快速发展,新项目新业务不断出现,以及项目组件化的实施,项目里需要初始化的业务模块和 SDK 也逐渐增多,而且有些业务模块间可能有着错综复杂的依赖关系,在项目开发和测试人员不足、新加入开发同学不熟悉项目的情况下,难免会出现少测漏测的情况,如何使各模块初始化代码解耦、按正确的顺序初始化是我们需要思考的问题。

功能简介

  • 可以在指定进程的指定线程,按指定顺序分发 Application 生命周期方法给初始化类(继承自 SimpleAppInit 并添加 AppInit 注解,低耦合)
  • 可以配置各模块间的初始化顺序,模块内部自己管理各初始化类的顺序,也可配置在其他模块的某个初始化类之前初始化(编译期间排序,运行期高性能)
  • 可以在应用启动时拉取配置信息动态修改初始化顺序,及时修复线上包初始化顺序错乱问题(高稳定)
  • 可以统计各模块和具体初始化类的初始化时间,便于优化冷启动时间

TODO

  • 非主 dex 懒加载
  • 初始化线程池优化

业界初始化方案对比

业界初始化方案对比

设计与使用文档

更新日志

更新日志

License

Copyright 2018 Meituan-Dianping

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].