谈谈 Java 的引用类型

前面有一篇谈内存泄漏,当 Activity 使用到 AsyncTask 更新 UI 时,需要使用 WeekReference 来引用 Context,以免造成 Activity 不被回收,内存泄漏。可见合理的使用引用类型是多么的必要。这里就专门挑一块土地,梳理一下 Java 的引用类型。

Read More

ADB 常见命令

Mac 下的 iTerm 终端真是炫酷到爆,而且超级好用,在调试 Android 应用的时候,在终端下使用一些 ADB 命令,能帮助我们提高不少效率,下面就整理常见的一些 ADB 操作。

Read More

谈谈 Handler 机制

说到 Handler,立马会联想到异步消息机制,从而扯出 Looper 以及 Message。一个异步消息机制的流程大致这样:Handler 发送一个 Message 进入到 MessageQueue 中,Looper 不断的轮询 MessageQueue 取出 Message,然后将消息 分发给 发送给它的 Handler 对象,最后我们复写 handler 的 handleMessage(msg) 方法处理消息。下面详细分析。

Read More

AsyncTask 源码解读

前面有一篇文章说了说线程池,如果对线程池还不太了解的,请务必先了解一下,因为这次要说的 AsyncTask 正是基于 线程池,它的源码只有 600 多行,刨去一堆注方法释,在刨去定义的线程池,代码真的不多!

Read More

Android 内存泄漏 的解决方案

Android 内存泄漏是很有必要引起极大重视的一个话题,因为绝大部分的内存泄漏是可以避免的,如果开发者的目标只是开发出来,而不思考自己写得代码是否隐藏着风险,是否可以进一步优化,那么毫无疑问,永远无法成为高级工程师。下面我来梳理一下可能引起内存泄漏的代码以及相应的解决方案。

Read More

说说线程池

线程池就好比一个部门,部门一般都有一个项目经理,他有一系列的项目需要安排手下去完成,当人手不够的时候,就去招人,人手够了,大家都紧锣密鼓的工作了,几天后,项目经理发现任务比较多,心里考虑着先把多余的任务排列好,等大家忙完再分配,又过了几天,任务越来越多了,需要动态的再招几个人备用,终于人手差不多了,这个时候,如果项目任务还是很多,项目经理就该考虑挡住一些任务了。

Read More