英语在软件行业的重要作用不言自明,尤其是做国际项目和写国际软件,好的英语表达是项目顺利进行的必要条件。纵观眼下的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.easy接受的; 感受性强的; 
复数: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.发红或发亮; 使兴奋或得意; (以水)冲刷,冲洗; 冲掉。除掉;

Learning English From Android Source Code:1的更多相关文章

  1. Learning English From Android Source Code:2 Ampersand

    这一次想把标点符号的英语表达总结一下,这些单词非常重要但easy被我们忽视.以我的经验,还是多认识几个.以备不时之需. 以下从"标点符号"開始: punctuation [英][ˌ ...

  2. Learning from the CakePHP source code - Part I

    最近开始痛定思痛,研究cakephp的源码. 成长的路上从来没有捷径,没有小聪明. 只有傻傻的努力,你才能听到到成长的声音. 下面这篇文章虽然过时了,但是还是可以看到作者的精神,仿佛与作者隔着时空的交 ...

  3. Troubles in Building Android Source Code

    Some Troubles or problems you may encounter while you setup the Android source code build environmen ...

  4. Android Source Code

    一. Android 框架 http://elinux.org/Master-android Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各 ...

  5. Learning from the CakePHP source code - Part II

    原文:http://debuggable.com/posts/learning-from-the-cakephp-source-code-part-ii:480f4dd6-57fc-4715-8709 ...

  6. Google android source code build 问题总结【转】

    本文转载自:http://light3moon.com/2015/01/31/Google%20android%20source%20code%20build%20%E9%97%AE%E9%A2%98 ...

  7. Increasing heap size while building the android source code on Ubuntu 15.10

    http://stackoverflow.com/questions/34940793/increasing-heap-size-while-building-the-android-source-c ...

  8. Android source code compile error: “Try increasing heap size with java option '-Xmx<size>'”

    export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./pr ...

  9. android activity 启动过程分析(source code 4.4)

    说实话,android source code从2.3到4.4变化是蛮多的,尤其是media部分,虽然总的框架是没有多大变化,但是找起代码来看还是挺麻烦的.在android里面最受伤的是使用了java ...

随机推荐

  1. [BZOJ4556][TJOI2016&&HEOI2016]字符串(二分答案+后缀数组+RMQ+主席树)

    4556: [Tjoi2016&Heoi2016]字符串 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1360  Solved: 545[S ...

  2. 2018 计算之道初赛第二场 阿里巴巴的手机代理商(困难)(反向可持久化Trie)

    阿里巴巴的手机代理商(困难) 阿里巴巴的手机代理商正在研究 infra 输入法的新功能.他们需要分析单词频率以改进用户输入法的体验.于是需要你在系统内核里面写一个 API. API 有如下功能: 添加 ...

  3. poj2117 Electricity

      试题描述 求一个图删除一个点之后,联通块最多有多少. 输入 多组数据.第一行两个整数 P,C 表示点数和边数.接下来 C 行每行两个整数 p1,p2,表示 p1 与 p2 有边连接,保证无重边.读 ...

  4. 内功心法 -- java.util.LinkedList<E> (5)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  5. JDK源码(1.7) -- java.util.AbstractList<E>

    java.util.AbstractList<E> 源码分析(JDK1.7) ------------------------------------------------------- ...

  6. sklearn中的超参数调节

    进行参数的选择是一个重要的步骤.在机器学习当中需要我们手动输入的参数叫做超参数,其余的参数需要依靠数据来进行训练,不需要我们手动设定.进行超参数选择的过程叫做调参. 进行调参应该有一下准备条件: 一个 ...

  7. Linux知识(6)----VIM

    vi的第一版是由Bill Joy在1978年写成的,当时他是UC Berkeley的学生.后来他共同创建了神奇的Sun公司.vi来源于visual一词,目标是在终端上可视化地模拟文本的编辑,是的更人性 ...

  8. 人脸检测:微软 VS Face++

    近些年国内的人脸技术已经得到了很大的发展,今天网上无意看到了微软和face++两家公司的人脸检测,Face++号称国际顶尖的技术,也用过他们的接口感觉确实很不错,而微软则不再话下了.于是想对比微软和F ...

  9. ExtJs2.0学习系列(12)--Ext.TreePanel之第一式

    今天开始,我们就开始一起学习TreePanel了,道个歉,上篇的代码很乱阿. 我总是喜欢用最简单的例子开始,去理解最基本的使用方法,减少对i后面高级使用的干扰! TreePanel是继承自Panel, ...

  10. JAVA容器-浅谈HashMap的实现原理

    概述 HashMap是通过数组+链表的方式实现的,由于HashMap的链表也是采用数组方式,我就修改直接利用LinkedList实现,简单模拟一下. 1.Key.Value的存取方式. 2.HashM ...