diff --git a/README.md b/README.md index faa9118ecd500f7b811a71eb8209b22f9da24c85..58fbfc8c8b9e5ea08188a3c31557323d2fd6276a 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,13 @@ - Fragment拆分组件之后的通信方案,参照下方mvvm-v3.1介绍 - 项目最低兼容4.0.3,因为objectbox最低支持这个版本 -### 2. 使用的开源框架: +### 2. 期望拥有的能力(待完成): +#### 2.1 2020.12.01(待完成,可预见的能够帮助工程变强大的工作) +- 调试模式:应用配置项参数等调试项修改和查看,需要IOC和持久化等支持。 +- 组件感知能力:在已经打包的apk包中进入调试模式,可查看到组件的版本和已包含或未包含的必要组件。 +- 组件版本冲突打包能力:单个组件不同版本都可以参与打包,且安装之后正常运行,能够查看单个组件多个版本,支持本地进行版本切换。 + +### 3. 使用的开源框架: - androidx:这个系列的jar包和appcompat.support对立的,参见谷歌官方文档 - lifecycle-viewmodel+livedata+DataBinding: 生命周期管理,完全解耦,方便系统内存管理释放,基于观察者模式实现数据更新等等 @@ -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