提交 9e747dd1 编写于 作者: D dingtaotao

docs(common): 规划组件感知和无冲突打包

上级 f861fe7c
......@@ -33,7 +33,13 @@
- Fragment拆分组件之后的通信方案,参照下方mvvm-v3.1介绍
- 项目最低兼容4.0.3,因为objectbox最低支持这个版本
### 2. 使用的开源框架:
### 2. 期望拥有的能力(待完成):
#### 2.1 2020.12.01(待完成,可预见的能够帮助工程变强大的工作)
- 调试模式:应用配置项参数等调试项修改和查看,需要IOC和持久化等支持。
- 组件感知能力:在已经打包的apk包中进入调试模式,可查看到组件的版本和已包含或未包含的必要组件。
- 组件版本冲突打包能力:单个组件不同版本都可以参与打包,且安装之后正常运行,能够查看单个组件多个版本,支持本地进行版本切换。
### 3. 使用的开源框架:
- <a href="https://developer.android.google.cn/jetpack/androidx">androidx</a>:这个系列的jar包和appcompat.support对立的,参见谷歌官方文档
- <a href="https://developer.android.google.cn/jetpack">lifecycle-viewmodel+livedata+DataBinding</a>
生命周期管理,完全解耦,方便系统内存管理释放,基于观察者模式实现数据更新等等
......@@ -51,6 +57,10 @@ Fresco有自己的内存回收机制,但是这个回收阈值没有设置,
## 三、分支更新日志(倒叙)
### 8.master 2020.12.01
- 更换LogUtils为logger;方便日志查找,为后续日志同步服务器/文件记录提供基础;
- Fragment的伪ViewModel依托所属Activity-LifeCycleOwner实现生命周期感知;具体实现请查看WDFragViewModel使用;
### 7.master 2020.09.13
- **对于ObjectBox一些建议**
1. 大小限制:ObjectBox默认最大为1GB,当db文件达到1G,新增数据会报出SQL异常,可通过maxSizeInKByte()改变最大限制,建议同SQLite一样,设置为磁盘大小,使用其他方法在部分业务上做磁盘大小检测,磁盘不足及时预警;另外从插入1条-100W条数据来看,ObjectBox扩容基本上从SQlite原生数据库几十倍降低到2.5倍左右;
......@@ -61,7 +71,9 @@ Fresco有自己的内存回收机制,但是这个回收阈值没有设置,
- 主键ID查询单条数据在百万级数据中Sqlite稍优;在单表条件查询之下,数据量上万情况下,Objectbox过于优秀。
4. 在删除数据方面,由于都是Sqlite数据库,所以删除只是删数据,并不会减小磁盘内存,如果要缩小db大小,可以自行设计方案;
```
注:测试使用小米9手机,单表数据量从最小100条到最大200W条,字段为30个String+一个自增ID,每个字符串长度都在20到30长度的随机字符,测试过程没有严格做到控制变量法,所以测试并不是很严谨,仅供参考
注:①测试使用小米9手机,单表数据量从最小100条到最大200W条,字段为30个String+一个自增ID,每个字符串长度都在20到30长度的随机字符,测试过程没有严格做到控制变量法,所以测试并不是很严谨,仅供参考;
②我们项目使用sqlite最近碰到SQLiteDatabaseCorruptException: database disk image is malformed等一系列的数据库损坏bug(官方说明关机或sd卡打满可能出现),我们线上用户不到万一的概率,从大数据定位出是几个深度用户,
解决这个问题的最好方式是引入腾讯wcdb中的c++的repair模块修复损坏数据库,构建新库,UI层做友好提示(类似于QQ更新之后跳出的加载数据页面),工作量比较大,但实际效果比较好,修复数据有利于用户留存;
```
### 6.master 2020.09.05
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册