六木Sir

Results 92 comments of 六木Sir

# 内存泄漏检测工具 ## LeakCanary ### 实现监控 ### 自定义处理结果

# 优化内存空间 ## 对象引用 - 强引用 - 软引用 - 弱引用 - 虚引用 弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。 可能需要运行多次GC,才能找到并释放弱引用对象。 问题:之前遇到函数参数是一个接口的匿名实现,在函数内部采用弱引用,几乎每次弱引用取出来的值都为null,终于找到原因了,要用也该用软引用。 ## 减少不必要的内存开销 #### AutoBoxing #### 内存复用 ## 使用最优的数据类型 - 1.HashMap与ArrayMap HashMap是一个散列表,想HashMap中put元素时,先根据key的HashCode重新计算hash值,根据hash值得到这个元素在数组中的位置,如果数组该位置上已经存放有其他元素了,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放在链尾。如果数组该位置上没有元素,就直接将该元素放到此数组中的该位置。HashMap会配置一个大的数组来减少潜在的冲突,并且会有其他的逻辑防止链接算法和一些冲突的发生。 ArrayMap 总结:以下情况优先考虑ArrayMap: - 当对象的数目非常小(1000以内),但是访问特别多或者删除和插入频率不高时。...

# 提升动画性能 ## 帧动画 ## 补间动画 ## 属性动画 ## 硬件加速

# 卡顿监控方案与实现

# 存储优化 ## 存储方式 - SharedPreference 一个轻量级数据存储类,使用于保存软件配置参数。使用SharedPreferences保存参数,最终是使用xml格式文件存放数据,文件存放在/data/data//shared_prefs目录下。 (1)特点 用Map数据结构来存储,以键值(key-value)的方式存储。 (2) 存储路径 (3) 创建模式 Activity.MODE_APPEND:如果文件存在,在末尾增加; Activity.MODE_PRIVATE:默认模式,只能由创建该文件的应用程序调用,即为私有的; Activity.MODE_WORLD_PEADABLE:所有读取和创建 Activity.MODE_WORLD_WRITEABLE:所有写入,访问和创建的文件权限; - SQLite - File - ContentProvider ## 序列化 - Serializable 在序列化的时候会产生大量的临时变量,在序列化的过程中会消耗更多的内存, 从而引起频繁的GC。 -...

# 代码静态扫描工具 1.checkstyle 2.FindBugs 3.PMD 4.Android Lintn

# Crash 监控 ## Java层Crash监控 ## Native层监控 ## Crash上报机制 下次正常后上传

add Android技术周报

- [ ] [QQ音乐技术团队](https://cloud.tencent.com/community/user/1027752)

- [ ] [数库科技 Android 开发准则](https://github.com/nekocode/nekoblog/blob/master/AndroidDevGuideline.md)