Feature issues1130 See merge request halo/assistant-android!86
光环助手Android客户端
APK打包配置
-
使用ApkChannelPackage的方案
-
打包命令,视情况使用:
打包Tinker基准包:
./scripts/tinker_release_base.sh以Tinker基准包打渠道包:
./scripts/tinker_release_channel.sh以Tinker基准包打补丁包:
./scripts/tinker_release_patch.sh
混淆配置
- 配置文件:Android默认配置+proguard-rules.txt等
- 参考libraries下每个项目独立的配置文件
proguard-project.txt
apk大小优化
- 限制resConfig资源集
- 开启ShrinkResources
- 开启混淆,使用minifyEnabled(仅在release开启)
- pngquant对png压缩、png/jpg->webp(未尝试)
第三方appkey等配置
- 修改
gradle.properties文件将各种key填入其中,实现统一管理 - 通过gradle文件内的resValue/buildConfigField/manifestPlaceHolder方式实现编译期间修改,具体情况请参考
./build.gradle和./app/build.gradle配置
拉取代码步骤
- 拉取主项目代码:
git clone -b dev git@gitlab.ghzhushou.com:halo/assistant-android.git - 初始化公用类库:
bash ./scripts/submodules_init.sh
submodule管理方式(只拉取master)
- 提交代码,需要cd到submodule文件夹去做修改
- 更新远端代码,
bash ./scripts/submodules_update.sh
TODO
-
GSON 序列化用统一的一个, GsonUtil fromJson
-
CleanApkAdapter 转化字符串size工具函数 比如SpeedUtils
-
getString 解决 字符串hardcode问题
-
Adapter 里面clicklistener 用接口传参将点击操作委托给controller -
Adapter ViewHolder的功能,部分重写到ViewHolder类本身 -
activity 统一入口未完成(外部入口相关),去除多余activity使用,统一toolbar -
release / debug compile不同的类库,不需要再做什么开关 -
Toolbar分离,有图形按钮/没有图形按钮
TODO Since 3.1
-
解决 Utils 工具类引发的内存泄漏问题
-
把原有 EventBus 的消息 Type 统一到一个文件内
-
将实现细节从 View(Fragment、Activity) 剥离并以 MVVM 结构改造
-
将 ListViewModel 所对应的 ListRepository 合并到 ListViewModel 中 -
依照光环助手界面功能以大模块 - 小模块的方式去修改包结构,包内文件建议以包名摘要作为前缀
-
把 ListViewModel 的数据结构类型转换方式换为抽象方法,让继承的类实现,避免出现无响应的问题 -
rxjava2 如果接口返回为空 会发生异常:java.lang.NullPointerException: Null is not a valid element (答案编辑) 解决方法->com.gh.gamecenter.retrofit.Response -
constraintLayout 1.1.2 导致布局出现异常(问题编辑标签选择弹窗)
-
搞清楚 GameManager 的用途,看能不能去掉
-
重构一下 MainActivity