
小李飞刀
士不可不弘毅,任重而道远
在Binde的第一篇文章里面,讲到了service manager启动后,他的binder线程阻塞在等待队列中,要等到有新任务把他唤醒。我们知道一些常用的服务比如AMS,PMS等都是通过addService放到注册到service manager中的,但是在调用addService之前,我们怎么获得
对于android开发者来说,相信binder都听说过,但是binder不像四大组件哪些之类的,具体的我们可以很直观感受到的模块,好像总是有一种说不上但是时时刻刻存在的感觉。的确,binder对于我们平时开发虽然接触没有直接的感觉,但是他确存在于几乎每一个程序之间,甚至可以说是最重要的基石之一,如果
前两篇文章主要从应用到内核,把日志的写入过程说完了,这篇文章我们来说一下,日志的读取过程。一般对于我们开发者来说,在开发应用过程中,日志对应用的功能实现是没有影响的,主要是在出现问题的时候,我们会去从日志文件中寻找线索,所以读取日志的过程其实就是从前面说的写入的日志文件中,把日志给解析出来,其实就是
上篇文章从开始的app中打印一条log开始一直讲到进入到运行库中调用设备的write方法,现在开始要进入内核来写日志了。下面开始先介绍下内核中和日志有关的类中相关的变量和方法。// 文件路径 drivers/staging/android/logger.c#define LOGGER_LOG_RA
大家在平日的android开发中,可能每个人负责的模块不一样,所以接触到的代码别人有些也不熟悉,但是有一个模块肯定对于几乎所有人都是知道的,工作中肯定也是都会接触到了,那就是日志模块,也叫log。虽然log对具体的每个功能没有直接的影响,但是却对开发来说至关重要,我们开发出的程序不可能没有问题,一旦
前面已经说过了轻量级智能指针和强引用智能指针,今天来说一下最后一个弱引用智能指针。弱引用指针的概念其实和前面介绍的强引用关系是比较密切的,再了解了强引用的基础上再来看弱引用,这样逻辑上就可以比较通顺了。相对前2个智能指针而言,弱引用智能指针算是最复杂的一个(其实也还好,理解了强引用,其实也就比较容易
之前文章说了智能指针中的轻量级指针,对于轻量级指针还是比较好理解的,现在这篇文章就来说一下强引用指针。具体说强引用指针之前,先说一个场景,有助于对为什么要有强引用指针以及接下去要说的弱引用指针有个比较直观的理解。