Understanding Android Source: Binder Library

Android Binder的前身是OpenBinder,已经于2014年10月合并入Linux主线,得到Linux阵营的认可。其可以理解为一种面向对象的远程调用。
[ Read More » ]Android Binder的前身是OpenBinder,已经于2014年10月合并入Linux主线,得到Linux阵营的认可。其可以理解为一种面向对象的远程调用。
[ Read More » ]程序的内存按类型来划分,分为三种:
管理对象生命周期,常常会采用引用计数技术。当有一个新的指针指向了一个对象时,这个对象的引用计数就增加1;相反,当一个指针不再指向一个对象时,这个对象的引用计数就减少1。而当对象的引用计数减少为0时,它所占用的内存就可以被安全地释放了。
上述方案可以应对大部分使用场景,但是,对于相互引用的情况,却无能为力。比如,两个对象A和B,A引用了B,同时B也引用了A。在任何时间,它们都被对方引用着,以致于无法被释放。对此,一般做法是通过强、弱引用计数予以解决。将有关联的对象划分为“父-子”和“子-父”关系。在前者中,“父”对象通过强引用计数来引用“子”对象;在后者中,“子”对象通过弱引用计数来引用“父”对象。
[ Read More » ]为Nexus 5编译自己修改后的 AOSP 已经很长一段时间了,但一直以来,都遇到其频繁打印一段日志,不仅严重干扰了视觉,还冲掉了原本有意义的日志信息。
[ Read More » ]本篇文章记录了在读完《Android系统源代码情况分析》第二章“硬件抽象层”的动手实践过程。该书讲述了从内核到框架,再到应用的整个知识链条,从它出版到现在,我一直在不断地翻阅它,获益匪浅,推荐给大家。
硬件抽象层(HAL)是连接硬件、内核、框架、应用四者的纽带,理解了它,再去学习其他模块,可以有事半功倍的效果。其中,如何为内核增加新模块,又是学习HAL的必备环节。该书是在模拟器上进行讲解,好处在于学习成本很低,无需准备硬件,弊端就是运行模拟器非常慢,耽误时间。所以,我使用Nexus 5手机进行各种实验,一来效率高,二来最大化手机的功用。
[ Read More » ]