项目名称:DLove
开发环境:兼容 Android 5.0 、AndroidStudio3.5.3
开发周期:2020/01 至今
责任描述:框架搭建,基础组件封装,部分功能开发。
应用技术:
1)使用 Jetpack 套件的 MVVM 架构;
2)使用 ARouter 实现组件化;
3)使用 Navigation+Fragment 实现每个业务模块下的 UI 框架;
4)使用 OkHttp+Retrofit+LiveData 实现网络数据的获取。
技术描述:
MVVM 架构:创建ViewModel组件与View 通过Databinding直接绑定,View 通过 Lifecycle
感知 Activity 的生命周期,将 View 从 Controler 中剥离,进一步解耦。
组件化:创建路由组件,将需要注册路由信息的页面和功能注册其中,降低业务模块
间耦合性。
UI 框架:每个业务模块一个 Activity,通过 Navigation 导航器导航各个 Fragment 页面,
充分降低应用中 Activity 的数量,多个 Fragment 复用一个 ViewModel,降低耦合同时降低
内存泄漏风险。
网络框架:基于 Retrofit+LiveData 封装网络组件,使业务模块对网络组件黑盒处理。
项目名称:雷客 KTV 点歌系统
开发环境:Android 7.0 、AndroidStudio3.3
开发周期:2019/03 至 2020/01
责任描述:功能开发,性能调优,功能自测,BUG 修复,文档输出。
应用技术:
1)通过 Presentation 实现多屏异显。
2)Activity 动态加载 Fragment 实现 UI 框架。
3)基于 OkHttp 实现网络框架。
4)集成小爱语音实现语音点歌哼唱点歌等功能。
5)架设 HTTP 服务响应手机端指令形成互动。
所遇问题:
1)曲库检索性能遇到瓶颈。
2)数据库频繁更新造成流量剧增,流量费用过高,而减少更新频率则会导致歌曲更新
不及时,严重影响用户体验。
3)内存泄漏。
解决办法:
1)随着数据量增加搜索性能逐渐降低,经过对比测试,找出最终优化方案:①保证曲
库中数据有序,节省 order by 时间;②对某些关键字段添加索引;③预加载部分数据;
④缓存已搜索数据;⑤精简搜索条件,用符号搜索代替 between/or/like 等操作符;经
过优化 20 万数据中 3 个条件检索时间在 100ms 以内,完全满足用户体验。
2)利用过滤器模式实施曲库自动更新方案:触发更新后,创建针对曲库更新操作的过
滤器,添加一系列对曲库操作的条件策略,依次执行过滤其中的条件策略,最终的到
更新后的曲库,通过以上步骤解决曲库更新所遇到的问题,并获得一项专利。
3)使用 Profiler 分析工具或者 “top -m 10”,dumpsys meminfo -p + 包名”等命令
查看内存使用情况,分析哪些操作引起内存持续增长(包括业务逻辑,UI 变化等),最终
定位泄漏点,解决泄漏问题。