Android
文章平均质量分 86
ccx-_-
这个作者很懒,什么都没留下…
展开
-
工作中遇到的Android内存优化问题(1)
最近工作中,遇到了几个内存优化的问题,1.应用退出后,此应用进程保持了不少内存得不到释放,用工具强制gc也无法释放。2.应用进入某些页面瞬间请求分配内存过大。此两个问题对于有经验的开发者很容易猜测一个是内存泄露,一个是图片之类的资源问题。下面来写一个例子分析一下这两个问题 第一个例子是Volley加载图片的app,当此app退出时缓存释放问题Application类packag原创 2016-09-04 12:33:08 · 7970 阅读 · 1 评论 -
工作中遇到的Android内存优化问题(3)-leakcanary源码解析
今天我们来看一下一个内存泄露检测神器 leakcanary(https://github.com/square/leakcanary)首先我们来看一下leakcanary的使用说明就这么多,只需要一行代码,太简单了,简单得都有点怀疑它了。我们来看一下一个简单的例子,也是它官方源码中提供的一个例子,这个因为太小了我就截了个图从例子中可以看到,AsyncTask执行原创 2016-09-10 23:51:08 · 5595 阅读 · 0 评论 -
工作中遇到的Android内存优化问题(2)
Android内存泄露问题,大部分都是对象(Activity,Fragment..)不能被回收,对象中的资源占用内存引起。还有一些包括cursor未关闭,文件流未关闭等(这些可以用StrictMode设置进行排查)。对象之所以不能被回收主要有两个原因一个是对象被别的类静态引用,另一个是多线程下,其中一个延时线程(主要是网络请求)持有的此对象,而此线程不结束,就不会释放对象引用。 查询内存泄露的原创 2016-09-08 23:34:31 · 4798 阅读 · 1 评论 -
Binder源码解析(从客户端到服务端代码流程)
Binder 解析首先从一个例子开始 服务端代码:public class WeatherService extends Service{ IWeatherInterface.Stub stub = new IWeatherInterface.Stub(){ @Override public String getWeatherInfo(long timeMil原创 2017-05-01 22:16:08 · 5422 阅读 · 0 评论 -
Android Doze模式下的AlarmManager策略
Doze 模式的定义Android 6.0引入了Doze模式,用户拔掉电源,在关闭手机屏幕并且不动的一段时间后,系统便会进入Doze模式。此模式下通过延缓CPU和网络活动减少电量的消耗。阻止APP访问网络,推迟jobs,syncs,标准 alarms.定期系统会退出Doze模式一小段时间让app完成推迟的活动,此段时间称为 ‘maintenance window’(维护时段),在这段时间系统运行此原创 2017-08-30 11:53:46 · 2695 阅读 · 0 评论 -
一张图搞定-RxJava2的线程切换原理和内存泄露问题
RxJava2的线程切换原理和内存泄露问题分析不管你信不信,一张图搞定此问题原创 2017-06-11 17:01:29 · 18919 阅读 · 4 评论