Developers: WeaponZhi, hiyangyue, xiaweizi, foxlee
AI Geek Workshop - Public account, welcome to follow us if you are interested in AI!
An ultimate App. A learning project to help you enhance your ability to independently develop the business layer of
Android
applications. This development framework enables rapid application building. You can also use it as a tool app for reference in your daily development.
Package Building Methods:
gradlew cleanLib
gradlew buildLib -q -Dbundle.arch=x86
gradlew cleanBundle
gradlew buildBundle -q -Dbundle.arch=x86
-q
represents the clean mode, displaying only the packaging results of the plugin.- In
-Dbundle.arch
, usex86
for emulator debugging andarmeabi
for physical device debugging.
In Case of App Crash on Physical Device:
- Check the logs in
Logcat
and locate the error. - If there are no obvious error logs, or if the error is
PushReceiver ClassNotFoundException
, please determine theCPU
type of the physical device and package accordingly.
You can obtain the CPU
type through:
adb shell
cat /proc/cpuinfo
For example, Redmi Note 3:
Processor : AArch64 Processor rev 2 (aarch64)
The corresponding packaging command should be changed to:
# For '.so' files, differentiate CPU architecture.
# Generally, use 'x86' for emulators and 'armabi armeabi-v7a arm64-v8a' for physical devices.
gradlew buildLib -q -Dbundle.arch=arm64-v8a
gradlew buildBundle -q -Dbundle.arch=arm64-v8a
Script Packaging Method:
buildAll # Full packaging
buildBundle # Package only the Bundle if Lib remains unchanged
buildAll q d # Equivalent to adding '-q' and '-Dbundle.arch=x86'
buildBundle q d # Equivalent to adding '-q' and '-Dbundle.arch=x86'
If there are errors during packaging, you can first execute gradlew cleanBuild
and then retry the packaging process.
For detailed packaging command parameters, please refer to the Small
documentation: Small Documentation
TDD requires writing test code before writing the actual code for a feature. Then, you write only the code necessary to pass the tests. This process helps in producing concise, usable, and high-quality code, ultimately accelerating the development process.
TDD indirectly assists programmers in writing well-designed code. To ensure testability, the classes and methods in the code must strictly adhere to the Single Responsibility Principle.
Furthermore, with the encapsulated MVVM framework, you can test the entire page logic by performing unit tests only on the ViewModel layer methods, constructing empty View and Model parameters.
This project utilizes a highly encapsulated MVVM framework and databinding
for efficient development. This framework allows for rapid business logic development while abstracting the underlying databinding
technical details. As a result, even developers who are not deeply familiar with MVVM and databinding
can develop smoothly by following the framework's flow.
Moreover, this framework facilitates effortless unit testing. The specific development process of MVVM and unit testing operations will be supplemented in subsequent development stages.
This project will integrate, encapsulate, and redevelop the most widely used, professional, and popular technologies in the current Android landscape, applying them to practical scenarios. The currently planned technologies for introduction include (bolded items indicate secondary development or fully self-developed libraries):
- DataBinding + MVVM Development
- Component-Based Development
- Small Plugin Framework
- Databinding
- Custom Server
- Custom Gradle Plugin
- Integrated Official Sharing for QQ, WeChat, and Weibo
- Cross-Platform Push Notification Service
- UMeng Statistics
- OkHttp + Retrofit + RxJava
- Refresh List Library Extended from RecyclerView
- Component-Based Controls
- Unit Testing
- Integrated Debugging for Components
- Instant Messaging
- Video Service
- Material Design
- Glide
- [func] do sth: Feature development
- [fixbug] #xx# do sth: Bug fix, where #xx# is the issue number
- [docs] do sth: Documentation
- [chore] do sth: Build-related modifications
- [test] do sth: Adding test code
- [optimize] do sth: Optimizing parts of the code
- [style] do sth: Code formatting, removing blank lines, etc., not related to functionality
Set DEBUG
to true
in gradle.properties
to enable the integrated debugging environment. Set the corresponding modules you need to debug to true
.
For instance, if you need to debug the mine
and message
modules, set DEBUG
, DEVELOP_MINE
, and DEVELOP_MESSAGE
to true
, and then re-sync Gradle.
When DEBUG
is set to false
, it represents a full package compilation or Release mode, where all modules are added by default, ignoring the individual configuration boolean values of the modules below.
开发
AI极客
一 个极致的App。学 习项目 ,帮助你提升 独自 开发Android
业务层的能力 。基 于该开发框 架 ,可 以快速 构建应用,同 时你可 以当做一个工具 App,以供你平时开发参考 。
gradlew cleanLib
gradlew buildLib -q -Dbundle.arch=x86
gradlew cleanBundle
gradlew buildBundle -q -Dbundle.arch=x86
其中 -q
-Dbundle.arch x86
,如果armeabi
如遇
请先检查Logcat
PushReceiver ClassNotFoundException
CPU
adb shell
cat /proc/cpuinfo
CPU
类型,
Processor : AArch64 Processor rev 2 (aarch64)
对应
#so版 , 区分 CPU架 构,一般 模 拟器使用 x86,真 机 使用 armabi armeabi-v7a arm64-v8a
gradlew buildLib -q -Dbundle.arch=arm64-v8a
gradlew buildBundle -q -Dbundle.arch=arm64-v8a
buildAll 全量 打 包
buildBundle 只 打 包 Bundle,Lib没 改 变
buildAll q d 相当 于加-q 和 -Dbundle.arch=x86
buildBundle q d 相当 于加-q 和 -Dbundle.arch=x86
Small
它
测试驱动开发
databinding
进行
并且
- DataBinding+MVVM开发
- 组件
化 开发 - Small 插件
化 框 架 - Databinding
-
自 建 服 务器 -
自 定 义 Gradle 插件 -
集成 QQ、微 信 、微 博 官 方 分 享 -
全 平台 推送服 务 -
友 盟 统计 - OkHttp + Retrofit + RxJava
-
通 过 RecyclerView拓 展 的 刷新 列 表 库 -
控 件 组件化 - 单元测试
- 组件
化 集成 调试 -
即 时通讯 - 视频
服 务 - Material Design
- Glide
注 :首 页数据 样式参考 于慕课网组件化 视频 https://coding.imooc.com/learn/list/84.html使用 项目MVVM重 新 实现感 谢 qndroid老 师
- [func] do sth:
功 能 开发 - [fixbug] #xx# do sth:Bug
修 改 ,#号 内 为 issue 编号 - [docs] do sth:
文 档 - [chore] do sth:build
相 关的修 改 - [test] do sth:
添加 测试代 码 - [optimize] do sth: 优化
部分 代 码 - [style] do sth:
格式 化 上 的 格式 化 、删除空白 行 等 ,无关功 能
DEBUG
、DEVELOP_MINE
DEVELOP_MESSAGE
DEBUG
未完 待 续,目前 正 迭代中 ...