Learning English From Android Source Code:1
英语在软件行业的重要作用不言自明,尤其是做国际项目和写国际软件,好的英语表达是项目顺利进行的必要条件。纵观目前的IT行业,能够流利的与国外客户英文口语交流的程序员占比并不是很高。要想去国际接轨,语言这一关一定要过。
本人做刚入行的时候非常想找一本专门写给程序员的英文教材,但并没有找到特别合适的。通过这几年的欧美项目经理,我发现与国外同行交流重在表明交流的意图而轻语法规定。一件事情的表述,只要能够用几个Key Words来表述清楚,双方能够理解即可,并没有使用我们上学期间艰深晦涩的语法知识。既然这样,词汇量就变得更加重要了。
这几年一直在做与Android源码相关的事,对于开源项目的学习,Linus说的好,我们只有Read The F**king Source Code才能够真正的领悟项目的真谛。在我阅读的过程中不断有些很好的单词或表达方式,我们在今后的项目沟通中可以使用它,毕竟这还是比较原汁原味的表达呢。我准备把这些单词记录下来,对比通常的表达形式和在源码注释中的使用来更加深刻的学习它们。我只是随机的将单词写出来,并没有遵循一定的规则。
下面是今天的5个词。
1.recipient
词典中的释义:
recipient[英][r?‘s?p??nt][美][r??s?pi?nt]
n.接受者; 接收者;容器; 容纳者;
adj.容易接受的; 感受性强的;
复数:recipients
例句:This site lets you set a date for delivery, making it easier to surprise your recipient.
源码中的使用:
在Binder源码中意思为接受者。在IBinder.java中有个接口叫作DeathRecipient,用来作为binder死亡通知的接受者。
用linkToDeath方法的注释来作为例句:
Register the recipient for a notification if this binder goes away.
如果binder退出就通知注册的接受者(register这里是动词注册的意思,此句这样翻译个人认为好理解一些)。
在TelephonyManager.java中也译作接受者|接收者,例如如下:
Each of these URI schema carry the recipient information the same way: the path part of the URI contains the recipient‘s phone number or a comma-separated set of phone numbers if there are multiple recipients.
2.antagonize
词典中的释义:
antagonize[英][?n?t?g?na?z][美][?n?t?ɡ??na?z]
vt.使成为敌人; 引起…敌对[对抗]; 对…起反作用; 中和;
例句:No company can afford to antagonize China.
源码中的使用:
抱歉,明明是在源码中看见的,现在竟然找不到了。
3.sink
词典中的释义:
sink[英][s??k][美][s??k]
vi.淹没; 下落; 退去; 渐渐进入;
vt.使下沉; 使下垂; 砸入地面; 使败落;
n.水池; 洗涤槽; 污水坑;
第三人称单数:sinks;过去分词:sunk;复数:sinks;现在进行时:sinking;过去式:sank
例句:Wood does not sink in water.
源码中使用:
在音视频相关句子中我觉得应该作水池|池讲。如子AudioTrack.java中:
It allows streaming of PCM audio buffers to the audio sink for playback.
它允许PCM音频缓冲区中的流向音频池中写入以用来播放。
4.track
词典中的释义:
track[英][tr?k][美][tr?k]
n.小路,小道; 痕迹,踪迹; 轨道,音轨; 方针,路线;
vt.跟踪; 监看,监测; 追踪;
vi.沿着轨道前进; 沿着一条路走,旅行; 位于一队列中;
第三人称单数:tracks;过去分词:tracked;复数:tracks;现在进行时:tracking;过去式:tracked
例句:You‘ll find your train at track 8. 你会在8号轨道找到你的列车。
源码中使用:
常见在音频系统中,译作音轨,如AdudioTrack.java中getLatency的注释:
Returns this track‘s estimated latency in milliseconds. 以毫秒为单位返回这个音轨预计的延迟。
estimated[英][‘est?met?d][美][‘est?met?d]
adj.估计的; 预计的; 估算的;
latency[英][‘le?t?ns?][美][?letn:si]
n.潜伏; 潜在因素; 延迟
5.offload
词典中的释义:
offload[英][??f‘l??d][美][??f?lod, ?ɑf-]
v.卸下,卸货;
第三人称单数:offloads;过去分词:offloaded;现在进行时:offloading;过去式:offloaded
源码中使用:
AudioFlinger::PlaybackThread::Track::flush() 方法在Tracks.cpp中有下面的注释,仍作卸载译。
Prevent flush being lost if the track is flushed and then resumed before mixer thread can run.This is important when offloading because the hardware buffer could hold a large amount of audio.
751 // Prevent flush being lost if the track is flushed and then resumed 752 // before mixer thread can run. This is important when offloading 753 // because the hardware buffer could hold a large amount of audio 754 playbackThread->flushOutput_l(); 755 playbackThread->broadcast_l();
这句有些难翻译,我尝试我的理解(有不同的见解还望指点):
如果音轨已经执行过flush(我觉得译为清除和清空较好)了并且恢复之前混音器(mixer)的线程可以执行的时候可以防止flush丢失(未执行)。
当卸载的时候这很重要,因为硬件缓冲可以容纳大量的音频。
flush[英][fl??][美][fl??]
vi.脸红; 呈红色; 奔流; 冲刷;
adj.满面红光的; 富足的,丰富的; 盈满的,没过的; 水平的,同高的;
n.奔流,涌出; 脸红或发亮; 发热; 强烈情感的冲动;
vt.发红或发亮; 使兴奋或得意; (以水)冲刷,冲洗; 冲掉,除掉;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。