之前说了 Fabric ,这次就来说说内存使用这个东西吧.
前言
千里之堤,溃于蚁穴 - 韩非《韩非子·喻老》
都能用,就这样吧
因为开源的特性, Android
拥有着各种各样不同尺寸屏幕和硬件配置的设备.
顶级到 5-6 寸 Snapdragon 821/Exynos 8890 + 6GB 的旗舰机型
目测到新机型出来为止还是要靠抢的 4T
在 BOOM7 宣布回收后独立支撑的 S7E
低端到充几百块电话费就能送的联发科/瑞芯微 + 1GB / 512MB 的运营商定制手机
移动定制机,放狗搜了下这货貌似还用的 YunOS
种类繁多的设备决定你在开始开发应用时就要想好要不要考虑使用低端设备的用户,这使得你要在系统版本,动画效果,依赖的使用等方面有所取舍,毕竟在低版本低配置的设备上做兼容会增加一部分代码和工作量.
如果你选择了兼容的道路,那就要在优化上面下点功夫了(当然写任何程序都应当在优化上面下功夫).
在代码方面只能靠深入学习来慢慢优化,但在内存泄漏上, Square 的 LeakCanary
拯救了 Android
开发者于水火之中,只需把它丢进你的依赖列表里面,然后再写上两三行代码, LeakCanary
就能自动检测内存泄漏并在发现泄露时通知开发者.
安装和使用
先在 LeakCanary
的 Github 上查看最新的版本,毕竟在理论上来说新的总比旧的好.
导入依赖
在 Module
级别的 build.gradle
中添加依赖并同步
build.gradle
1 | dependencies { |
使用
在你的 Application
类中初始化 LeakCanary
Application.class
1 |
|
如果你有使用Fragment
,那么要多写几行
Application.class
1 | public class YooooEXApplication extends Application { |
YourFragment.class
1 |
|
到这里 LeakCanary
就已经配置完成了,当你使用的 Build Variant 中 Debuggable 为 true 时, LeakCanary
在发现内存泄漏时会弹出通知提示你它发现你露出了,并会给出泄露源头.
妈蛋我漏了