《深入理解Android 卷I》 勘误表

时间:2021-07-18 11:56:04

2011-10-11第一次勘误

特别感谢jdxwind网友的大力支持。对所有给本书提bug的童鞋们表示衷心的感谢。

1. 目录XIII ——StartThread_Pool,joinThread_Pool。这两个单词中间的Pool没有空格。P149页中的目录项也需要修改。

2.    P15,模块_jni.so,中间多了空格。

3.   P388 代码,Mutext::Autolock 和下面的注释未予sp<BufferSource>一行对齐

4.     P233页:因为读者可能在等待可写的,改成:因为写者可能在等待可写的..

5.    P234页:offset是外界传入的基于userBase的一个偏移量,它的值是userBase+512,

这句话改为:offset的值是user(此时等于1024),而userBase也是1024,所以.....

6.     P460页:在标题 MTD的介绍那,需要加上引用: 如下图所示

《深入理解Android 卷I》 勘误表

7.     P101:如果c为1,则弱引用计数为0,这说明没用弱引用指向实际对象,.....改成没有弱引用...

8.     P325页下方,[-->SurfaceControl.cpp]改成[-->Surface.cpp]

9.     P174:第二行,AudioRcorder----改成AudioRecord

10.     P120页:这三条汇编指令,如果按正常的顺序连续执行,是没有问题的,但在多线程时就不能保证了。例如,线程1在执行第一条指令后,线程2由于调度的原因,抢先在线程1之前连续执行完了三条指令。这样,线程1继续执行指令时,它所使用的值就不是线程2更新后的值,而是之前的旧值。再对这个值进行操作便没有意义了。改成:这三条汇编指令,如果按正常的顺序连续执行,是没有问题的,但在多线程时就不能保证了。例如,线程1在执行第一条指令后,线程2由于调度的原因,抢先在线程1之前连续执行完了三条指令。这样,线程1继续执行指令时,它所使用的值却是线程2更新后的值,而非之前的值。再对这个值进行操作就有可能造成错误的结果。

11.     P133 代码:AutoMutex _l(gProcessMutex); 代码排版有问题;应该和下面的if语句对齐

12.    P97: mRefs是引用计数管理的关键类----这句话改成mRefs所属的weakref_impl类是引用计数管理的关键类

13.     P97:最后一个代码段:内容改成:

          weakref_impl(RefBase* base)

         :mStrong(INITIAL_STRONG_VALUE)//这里的注释不变

         ,mWeak(0)

        ,mBase(base)

        ,mFlags(0)

         {

       }

14.     P109页:我们先分析Threa 类----》改成我们先分析Thread类

15.     第五章,凡是出现Thread.cpp的,均换成Threads.cpp。包括前面的文件位置。谢谢

16.     P115:显示调用Mutex----》改成显式调用Mutex

17.     P434:代码段I:[-->Ril.cpp]改成[-->Ril_event.cpp]。本章的文件引用位置,增加一项:在Ril_event.h下增加一个Ril_event.cpp(hardware/ril/libril/Ril_event.cpp)

18.     P434:最后一行:下面这两行代码初始化一个FD为的s_wakeupfd_event的任务。此句中的s_wakeupfd_event改成s_fdWakeupRead

19.    P445页:代码段中://SOCKET_NAME_RIL的值为”Ril”,改成值为”rild”。注意全为小写。

20.     P32:读者在编写代码时务小心对待,改成务必

21.     P50:zygote是通过fork和execv共同创建的,改成execve

22.     P90 Watch Dog的中文意思是看门狗。这里多了两个空格。紧接的---》后面的“程序经常  跑飞比如说电磁干扰等),----也多空格。

23.     P73:代码段:

             else if (index == 0)  前面增加 ......省略符号

24     P448:代码中的:AT命令由它发送给Rild,改成Ril命令由它发送给Rild。

25.     P455:封装了Rild对AT指令的处理函数:改成封装了Rild对Ril命令的处理函数。