叶子维 0e71b917c5 Merge branch 'feature-GHZS-340' into 'dev'
fix:【光环助手V5.16.0】光环下载进度条优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-340

See merge request halo/android/assistant-android!470
2022-11-24 15:00:52 +08:00
2022-10-26 18:16:47 +08:00
2020-12-22 16:25:56 +08:00
2022-09-29 11:27:04 +08:00
2019-08-07 16:50:17 +08:00
2017-05-10 15:22:50 +08:00
2022-04-01 11:31:24 +08:00
2022-10-24 10:45:50 +08:00
2022-04-19 09:22:18 +08:00

光环助手Android客户端

概述

光环助手Android客户端目前使用 Kotlin 作为主要开发语言,以 MVVM 作为参考架构模式进行开发

约束

为编写易读易维护且较健壮的代码,可参考以下约束

  1. 尽量将逻辑代码放置于 ViewModel 中View 中只执行 UI 操作
  2. 尽量使 View 在被销毁之后仍能恢复状态,处理方式可参考 保存界面状态
  3. 尽量参考原有文件结构及命名规范,即以 大模块 - 小模块 的形式生成包关系
  4. 遵循最小改动原则,在提交代码前务必先检查变动的代码,尽量以可控的变动规模来构成一个 commit ,以便日后追踪问题
  5. Commit message 提交规范可参考 Conventional Commits
  6. 代码规范可参考 AOSP Java 风格
  7. 尽量使用 Kotlin 来写新文件
  8. 不要使用 DataBinding
  9. Commit 前请确保不带入非项目必须文件,可手动修改 .gitignore 文件忽略
  10. 优先使用 ViewBinding 获取 View 对象
  11. No AsyncTask!

公用部分

本项目使用 LiveData 实现了一个简单通用的基础列表分页功能,具体可见 ListFragment, ListViewModel 等类,理想情况下只需少量代码即可新建一个简单分页列表

首次拉取项目代码

git clone -b dev git@git.shanqu.cc:halo/android/assistant-android.git --recursive

git 版本管理

本项目使用简化版的 git flow 来管理分支,细节请看 光环安卓简单 git 规范

API 环境配置

本项目使用 Build Variants 来切换 API 环境

  • internal 为测试环境
  • publish 为正式环境

图片资源配置

  • 新增图片资源时,默认只添加最高规格的 xxxhdpi 文件
  • 新增图片资源时,需要将其转换为 .webp 格式 (包括含透明图层的图片默认质量为90%) (转换后体积变大的文件除外)

第三方appkey等配置

  • 修改 gradle.properties 文件将各种key填入其中实现统一管理
  • 通过 gradle 文件内的 resValue/buildConfigField/manifestPlaceHolder 方式实现编译期间修改,具体情况请参考 ./build.gradle./app/build.gradle 配置

混淆配置

  • 本项目使用了微信的 AndResGuard 作为资源混淆压缩方案,新增需要使用 getIdentifier 获取的资源文件时需要添加至白名单
  • 本项目默认使用 R8 作为混淆工具,往 proguard-rules.txt 添加 proguard 新配置项时请检查可用性(如语法等)

APK打包配置

打内部测试包:./scripts/test_build.sh 打邮件测试包:./scripts/jenkins_build.sh

TODO

  • 把原有 EventBus 的消息 Type 统一到一个文件内
  • 将实现细节从 View(Fragment、Activity) 剥离并以 MVVM 结构改造
  • 重构 MainActivity
Description
光环助手Android
Readme 233 MiB
Languages
Kotlin 79.3%
Java 20.1%
Shell 0.3%
JavaScript 0.2%
Groovy 0.1%