工作
- 业务上主动推进,做最主动的那个人
- 将会执行两周一个版本的迭代方式, 每个小需求都会有一个 owner. 尽量自己争取做这个 owner.
- 提出的某些点子,最好推行下去,可以创建在自己的 Phabricator Task 里,避免后面忘记
- 尽量承担更多业务之外的事情
-
SharedPreferences
由于文件读取同步锁的问题, 造成使用commit
时, 主线程被阻塞, 造成了线上较多的ANR
, 计划使用 MMKV 替换SharedPreferences
做 K-V 存储. - Dart 分享
- Tinker 热修复分享, (进行了一次, 但是准备不是太充分, 还没有讲到核心的 Dex 热修复, 资源热修复, 组件热修复)
-
个人成长
项目中用到的库源码学习,输出文章
- RxJava2 → 响应式编程,操作符、原理
- OkHttp → HTTP 网络请求
- Retrofit → 定义 HTTP 请求接口
- OkDownloader → 下载相关
- SoLoader(Fackbook) → So 的动态加载
- Tinker → 热修复
- LogX → 日志采集、加密解密、上传
个人计划安排
- 搭建了自己的任务管理 Phabricator. 后续考虑使用 GitHub 的 Project,节省自己的服务器
增量更新
2019-11-13
1/4 人生
- Apk Dispatcher 内测发包平台完成了 2 版
- 热修复相关看书了解了一些, 但是还有一些疑问 🤔️
- Tinker 的热修复将新的 dex 包加载到了内存中的 DexPathList 里的 elements 的首部, 那在应用重启之后, 每次都要执行这个步骤吗? 既然 dex 文件已经被补丁替换了, 那为什么还要修改内存中的信息? 下次应用重启不就加载新的 dex 了吗?
- OkHttp 了解了它内部的调用链的过程, 但是每个 interceptor 的作用和原理还有待细看
- 通过看《Android移动性能实战》了解到一些IO的优化措施, 在项目上应用
- 看一些博客了解到
systrace
的使用方法, 用来检测项目中的绘制上可优化的点 - 通过 Android Studio Profiler 的 Method Trace, 梳理 Android SDK 一些内部的调用逻辑
- 结合
adb shell am dumpheap
、hprof-conv
和MAT
工具分析应用内存占用, 优化应用在后台时的静态内存占用