• 半导体或芯片的90nm、65nm 、0.25um、0.18um等是IC工艺先进水平的主要指标。这些数字表示制作半导体或芯片的技术节点(technologynode),也称作工艺节点。IC生产工艺可达到的最小导线宽度,实际物理意义有“半节距”...

    半导体或芯片的90nm、65nm 、0.25um、0.18um等是IC工艺先进水平的主要指标。这些数字表示制作半导体或芯片的技术节点(technologynode),也称作工艺节点。IC生产工艺可达到的最小导线宽度,实际物理意义有“半节距”、“物理栅长”、“制程线宽”等。线宽越小, 集成的元件就越多,在同一面积上就可以集成更多电路单元,同时功耗也越低。但是随着线宽缩小,需要的工艺设备越来越复杂,设计难度也增加,相应增加了成本,这方面需要综合考虑。

        半导体业界通常使用“半节距”、“物理栅长(MOS管栅极的长度)”和“结深”等参数来描述芯片的集成度,这些参数越小,芯片的集成度越高。举个例子,某种芯片采用90nm工艺,其中半节距为90nm,而晶体管的物理栅长为37nm。半节距(half-pitch),是指芯片内部互联线间距离的一半,也即光刻间距的一半。由于历年来每一个新的技术节点总是用于制造DRAM芯片,因此最新的技术节点往往是指DRAM的半节距。另外,在技术文章中还有两种与“半节距”意义相近的表达方式,就是“线宽”、“线距”和“特征尺寸”,如果线宽等于线距,则半节距就等于线宽、线距,它们不过是对同一个数据的不同表达。

        一旦到纳米级的时候由于芯片功耗的不断增加,互连线上的电流密度也越来越大,有可能造成了细线上的电迁移现象。在芯片制造过程中晶体管的栅极聚集的电荷可能会使栅击穿即产生天线效应。互连线间的耦合电容的存在会导致一条线上的信号跳变时引起另一条线的信号稳定性,即发生串扰现象。

        下面我们来了解一下0.35um的工艺和0.18um的工艺区别,其工艺区别主要在前端。比较如下:

    工艺尺寸

    隔离方式

    SAB

    GATE生长

    金属层

    电容

    gate

    0.18um

    STI

    CO

    不用DOPE

    5M以上

    PIP

    长掺杂poly

    0.35um

    local

    TI

    用DOPE

    2P3/2P4M

    MIM

    不长poly

    0.18用了STI,0.35的话可以用local的方法进行隔离;

    0.18用CO做SAB,0.35的是用的TI;

    0.18的GATE生长是不用DOPE的,在后续S/D的时候一起打了,0.35的话是DOPE的;

    然后0.18的金属层要比0.35的多一些.一般看到0.35的都是2P3或者2P4M的,0.18的话一般都是5M以上了,还有就是0.35多用PIP做电容,0.18的话多用MIM做电容。

    0.18gate下长一层没有参杂的poly,再注入杂质,这样可以精确的控制poly的电性参数。0.35gate直接长参杂的poly,因为0.35对poly的电性参数的要求不是很高。

     

    关于半导体制造0.18um工艺的问题

    1.半导体制造的 0.18um工艺,上面明白写着有5V的工艺,而为什么在我这个库里面没有5V的管子,因为我这个是logic signal的库吗,还有一个Mix-signal库吗?
    答:0.18um logic/mix-signal baseline 的工艺為1.8V/3.3V 
         在baseline 的工艺有 5V tolerance 的 ESD I/O 
        另外有 0.18um Logic 1P6M(1P5M,1P4M) Salicide 1.8V/5V or  1.8V/5.5V Ultra Low Leakage (ULL) process   及 1.8V/5.5V/32V High-Voltage LDMOS process


    2.在工艺中有native NMOS和Medium NMOS,看了这么模型和正常MOS管如n18的参数进行比较,主要区别在于阈值电压的不同,能提供一些native NMOS和Medium NMOS的应用情况吗?

    Native device 及 Medium device 會用在 low-volage 或 low-power 電路
        其中Native device 不需要額外的 Mask, 而 Medium device 則需要額外的 Mask.

    3.管子的工作电压问题!比如3.3V IO PMOS MODEL中的管子长期正常工作电压在是要保证源漏、栅源、漏衬等各个两端电压不超过3.3的10%左右,请问这个在哪儿可以查到,只有去问 foundry了吗?这些电压的大小与工艺的什么有关,是不是工艺定了,对于一个特定的管子3.3V IO PMOS MODEL就不能改变这些了。管子的齐纳击穿电压和雪崩击穿电压又怎么查?我记得这个是用软件可以测出来,不过foundry也应该给这个数据,对吗?

    3. 3V IO MOS 的規格, 可以參考 foundry 給 ESD IO datasheet 或 foundry 工廠的 reliability report.

     

     

    展开全文
  • 物联网操作系统比较

    2019-04-25 08:37:45
    2019-03-18 11:43:38 编者说明:物联网操作系统几乎都是在传统的RTOS(如FreeRTOS、UCOS)添加网络协议栈发展起来的。由于Linux自身保护网络协议栈,所以也有操作系统是高度裁剪Linux内核而来,但是由于linux...

    https://www.toutiao.com/a6669571469074235918/

     

    2019-03-18 11:43:38

    编者说明:物联网操作系统几乎都是在传统的RTOS(如FreeRTOS、UCOS)添加网络协议栈发展起来的。由于Linux自身保护网络协议栈,所以也有操作系统是高度裁剪Linux内核而来,但是由于linux需要跑MMU,所以一般需要高级CPU,也需要M级别的RAM。本文转载自知乎技术博文(https://zhuanlan.zhihu.com/p/23618181),并进行部分删减修改。

    一、操作系统清单

    Brillo (a solution from Google for buildingconnected devices)

    mbedOS (ARM mbed, The ARM IoT DevicePlatform)

    RIOT (The friendly Operating System for theIoT)

    Contiki (an open source operating systemfor the IoT)

    Zephyr (a small, scalable real-timeoperating system for use on resource-constrained systems)

    Nuttx (a RTOS with an emphasis on standardscompliance and small footprint)

    除了单独对这些OS介绍外,我们也会来个横向大比拼。目的是让项目负责人,产品经理在对系统选型的时候能有个合理的参考。嵌入式系统中,最好用,生态最好的当然是Linux。但当系统较小,能力不足以跑Linux的时候,就很容易纠结,特别是对于生态要求很高的应用。

    二、Brillo

    https://developers.google.com/brillo/

    Brillo: Google’s OS for IoT MPU devices

    • Targeted at smarthomes

    • Expanding to buildingsand industry

    • Supports MPU devicesw/ min 35MB of RAM

    Brillo需要跑在带MMU的AP上。其实很显然,Brillo基于Android,它再怎么裁剪,也是需要跑在Linux,Kernel上还要打一堆patch。只是它把Android上关于图形、JAVA虚拟机及Framework统统裁减掉。只保留了C/C++运行环境,Binder IPC,SSL等网络安全必须组件。这也就意味着在Brillo上开发APP其实是Native的,而且驱动程序都由Android的那套HAL来做抽象,所以应用程序是直接和HAL、Lib来打交道。

    Brillo 架构框图

    物联网操作系统比较

     

    看似Google放了个IoT的操作系统出来,实际Google目前专注于应用场景中功能相对强大的节点,或者边界节点Border Router这样的角色。最重要的是Google利用Weave打通了设备节点到Google云端的通道。Google实际上是用了最小的代价,实现了移动设备平台Android、物联网节点和自己的云端的互联互通。至于那些跑不了Brillo的节点怎么互联互通,Google交给其他人去考虑了,反正Brillo也支持6LowPan, Thread之类的协议。如果你写过Android HAL/Service,那么开发Brillo App易如反掌,直接调用Device HAL去操作设备;调用WeaveAPI去做通讯。

    int ret =hw_get_module(LIGHTS_HARDWARE_MODULE_ID, &module);

    if (ret || !module)

    err(1, "Failed to load %s", LIGHTS_HARDWARE_MODULE_ID);

    ret =module->methods->open(module,

    LIGHT_ID_NOTIFICATIONS,

    reinterpret_cast<structhw_device_t**>(&light_device));

    if (ret || !light_device)

    err(1, "Failed to open %s", LIGHT_ID_NOTIFICATIONS);

    以上代码调用HAL统一接口打开一个LIGHT设备,是不是很熟悉?然后起个Daemon,利用Weave API来接收从网络上来的XMPP请求,对设备进行配置或者状态监测。在云端和移动端,可以使用网页版的Weave Developers Console和Weave App来控制监测设备。

    Brillo可以在资源较少的MPU上跑,35MB内存就行,老的ARM9估计也可以。它可建立很多低成本的设备节点,用来和智能设备、云端通讯,或者作为PAN内设备对外的桥梁Border router。Brillo可玩性应该很高,家里的PC机,路由器都可以拿来跑,生态系统强大。但致命缺点是,我们在天朝啊,你懂得。相信国内的BAT之类,会考虑移植,改造,变异。就如对Android一般。

    二、mbedOS

    2.1 简介

    mbed是ARM自己建立的IoT解决方案平台

    The ARM mbed IoT Device Platform providesthe operating system, cloud services, tools and developer ecosystem to make thecreation and deployment of commercial, standards-based IoT solutions possibleat scale.

    它被ARM分成三大部分

    mbed Cloud

    mbed Device Connector

    mbed Client

    ARM居然也自己搞了个Cloud,可以通过“mbed DeviceConnector”来访问连接到云端的设备。并提供网页版的Connector来管理设备,用户可以通过RESTful API over HTTP来写自己的APP。

    “mbed Client”的定义是这样的:

    a library that connects devices to mbedDevice Connector Service

    看似比较奇怪,其实就是一套可以移植到各种操作系统上的,能够和mbed Device Connector Service通讯的,跑在硬件设备上的软件库。它使用基于UDP的CoAP协议来通讯,使用mbedTLS来实现安全连接,兼容LWM2M。

    2.2 mbed Client 架构

    物联网操作系统比较

     

    说到这里,我们的主角mbedOS该登场了。ARM为了在基于ARM Cortex-M内核的硬件平台上实现对设备的操作,及通过Device Connector访问云端,它必须有一套可以支持mbedClient的软件解决方案。mbedOS既是基于RTOS内核,并提供各种ARM SoC硬件平台驱动和BSP的操作系统,在此之上,实现整个mbedClient库。在PAN的物联区域内,设备与设备的通讯都可以使用mbedOS提供的方案来解决,它支持NFC,RFID,BLE,6LowPAN甚至是Thread。在设备与云端的通讯上,mbedOS既支持以太网,WiFi,也支持3G。跑mbedOS的设备既可以是设备节点,也可以是边界路由器(比如6LowPAN转IPv6),也可以和智能设备通过BLE通讯。mbed Device Connector又可以使用CoAP协议在设备端和云端通讯。

    2.3 mbedOS对于网络的支持可谓很强大

    LWIP IPv4/v6, TCP/UDP

    mbed BLE stack

    6LowPAN (host, router, border router)

    Thread (ED, router, border router)

    BSD socket API

    除此之外,它还支持

    文件系统:cfstore,flash-journal等

    C++的驱动接口,及驱动抽象层HAL

    几乎所有使用ARM CortexM核的大厂硬件平台。广度可以,但深度有待提高

    也就是说mbed把每一类驱动都抽象成一个基类,真正做驱动移植的时候,从这个类派生出来,然后实现相应的HAL函数。使得用户在实例化该驱动派生类后,能够调用相应的类接口,从而访问实际的设备驱动程序。比如AnalogIn::read(),是返回ADC的采样结果。

    2.4 mbed生态

    ARM提供在线IDE,可以在线快速编译

    线下的开发环境也简单易用, mbed cli类似于android的repo

    github上的例子很多,参考性强

    社区相对比较活跃

    合作伙伴众多

    ARM搞起了云和RTOS,令人联想到之前的Linaro,看似前景不错。而且据说国内的BAT也有在使用mbed做产品,其实就把mbed Cloud换自己的云,改造下DeviceConnector即可。本人也正在研究mbed,之后会写些使用心得。

    三、RIOT

    https://github.com/RIOT-OS/RIOT

    3.1 简介

    The friendly Operating System for theInternet of Things

    RIOT官方的口号:)

    if your tiny IoT device can’t run Linux,use RIOT

    RIOT是面向开发者的,开源的,适合物联网的操作系统。它的背后没有某个公司的支持,而完全是由社区驱动。

    他的一些特性:

    标准的C/C++编程

    标准的gcc编译环境

    可以跑在8位,16位和32位的嵌入式系统上

    部分的POSIX接口兼容(以后的目标是全兼容)

    支持在Linux/Unix的虚拟机上运行

    实时性,快速的中断响应(~50 clockcycles)

    微内核,组件都可以动态加载,并且通过message来实现服务

    极小开销的多线程支持(< 25 bytesper thread)

    丰富的网络支持:6LoWPAN,IPv6,RPL,CoAP and CBOR

    高精度的定时器

    丰富的工具 (System shell, SHA-256, Bloom filters, …)

    3.2 RIOT 架构框图

    物联网操作系统比较

     

    RIOT的CPU的IP驱动基本都有一套统一接口,但是没有任何抽象层,被放在源代码的cpu\periph中。这意味着在做新的平台支持时,你要注意驱动的接口要和API文档里的一致,比如ADC的adc_init(), adc_read()。源代码的drivers则放着板级的驱动,比如NXP的MMA8541,利用i2c统一接口来访问。

    由于是微内核(microkernel)的实现,所有的系统服务包括时钟、网络协议栈、网络服务等,都是通过创建独立的线程来实现。在线程中都有event_loop来接收服务请求,处理并发送服务结果。RIOT中最关键的是GNRC(Generic network stack)网络协议栈,它实现了从MAC层一直到传输层的各种协议,如6LowPan,IPv4/v6,RPL,TCP/UDP。并且这些不同的协议栈之间通过netapi统一接口开放给用户。对于应用层来说,GNRC提供了conn和socket两种API。在安全方面,貌似802.15.4这层没有加入AES的支持,只提供tinyDTLS在应用层给用户使用。由于RIOT的POSIX的部分兼容性,及提供BSD socket的接口,很多应用都可以方便的移植过来,在pkg/你能找到例如libcoap,openwsn这样的应用。

    RIOT最早是由柏林自由大学开发的,目前完全由社区维护,貌似欧洲开发者居多。从devel maillist里来看,感觉社区活跃程度一般。每两周都有一个Virtual meeting,都还是大学在牵头。

    总之,一个很有想法的微内核,加上开发环境相对于之前熟悉Linux的开发者来讲很友好。应该是个潜力股。

    四、Contiki

    http://www.contiki-os.org/

    4.1 简介

    以下是维基百科对Contiki的介绍:

    Contiki is an operating system fornetworked, memory-constrained systems with a focus on low-power wirelessInternet of Things devices. Extant uses for Contiki include systems for streetlighting, sound monitoring for smart cities, radiation monitoring, and alarms

    可以看得出来,原来Contiki是为智能城市而诞生的。支持的平台有限,基本是内部集成CC24xx/25xx,MC1322x之类Radio的SensorTag平台,或者一个很小的MCU加上这些Radio模块的平台。从它所支持的平台也能看出,Contiki更加专注于小型传感器节点。它更关注与PAN内的节点通讯,当然他也有传统的IPv4/v6,TCP/UDP支持,使得利用CoAP可以用来和云端通讯。

    4.2 Contiki的特性:

    完整的网络支持,HTTP,UDP/TCP,以及低功耗协议6lowpan,RPL和CoAP。整个IPv6协议栈都是有思科贡献

    专门为小内存设备设计的内存管理器

    小巧的估算功耗的工具

    丰富的实例

    高效的支持外部Flash的Coffee flash文件系统

    Protothreads,事件驱动及多线程的编程模型

    Cooja网络模拟器

    Rime协议栈,比IPv6更轻量级的网络层

    Contiki也是个微内核(microkernel),所有的系统服务都是通过启线程完成,Protothreads线程整合了线程间事件通讯,使得编写系统服务非常容易。驱动程序方面,Contiki没有统一的驱动程序框架,驱动都是各家MCU自带开发包提供,这样的好处是能够保证生成的二进制代码够小。

    Contiki有个很有特色的模拟器,Cooja Network Simulator,可以运行很多例子,并且可以监控整个网络的包及节点状态。这样可以让用户在没有充足硬件设备的条件下做开发。

    Contiki社区基本依靠maillist讨论问题,github做pull request。从maillistarchive里看,社区活跃程度很一般。

    五、Zephyr

    https://www.zephyrproject.org/

    Zephyr居然是Linux基金会的合作项目。应该是由INTEL将WindRiver的商用操作系统WindRiverRocket部分开源后诞生的项目(今年才诞生)。目前可用资料不多,而且支持的硬件平台较少,ARM的平台就没几个。

    Zephyr像极了Linux,它的源代码目录结构Kconfig使用方式,启动流程,Driver Model都可以看出来。用户的应用程序是启动后创建的最后一个线程,用户的main()会在所有的驱动,组件及硬件板子初始化后被调用,驱动使用DEVICE_INIT(),组件使用SYS_INIT()初始化,并带有优先等级。驱动都会遵循统一的驱动结构:

    struct device {

    struct device_config *config;

    const void *driver_api;

    void *driver_data;

    };

    所以驱动要自己定义一个配置结构,一套API的函数指针,以及驱动状态结构。和Linux很像。

    网络支持很奇葩,协议栈居然都是用的Contiki的,Bluetooth还算比较全。子系统方面,文件系统、USB都是很简单,很原始的支持。安全方面,mbedTLS和tinyDTLS被拿了过来。

    总体来讲,Zephyr还处于初期,很多东西都不完善。Owner又是Intel,希望别重蹈Moblin的覆辙。

    六、Nuttx

    http://www.nuttx.org/

    Nuttx,实时操作系统,POSIX接口支持,Loadable内核模块支持,BSD socket,MMU支持,等等。我只能说,长的太像Linux了。Build也是Kconfig,目录结构也基本和LinuxKernel一样。

    ARM的核基本都支持

    文件系统也是VFS支撑,大而全。网络的,NAND MTD的,pseudo都支持

    自己的Clib,也可以支持uCLib

    全面的网络协议栈,但是没有wireless!

    有自己的USB协议栈

    我一开始没打算谈Nuttx,他的无线支持很差,就更别谈无线互联了。但是BAT居然有人用它做云OS。估计是团队实在太熟悉Linux了,跑不了Linux也要找个类似的开发环境。有了BAT的支持,Nuttx估计可以发达了。

    七、大比拼

    这里用一张比较简单的表来对比这些操作系统和生态

    物联网操作系统比较

     

    除了Brillo以外,其他都是RTOS有很小的内核。程序所占的内存和代码大小取决你需要的硬件平台的驱动多少,需要什么样的协议栈等等的功能。

    八、结尾

    最近行业趋势有所变化,除了互联网依然火热外,大家的焦点无疑都从手机投向了汽车、工业、物联网。大家都希望能够使用物联网和互联网将传统行业中的产品实现互联互通,实现信息共享、提高生活、生产效率和质量。我们所工作在的半导体行业中,除了给市场提供更符合需求的处理器以外,我们还需要提供基于自己处理器的软硬件解决方案。操作系统作为应用的基础、基石,显得非常的重要。本文只是粗劣的介绍和对比了这些物联网的操作系统,希望能对读者有所帮助。

    展开全文
  • 关于android定位方式 android 定位一般有四种方法,这四种方式分别是GPS定位、WIFI定位、基站定位、AGPS定位。 1、 Android GPS 需要GPS硬件支持直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块...

    关于android定位方式

    android 定位一般有四种方法,这四种方式分别是GPS定位、WIFI定位、基站定位、AGPS定位。

    1、 Android GPS

    需要GPS硬件支持直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块现在大部分的智能机应该都有了。通过GPS方式准确度是最高的但是它的缺点也非常明显。

    1、 比较耗电

    2、 绝大部分用户默认不开启GPS模块

    3、 从GPS模块启动到获取第一次定位数据可能需要比较长的时间

    4、 室内几乎无法使用。

    这其中缺点2、3都是比较致命的。需要指出的是GPS走的是卫星通信的通道在没有网络连接的情况下也能用。

     

    2、 Android基站定位

    Android基站定位只要明白了基站/WIFI定位的原理自己实现基站/WIFI定位其实不难。基站定位一般有几种:第一种是利用手机附近的三个基站进行三角定位,由于每个基站的位置是固定的,利用电磁波在这三个基站间中转所需要时间来算出手机所在的坐标;第二种则是利用获取最近的基站的信息,其中包括基站 id、location area code、mobile country code、mobile network code和信号强度将这些数据发送到google的定位web服务里,就能拿到当前所在的位置信息,误差一般在几十米到几百米之内。其中信号强度这个数据很重要。

     

    3、 Android Wifi定位

    根据一个固定的Wifi MAC地址通过收集到的该Wifi热点的位置然后访问网络上的定位服务以获得经纬度坐标。因为它和基站定位其实都需要使用网络所以在Android也统称为Network方式。

     

    4、 AGPS定位

    AGPS(AssistedGPS)辅助全球卫星定位系统是结合GSM或GPRS与传统卫星定位利用基地台代送辅助卫星信息以缩减GPS芯片获取卫星信号的延迟时间受遮盖的室内也能借基地台讯号弥补减轻GPS芯片对卫星的依赖度。和纯GPS、基地台三角定位比较,AGPS能提供范围更广、更省电、速度更快的定位服务。理想误差范围在10公尺以内,日本和美国都已经成熟运用AGPS于LBS服务(Location Based Service)基于位置的服务。AGPS技术是一种结合了网络基站信息和GPS信息对移动台进行定位的技术,可以在GSM/GPRS、WCDMA和CDMA2000网络中进行使用。该技术需要在手机内增加GPS接收机模块并改造手机的天线,同时要在移动网络上加建位置服务器、差分GPS基准站等设备。AGPS解决方案的优势主要体现在其定位精度上在室外等空旷地区其精度在正常的GPS工作环境下可以达到10米左右,堪称目前定位精度最高的一种定位技术。该技术的另一优点为首次捕获GPS信号的时间一般仅需几秒,不像GPS的首次捕获时间可能要2-3分钟。

     

     

     

     

     

     

     

     

     

     

     

     

    关于android上的gps定位

    关于gps定位,从卫星信号到android终端地图显示的整体流程图如下:


    以下简单介绍下GPS定位的相关知识

    一、GPS简介

    GPS(Global Positioning System), 即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。其目的是在全球范围内对地面和空中目标进行准确定位和监测。随着全球性空间定位信息应用的日益广泛,GPS提供的全时域、全天候、高精度定位服务将给空间技术、地球物理、大地测绘、遥感技术、交通调度、军事作战以及人们的日常生活带来巨大的变化和深远的影响。

    目前的民用GPS设备包括测量型和导航型。其中测量型产品的精度可达到米级甚至毫米级,但至少需要两台(套)才能达到设计精度要求,而且其内部结构复杂,单机成本一般在几万到几十万,适合专业高精度测量环境使用;导航型产品,由于其使用者对精度要求不高,一般为几十米,因此机器内部硬件相对简单,只须一台就可以完成导航工作,加之其价格相对较低,因而更有普及和推广价值。

    GPS系统一般由地面控制站、导航卫星和用户接收机(GPS的移动用户端)三大部分组成。导航卫星至少24颗,均匀分布在6个极地轨道上,轨道的夹角为60度,距地平均高度为20200公里,每12恒星时绕地球一周。

     

     

     

    二、GPS卫星信号结构

    GPS卫星发射的信号包含有三种成分,即50Hz导航电文(D码)伪随机码(C/A码或P码)载波(Ll,L2波段)。这3种信号分量都是在同一基准频率F0=10.23MHZ的控制下产生的。

    GPS卫星信号结构

     

     


    GPS卫星所采用的两种测距码,即C/A码和P码(或Y码),均属于伪随机码。

     1)C/A码:是由两个10级反馈移位寄存器组合而产生。码长Nu=1024-1=1023比特,码元宽为tu=1/f1=0.97752s,(f1为基准频率f0的10分之1,1.023 MHz),相应的距离为293.1m。周期为Tu= Nutu=1ms,数码率为1.023Mbit/s。

        C/A码的码长短,共1023个码元,若以每秒50码元的速度搜索,只需20.5s,易于捕获,称捕获码。

        码元宽度大,假设两序列的码元对齐误差为为码元宽度的1/100,则相应的测距误差为2.9m。由于精度低,又称粗码。

     2)P码

        P码产生的原理与C/A码相似,但更复杂。发生电路采用的是两组各由12级反馈移位寄存器构成。码长Nu=2.35*10^14比特,码元宽为tu=1/f0=0.097752s,相应的距离为29.3m。周期为Tu= Nutu=267d,数码率为10.23Mbit/s。

         P码的周期长,267天重复一次,实际应用时P码的周期被分成38部分,(每一部分为7天,码长约6.19 ,1012比特),其中1部分闲置,5部分给地面监控站使用,32部分分配给不同卫星,每颗卫星使用P码的不同部分,都具有相同的码长和周期,但结构不同。P码的捕获一般是先捕获C/A码,再根据导航电文信息,捕获P码。由于P码的码元宽度为C/A码的1/10,若取码元对齐精度仍为码元宽度的1/100,则相应的距离误差为0.29m,故P码称为精码。

     

    导航电文是包含有关卫星的参考星历、卫星工作状态、时间改正参数、卫星钟运行状态、轨道摄动改正、大气折射改正和由C/A码捕获P码等导航信息的数据码(或D码)。

        导航电文也是二进制码,依规定格式组成,按帧向外播送。每帧电文含有1500比特,播送速度50bit/s,每帧播送时间30s。

        每帧导航电文含5个子帧,每个子帧分别含有10个字,每个字30比特,故每个子帧共300比特,播发时间6s。为记载多达25颗卫星,子帧4、5各含有25页。子帧1、2、3和子帧4、5的每一页构成一个主帧。主帧中1、2、3的内容每小时更新一次,4、5的内容仅当给卫星注入新的导航电文后才得以更新。

           导航电文的格式


     

    一帧导航电文的内容


    1、 遥测字(TLM-Telemetry WORD)

        位于每个子帧的开头,作为捕获导航电文的前导。

    2、转换码(交接字)(HOW-Hand Over Word)    

    紧接各子帧的遥测字,主要向用户提供用于捕获P码的Z记数。所谓Z记数是从每个星期六/星期日子夜零时起算的时间记数(1.5s),表明下一子帧开始瞬间的GPS时。

    3、数据块1:含有卫星钟改正参数及数据龄期、星期的周数编号、电离层改正参数、和卫星工作状态等信息。 卫星钟改正参数a0、a1、a2分别表示该卫星的钟差、钟速和钟速变化率。任意时刻t的钟改正数为: 

    t=a0+a1(t-t0c)+a2(t-t0c)^2。

    参考历元t0e为数据块1的基准时间,从GPS时星期六/星期日子夜零时起算,变化于0-604800s之间。

    数据龄期AODC表示卫星钟改正参数的参考时刻t0c与最近一次更新钟改正参数的时间TL之差,主要用于评价钟改正数的可信程度。

    现时星期编号WN:表示从1980年1月6日协调时零点起算的GPS时星期数。

    4、数据块2:包含在2、3两个子帧里,主要向用户提供有关计算该卫星运行位置的信息。该数据一般称为卫星星历,每30s重复1次,每小时更新一次。

    5、数据块3:包含在4、5两个子帧中,主要向用户提供其他GPS卫星的概略星历及其工作状态信息,称为卫星的历书。第3数据块的内容每12.5分钟重复一次,每天更新一次。

     

     

     

    三、GPS接收机

     

    天线单元

    GPS信号接收机的天线单元为接收设备的前置部分。天线单元包含接收天线和前置放大器两部分。

    其中天线部分可能是全向振子天线或小型螺旋天线或微带天线,但从发展趋势来看,以微带天线用的最广、最有前途。

    为了提高信号强度,一般在天线后端设置前置放大器,前置放大器的作用是将由极微弱的GPS信号的电磁波能量转换成为弱电流放大。前置放大器分外差式和高放式两种。由于外差式前置放大器不仅具有放大功能,还具有变频功能,即将高频的GPS信号变换成中频信号,这有利于获得稳定的定位精度,所以绝大多数GPS接收机采用外差式天线单元。

     

    信号通道

    信号通道是一种软件和硬件相结合的复杂电子装置,是GPS接收机中的核心部分。其主要功能是捕获、跟踪、处理和量测卫星信号,以获得导航定位所需要的数据和信息。通道数目有1到24个不等,由接收机的类型而定。总的来讲,信号通道目前有相关型、平方型和相位型等三种。新一代GPS信号接收机广泛采用相关型通道,主要由信号捕获电路、伪噪声跟踪环路和载波跟踪环路组成。

     

    存储器

    这是GPS信号中接收机将定位现场采集的伪距、载波相位测量、人工量测的数据及解译的卫星星历储存起来的一种装置,以供差分导航和作相对定位的测后数据。

     

    微处理机

    接收机的计算部分由微处理机和机内软件组成。机内软件是由接收机生产厂家提供的,是实现数据采集、通道自校自动化的重要组成部分,主要用于信号捕获、跟踪和定位计算。微处理机结合机内软件作下列计算和处理:

     (1)开机后指令各通道自检,并测定、校正和存储各通道的时延值;

     (2)解译卫星星历,计算测站的三维坐标;

     (3)由测站定位坐标和卫星星历计算所有卫星的升降时间、方位和高度角,提供可视卫星数据及卫星的工作状况,以便获得最佳定位星位,提高定位精度。

     

    定位

    静态定位时,GPS接收机在捕获和跟踪GPS卫星的过程中固定不变,接收机通过高精度测量GPS信号的传播时间,并利用GPS卫星在轨的已知位置解算出接收机天线所在位置的三维坐标。而动态定位则是用GPS接收机测定一个运动物体的运行轨迹。GPS信号接收机所在的运动物体叫做载体(如航行中的船舰,空中的飞机,行走的车辆等)。由于载体上的GPS接收机天线在跟踪GPS卫星的过程中将相对地球而运动,这样,接收机用GPS信号就可实时地测量运动载体的状态参数(瞬间三维位置和三维速度)。

    GPS定位还受GPS网的限制,应用GPS卫星定位技术建立的控制网叫GPS网。归纳起来大致可分为两大类:一类是全球或全国性的高精度GPS网,这类GPS网中相邻点的距离在数千公里至上万公里, 其主要任务是作为全球高精度坐标框架或全国高精度坐标框架,以为全球性地球动力学和空间科学方面的科学研究工作服务。另一类是区域性的 GPS网,包括城市或矿区GPS网,GPS工程网等,这类网中的相邻点间的距离为几公里至几十公里,其主要任务是直接为国民经济建设服务。

     

    二维位置的确定

     

    由卫星产生的测距信号确定三维位置

     

    GPS接收机常识:

    1. 坐标 (coordinate)

      有2维、3维两种坐标表示,当GPS能够收到4颗及以上卫星的信号时,它能计算出本地的3维坐标:经度、纬度、高度,若只能收到3颗卫星的信号,它只能计算出2维坐标:经度和纬度,这时它可能还会显示高度数据,但这数据是无效的。大部分GPS不仅能以经/纬度(Lat/Long) 的方式,显示坐标,而且还可以用 UTM(Universal TransverseMercator) 等坐标系统显示坐标但我们一般还是使用 LAT/LONG 系统,这主要是由你所使用的地图的坐标系统决定的。

    2. 航点 (Landmark or Waypoint)

      GPS内存中保存的一个点的坐标值。在有GPS信号时,你可以存储成一个易认的名字,还可以给它选定一个图标。航点是GPS数据核心,它是构成“航线”的基础。标记航点是GPS主要功能之一,但是你也可以从地图上读出一个地点的坐标,手工或通过计算机接口输入GPS,成为一个航点。一个航点可以将来用于GOTO功能的目标,也可以选进一条航线 Route,作为一个支点。一般 GPS 能记录500个或以上的航点。

          3. 航线 (ROUTE)

      航线是GPS内存中存储的一组数据,包括一个起点和一个终点的坐标,还可以包括若干中间点的坐标,每两个坐标点之间的线段叫一条"腿"(leg) 。常见 GPS 能存储20条线路,每条线路30条"腿"。各坐标点可以从现有航点中选择,或是手工/计算机输入数值,输入的路点同时做为一个航点 (Waypoint/Landmark) 保存。

    4. 前进方向 (Heading)

      GPS没有指北针的功能,静止不动时它是不知道方向的。但是一旦动了起来,它就能知道自己的运动方向。GPS每隔一秒更新一次当前地点信息,每一点的坐标和上一点的坐标一比较,就可以知道前进的方向 。

          5. 导向 (Bearing)

      导向功能在以下条件下起作用:

      1.) 以设定"走向"(GOTO) 目标。"走向"目标的设定可以按"GOTO"键,然后从列表中选择一个航点。以后"导向"功能将导向此航点

       2.) 目前有活跃航线 (Activity route)。活跃航线一般在设置 -> 航线菜单下设定。如果目前有活动航线,那么"导向"的点是航线中第一个路点,每到达一个路点后,自动指到下一个路点。

    6. 日出日落时间 (Sun set/raise time)

      大多数GPS能够显示当地的日出、日落时间,这在计划出发 / 宿营时间时是有用的。这个时间是 GPS 根据当地经度和日期计算得到的,是指平原地区的日出、日落时间,在山区因为有山脊遮挡,日照时间根据情况要早晚各少半个小时以上。GPS的时间是从卫星信号得到的格林尼制时间,在设置 (setup) 菜单里可以设置本地的时间偏移,对中国来说,应设+8小时,此值只与时间的显示有关。

    7. 航迹 (Plot trail)

      GPS每秒更新一次坐标信息,所以可以记载自己的运动轨迹。一般GPS能记录1024个以上足迹点,在一个专用页面上,以可调比例尺显示移动轨迹。足迹点的采样有自动和定时两种方式自动采样由 GPS 自动决定足迹点的采样方式,一般是只记录方向转折点,长距离直线行走时不记点;定时采样可以规定采样时间间隔,比如30秒、一分钟、 5 分钟或其他时间,每隔这么长时间记一个足迹点。

     

     

     

    四、主流GPS方案供应商

    一台GPS设备关键的元件有天线、低噪音放大器(LNA)、射频接收转换(RF Section)、数字部分(也称数字基带,Digital Baseband)、微处理器(Microprocessor)、微处理器周边外设(Processor Peripherals)、输入输出和驱动(I/OandDriver)等几个部分。芯片提供商也强手如云,包括 SiRF、u-blox、Ti、Analog Devices、NXP、高通、英飞凌、索尼、意法半导体、Trimble(天宝)、Atmel、SiGe、u-Nav 等等。

    1、SiRF公司

    SiRF是GPS芯片的龙头供应商,产品线完整,能够提供完整的解决方案。

    代表产品:基于SiRFstarIII 架构的芯片GSC3e/LP与GSC3f/LP、GSC3LT与 GSC3LTf、GSC3LTi and GSC3Ltif,基于 SiRF Instant 架构的 GSCi-5000。现最新的模块为Fastrax iT430,它是基于SiRFstar IV芯片和SiRFaware软件技术的GPS模块。


    尺寸:9.6 x 9.6 x 1.85 mm

    2、Nemerix 

    NemeriX 提供的产品包括模拟射频接收器和数字基带处理器。

    Nemerix NB1042GPS 接收器模块,世界上功耗最低的GPS芯片组。


    3、TI

    TI的辅助GPS (A-GPS)解决方案在异步和同步蜂窝式网络内提供快速而精确的定位服务。这些解决方案在优化之后,适用于所有当前和发展中的无线标准(如 GSM、GPRS、EDGE、CDMA、UMTS 和 WCDMA)。 TI 在 2005 年推出的 90nm 工艺技术的单芯片 A-GPS 解决方案,GPS5300NaviLink 4.0单芯片采用 TI DRP技术,可实现离散的GPS解决方案。

    4、Atmel

    Atmel 的低功耗 GPS 模块芯片组高度集成并能极大节省制版空间。

    Atmel与Magellan推出新的GPS芯片组ATR0663,包括一个先进的 GPS 基带和一个具备集成 2D 图形加速器的 LCD 控制器(以实现 2048 x 2048像素的虚拟屏幕支持)、一个 AC97 音频控制器,以及一个图像传感器接口。多种输入/输出 (I/O) 选项,包括以太网 (Ethernet)、USB 2.0 Full Speed Hostand Device、SD/MMC、TWI 和 USART,为PND应用提供了一个高针对性的片上系统 (SoC) 解决方案。

    5、意法半导体

    ST 也能够提供面向 GPS 应用的全系列解决方案,适用于车载与便携式导航系统。最新一代的 ST 导航/信息娱乐平台名为 NaviFlex,其集成度更高:融合 GPS 接收器和 Nomadik 应用处理器,保证了汽车多媒体应用无与伦比的音频、视频和成像质量。

    6、Maxim

           Maxim 公司能够提供低噪声、低功耗的GPS前端接收器和独特的GPS方案。

    7、NXP

    恩智浦半导体 (NXP Semiconductors,原飞利浦半导体),恩智浦的解决方案成功地将高质量导航功能与丰富的多媒体处理结合在一起,包括 MP3 播放、标准的以及高清晰的视频播放及录制、调频收音机、图像存储和游戏等。

    8、英飞凌 

    Infineon和Global Locate合作推出的Hammerhead是全球首款单芯片CMOS GPS 接收器。该芯片支持移动站辅助式(MS-A)、移动站基于式(MS-B)、自主式和增强式跟踪模式。一流的室内信号跟踪效果,完全支持辅助式和自主式跟踪模式,即使在最微弱的信号环境中也可以进行高度精确的导航。Hammerhead 芯片的基于主机的软件架构,不仅将器件尺寸和成本减至最小,还允许将协议消息直接嵌入到 GPS 导航软件中。

    9、U-Blox

    来自瑞士的GPS技术公司u-blox AG公司以往主要提供命名为 TIM的GPS 模块,其中采用的SiRF公司GPS芯片。现在u-blox 也开始注重核心芯片的开发。新推出的 u-blox 5 系列全球定位系统以及随时可用的伽利略系统单芯片和芯片组拥有不到一秒的接收性能。这种新的芯片还拥有 SuperSense-160 dBm 探测和跟踪灵敏度、小于 50mW 的功率需求以及一个小于 100 平方毫米的覆盖区,适用于掌上电脑(PDA)、个人导航设备、照相机、手机、媒体播放器和其它电池操作便携式设备。

    10、高通

    目前,全球已有总计超过两亿部手机装备了高通公司的gpsOne辅助型GPS 技术。gpsOne 技术支持一系列极具吸引力的位置服务,其中包括各种各样针对消费者、商务和个人安全的应用。

     

     

     

    五、GPS标准格式数据

     

    模块输出信息主要包括4个部分:

    1、GPS定位信息GPGGA(Global Positioning SystemFix Data)

    $GPGGA,063740.998,2234.2551,N,11408.0339,E,1,08,00.9,00053.A,M,-2.1,M,,*7B
    $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
    <1> UTC时间,hhmmss(时分秒)格式
    <2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
    <3> 纬度半球N(北半球)或S(南半球)
    <4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
    <5> 经度半球E(东经)或W(西经)
    <6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
    <7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
    <8> HDOP水平精度因子(0.5~99.9)
    <9> 海拔高度(-9999.9~99999.9)
    <10> 地球椭球面相对大地水准面的高度
    <11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
    <12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)

     

    2、当前卫星信息GPGSA(GPS DOP and ActiveSatellites)

       

    $GPGSA,A,3,06,16,14,22,25,01,30,20,,,,,01.6,00.9,01.3*0D
    $GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>
    <1>模式 :M = 手动, A = 自动。
    <2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
    <3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
    <4> PDOP位置精度因子(0.5~99.9)
    <5> HDOP水平精度因子(0.5~99.9)
    <6> VDOP垂直精度因子(0.5~99.9)
    <7> Checksum.(检查位).

     

    3、可见卫星信息GPGSV(GPS Satellites in View)     

    $GPGSV,2,1,08,06,26,075,44,16,50,227,47,14,57,097,44,22,17,169,41*70
    $GPGSV,2,2,08,25,49,352,45,01,64,006,45,30,13,039,39,20,15,312,34*7A
    $GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>
    <1> GSV语句的总数
    <2> 本句GSV的编号
    <3> 可见卫星的总数,00 至 12。
    <4> 卫星编号, 01 至 32。
    <5>卫星仰角, 00 至 90 度。
    <6>卫星方位角, 000 至 359 度。实际值。
    <7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。
    <8>Checksum.(检查位).
    第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。

     

    4、推荐最小定位信息GPRMC(Recommended MinimumSpecific GPS/TRANSIT Data)

    $GPRMC,012724.000,A,2234.3157,N,11408.0921,E,0.00,,290108,,,A*71
    $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
    <1> UTC时间,hhmmss(时分秒)格式
    <2> 定位状态,A=有效定位,V=无效定位
    <3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
    <4> 纬度半球N(北半球)或S(南半球)
    <5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
    <6> 经度半球E(东经)或W(西经)
    <7> 地面速率(000.0~999.9节,前面的0也将被传输)
    <8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
    <9> UTC日期,ddmmyy(日月年)格式
    <10> 磁偏角(000.0~180.0度,前面的0也将被传输)
    <11> 磁偏角方向,E(东)或W(西)
    <12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
    我们所关心的是GPRMC这条信息,因为其中包括当前格林威治时间、经度、纬度、日期等。


    六、linux driver层

           UART接口,与gps模块通信,即读取gps的信息。

     

    七、android GPS hal层

           因为linux底层驱动只需要有uart接口就可以接收到gps数据了,而android的hal层会调用linux内核层的uart驱动,所以,这里uart驱动就不再分析了,只要hal层打开串口,然后read就可以了,这里我参考的是模拟器的gps。

    自己新建的文件夹,用来适配gps:

    hardware/libhardware_legacy/gps

    gps头文件:

    hardware/libhardware_legacy/include/hardware_legacy/gps.h

    首先看一下GpsLocation这个结构体。

    /** Represents a location. */
    typedef struct {
        /**set to sizeof(GpsLocation) */
       size_t          size;
        /**Contains GpsLocationFlags bits. */
       uint16_t        flags;
        /**Represents latitude in degrees. */
       double          latitude;
        /**Represents longitude in degrees. */
       double          longitude;
        /**Represents altitude in meters above the WGS 84 reference
         *ellipsoid. */
       double          altitude;
        /**Represents speed in meters per second. */
       float           speed;
        /**Represents heading in degrees. */
       float           bearing;
        /**Represents expected accuracy in meters. */
       float           accuracy;
        /**Timestamp for the location fix. */
       GpsUtcTime      timestamp;
    } GpsLocation;

    所有我们要知道的数据都在这里了:经度、纬度、海拔、速度、精确度、世界标准时间等。而上层也只是需要这个数据结构,所以只要把这个数据结构给android上层,那么就OK了。

    下面还是主要分析下android模拟器是如何实现的。先看下简单的流程图:


    首先看下hw主要结构体,gps是注册为hw模块的。编译后是生成gps.*.so的,而他的方法是调用gps_module_methods。

    const struct hw_module_t HAL_MODULE_INFO_SYM = {
        .tag =HARDWARE_MODULE_TAG,
       .version_major = 1,
       .version_minor = 0,
        .id =GPS_HARDWARE_MODULE_ID,
        .name ="Goldfish GPS Module",
        .author ="The Android Open Source Project",
        .methods =&gps_module_methods,
    };
    而gps_module_methods又调用了open_gps
    static struct hw_module_methods_t gps_module_methods ={
        .open = open_gps
    };

    再看看open_gps做了什么,初始化了很多函数指针,具体含义可以看

    static constGpsInterface  qemuGpsInterface = {
        sizeof(GpsInterface),
        qemu_gps_init,   //打开接口,提供callback函数
        qemu_gps_start,  //开始导航
        qemu_gps_stop,   //停止导航
        qemu_gps_cleanup, //关闭接口
        qemu_gps_inject_time,//注入当前时间
        qemu_gps_inject_location, //注入从其他定位方式得的当前位置。
        qemu_gps_delete_aiding_data, //
        qemu_gps_set_position_mode, //设置坐标模式
        qemu_gps_get_extension, //扩展信息
    };

    然后再看看各个函数,这些函数是jni层会调用到的,这里简单介绍初始化、数据上报等操作。

    首先是初始化函数qemu_gps_init,这里调用了gps_state_init函数,然后在这里打开我们要的串口驱动设备,开启读取gps数据的线程。

    state->fd = open(GPS_Serial_Name, O_RDONLY );
    state->thread = callbacks->eate_thread_cb("gps_state_thread”,gps_state_thread,  tate);

    当线程启动以后,那么就会在这个线程中处理一些事情了,接着看下gps_state_thread函数。

    这里会把callback函数给设置好,用以传数据给jni层。

    nmea_reader_set_callback( reader,state->callbacks.location_cb );

    串口读取gps的数据ret = read( fd, buff, sizeof(buff) );

    解析数据 nmea_reader_addc(reader, buff[nn] );

           然后他会调用nmea_reader_parse(r );函数

    这个函数会根据不同的gps协议格式来分别处理。

    if ( !memcmp(tok.p, "GGA", 3) )

    这里会根据GGA的格式来处理,比如:

    更新时间nmea_reader_update_time(r, tok_time);

           更新经纬度nmea_reader_update_latlong

           更新海拔nmea_reader_update_altitude

    else if ( !memcmp(tok.p, "GLL", 3) )
    else if ( !memcmp(tok.p, "GSA", 3) )
    else if ( !memcmp(tok.p, "GSV", 3) )

           其他的依次都差不多。具体可以看源码。

    最后处理完了以后,把便要把数据给jni层了。通过r->callback( &r->fix );这个callback函数,就是数据传输的主要函数了。

     

     

     

    八、android GPS的JNI层

    先还是看下jni层的主要流程吧:分为1、java到jni到hal和2、hal到jni到java。


     

    GPS的jni的代码是在下面这个目录下的:

    /framework/base/services/jni/com_android_server_location_GpsLocationProvider.cpp

    在com_android_server_location_GpsLocationProvider.cpp文件中,实现JNI方法。注意文件的命令方法,com_android_server_location前缀表示的是包名,表示硬件服务GpsLocationProvider是放在frameworks/base/services/java目录的com/android/server/location目录下的,即存在一个命令为

    com.android.server.location.GpsLocationProvider的类。

    在同一个目录下有一个onload.cpp,这个会注册这个jni并且调用register_android_server_location_GpsLocationProvider来实现java层到hal层的接口的调用。

    在android_location_GpsLocationProvider_init函数中,通过Android硬件抽象层提供的hw_get_module方法来加载模块ID为GPS_HARDWARE_MODULE_ID的硬件抽象层模块,其中,GPS_HARDWARE_MODULE_ID是在<hardware/gps.h>中定义的。Android硬件抽象层会根据GPS_HARDWARE_MODULE_ID的值在Android系统的/system/lib/hw目录中找到相应的模块,然后加载起来,并且返回hw_module_t接口给调用者使用。在jniRegisterNativeMethods函数中,第二个参数的值必须对应GpsLocationProvider所在的包的路径,即com/android/server/location/GpsLocationProvider。

           下面分步来看下,jni是如何工作的。

    首先是onload.cpp这里会调用到

    com_android_server_location_GpsLocationProvider.cpp的注册函数

    register_android_server_location_GpsLocationProvider,而这个注册函数就注册了应用层的GpsLocationProvider的jni。他会调用下面这个注册函数。具体各个参数含义,第一个是env,是jni技术的主要结构体JNIEnv,第二个参数就是所要注册的java服务程序的包。最后一个是native方法的回调函数了。

    jniRegisterNativeMethods(env,"com/android/server/location/GpsLocationProvider", sMethods,NELEM(sMethods));

    下面的是native方法的一些函数。

    staticJNINativeMethod sMethods[] = {
    {"class_init_native","()V", (void*)android_location_GpsLocationProvider_class_init_native},
        {"native_is_supported","()Z",(void*)android_location_GpsLocationProvider_is_supported},
        {"native_init", "()Z",(void*)android_location_GpsLocationProvider_init},
        {"native_cleanup","()V", (void*)android_location_GpsLocationProvider_cleanup},
    {"native_set_position_mode","(IIIII)Z",(void*)android_location_GpsLocationProvider_set_position_mode},
        {"native_start", "()Z",(void*)android_location_GpsLocationProvider_start},
        {"native_stop", "()Z",(void*)android_location_GpsLocationProvider_stop},
    …………………………
    };

    对于这个method做一些简单的解释吧:。

    第一个参数name是在java服务层定义的native函数。具体可以看

    frameworks/base/location/java/com/android/server/location/GpsLocationProvide.java下的代码。

    这个稍后分析。

    第二个参数signature是java服务层调用jni层的参数,具体的可以先看下面这个表:

    字符   Java类型    C类型
    V      void         void
    Z       jboolean     boolean
    I        jint         int
    J       jlong        long
    D      jdouble       double
    F      jfloat         float
    B      jbyte         byte
    C      jchar         char
    S      jshort         short

     

    数组则以"["开始,用两个字符表示

     
    [I       jintArray      int[]
    [F     jfloatArray      float[]
    [B     jbyteArray      byte[]
    [C    jcharArray       char[]
    [S    jshortArray       short[]
    [D    jdoubleArray     double[]
    [J     jlongArray       long[]
    [Z    jbooleanArray     boolean[]
     

    实际上这些字符是与函数的参数类型一一对应的。

    "()"中的字符表示参数,后面的则代表返回值。例如"()V" 就表示void Func();

    "(II)V"表示 void Func(int, int);

     

    上面的都是基本类型。如果Java函数的参数是class,则以"L"开头,以";"结尾中间是用"/" 隔开的包及类名。而其对应的C函数名的参数则为jobject. 一个例外是String类,其对应的类为jstring

    Ljava/lang/String;String jstring
    Ljava/net/Socket;Socket jobject

     

    如果JAVA函数位于一个嵌入类,则用$作为类名间的分隔符。

    例如"(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"

    由此,上面写函数的参数也知道了。

     

    第三个变量fnPtr是函数指针,指向C函数,也就是在jni的cpp代码中的。

     

    而jni和java代码的交互可以看下图所示:

    其实,java层和jni层都是可以互相调用的,而具体的java层调用jni的方法就是native声明的方法;jni调用java的话,要先获取java层的方法id,然后通过CallVoidMethod()等回调函数实现。


    有了以上的知识点作为基础的话,那么现在来分析下GPS的jni代码了。

    1、首先是android_location_GpsLocationProvider_class_init_native这个函数了。

    method_reportLocation =env->GetMethodID(clazz, "reportLocation","(IDDDFFFJ)V");
        ……………………………………
       method_requestUtcTime = env->GetMethodID(clazz,"requestUtcTime","()V")

    他先是获取所有的方法id。然后调用hw模块,也就是上面hal层编译的gps.*.so链接库

    err =hw_get_module(GPS_HARDWARE_MODULE_ID, (hw_module_t const**)&module);

    然后调用了hal层的gps的open函数了。

    err =module->methods->open(module, GPS_HARDWARE_MODULE_ID, &device);

    获取接口sGpsInterface =gps_device->get_gps_interface(gps_device);

    因为是gps不是agps所以

    sGpsXtraInterface =
              (constGpsXtraInterface*)sGpsInterface->get_extension(GPS_XTRA_INTERFACE);

    2、接着便是android_location_GpsLocationProvider_init这个初始化函数了。

           该函数主要是调用了

    if(sGpsXtraInterface &&sGpsXtraInterface->init(&sGpsXtraCallbacks) != 0)
            sGpsXtraInterface = NULL;

    这个函数的函数指针init就调用到hal层的init函数。也就是qemu_gps_init函数了。

    这里传进来了callback函数了。

    具体如下:

    GpsCallbackssGpsCallbacks = {
        sizeof(GpsCallbacks),
        location_callback,  //回调位置信息
        status_callback,    //回调状态信息
        sv_status_callback,  //回调sv状态信息
        nmea_callback,    //上报nema信息
        set_capabilities_callback, //回调告知框架层GPS的性能
        acquire_wakelock_callback, //获取GPS锁,不进行休眠
        release_wakelock_callback, //释放GPS锁
        create_thread_callback, //创建线程,可以调用java framework的代码
        request_utc_time_callback, //获取utc时间
    };

    具体函数可以看下面:

    staticvoid location_callback(GpsLocation* location)
    {
        JNIEnv* env = AndroidRuntime::getJNIEnv();
        env->CallVoidMethod(mCallbacksObj, method_reportLocation,location->flags,
                (jdouble)location->latitude,(jdouble)location->longitude,
                (jdouble)location->altitude,
                (jfloat)location->speed,(jfloat)location->bearing,
                (jfloat)location->accuracy,(jlong)location->timestamp);
        checkAndClearExceptionFromCallback(env,__FUNCTION__);
    }

    这里会调用method_reportLocation这个方法,这个方法是在java服务层调用的。这里通过CallVoidMethod函数调用了java framework的函数。

    staticvoid status_callback(GpsStatus* status)
    {
        JNIEnv* env = AndroidRuntime::getJNIEnv();
       env->CallVoidMethod(mCallbacksObj, method_reportStatus,status->status);
        checkAndClearExceptionFromCallback(env,__FUNCTION__);
    }
     
    staticvoid sv_status_callback(GpsSvStatus* sv_status)
    {
        JNIEnv* env = AndroidRuntime::getJNIEnv();
        memcpy(&sGpsSvStatus, sv_status,sizeof(sGpsSvStatus));
        env->CallVoidMethod(mCallbacksObj,method_reportSvStatus);
        checkAndClearExceptionFromCallback(env,__FUNCTION__);
    }
     
    staticvoid nmea_callback(GpsUtcTime timestamp, const char* nmea, int length)
    {
        JNIEnv* env = AndroidRuntime::getJNIEnv();
        // The Java code will call back to readthese values
        // We do this to avoid creating unnecessaryString objects
        sNmeaString = nmea;
        sNmeaStringLength = length;
        env->CallVoidMethod(mCallbacksObj,method_reportNmea, timestamp);
        checkAndClearExceptionFromCallback(env,__FUNCTION__);
    }
     
    staticvoid set_capabilities_callback(uint32_t capabilities)
    {
        LOGD("set_capabilities_callback:%ld\n", capabilities);
        JNIEnv* env = AndroidRuntime::getJNIEnv();
        env->CallVoidMethod(mCallbacksObj,method_setEngineCapabilities, capabilities);
        checkAndClearExceptionFromCallback(env,__FUNCTION__);
    }
     
    staticvoid acquire_wakelock_callback()
    {
        acquire_wake_lock(PARTIAL_WAKE_LOCK,WAKE_LOCK_NAME);
    }
    获取GPS的锁
    staticvoid release_wakelock_callback()
    {
        release_wake_lock(WAKE_LOCK_NAME);
    }
    释放了GPS的锁
    staticvoid request_utc_time_callback()
    {
        JNIEnv* env = AndroidRuntime::getJNIEnv();
        env->CallVoidMethod(mCallbacksObj,method_requestUtcTime);
        checkAndClearExceptionFromCallback(env,__FUNCTION__);
    }
    更新时间
    staticpthread_t create_thread_callback(const char* name, void (*start)(void *), void*arg)
    {
        return(pthread_t)AndroidRuntime::createJavaThread(name, start, arg);
    }
    创建线程。

     

    3、其他函数,开启导航,关闭导航等的就不一一介绍了,和上面的类似。可以看源码。

    好了,jni层就大概分析好了,那么接着就是framework层的代码了。

     

     

     

    九、android GPS的framework层

           首先还是主要流程图吧:

     

    Framework层主要就是为上层应用调用提供接口。而GPS的framework层,根据jni的代码我们也可以知道就在下面这个目录下了。

    frameworks/base/services/java/com/android/server/location/GpsLocationProvide.java

    那么android framework是怎么开始往下调用jni的呢?还是看代码吧。

    首先是在frameworks/base/services/java/com/android/server/SystemServer.Java

    对于这个系统服务,还是要从android启动流程讲起,首先linux内核启动完了之后,会调用android的init程序,然后挂载文件最小系统,解析init.rc和init.*.rc等脚本,接着zygote,启动虚拟机,然后就是运行到了systemserver了,也就是上面那个SystemServer.Java函数,在这个函数中,先看下SystemServer 这个类,发现了有一个native的init1函数。

    native public static void init1(String[]args);

    这个函数是调用了jni层的函数的,可以看

    frameworks/base/services/jni/com_android_server_SystemServer.cpp

    首先是进入其main函数,

    System.loadLibrary("android_servers");
          init1(args);

    加载库,然后就是调用了jni层的init1函数。

    static voidandroid_server_SystemServer_init1(JNIEnv* env, jobject clazz)
    {
       system_init();
    }

    其调用了system_init();函数,而在system_init函数中

    jmethodID methodId =env->GetStaticMethodID(clazz, "init2", "()V");
    env->CallStaticVoidMethod(clazz,methodId);

    他又回调了SystemServer.Java中的init2函数。

    在init2函数中

    public static final void init2() {
           Slog.i(TAG, "Entered the Android system server!");
           Thread thr = new ServerThread();
           thr.setName("android.server.ServerThread");
           thr.start();
        }

    创建了一个线程,最后他会调用到ServerThread的run方法。

    在其run()方法中会启动很多服务,比如Account Manager、ContentManager、System Content Providers、Lights Service、BatteryService、Vibrator Service、Alarm Manager、InitWatchdog、Window Manager等等,我们这里最主要的就是关注LocationManagerService。

    try {
                    Slog.i(TAG, "LocationManager");
                    location = new LocationManagerService(context);
                   ServiceManager.addService(Context.LOCATION_SERVICE, location);
                } catch (Throwable e) {
                    reportWtf("startingLocation Manager", e);
               }

    这里new了一个LocationManagerService对象,并且添加了这个service。

    然后finalLocationManagerService locationF = location;

    try {
                        if (locationF != null)locationF.systemReady();
                    } catch (Throwable e) {
                        reportWtf("makingLocation Service ready", e);
                    }

    当activity manager好了之后就调用了locationF.systemReady();函数了。

    下面进LocationManagerService.java中的system函数。

    voidsystemReady() {
            // we defer starting up the service untilthe system is ready
            Thread thread = new Thread(null, this,"LocationManagerService");
            thread.start();
        }

    这里创建了一个线程,然后线程启动了,接着他会调用run方法。也就是

    publicvoid run()
        {
            Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
            Looper.prepare();
            mLocationHandler = newLocationWorkerHandler();
            initialize();
            Looper.loop();
        }

    在run方法中,他会初始化一些东东,也就是initialize();函数了。

    privatevoid initialize() {
            // Create a wake lock, needs to be donebefore calling loadProviders() below
            PowerManager powerManager =(PowerManager)
    mContext.getSystemService(Context.POWER_SERVICE);
            mWakeLock =
    powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,WAKELOCK_KEY);
     
            // Load providers
            loadProviders();
    ………………
    ………………
    }

    这里主要看loadProviders();函数。

    privatevoid loadProviders() {
            synchronized (mLock) {
                if (sProvidersLoaded) {
                    return;
                }
     
                // Load providers
                loadProvidersLocked();
                sProvidersLoaded = true;
            }
        }

    这里又会调用loadProvidersLocked(),然后是_loadProvidersLocked()函数。其中就会调用到我们需要的gpsprovider了。

    if(GpsLocationProvider.isSupported()) {
                // Create a gps location provider
                GpsLocationProvider gpsProvider =new GpsLocationProvider(mContext, this);
                mGpsStatusProvider =gpsProvider.getGpsStatusProvider();
                mNetInitiatedListener =gpsProvider.getNetInitiatedListener();
                addProvider(gpsProvider);
                mGpsLocationProvider = gpsProvider;
            }

    在new一个GpsLocationProvider的时候会开一个GpsLocationProviderThread的线程

    mThread =new GpsLocationProviderThread();
    mThread.start();

    然后启动了线程,在这里会初始化,然后主要还是new了一个ProviderHandler的类。

             

       initialize();
                mHandler = new ProviderHandler();

    这个类中

    publicvoid handleMessage(Message msg) {
                int message = msg.what;
                switch (message) {
                    case ENABLE:
                        if (msg.arg1 == 1) {
                            handleEnable();
                        } else {
                            handleDisable();
                        }
                        break;
                    case ENABLE_TRACKING:
                       handleEnableLocationTracking(msg.arg1 == 1);
                        break;
                    case REQUEST_SINGLE_SHOT:
                        handleRequestSingleShot();
                        break;
                    case UPDATE_NETWORK_STATE:
                       handleUpdateNetworkState(msg.arg1, (NetworkInfo)msg.obj);
                        break;
                    case INJECT_NTP_TIME:
                        handleInjectNtpTime();
                        break;
                    case DOWNLOAD_XTRA_DATA:
                        if (mSupportsXtra) {
                            handleDownloadXtraData();
                        }
                        break;
                    case UPDATE_LOCATION:
                       handleUpdateLocation((Location)msg.obj);
                        break;
                    case ADD_LISTENER:
                        handleAddListener(msg.arg1);
                        break;
                    case REMOVE_LISTENER:
                       handleRemoveListener(msg.arg1);
                        break;
                }

    就会处理很多事情了。具体可以看上面的代码。

    接着他调用了updateProvidersLocked();这个函数。

    updateProviderListenersLocked(name,true);

    然后就启动了gps服务了

    if (enabled) {
                p.enable();
                if (listeners > 0) {
                   p.setMinTime(getMinTimeLocked(provider), mTmpWorkSource);
                    p.enableLocationTracking(true);
                }
            }

    接着我们开始往GpsLocationProvide.java这里看

    public void enable() {
            synchronized (mHandler) {
                sendMessage(ENABLE, 1, null);
            }
        }

    这里发送了一个ENABLE消息,然后就会调用到上面ProviderHandler的函数,handleEnable();

    privatevoid handleEnable() {
           ……
            mEnabled = native_init();
     
            if (mEnabled) {
                mSupportsXtra =native_supports_xtra();
           ……
        }

    这里就会调用到了jni的native函数了。

    而native的所有函数,在jni中我们都已经分析过了。

    接着便是

     

    enable函数结束后,那便是

    publicvoid enableLocationTracking(boolean enable) {
            // FIXME - should set a flag here to avoidrace conditions with single shot request
            synchronized (mHandler) {
                sendMessage(ENABLE_TRACKING,(enable ? 1 : 0), null);
            }
        }

    同样,他也发送了ENABLE_TRACKING的消息,接着调用

    handleEnableLocationTracking(msg.arg1== 1);
    if (enable) {
                mTTFF = 0;
                mLastFixTime = 0;
                startNavigating(false);
            }

    接着调用了startNavigating函数,

    privatevoid startNavigating(boolean singleShot) {
           ……
     if (!native_set_position_mode(mPositionMode,GPS_POSITION_RECURRENCE_PERIODIC,
        interval, 0, 0)) {
                    mStarted = false;
                    Log.e(TAG,"set_position_mode failed in startNavigating()");
                    return;
       }
        if(!native_start()) {
             mStarted = false;
             Log.e(TAG, "native_start failedin startNavigating()");
            return;
        ……
       }
    }

    这里主要还是设置position mode,然后启动了。

    接下来,我们看看,jni调用的一些callback函数在这里做了些什么。

    首先就是reportLocation函数了。

    privatevoid reportLocation(int flags, double latitude, double longitude, doublealtitude,
                float speed, float bearing, floataccuracy, long timestamp) {
            …………
            synchronized (mLocation) {
                mLocationFlags = flags;
                if ((flags &LOCATION_HAS_LAT_LONG) == LOCATION_HAS_LAT_LONG) {
                   mLocation.setLatitude(latitude);
                   mLocation.setLongitude(longitude);
                    mLocation.setTime(timestamp);
                }
                if ((flags &LOCATION_HAS_ALTITUDE) == LOCATION_HAS_ALTITUDE) {
                    mLocation.setAltitude(altitude);
                } else {
                    mLocation.removeAltitude();
                }
                if ((flags &LOCATION_HAS_SPEED) == LOCATION_HAS_SPEED) {
                    mLocation.setSpeed(speed);
                } else {
                    mLocation.removeSpeed();
                }
                if ((flags &LOCATION_HAS_BEARING) == LOCATION_HAS_BEARING) {
                    mLocation.setBearing(bearing);
                } else {
                    mLocation.removeBearing();
                }
                if ((flags & LOCATION_HAS_ACCURACY) ==LOCATION_HAS_ACCURACY) {
                   mLocation.setAccuracy(accuracy);
                } else {
                    mLocation.removeAccuracy();
                }
     
                try {
                    mLocationManager.reportLocation(mLocation,false);
                } catch (RemoteException e) {
                    Log.e(TAG,"RemoteException calling reportLocation");
                }
            }
     
            mLastFixTime =System.currentTimeMillis();
            // report time to first fix
            if (mTTFF == 0 && (flags &LOCATION_HAS_LAT_LONG) == LOCATION_HAS_LAT_LONG) {
                mTTFF = (int)(mLastFixTime -mFixRequestTime);
                if (DEBUG) Log.d(TAG, "TTFF:" + mTTFF);
     
                // notify status listeners
                synchronized(mListeners) {
                    int size = mListeners.size();
                    for (int i = 0; i < size;i++) {
                        Listener listener =mListeners.get(i);
                        try {
                           listener.mListener.onFirstFix(mTTFF);
                        } catch (RemoteException e){
                            Log.w(TAG,"RemoteException in stopNavigating");
                           mListeners.remove(listener);
                            // adjust for size oflist changing
                            size--;
                        }
                    }
                }
            }
     
            if (mSingleShot) {
                stopNavigating();
            }
            if (mStarted && mStatus !=LocationProvider.AVAILABLE) {
                // we want to time out if we do notreceive a fix
                // within the time out and we arerequesting infrequent fixes
                if(!hasCapability(GPS_CAPABILITY_SCHEDULING) && mFixInterval <NO_FIX_TIMEOUT) {
                   mAlarmManager.cancel(mTimeoutIntent);
                }
     
                // send an intent to notify that the GPSis receiving fixes.
                Intent intent = newIntent(LocationManager.GPS_FIX_CHANGE_ACTION);
               intent.putExtra(LocationManager.EXTRA_GPS_ENABLED, true);
                mContext.sendBroadcast(intent);
               updateStatus(LocationProvider.AVAILABLE, mSvCount);
            }
     
           if(!hasCapability(GPS_CAPABILITY_SCHEDULING) && mStarted &&mFixInterval > 1000) {
                if (DEBUG) Log.d(TAG, "gotfix, hibernating");
                hibernate();
            }
       }

    这里对于jni层获取的数据,做了处理后,更新了location信息。

    其中下面这些都是给应用层的接口。

                               mLocation.setLatitude(latitude);
                   mLocation.setLongitude(longitude);
                    mLocation.setTime(timestamp);

    Ok,那么framwork层就介绍到这里了。

     

     

     

    十、android GPS的APP层

    首先看流程:


    接上面的framework层,这里调用了mLocation是new了一个Location的类,这个类主要是给应用层接口的。

    if((flags & LOCATION_HAS_LAT_LONG) == LOCATION_HAS_LAT_LONG) {
                   mLocation.setLatitude(latitude);
                   mLocation.setLongitude(longitude);
                    mLocation.setTime(timestamp);
                }

    其代码在frameworks/base/location/java/android/location/Location.java

    取其中一部分的函数做下简单的介绍。

     

        /**
         * Sets the UTC time of this fix, inmilliseconds since January 1,
         * 1970.
         */
        public void setTime(long time) {
            mTime = time;
        }
     
        /**
         * Returns the latitude of this fix.
         */
        public double getLatitude(){
            return mLatitude;
        }
     
        /**
         * Sets the latitude of this fix.
         */
        public void setLatitude(double latitude) {
            mLatitude = latitude;
        }
     
        /**
         * Returns the longitude of this fix.
         */
        public double getLongitude() {
            return mLongitude;
        }
     
        /**
         * Sets the longitude of this fix.
         */
        public void setLongitude(double longitude){
            mLongitude = longitude;
        }
     

    mLocation.setLatitude(latitude);函数就会把

    mLatitude= latitude;

    然后,应用层只要getLatitude()就知道了纬度了。

    其他的函数接口类似。

    简单看下下面的一段应用层的代码

    功能:展示GPS信息

     

     

    private void updateToNewLocation(Locationlocation)
       {     
     
         if (location != null)
         {         
          bear = location.getBearing(); //偏离正北方的度数
          double latitude =location.getLatitude();      //维度
          double longitude=location.getLongitude();     //经度
          double GpsSpeed = location.getSpeed(); //速度
          long GpsTime = location.getTime(); //时间
          Date date = new Date(GpsTime);
          DateFormat df = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         
          float GpsAlt =(float)location.getAltitude();  //海拔
          latitudeview.setText("" +latitude);
          longitudeview.setText("" +longitude);
          speedview.setText(""+GpsSpeed);
         timeview.setText(""+df.format(date));
         altitudeview.setText(""+GpsAlt);
          bearingview.setText(""+bear);
          }
          else
          {   
           Toast.makeText(this, "无法获取地理信息", Toast.LENGTH_SHORT).show();
          }
     
    }

    终于,从卫星信号到android APP层获取到数据那个简单的数据流程分析好了。要想更加细致的了解其机制,还是得需要花更多的时间继续深入下去的。其中还有很多的细节,很多概念都不是很明白。只知道个大概。不过通过这次分析,收获不少。凡事都需要从整体到部分再到整理,从整理的GPS框架,到分成很多块理解,再把那些模块整合在一起,从而了解其整个机制。

     

     

     

    展开全文
  • 第一部分、计算机算法常用术语中英对照 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 Set Data Structures 集合 ...Solving Lin

    第一部分、计算机算法常用术语中英对照
    Data Structures 基本数据结构
    Dictionaries 字典
    Priority Queues
    Graph Data Structures
    Set Data Structures 集合
    Kd-Trees 线段树
    Numerical Problems 数值问题
    Solving Linear Equations 线性方程组
    Bandwidth Reduction 带宽压缩
    Matrix Multiplication 矩阵乘法
    Determinants and Permanents 行列式
    Constrained and UnconstrainedOptimization 最值问题
    Linear Programming 线性规划
    Random Number Generation 随机数生成
    Factoring and Primality Testing 因子分解/质数判定
    Arbitrary Precision Arithmetic 高精度计算
    Knapsack Problem 背包问题
    Discrete Fourier Transform 离散Fourier变换
    Combinatorial Problems 组合问题
    Sorting 排序
    Searching 查找
    Median and Selection 中位数
    Generating Permutations 排列生成
    Generating Subsets 子集生成
    Generating Partitions 划分生成
    Generating Graphs 图的生成
    Calendrical Calculations 日期
    Job Scheduling 工程安排
    Satisfiability 可满足性
    Graph Problems -- polynomial 图论-多项式算法
    Connected Components 连通分支
    Topological Sorting 拓扑排序
    Minimum Spanning Tree 最小生成树
    Shortest Path 最短路径
    Transitive Closure and Reduction 传递闭包
    Matching 匹配
    Eulerian Cycle / Chinese PostmanEuler回路/中国邮路
    Edge and Vertex Connectivity 割边/割点
    Network Flow 网络流
    Drawing Graphs Nicely 图的描绘
    Drawing Trees 树的描绘
    Planarity Detection and Embedding 平面性检测和嵌入
    Graph Problems -- hard 图论-NP问题
    Clique 最大团
    Independent Set 独立集
    Vertex Cover 点覆盖
    Traveling Salesman Problem 旅行商问题
    Hamiltonian Cycle Hamilton回路
    Graph Partition 图的划分
    Vertex Coloring 点染色
    Edge Coloring 边染色
    Graph Isomorphism 同构
    Steiner Tree Steiner
    Feedback Edge/Vertex Set 最大无环子图
    Computational Geometry 计算几何
    Convex Hull 凸包
    Triangulation 三角剖分
    Voronoi Diagrams Voronoi
    Nearest Neighbor Search 最近点对查询
    Range Search 范围查询
    Point Location 位置查询
    Intersection Detection 碰撞测试
    Bin Packing 装箱问题
    Medial-Axis Transformation 中轴变换
    Polygon Partitioning 多边形分割
    Simplifying Polygons 多边形化简
    Shape Similarity 相似多边形
    Motion Planning 运动规划
    Maintaining Line Arrangements 平面分割
    Minkowski Sum Minkowski
    Set and String Problems 集合与串的问题
    Set Cover 集合覆盖
    Set Packing 集合配置
    String Matching 模式匹配
    Approximate String Matching 模糊匹配
    Text Compression 压缩
    Cryptography 密码
    Finite State Machine Minimization 有穷自动机简化
    Longest Common Substring 最长公共子串
    Shortest Common Superstring 最短公共父串
    DP——Dynamic Programming——动态规划
    recursion —— 递归

    第二部分、编程词汇
    A2A integration A2A整合
    abstract 抽象的
    abstract base class (ABC)抽象基类
    abstract class 抽象类
    abstraction 抽象、抽象物、抽象性
    access 存取、访问
    access level访问级别
    access function 访问函数
    account 账户
    action 动作
    activate 激活
    active 活动的
    actual parameter 实参
    adapter 适配器
    add-in 插件
    address 地址
    address space 地址空间
    address-of operator 取地址操作符
    ADL (argument-dependent lookup)
    ADO(ActiveX Data Object)ActiveX数据对象
    advanced
    aggregation 聚合、聚集
    algorithm 算法
    alias 别名
    align 排列、对齐
    allocate 分配、配置
    allocator分配器、配置器
    angle bracket 尖括号
    annotation 注解、评注
    API (Application ProgrammingInterface) 应用(程序)编程接口
    app domain (application domain)应用域
    application 应用、应用程序
    application framework 应用程序框架
    appearance 外观
    append 附加
    architecture 架构、体系结构
    archive file 归档文件、存档文件
    argument
    引数(传给函式的值)。参见parameter
    array 数组
    arrow operator 箭头操作符
    ASP(Active Server Page)活动服务器页面
    ASP.NET worker process ASP.NET
    工作者进程
    assembly 装配件、配件
    assembly language 汇编语言
    assembly manifest 装配件清单
    assert(ion) 断言
    assign 赋值
    assignment 赋值、分配
    assignment operator 赋值操作符
    associated 相关的、相关联的
    associative container 关联式容器(对应sequential container)
    asynchronous 异步的
    atomic 原子的
    atomic operation 原子操作
    attribute 特性、属性
    authentication service 验证服务
    authorization 授权
    audio 音频
    A.I. 人工智能
    B2B integration B2B整合、B2B集成(business-to-businessintegration)
    background 背景、后台(进程)
    backward compatible 向后兼容、向下兼容
    backup 备份
    backup device备份设备
    backup file 备份文件
    bandwidth 带宽
    base class 基类
    base type 基类型
    batch 批处理
    BCL (base class library)基类库
    binary 二进制
    binary search 二分查找
    binary tree 二叉树
    binary function 双参函数
    binary large object二进制大对象
    binary operator 二元操作符
    binding 绑定
    bit
    bitmap 位图
    bitwise 按位...
    bitwise copy 为单元进行复制;位元逐一复制,按位拷
    bitwise operation 按位运算
    block 块、区块、语句块
    bookkeeping 簿记
    boolean 布林值(真假值,truefalse)
    border 边框
    bounds checking 边界检查
    boxing 装箱、装箱转换
    brace (curly brace) 大括号、花括号
    bracket (square brakcet) 中括号、方括号

    breakpoint 断点
    browser applications 浏览器应用(程序)
    browser-accessible application 可经由浏览器访问的应用程序
    build 编连(专指编译和连接
    built-in 内建、内置
    bus 总线
    business 业务、商务(看场合)
    business Logic 业务逻辑
    business rules 业务规则
    buttons 按钮
    bug 臭虫
    by/through 通过
    byte 位元组(8 bits组成)
    cache 高速缓存
    calendar 日历
    call 调用
    callback 回调
    call-level interface (CLI)调用级接口(CLI)
    call operator 调用操作符
    candidate key 候选键 (fordatabase)
    cascading delete 级联删除 (fordatabase)
    cascading update 级联更新 (fordatabase)
    casting 转型、造型转换
    catalog 目录
    chain (function calls)
    character 字符
    character format 字符格式
    character set 字符集
    CHECK constraints CHECK约束 (for database)
    checkpoint 检查点 (fordatabase)
    check box 复选框
    check button 复选按钮
    child class 子类
    CIL (common intermediate language)通用中间语言、通用中介语言
    class
    class declaration 类声明
    class definition 类定义
    class derivation list 类继承列表
    class factory 类厂
    class hierarchy 类层次结构
    class library 类库
    class loader 类装载器
    class template 类模板
    class template partialspecializations 类模板部分特化
    class template specializations 类模板特化
    classification 分类
    clause 子句
    client application 客户端应用程序
    client cursor 客户端游标 (fordatabase)
    code page 代码页
    cleanup 清理、清除
    CLI (Common Language Infrastructure)通用语言基础设施
    client 客户、客户端
    client area 客户区
    client-server 客户机/服务器、客户端/服务器
    clipboard 剪贴板
    clone 克隆
    CLS (common language specification) 通用语言规范
    code access security 代码访问安全
    COFF (Common Object File Format) 通用对象文件格式
    collection 集合
    COM (Component Object Model) 组件对象模型
    combo box 组合框
    command line 命令行
    comment 注释
    commit 提交 (for database)
    communication 通讯
    compatible 兼容
    compile time 编译期、编译时
    compiler 编译器
    component组件
    composite index 复合索引、组合索引 (fordatabase)
    composite key 复合键、组合键 (fordatabase)
    composition 复合、组合
    concept 概念
    concrete具体的
    concrete class 具体类
    concurrency 并发、并发机制
    constraint 约束 (for database)
    configuration 配置、组态
    connection 连接 (for database)
    connection pooling 连接池
    console 控制台
    constant 常量
    construct 构件、成分、概念、构造(for language
    constructor (ctor) 构造函数、构造器
    container 容器
    containment包容
    context 环境、上下文
    control 控件
    cookie (不译)
    copy 拷贝
    CORBA 通用对象请求中介架构(Common Object Request BrokerArchitecture)
    cover 覆盖、涵盖
    create/creation 创建、生成
    crosstab query 交叉表查询 (fordatabase)
    CRTP (curiously recurring templatepattern)
    CTS (common type system)通用类型系统
    cube 多维数据集 (for database)
    cursor 光标
    cursor 游标 (for database)
    custom 定制、自定义
    data 数据
    data connection 数据连接 (fordatabase)
    Data Control Language (DCL) 数据控制语言(DCL) (fordatabase)
    Data Definition Language (DDL) 数据定义语言(DDL) (fordatabase)
    data dictionary 数据字典 (for database)
    data dictionary view 数据字典视图 (fordatabase)
    data file 数据文件 (fordatabase)
    data integrity 数据完整性 (fordatabase)
    data manipulation language (DML)数据操作语言(DML) (fordatabase)
    data mart 数据集市 (fordatabase)
    data pump 数据抽取 (fordatabase)
    data scrubbing 数据清理 (fordatabase)
    data source 数据源 (fordatabase)
    Data source name (DSN) 数据源名称(DSN) (fordatabase)
    data warehouse 数据仓库 (fordatabase)
    dataset 数据集 (fordatabase)
    database 数据库 (fordatabase)
    database catalog 数据库目录 (fordatabase)
    database diagram 数据关系图 (fordatabase)
    database file 数据库文件 (fordatabase)
    database object 数据库对象 (fordatabase)
    database owner 数据库所有者 (fordatabase)
    database project 数据库工程 (fordatabase)
    database role 数据库角色 (fordatabase)
    database schema 数据库模式、数据库架构 (fordatabase)
    database scrīpt 数据库脚本 (fordatabase)
    data-bound 数据绑定 (fordatabase)
    data-aware control数据感知控件 (fordatabase)
    data member 数据成员、成员变量
    dataset 数据集 (fordatabase)
    data source 数据源 (fordatabase)
    data structure数据结构
    data table 数据表 (fordatabase)
    datagram 数据报文
    DBMS (database management system)数据库管理系统 (fordatabase)
    DCOM (distributed COM)分布式COM
    dead lock 死锁 (for database)
    deallocate 归还
    debug 调试
    debugger 调试器
    decay 退化
    decision support 决策支持
    declaration 声明
    declarative referential integrity(DRI)声明引用完整性(DRI) (for database)
    deduction 推导
    DEFAULT constraint默认约束 (fordatabase)
    default database 默认数据库 (fordatabase)
    default instance 默认实例 (fordatabase)
    default result set 默认结果集 (fordatabase)
    default 缺省、默认值
    defer 推迟
    definition 定义
    delegate 委托
    delegation 委托
    dependent name
    deploy 部署
    dereference 解引用
    dereference operator (提领)运算子
    derived class 派生类
    design by contract 契约式设计
    design pattern 设计模式
    destroy 销毁
    destructor(dtor)析构函数、析构器
    device 设备
    DHTML (dynamic HyperText MarkupLanguage)动态超文本标记语言
    dialog 对话框
    digest 摘要
    digital 数字的
    DIME (Direct Internet MessageEncapsulation)直接Internet消息封装
    directive (编译)指示符
    directory 目录
    dirty pages脏页 (for database)
    dirty read 脏读 (for database)
    disassembler 反汇编器
    DISCO (Discovery of Web Services)WebServices的查找
    disk
    dispatch 调度、分派、派发(我喜欢调度
    DISPID (Dispatch Identifier)分派标识符
    distributed computing 分布式计算
    distributed query 分布式查询 (fordatabase)
    DNA (Distributed interNetApplication) 分布式网间应用程序
    document 文档
    DOM (Document Object Model)文档对象模型
    dot operator ()点操作符
    driver 驱动(程序)
    DTD (document type definition) 文档类型定义
    double-byte character set (DBCS)双字节字符集(DBCS)
    dump 转储
    dump file 转储文件
    dynamic cursor 动态游标 (fordatabase)
    dynamic filter 动态筛选 (fordatabase)
    dynamic locking 动态锁定 (fordatabase)
    dynamic recovery 动态恢复 (for database)
    dynamic snapshot 动态快照 (fordatabase)
    dynamic SQL statements 动态SQL语句 (for database)
    dynamic assembly 动态装配件、动态配件
    dynamic binding 动态绑定
    EAI (enterprise applicationintegration)企业应用程序集成(整合)
    EBCO (empty base class optimization)空基类优化(机制)
    e-business 电子商务
    EDI (Dlectronic Data Interchange)电子数据交换
    efficiency 效率
    efficient 高效
    end-to-end authentication 端对端身份验证
    end user 最终用户
    engine 引擎
    entity 实体
    encapsulation 封装
    enclosing class 外围类别(与巢状类别 nested class有关)
    enum (enumeration) 枚举
    enumerators 枚举成员、枚举器
    equal 相等
    equality 相等性
    equality operator 等号操作符
    error log 错误日志 (fordatabase)
    escape code 转义码
    escape character 转义符、转义字符
    exclusive lock 排它锁 (fordatabase)
    explicit transaction 显式事务 (fordatabase)
    evaluate 评估
    event 事件
    event driven 事件驱动的
    event handler 事件处理器
    evidence 证据
    exception 异常
    exception declaration 异常声明
    exception handling 异常处理、异常处理机制
    exception-safe 异常安全的
    exception specification 异常规范
    exit 退出
    explicit 显式
    explicit specialization 显式特化
    export 导出
    expression 表达式
    facility 设施、设备
    fat client 胖客户端
    feature 特性、特征
    fetch 提取
    field 字段(java)
    field 字段 (for database)
    field length 字段长度 (fordatabase)
    file 文件
    filter 筛选 (for database)
    finalization 终结
    firewall 防火墙
    finalizer 终结器
    firmware 固件
    flag 标记
    flash memory 闪存
    flush 刷新
    font 字体
    foreign key (FK) 外键(FK) (for database)
    form 窗体
    formal parameter 形参
    forward declaration 前置声明
    forward-only 只向前的
    forward-only cursor 只向前游标 (fordatabase)
    fragmentation 碎片 (for database)
    framework 框架
    full specialization 完全特化
    function 函数
    function call operator (operator ()) 函数调用操作符
    function object 函数对象
    function overloaded resolution函数重载决议
    functionality 功能
    function template函数模板
    functor 仿函数
    GAC (global assembly cache) 全局装配件缓存、全局配件缓存
    GC (Garbage collection) 垃圾回收(机制)、垃圾收集(机制)
    game 游戏
    generate 生成
    generic 泛化的、一般化的、通用的
    generic algorithm通用算法
    genericity 泛型
    getter (相对于 setter)取值函数
    global 全局的
    global object 全局对象
    global scope resolution operator 全局范围解析操作符
    grant 授权 (for database)
    granularity 粒度
    group 组、群
    group box 分组框
    GUI 图形界面
    GUID (Globally Unique Identifier) 全球唯一标识符
    hand shaking 握手
    handle 句柄
    handler 处理器
    hard-coded 硬编码的
    hard-copy 截屏图
    hard disk 硬盘
    hardware 硬件
    hash table 散列表、哈希表
    header file头文件
    heap
    help file 帮助文件
    hierarchy 层次结构、继承体系
    hierarchical data 阶层式数据、层次式数据
    hook 钩子
    Host (application)宿主(应用程序)
    hot key 热键
    hyperlink 超链接
    HTML (HyperText Markup Language) 超文本标记语言
    HTTP pipeline HTTP管道
    HTTP (HyperText Transfer Protocol) 超文本传输协议
    icon 图标
    IDE (Integrated DevelopmentEnvironment)集成开发环境
    IDL (Interface Definition Language) 接口定义语言
    identifier 标识符
    idle time 空闲时间
    if and only if当且仅当
    IL (Intermediate Language) 中间语言、中介语言
    image 图象
    IME 输入法
    immediate base 直接基类
    immediate derived 直接派生类
    immediate updating 即时更新 (fordatabase)
    implicit transaction隐式事务 (fordatabase)
    incremental update 增量更新 (fordatabase)
    index 索引 (for database)
    implement 实现
    implementation 实现、实现品
    implicit 隐式
    import 导入
    increment operator 增加操作符
    infinite loop 无限循环
    infinite recursive 无限递归
    information 信息
    infrastructure 基础设施
    inheritance 继承、继承机制
    inline 内联
    inline expansion 内联展开
    initialization 初始化
    initialization list 初始化列表、初始值列表
    initialize 初始化
    inner join 内联接 (fordatabase)
    in-place active 现场激活
    instance 实例
    instantiated 具现化、实体化(常应用于template)
    instantiation 具现体、具现化实体(常应用于template)
    integrate 集成、整合
    integrity 完整性、一致性
    integrity constraint完整性约束 (fordatabase)
    interprocess communication (IPC)进程间通讯(IPC)
    interacts 交互
    interface 接口
    for GUI 界面
    interoperability 互操作性、互操作能力
    interpreter 解释器
    introspection 自省
    invariants 不变性
    invoke 调用
    isolation level 隔离级别 (fordatabase)
    iterate 迭代
    iterative 反复的、迭代的
    iterator 迭代器
    iteration 迭代(回圈每次轮回称为一个iteration)
    item 项、条款、项目
    JIT compilation JIT编译 即时编译
    key (for database)
    key column 键列 (for database)
    laser 激光
    late binding 迟绑定
    left outer join 左向外联接 (fordatabase)
    level 阶、层例
    high level 高阶、高层
    library
    lifetime 生命期、寿命
    link 连接、链接
    linkage 连接、链接
    linker 连接器、链接器
    literal constant 字面常数
    list 列表、表、链表
    list box 列表框
    livelock 活锁 (for database)
    load 装载、加载
    load balancing 负载平衡
    loader 装载器、载入器
    local 局部的
    local object 局部对象
    lock
    log 日志
    login 登录
    login security mode登录安全模式 (fordatabase)
    lookup table 查找表 (fordatabase)
    loop 循环
    loose coupling 松散耦合
    lvalue 左值
    machine code 机器码、机器代码
    macro
    maintain 维护
    managed code 受控代码、托管代码
    Managed Extensions 受控扩充件、托管扩展
    managed object 受控对象、托管对象
    mangled name
    manifest 清单
    manipulator 操纵器(iostream预先定义的一种东西)
    many-to-many relationship 多对多关系 (fordatabase)
    many-to-one relationship 多对一关系 (fordatabase)
    marshal 列集
    member 成员
    member access operator 成员取用运算子(dotarrow两种)
    member function 成员函数
    member initialization list成员初始值列表
    memberwise member为单元members 逐一
    memberwise copy
    memory 内存
    memory leak 内存泄漏
    menu 菜单
    message 消息
    message based 基于消息的
    message loop 消息环
    message queuing消息队列
    metadata 元数据
    metaprogramming元编程
    method 方法
    micro
    middleware 中间件
    middle tier 中间层
    modeling 建模
    modeling language 建模语言
    modifier 修饰字、修饰符
    modem 调制解调器
    module 模块
    most derived class最底层的派生类
    mouse 鼠标
    mutable 可变的
    mutex 互斥元、互斥体
    multidimensional OLAP (MOLAP) 多维OLAP(MOLAP) (fordatabase)
    multithreaded server application 多线程服务器应用程序
    multiuser 多用户
    multi-tasking 多任务
    multi-thread 多线程
    multicast delegate 组播委托、多点委托
    named parameter 命名参数
    named pipe 命名管道
    namespace 名字空间、命名空间
    native 原生的、本地的
    native code 本地码、本机码
    Native Image Generator (NGEN)本地映像生成器
    nested class 嵌套类
    nested query 嵌套查询 (fordatabase)
    nested table 嵌套表 (fordatabase)
    network 网络
    network card 网卡
    nondependent name
    object 对象
    object based 基于对象的
    object file 目标文件
    object model 对象模型
    object oriented 面向对象的
    object pooling 对象池化
    ODBC data source ODBC数据源 (fordatabase)
    ODBC driver ODBC驱动程序 (fordatabase)
    ODR (one-definition rule)
    OLE Automation objects OLE自动化对象 (fordatabase)
    OLE Automation server OLE自动化服务器 (fordatabase)
    OLE DB consumer OLE DB使用者 (fordatabase)
    OLE DB for OLAP 用于OLAPOLE DB (for database)
    OLE DB provider OLE DB提供者 (fordatabase)
    one-to-many relationship 一对多关系 (fordatabase)
    one-to-one relationship 一对一关系 (fordatabase)
    online analytical processing (OLAP) 联机分析处理(OLAP) (fordatabase)
    online redo log 联机重做日志 (for database)
    online transaction processing (OLTP)联机事务处理(OLTP) (for database)
    Open Data Services (ODS) 开放式数据服务(ODS) (fordatabase)
    Open Database Connectivity (ODBC) 开放式数据库连接(ODBC) (fordatabase)
    operand 操作数
    operating system (OS) 操作系统
    operation 操作
    operator 操作符、运算符
    option 选项
    optimizer 优化器
    outer join 外联接 (fordatabase)
    overflow 上限溢位(相对于underflow)
    overhead 额外开销
    overload 重载
    overload resolution 重载决议
    overloaded function 重载的函数
    overloaded operator 被重载的操作符
    override 覆写、重载、重新定义
    package
    packaging 打包
    palette 调色板
    parallel 并行
    parameter 参数、形式参数、形参
    parameter list 参数列表
    parameterize 参数化
    parent class 父类
    parentheses 圆括弧、圆括号
    parse 解析
    parser 解析器
    part 零件、部件
    partial specialization 局部特化
    pass by address 传址(函式引数的传递方式)(非正式用语)
    pass by reference 传地址、按引用传递
    pass by value 按值传递
    pattern 模式
    PDA (personal digital assistant)个人数字助理
    PE (Portable Executable) file 可移植可执行文件
    performance 性能
    persistence 持久性
    PInvoke (platform invoke service) 平台调用服务
    pixel 像素
    placement delete
    placement new
    placeholder 占位符
    platform 平台
    POD (plain old data (type))
    POI (point of instantiation)
    pointer 指针
    poll 轮询
    pooling 池化
    polymorphism 多态
    pop up 弹出式
    port 端口
    postfix 后缀
    precedence 优先序(通常用于运算子的优先执行次序)
    prefix 前缀
    preprocessor 预处理器
    primary key (PK)主键(PK) (for database)
    primary table 主表 (for database)
    primary template原始模板
    primitive type 原始类型
    print 打印
    printer 打印机
    procedure 过程
    procedural 过程式的、过程化的
    process 进程
    profile 评测
    profiler 效能(性能)评测器
    program 程序
    programmer 程序员
    programming编程、程序设计
    progress bar 进度指示器
    project 项目、工程
    property 属性
    protocol 协议
    pseudo code伪码
    qualified 经过资格修饰(例如加上scope运算子)
    qualifiedqualifier 修饰符
    quality 质量
    queue 队列
    race condition 竞争条件(多线程环境常用语)
    radian 弧度
    radio button 单选按钮
    raise 引发(常用来表示发出一个exception)
    random number 随机数
    range 范围、区间
    rank 等级
    raw 未经处理的
    readOnly只读
    record 记录 (for database)
    recordset 记录集 (for database
    recursive 递归
    re-direction 重定向
    refactoring 重构
    refer 引用、参考
    reference 引用、参考
    reference counting引用计数
    referential integrity (RI)引用完整性(RI) (fordatabase)
    register 寄存器
    reflection 反射
    refresh data 刷新数据 (fordatabase)
    regular expression 正则表达式
    relational database 关系数据库
    remote 远程
    remote request 远程请求
    represent 表述,表现
    resolve 解析、决议
    resolution 解析过程
    result set 结果集 (fordatabase)
    retrieve data 检索数据
    return 返回
    return type 返回类型
    return value 返回值
    right outer join 右向外联接 (fordatabase)
    revoke 撤销
    robust 健壮
    robustness 健壮性
    roll back 回滚 (for database)
    roll forward 前滚 (for database)
    routine 例程
    row (for database)
    row lock 行锁 (for database)
    rowset 行集 (for database)
    RPC (remote procedure call)RPC(远程过程调用)
    runtime 执行期、运行期、执行时、运行时
    rvalue 右值
    save 保存
    savepoint 保存点 (fordatabase)
    SAX (Simple API for XML)
    scalable 可伸缩的、可扩展的
    schedule 调度
    scheduler 调度程序
    schema 模式、纲目结构
    scroll bar滚动条
    scope 作用域、生存空间
    scope operator 生存空间操作符
    scope resolution operator 生存空间解析操作符
    screen 屏幕
    SDK (Software Development Kit)软件开发包
    sealed class 密封类
    search 查找
    semantics 语义
    semaphore 信号量
    sequential container序列式容器
    server 服务器、服务端
    serial 串行
    serialization/serialize 序列化
    server cursor服务端游标、服务器游标 (fordatabase)
    session 会话 (for database)
    setter 设值函数
    shared lock 共享锁 (fordatabase)
    sibling 同级
    side effect 副作用
    signature 签名
    single-threaded 单线程
    slider滑块
    slot
    smart pointer 智能指针
    SMTP (Simple Mail Transfer Protocol)简单邮件传输协议
    snapshot 截屏图
    snapshot 快照 (for database)
    specialization 特化
    specification 规范、规格
    splitter 切分窗口
    SOAP (simple object access protocol)简单对象访问协议
    software 软件
    source code 源码、源代码

    SQL (Structured Query Language) 结构化查询语言 (fordatabase)
    stack 栈、堆栈
    stack unwinding 叠辗转开解(此词用于exception主题)
    standard library 标准库
    standard template library 标准模板库
    stateless 无状态的
    statement 语句、声明
    static cursor 静态游标 (fordatabase)
    static SQL statements 静态SQL语句 (for database)
    stored procedure 存储过程 (fordatabase)
    status bar 状态条
    stream
    string 字符串
    stub 存根
    subobject子对象
    subquery 子查询 (fordatabase)
    subroutine 子例程
    subscrīpt operator 下标操作符
    subset 子集
    subtype 子类型
    support 支持
    suspend 挂起
    symbol 记号
    syntax 语法
    system databases 系统数据库 (fordatabase)
    system tables 系统表 (fordatabase)
    table (for database)
    table lock 表锁 (for database)
    table-level constraint 表级约束 (fordatabase)
    tape backup 磁带备份 (fordatabase)
    target 标的,目标
    task switch 工作切换
    TCP (Transport Control Protocol) 传输控制协议
    template 模板
    template-id
    template argument deduction 模板参数推导
    template explicit specialization 模板显式特化
    template parameter 模板参数
    template template parameter
    temporary object 临时对象
    temporary table 临时表 (fordatabase)
    text 文本
    text file 文本文件
    thin client 瘦客户端
    third-party 第三方
    thread 线程
    thread-safe 线程安全的
    throw 抛出、引发(常指发出一个exception)
    token 符号、标记、令牌(看场合)
    trace 跟踪
    transaction 事务 (for database)
    transaction log 事务日志 (fordatabase)
    transaction rollback 事务回滚 (fordatabase)
    transactional replication 事务复制 (fordatabase)
    translation unit 翻译单元
    traverse 遍历
    trigger 触发器 (fordatabase)
    two-phase commit 两阶段提交 (fordatabase)
    tuple
    two-phase lookup 两阶段查找
    type 类型
    UDDI(Universary Descrīption,Discovery and Integration)统一描述、查询与集成
    UML (unified modeling language)统一建模语言
    unary function 单参函数
    unary operator 一元操作符
    unboxing 拆箱、拆箱转换
    underflow 下限溢位(相对于overflow)
    Union query
    联合查询 (for database)
    UNIQUE constraints UNIQUE
    约束 (fordatabase)
    unique index
    唯一索引 (for database)
    unmanaged code
    非受控代码、非托管代码
    unmarshal
    散集
    unqualified
    未经限定的、未经修饰的
    URI (Uniform Resource identifier)
    统一资源标识符
    URL (Uniform Resource Locator)
    统一资源定位器
    user
    用户
    user interface
    用户界面
    value types
    值类型
    variable
    变量
    vector
    向量(一种容器,有点类似array)
    viable
    可行的
    video
    视频
    view
    视图
    VEE (Virtual Execution Engine)
    虚拟执行引擎
    vendor
    厂商
    view
    视图 (for database)
    virtual function
    虚函数
    virtual machine
    虚拟机
    virtual memory
    虚拟内存
    vowel
    元音字母
    Web Services web
    服务
    WHERE clause WHERE
    子句 (fordatabase)
    wildcard characters
    通配符字符 (fordatabase)
    wildcard search
    通配符搜索 (fordatabase)
    window
    窗口
    window function
    窗口函数
    window procedure
    窗口过程
    Windows authentication Windows
    身份验证
    wizard
    向导
    word
    单词
    word processor
    字处理器
    wrapper
    包装、包装器
    write enable
    写启用 (for database)
    write-ahead log
    预写日志 (for database)
    write-only
    只写
    WSDL (Web Service Descrīption Language)Web Service
    描述语言
    XML Message Interface (XMI) XML
    消息接口
    XML (eXtensible Markup Language)
    可扩展标记语言
    XSD (XML Schema Definition) XML
    模式定义语言
    XSL (eXtensible Stylesheet Language)
    可扩展样式表语言
    XSLT (eXtensible Stylesheet Language Transformation)
    可扩展样式表语言转换
    xxx based
    基于xxx
    xxx oriented
    面向xxx


    other 1 :

    application
    应用程式 应用、应用程序
    application framework
    应用程式框架、应用框架 应用程序框架
    architecture
    架构、系统架构 体系结构
    argument
    引数(传给函式的值)。叁见 parameter 叁数、实质叁数、实叁、自变量
    array
    阵列 数组
    arrow operator arrow
    (箭头)运算子 箭头操作符
    assembly
    装配件
    assembly language
    组合语言 汇编语言
    assert(ion)
    断言
    assign
    指派、指定、设值、赋值 赋值
    assignment
    指派、指定 赋值、分配
    assignment operator
    指派(赋值)运算子 = 赋值操作符
    associated
    相应的、相关的 相关的、关联、相应的
    associative container
    关联式容器(对应 sequentialcontainer 关联式容器
    atomic
    不可分割的 原子的
    attribute
    属性 属性、特性
    audio
    音讯 音频
    A.I.
    人工智慧 人工智能
    background
    背景 背景(用於图形着色)
    後台(用於行程)
    backward compatible
    回溯相容 向下兼容
    bandwidth
    频宽 带宽
    base class
    基础类别 基类
    base type
    基础型别 (等同於 baseclass)
    batch
    批次(意思是整批作业) 批处理
    benefit
    利益 收益
    best viable function
    最佳可行函式 最佳可行函式
    (从 viable functions 中挑出的最佳吻合者)
    binary search
    二分搜寻法 二分查找
    binary tree
    二元树 二叉树
    binary function
    二元函式 双叁函数
    binary operator
    二元运算子 二元操作符
    binding
    系结 绑定
    bit
    位元
    bit field
    位元栏 位域
    bitmap
    位元图 位图
    bitwise
    bit 为单元逐一
    bitwise copy
    bit 为单元进行复制;位元逐一复制 位拷贝
    block
    区块,区段 块、区块、语句块
    boolean
    布林值(真假值,true false 布尔值
    border
    边框、框线 边框
    brace(curly brace)
    大括弧、大括号 花括弧、花括号
    bracket(square brakcet)
    中括弧、中括号 方括弧、方括号
    breakpoint
    中断点 断点
    build
    建造、构筑、建置(MS 用语)
    build
    in 内建 内置
    bus
    汇流排 总线
    business
    商务,业务 业务
    buttons
    按钮 按钮
    byte
    位元组(由 8 bits 组成) 字节
    cache
    快取 高速缓存
    call
    呼叫、叫用 调用
    callback
    回呼 回调
    call operator call
    (函式呼叫)运算子调用操作符
    (同 function call operator
    candidate function
    候选函式 候选函数
    (在函式多载决议程序中出现的候选函式)
    chain
    串链(例 chain of function calls
    character
    字元 字符
    check box
    核取方块 (i.e. check button) 复选框
    checked exception
    可控式异常(Java)
    check button
    方钮 (i.e. check box) 复选按钮
    child class
    子类别(或称为derivedclass, subtype 子类
    class
    类别
    class body
    类别本体 类体
    class declaration
    类别宣告、类别宣告式 类声明
    class definition
    类别定义、类别定义式 类定义
    class derivation list
    类别衍化列 类继承列表
    class head
    类别表头 类头
    class hierarchy
    类别继承体系, 类别阶层 类层次体系
    class library
    类别程式库、类别库 类库
    class template
    类别模板、类别范本 类模板
    class template partial specializations
    类别模板偏特化 类模板部分特化
    class template specializations
    类别模板特化 类模板特化

    cleanup 清理、善後 清理、清除
    client
    客端、客户端、客户 客户
    client
    server 主从架构 客户/服务器
    clipboard
    剪贴簿 剪贴板
    clone
    复制 克隆
    collection
    群集 集合
    combo box
    复合方块、复合框 组合框
    command line
    命令列 命令行
    (
    系统文字模式下的整行执行命令)
    communication
    通讯 通讯
    compatible
    相容 兼容
    compile time
    编译期 编译期、编译时
    compiler
    编译器 编译器
    component
    组件 组件
    composition
    复合、合成、组合 组合
    computer
    电脑、计算机 计算机、电脑
    concept
    概念 概念
    concrete
    具象的 实在的
    concurrent
    并行 并发
    configuration
    组态 配置
    connection
    连接,连线(网络,资料库) 连接
    constraint
    约束(条件)
    construct
    构件 构件
    container
    容器 容器
    (存放资料的某种结构如 list, vector...
    containment
    内含 包容
    context
    背景关系、周遭环境、上下脉络 环境、上下文
    control
    控制元件、控件 控件
    console
    主控台 控制台
    const
    常数(constant 的缩写,C++ 关键字)
    constant
    常数(相对於 variable 常量
    constructor
    ctor 建构式 构造函数
    (与class 同名的一种 memberfunctions
    copy (v)
    复制、拷贝 拷贝
    copy (n)
    复件, 副本
    cover
    涵盖 覆盖
    create
    创建、建立、产生、生成 创建
    creation
    产生、生成 创建
    cursor
    游标 光标
    custom
    订制、自定 定制
    data
    资料 数据
    database
    资料库 数据库
    database schema
    数据库结构纲目
    data member
    资料成员、成员变数 数据成员、成员变量
    data structure
    资料结构 数据结构
    datagram
    资料元 数据报文
    dead lock
    死结 死锁
    debug
    除错 调试
    debugger
    除错器 调试器
    declaration
    宣告、宣告式 声明
    deduction
    推导(例:templateargument deduction 推导、推断
    default
    预设 缺省、默认
    defer
    延缓 推迟
    define
    定义 预定义
    definition
    定义、定义区、定义式 定义
    delegate
    委派、委托、委任 委托
    delegation
    (同上)
    demarshal
    反编列 散集
    dereference
    提领(取出指标所指物体的内容) 解叁考
    dereference operator dereference
    (提领)运算子 * 解叁考操作符
    derived class
    衍生类别 派生类
    design by contract
    契约式设计
    design pattern
    设计范式、设计样式 设计模式
    最近我比较喜欢「设计范式」一词
    destroy
    摧毁、销毁
    destructor
    解构式 析构函数
    device
    装置、设备 设备
    dialog
    对话窗、对话盒 对话框
    directive
    指令(例:usingdirective (编译)指示符
    directory
    目录 目录
    disk

    dispatch
    分派 分派
    distributed computing
    分布式计算 (分布式电算) 分布式计算
    分散式计算 (分散式电算)
    document
    文件 文档
    dot operator dot
    (句点)运算子 . ()点操作符
    driver
    驱动程式 驱动(程序)
    dynamic binding
    动态系结 动态绑定
    efficiency
    效率 效率
    efficient
    高效 高效
    end user
    终端用户
    entity
    物体 实体、物体
    encapsulation
    封装 封装
    enclosing class
    外围类别(与巢状类别 nestedclass 有关)外围类
    enum (enumeration)
    列举(一种 C++ 资料型别) 枚举
    enumerators
    列举元(enum 型别中的成员) 枚举成员、枚举器
    equal
    相等 相等
    equality
    相等性 相等性
    equality operator equality
    (等号)运算子 == 等号操作符
    equivalence
    等价性、等同性、对等性 等价性
    equivalent
    等价、等同、对等 等价
    escape code
    转义码 转义码
    evaluate
    评估、求值、核定 评估
    event
    事件 事件
    event driven
    事件驱动的 事件驱动的
    exception
    异常情况 异常
    exception declaration
    异常宣告(ref. C++Primer 3/e, 11.3 异常声明
    exception handling
    异常处理、异常处理机制 异常处理、异常处理机制
    exception specification
    异常规格(ref. C++Primer 3/e, 11.4 异常规范
    exit
    退离(指离开函式时的那一个执行点) 退出
    explicit
    明白的、明显的、显式 显式
    export
    汇出 引出、导出
    expression
    运算式、算式 表达式
    facility
    设施、设备 设施、设备
    feature
    特性
    field
    栏位,资料栏(Java 字段, 值域(Java
    file
    档案 文件
    firmware
    韧体 固件
    flag
    旗标 标记
    flash memory
    快闪记忆体 闪存
    flexibility
    弹性 灵活性
    flush
    清理、扫清 刷新
    font
    字型 字体
    form
    表单(programming 用语) 窗体
    formal parameter
    形式叁数 形式叁数
    forward declaration
    前置宣告 前置声明
    forwarding
    转呼叫,转发 转发
    forwarding function
    转呼叫函式,转发函式 转发函数
    fractal
    碎形 分形
    framework
    框架 框架
    full specialization
    全特化(ref.partial specialization
    function
    函式、函数 函数
    function call operator
    calloperator
    function object
    函式物件(ref. C++Primer 3/e, 12.3 函数对象
    function overloaded resolution
    函式多载决议程序 函数重载解决(方案)
    functionality
    功能、机能 功能
    function template
    函式模板、函式范本 函数模板
    functor
    仿函式 仿函式、函子
    game
    游戏 游戏
    generate
    生成
    generic
    泛型、一般化的 一般化的、通用的、泛化
    generic algorithm
    泛型演算法 通用算法
    getter (
    相对於 setter) 取值函式
    global
    全域的(对应於 local 全局的
    global object
    全域物件 全局对象
    global scope resolution operator
    全域生存空间(范围决议)运算子 :: 全局范围解析操作符
    group
    群组
    group box
    群组方块 分组框
    guard clause
    卫述句 (Refactoring, p250) 卫语句
    GUI
    图形介面 图形界面
    hand shaking
    握手协商
    handle
    识别码、识别号、号码牌、权柄 句柄
    handler
    处理常式 处理函数
    hard
    coded 编死的 硬编码的
    hard
    copy 硬拷图 屏幕截图
    hard disk
    硬碟 硬盘
    hardware
    硬体 硬件
    hash table
    杂凑表 哈希表、散列表
    header file
    表头档、标头档 头文件
    heap
    堆积
    hierarchy
    阶层体系 层次结构(体系)
    hook
    挂钩 钩子
    hyperlink
    超链结 超链接
    icon
    图示、图标 图标
    IDE
    整合开发环境 集成开发环境
    identifier
    识别字、识别符号 标识符
    if and only if
    若且唯若 当且仅当
    Illinois
    伊利诺 伊利诺斯
    image
    影像 图象
    immediate base
    直接的(紧临的)上层 base class 直接上层基类
    immediate derived
    直接的(紧临的)下层 derivedclass 直接下层派生类
    immutability
    不变性
    immutable
    不可变(的)
    implement
    实作、实现 实现
    implementation
    实作品、实作体、实作码、实件 实现
    implicit
    隐喻的、暗自的、隐式 隐式
    import
    汇入 导入
    increment operator
    累加运算子 ++ 增加操作符
    infinite loop
    无穷回圈 无限循环
    infinite recursive
    无穷递回 无限递归
    information
    资讯 信息
    infrastructure
    公共基础建设
    inheritance
    继承、继承机制 继承、继承机制
    inline
    行内 内联
    inline expansion
    行内展开 内联展开
    initialization
    初始化(动作) 初始化
    initialization list
    初值列 初始值列表
    initialize
    初始化 初始化
    inner class
    内隐类别 内嵌类
    instance
    实体 实例
    (根据某种表述而实际产生的「东西」)
    instantiated
    具现化、实体化(常应用於 template 实例化
    instantiation
    具现体、具现化实体(常应用於 template 实例
    integer (integral)
    整数(的) 整型(的)
    integrate
    整合 集成
    interacts
    交谈、互动 交互
    interface
    介面 接口
    for GUI
    介面 界面
    interpreter
    直译器 解释器
    invariants
    恒常性,约束条件 约束条件
    invoke
    唤起 调用
    iterate
    迭代(回圈一个轮回一个轮回地进行) 迭代
    exception
    异常情况 异常
    exception declaration
    异常宣告(ref. C++Primer 3/e, 11.3 异常声明
    exception handling
    异常处理、异常处理机制 异常处理、异常处理机制
    exception specification
    异常规格(ref. C++Primer 3/e, 11.4 异常规范
    exit
    退离(指离开函式时的那一个执行点) 退出
    explicit
    明白的、明显的、显式 显式
    export
    汇出 引出、导出
    expression
    运算式、算式 表达式
    facility
    设施、设备 设施、设备
    feature
    特性
    field
    栏位,资料栏(Java 字段, 值域(Java
    file
    档案 文件
    firmware
    韧体 固件
    flag
    旗标 标记
    flash memory
    快闪记忆体 闪存
    flexibility
    弹性 灵活性
    flush
    清理、扫清 刷新
    font
    字型 字体
    form
    表单(programming 用语) 窗体
    formal parameter
    形式叁数 形式叁数
    forward declaration
    前置宣告 前置声明
    forwarding
    转呼叫,转发 转发
    forwarding function
    转呼叫函式,转发函式 转发函数
    fractal
    碎形 分形
    framework
    框架 框架
    full specialization
    全特化(ref.partial specialization
    function
    函式、函数 函数
    function call operator
    calloperator
    function object
    函式物件(ref. C++Primer 3/e, 12.3 函数对象
    function overloaded resolution
    函式多载决议程序 函数重载解决(方案)
    functionality
    功能、机能 功能
    function template
    函式模板、函式范本 函数模板
    functor
    仿函式 仿函式、函子
    game
    游戏 游戏
    generate
    生成
    generic
    泛型、一般化的 一般化的、通用的、泛化
    generic algorithm
    泛型演算法 通用算法
    getter (
    相对於 setter) 取值函式
    global
    全域的(对应於 local 全局的
    global object
    全域物件 全局对象
    global scope resolution operator
    全域生存空间(范围决议)运算子 :: 全局范围解析操作符
    group
    群组
    group box
    群组方块 分组框
    guard clause
    卫述句 (Refactoring, p250) 卫语句
    GUI
    图形介面 图形界面
    hand shaking
    握手协商
    handle
    识别码、识别号、号码牌、权柄 句柄
    handler
    处理常式 处理函数
    hard
    coded 编死的 硬编码的
    hard
    copy 硬拷图 屏幕截图
    hard disk
    硬碟 硬盘
    hardware
    硬体 硬件
    hash table
    杂凑表 哈希表、散列表
    header file
    表头档、标头档 头文件
    heap
    堆积
    hierarchy
    阶层体系 层次结构(体系)
    hook
    挂钩 钩子
    hyperlink
    超链结 超链接
    icon
    图示、图标 图标
    IDE
    整合开发环境 集成开发环境
    identifier
    识别字、识别符号 标识符
    if and only if
    若且唯若 当且仅当
    Illinois
    伊利诺 伊利诺斯
    image
    影像 图象
    immediate base
    直接的(紧临的)上层 base class 直接上层基类
    immediate derived
    直接的(紧临的)下层 derivedclass 直接下层派生类
    immutability
    不变性
    immutable
    不可变(的)
    implement
    实作、实现 实现
    implementation
    实作品、实作体、实作码、实件 实现
    implicit
    隐喻的、暗自的、隐式 隐式
    import
    汇入 导入
    increment operator
    累加运算子 ++ 增加操作符
    infinite loop
    无穷回圈 无限循环
    infinite recursive
    无穷递回 无限递归
    information
    资讯 信息
    infrastructure
    公共基础建设
    inheritance
    继承、继承机制 继承、继承机制
    inline
    行内 内联
    inline expansion
    行内展开 内联展开
    initialization
    初始化(动作) 初始化
    initialization list
    初值列 初始值列表
    initialize
    初始化 初始化
    inner class
    内隐类别 内嵌类
    instance
    实体 实例
    (根据某种表述而实际产生的「东西」)
    instantiated
    具现化、实体化(常应用於 template 实例化
    instantiation
    具现体、具现化实体(常应用於 template 实例
    integer (integral)
    整数(的) 整型(的)
    integrate
    整合 集成
    interacts
    交谈、互动 交互
    interface
    介面 接口
    for GUI
    介面 界面
    interpreter
    直译器 解释器
    invariants
    恒常性,约束条件 约束条件
    invoke
    唤起 调用
    iterate
    迭代(回圈一个轮回一个轮回地进行) 迭代
    iterative
    反覆的,迭代的
    iterator
    迭代器(一种泛型指标) 迭代器
    iteration
    迭代(回圈每次轮回称为一个 iteration 迭代
    item
    项目、条款 项、条款、项目
    laser
    雷射 激光
    level
    ()
    high level 高阶 高层
    library
    程式库、函式库 库、函数库
    lifetime
    生命期、寿命 生命期、寿命
    link
    联结、连结 连接,链接
    linker
    联结器、连结器 连接器
    literal constant
    字面常数(例 3.14 "hi" 这等常数值) 字面常数
    list
    串列(linkedlist 列表、表、链表
    list box
    列表方块、列表框 列表框
    load
    载入 装载
    loader
    载入器 装载器、载入器
    local
    区域的(对应於 global 局部的
    local object
    区域物件 局部对象
    lock
    机锁
    loop
    回圈 循环
    lvalue
    左值 左值
    macro
    巨集
    magic number
    魔术数字 魔法数
    maintain
    维护 维护
    manipulator
    操纵器(iostream 预先定义的一种东西) 操纵器
    marshal
    编列 列集
    叁考 demarshal
    mechanism
    机制 机制
    member
    成员 成员
    member access operator
    成员取用运算子(有 dot arrow 两种) 成员存取操作符
    member function
    成员函式 成员函数
    member initialization list
    成员初值列 成员初始值列表
    memberwise
    member 为单元members 逐一 以成员为单位
    memberwise copy
    members 为单元逐一复制
    memory
    记忆体 内存
    menu
    表单、选单 菜单
    message
    讯息 消息
    message based
    以讯息为基础的 基於消息的
    message loop
    讯息回圈 消息环
    method (java)
    方法、行为、函式 方法
    meta
    超- 元-
    metaprogramming超编程 元编程
    micro

    middleware
    中介层 中间件
    modeling
    模塑
    modeling language
    塑模语言,建模语言
    modem
    数据机 调制解调器
    module
    模组 模块
    modifier
    饰词 修饰符
    most derived class
    最末层衍生类别 最底层的派生类
    mouse
    滑鼠 鼠标
    mutable
    可变的 可变的
    multi
    tasking 多工 多任务
    namespace
    命名空间 名字空间、命名空间
    native
    原生的 本地的、固有的
    nested class
    巢状类别 嵌套类
    network
    网路 网络
    network card
    网路卡 网卡
    object
    物件 对象
    object based
    以物件为基础的 基於对象的
    object file
    目的档 目标文件
    object model
    物件模型 对象模型
    object oriented
    物件导向的 面向对象的
    online
    线上 在线
    opaque
    不透明的
    operand
    运算元 操作数
    operating system (OS)
    作业系统 操作系统
    operation
    操作、操作行为 操作
    operator
    运算子 操作符、运算符
    option
    选项,可选方案 选项
    ordinary
    常规的 常规的
    overflow
    上限溢位(相对於 underflow 溢出(underflow:下溢)
    overhead
    额外负担、额外开销 额外开销
    overload
    多载化、多载化、重载 重载
    overloaded function
    多载化函式 重载的函数
    overloaded operator
    多载化运算子 被重载的操作符
    overloaded set
    多载集合 重载集合
    override
    改写、覆写 重载、改写、重新定义
    (在 derived class 中重新定义虚拟函式
    package
    套件
    pair
    对组
    palette
    调色盘、组件盘、工具箱
    pane
    窗格 窗格
    (有时为嵌板之意,例 Java Content Pane
    parallel
    平行 并行
    parameter
    叁数(函式叁数列上的变数) 叁数、形式叁数、形叁
    parameter list
    叁数列 叁数列表
    parent class
    父类别(或称 base class 父类
    parentheses
    小括弧、小括号 圆括弧、圆括号
    parse
    解析 解析
    part
    零件 部件
    partial specialization
    偏特化(ref. C++Primer 3/e, 16.10 局部特化
    ref. full specialization
    pass by address
    传址(函式引数的传递方式)(非正式用语)传地址
    pass by reference
    传址(函式引数的一种传递方式) 传地址, 按引用传递
    pass by value
    传值(函式引数的一种传递方式) 按值传递
    pattern
    范式、样式 模式
    performance
    效率、性能兼而有之 性能
    persistence
    永续性 持久性
    pixel
    图素、像素 像素
    placement delete ref. C++ Primer 3/e, 15.8.2
    placement new ref. C++ Primer 3/e, 15.8.2
    platform
    平台 平台
    pointer
    指标 指针
    址位器(和址叁器 reference 形成对映,满好)
    poll
    轮询 轮询
    polymorphism
    多型 多态
    pop up
    冒起式、弹出式 弹出式
    port
    端口
    postfix
    後置式、後序式 後置式
    precedence
    优先序(通常用於运算子的优先执行次序)
    prefix
    前置式、前序式 前置式
    preprocessor
    前处理器 预处理器
    prime
    质数 素数
    primitive type
    基本型别 (不同於 baseclass,基础类别)
    print
    列印 打印
    printer
    印表机 打印机
    priority
    优先权 (通常用於执行绪获得 CPU 时间的优先次序)
    procedure
    程序 过程
    procedural
    程序性的、程序式的 过程式的、过程化的
    process
    行程 进程
    profile
    评测 评测
    profiler
    效能(效率)评测器 效能(性能)评测器
    programmer
    程式员 程序员
    programming
    编程、程式设计、程式化 编程
    progress bar
    进度指示器 进度指示器
    project
    专案 项目、工程
    property
    属性
    protocol
    协定 协议
    pseudo code
    假码、虚拟码、伪码 伪码
    qualified
    经过资格修饰(例如加上 scope 运算子) 限定
    qualifier
    资格修饰词、饰词 限定修饰词
    quality
    品质 质量
    queue
    伫列 队列
    radian
    径度 弧度
    radio button
    圆钮 单选按钮
    raise
    引发(常用来表示发出一个 exception 引起、引发
    random number
    随机数、乱数 随机数
    range
    范围、区间(用於 STL 时) 范围、区间
    rank
    等级、分等(ref.C++Primer 3/e 9,15章) 等级
    raw
    生鲜的、未经处理的 未经处理的
    record
    记录 记录
    recordset
    记录集 记录集
    recursive
    递回 递归
    re
    direction 重导向 重定向
    refactoring
    重构、重整 重构
    refer
    取用 叁考
    refer to
    指向、指涉、指代
    reference
    C++ 中类似指标的东西,相当於 "化身" 引用、叁考
    址叁器, see pointer
    register
    暂存器 寄存器
    reflection
    反射 反射、映像
    relational database
    关联式资料库 关系数据库
    represent
    表述,表现 表述,表现
    resolve
    决议(为算式中的符号名称寻找 解析
    对应之宣告式的过程)
    resolution
    决议程序、决议过程 解析过程
    resolution
    解析度 分辨率
    restriction
    局限
    return
    传回、回返 返回
    return type
    回返型别 返回类型
    return value
    回返值 返回值
    robust
    强固、稳健 健壮
    robustness
    强固性、稳健性 健壮性
    routine
    常式 例程
    runtime
    执行期 运行期、运行时
    common language runtime (CLR)
    译为「通用语言执行层」
    rvalue
    右值 右值
    save
    储存 存储
    schedule
    排程 调度
    scheduler
    排程器 调度程序
    scheme
    结构纲目、组织纲目
    scroll bar
    卷轴 滚动条
    scope
    生存空间、生存范围、范畴、作用域 生存空间
    scope operator
    生存空间(范围决议)运算子 :: 生存空间操作符
    scope resolution operator
    生存空间决议运算子 生存空间解析操作符
    (与scope operator同)
    screen
    萤幕 屏幕
    search
    搜寻 查找
    semantics
    语意 语义
    sequential container
    序列式容器 顺序式容器
    (对应於 associative container
    server
    伺服器、伺服端 服务器、服务端
    serial
    串行
    serialization
    次第读写,序列化 序列化
    (serialize)
    setter (
    相对於 getter) 设值函式
    signal
    信号
    signature
    标记式、签名式、署名式 签名
    slider
    滚轴 滑块
    slot
    条孔、槽
    smart pointer
    灵巧指标、精灵指标 智能指针
    snapshot
    萤幕快照(图) 屏幕截图
    specialization
    特殊化、特殊化定义、特殊化宣告 特化
    specification
    规格 规格、规范
    splitter
    分裂视窗 切分窗口
    software
    软体 软件
    solution
    解法,解决方案 方案
    source
    原始码 源码、源代码
    stack
    堆叠
    stack unwinding
    堆叠辗转开解(此词用於 exception 主题) 栈辗转开解 *
    standard library
    标准程式库
    standard template library
    标准模板程式库
    statement
    述句 语句、声明
    status bar
    状态列、状态栏 状态条
    STL
    standard template library
    stream
    资料流、串流
    string
    字串 字符串
    subroutine
    subscript operator
    下标运算子 [ ] 下标操作符
    subtype
    子型别 子类型
    support
    支援 支持
    suspend
    虚悬 挂起
    symbol
    符号 记号
    syntax
    语法 语法
    tag
    标签 标记
    索引标签,页签
    target
    标的(例 target pointer:标的指标) 目标
    task switch
    工作切换 任务切换
    template
    模板、范本 模板
    template argument deduction
    模板引数推导 模板叁数推导
    template explicit specialization
    模板显式特化(版本) 模板显式特化
    template parameter
    模板叁数 模板叁数
    temporary object
    暂时物件 临时对象
    text
    文字 文本
    text file
    程式本文档(放置程式原始码的档案) 文本文件
    thread
    执行绪 线程
    thread safe
    多绪安全 多线程安全
    throw
    丢掷(常指发出一个 exception 丢掷、引发
    token
    语汇单元 符号、标记
    transaction
    交易 事务
    transparent(ly)
    透通的()
    traverse
    巡访(来回走动) 遍历
    trigger
    触发 触发
    type
    型别 类型
    UML unified modeling language
    统一建模语言
    unary function
    一元函式 单叁函数
    unary operator
    一元运算子 一元操作符
    underflow
    下限溢位(相对於 overflow 下溢
    unchecked exception
    不可控异常(Java)
    unqualified
    未经资格修饰(而直接取用)
    unwinding ref. stack unwinding
    user
    使用者、用户 用户
    user interface
    使用者介面、用户介面、人机介面 用户界面
    variable
    变数(相对於常数 const 变量
    vector
    向量(一种容器,有点类似 array 向量、矢量
    viable
    可实行的、可行的 可行的
    viable function
    可行函式 可行函数
    (从 candidate functions 中挑出者)
    video
    视讯 视频
    view (1)
    视图
    (document/view)
    文档/视图
    view (2)
    映件
    virtual function
    虚拟函式 虚函数
    virtual machine
    虚拟机器 虚拟机
    virtual memory
    虚拟记忆体 虚内存, 虚存
    volatile
    易挥发的、易变的
    vowel
    母音 元音字母
    window
    视窗 窗口
    window function
    视窗函式 窗口函数
    window procedure
    视窗函式 窗口过程
    word
    单词
    word processor
    文书处理器 字处理器
    wrapper
    外覆、外包 包装absence 缺席
    access
    访问存取通路进入
    achieve
    实现完成
    acquire
    获得
    adjacency list method
    邻接表表示法
    adjacency matrix method
    邻接矩阵表示法
    algorithm
    算法
    allocate
    留下分配
    analog
    推论
    append
    添加
    archive
    档案归档
    array
    数组
    assign
    分配
    assume
    假设
    assurance
    确信信任
    ATM(asynchronous transfer mode)
    异步传输模式
    b.. real programs kernels
    实程序核心程序
    b.. toy benchmark synthetic benchmark
    简单基准程序复合基准程序
    balance
    平衡
    bandwidth
    带宽
    batch
    一批一组
    benchmark
    基准测试程序
    best-fit algorithm
    最佳适应算法
    BFS(breadth first search)
    广度优先搜索法
    binary
    二进制
    binary relation
    二元关系
    binary tree
    二叉树
    bit series
    比特序列
    black-box white-box
    黑盒白盒
    block miss
    块失效
    blocked
    阻塞(等待状态也称阻塞或封锁状态)
    boundary
    界线分界
    bridge
    网桥
    bubble sort
    冒泡排序
    calculation
    计算
    candidate key
    候选键(辅键)
    capability
    能力才能
    capacity
    容量
    cartesian product
    笛卡尔积
    CASE(com.. aided sof.. engineering)
    计算机辅助软件工程
    CCP(communication control processor)
    通信控制处理机
    cell
    信元
    characteristic
    特征特性
    circuit switching
    线路交换
    circular wait
    循环等待
    CISC(complex instruction set computer)
    复杂指令集计算机
    class

    Client/Server
    客户机/服务器
    clock cycle clock rate
    时钟周期时钟频率
    coaxial cable
    同轴电缆
    cohesion coupling
    内聚耦合
    coincidental logical procedural functional
    偶然内聚逻辑内聚过程内聚功能内聚
    combination
    联合配合
    common
    公用的共同的
    communication
    通信
    complement number
    补码
    component
    成分
    concept
    概念观念
    condition
    情况状况
    conform
    符合
    consist
    组成存在
    constrain
    约束
    contain
    包含
    correspond (corresponding)
    相符合(相应的一致的)
    CPETT
    计算机性能评价工具与技术
    CPI
    每条指令需要的周期数
    CSMA/CD
    带冲突检测的载波监听多路访问
    cursor
    游标
    cyclic redundency check
    循环冗余检校
    database: integrity consistency restory
    完整性一致性可恢复性
    database: security efficiency
    数据库设计的目标: 安全性效率
    deadlock: mutual exclusion
    死锁条件: 互斥
    deadlock: circular wait no preemption
    死锁条件: 循环等待狗熊先权
    decimal
    十进位的
    decision
    决定判断
    decomposition
    双重的混合的
    decrease
    减少
    definition
    定义
    definition phase
    定义阶段
    demonstrate
    证明
    design phase
    设计阶段
    determine
    限定
    development phase
    开发阶段
    DFS(depth first search)
    深度优先搜索法
    diagram
    图表
    Difference Manchester
    差分曼彻斯特
    directed graph undirected graph
    有向图无向图
    distinguish
    辩认区别
    distributed system
    分布式系统
    divide division
    分开除除法
    divide union intersection difference
    除并交差
    document
    文件文档
    DQDB(distributed queue dual bus)
    分布队列双总线
    draw
    绘制
    dual
    二元的双的
    dynamic design process
    动态定义过程
    element
    元素要素
    elevator (scan) algorithm
    电梯算法又称扫描算法
    encapsulation inheritance
    封装(压缩) 继承(遗传)
    encode
    译成密码
    entity
    实体
    entity integrity rule
    实体完整性规则
    equal
    相等的
    equation
    方程式等式
    estimate
    估计判断
    Ethernet
    以太网
    evolution
    发展演化
    exceed
    超过
    exchange sort
    交换排序
    exclusive locks
    排它锁(简记为X )
    execute
    实现执行
    exhibit
    表现展示陈列
    existence
    存在发生
    expertise
    专门技术
    external(internal) fragmentation
    ()碎片
    fault page fault
    中断过错页中断
    FDDI(fiber distributed data interface)
    光纤分布式数据接口
    FDM(frequency division multiplexing
    频分多路复用
    fiber optic cable
    光缆
    FIFO replacement policy
    先进先出替换算法
    figure
    数字图形
    final
    最后的最终的
    first normal form
    第一范式
    floppy
    活动盘片(软盘)
    foreign key domain tuple
    外来键值域元组
    form
    形状形式
    formula
    公式表达式
    foundation
    基础根据基金
    frame page frame
    帧结构页结构
    frequency
    频率
    FTP
    文件传送服务
    function
    函数
    functionally dependent
    函数依赖
    gateway
    网间连接器
    gather
    聚集采集推测
    general-purose registers
    通用寄存器
    generate
    产生
    grade
    等级标准
    graph (graphic)

    Gropher
    将用户的请求自动转换成
    FTP
    guarantee
    保证确定
    hash table hash function collision
    哈希表哈希函数(散列函数) 碰撞
    HDLC
    面向比特型数据链路层协议
    hit rate
    命中率
    host
    主计算机
    host language statement
    主语言语句
    hypertext
    超级文本
    illustrate
    举例说明
    independent
    独立的
    index
    索引
    indirect
    间接的
    influence
    有影响的
    initially
    最初开头
    insertion sort
    插入排序
    instruction format
    指令格式
    instruction set
    指令集
    interface
    接口分界面连接体
    internal
    内部的内在的
    interrupt
    中断
    IPC
    工业过程控制
    ISAM VSAM
    索引顺序存取方法虚拟存储存取方法
    join natural join semijoin
    连接自然连接半连接
    judgment
    判断
    kernel executive supervisor user
    核心执行管理用户
    kernels
    核心程序
    key comparison
    ()值比较
    LAN(local area network)
    局域网
    load
    负载载入
    logical functional
    逻辑内聚功能内聚
    longitudinal
    水平的
    loop
    圈环状
    maintain
    维护保养供给
    maintanence phase
    维护(保养)阶段
    MAN(metropclitan area network)
    城域网
    Manchester
    曼彻斯特
    map
    地图映射图
    matrix
    矩阵点阵
    memory reference
    存储器参量
    message switching
    报文交换
    method
    方法技巧
    MFLOP(million floating point operate p s
    每秒百万次浮点运算
    minimum
    最小的
    MIPS(millions of instructions per second
    每秒百万条指令
    module
    单位基准
    monitor (model benchmark physcal) method
    监视(模型基准物理)
    multilevel data flow chart
    分层数据流图
    multiple
    复合的多样的
    multiple-term formula
    多项式
    multiplexing
    多路复用技术
    multiplication
    乘法
    mutual exclusion
    互相排斥
    non-key attributes
    非码属性
    null
    零空
    Nyquist
    奈奎斯特
    object oriented
    对象趋向的使适应的
    object oriented analysis
    面向对象的分析
    object oriented databases
    面向对象数据库
    object oriented design
    面向对象的设计
    object oriented implementation
    面向对象的实现
    obtain
    获得
    occupy
    占有居住于
    occurrence
    事件
    odd
    奇数的
    one-dimensional array
    一维数组
    OODB(object oriented data base)
    面向对象数据库
    OOM(object oriented method)
    面向对象的方法
    oom: information object message class
    信息对象消息类
    oom: instance method message passing
    实例方法消息传递
    open system
    开放系统
    operand
    操作数
    optimized
    尽量充分利用
    optional
    任选的非强制的
    organize
    组织
    overflow
    溢出
    overlapping register windows
    重叠寄存器窗口
    packet switching
    报文分组交换
    page fault
    页面失效
    page replacement algorithm
    页替换算法
    paged segments
    段页式管理
    PCB(process control block)
    进程控制块
    peer entites
    对等实体
    perform
    表演执行
    period
    时期周期
    permit
    许可准许
    phase
    阶段局面状态
    physical data link network layer
    物理层数据链路层网络层
    pipeline
    管道
    platter track cluster
    面磁道簇
    predicate
    谓语
    preemption
    有优先权的
    prefix (Polish form)
    前缀(波兰表达式)
    preorder inorder postorder
    前序中序后序
    presentation application layer
    表示层应用层
    primary key attributes
    主码属性
    principle
    原则方法
    procedural coincidental
    过程内聚偶然内聚
    process
    过程加工处理
    proficient
    精通
    program debugging
    程序排错
    projection selection join
    投影选择连接
    proposition
    主张建议陈述
    protocal
    协议
    prototype
    原型样板
    prototyping method (model)
    原型化周期(模型)
    pseudo-code
    伪码(又称程序设计语言PDL)
    punctuation
    标点
    purpose
    目的意图
    quality
    质量品质
    queue
    队列
    ready blocked running
    就绪阻塞(等待) 运行
    real page number
    实页数
    real programs
    实程序
    redirected
    重定向
    redundency
    冗余
    reference integrity rule
    引用完整性规则
    referred to as
    .....当作
    regarde
    关于
    register(registry)
    寄存器登记注册挂号
    regularly
    定期的常规的
    relation
    关系
    relay
    中继
    reliability
    可信赖的
    repeater
    中继器
    replacement
    替换
    represent
    代表象征
    request indication response confirm
    请求指示响应确认
    resource
    资源
    respon
    回答响应
    RISC(reduced instruction set computer)
    精简指令集计算机
    robustness
    健壮性
    router
    路由器
    scheme
    计划图表
    sector head cylinder
    扇区磁头柱面
    selection sort
    选择排序
    semaphores
    信号
    sequence
    序列顺序
    Shanon
    香农
    share locks
    共享锁(简记为S )
    short path critical path
    最短路径关键路径
    signal
    信号
    signal-to-noise ratio
    信噪比B/N
    similar
    相似的
    SISD SIMD MISD MIMD *
    指令流* 数据流
    SMDS
    交换多兆位数据服务
    software development phase
    软件开发阶段
    software engineering
    软件工程
    software portability
    软件可移植性
    software requirements specification
    软件需求说明书
    solve
    解决
    sort
    种类方式分类排序
    spanning tree
    跨越树(生成树)
    specify
    指定说明
    speedup
    加速比
    SSTF(shortest-seek-time-first)
    最短寻道时间优先(磁盘调度算法)
    stack strategy non-stack strategy
    堆栈型非堆栈型
    starvation
    饥饿匮乏
    statement
    陈述
    storage
    贮藏库
    store procdures
    存储过程
    strategy
    战略兵法计划
    strict
    严密的
    styles
    文体风格
    subgroup
    循环的
    subset
    子集子设备
    superclass subclass abstract class
    超类子类抽象类
    suppose
    假定
    symbolic
    象征的符号的
    synthetic benchmark
    复合基准程序
    system testing
    系统测试
    Systolic
    脉动阵列
    table
    表表格桌子
    TDM(time division multiplexing)
    时分多路复用
    technology
    工艺技术
    terminal
    终端
    testing phase
    测试阶段
    theta select project theta join θ
    选择投影θ连接
    time complexity
    时间复杂度
    timestamping
    时标技术
    Token Bus
    令牌总线
    Token Ring
    令牌环
    toy benchmark
    简单基准程序
    transaction
    事务记录
    transmite
    传送
    transport layer session layer
    传输层会话层
    traversal method
    遍历方法
    triggers store procedures
    触发器存储过程
    (ORACLE
    系统)
    underflow
    下溢
    unique
    唯一的
    unit system acceptance testing
    单元测试系统测试确认测试
    universe
    宇宙全世界
    update
    更新
    value [
    ]
    variable
    变量
    vertical
    垂直的
    vertice edge
    顶点(结点)
    via
    经过
    virtual memory system
    虚拟存储系统
    WAN(wide area network)
    广域网
    waterfall model
    瀑布模型
    white noise
    白噪声
    write-back(copy-back)
    写回法
    write-through(store-through)
    写直达法
    WWW(world wide web)
    万维网

    other 2 :

    A
    Active-matrix
    主动距陈
    Adapter cards
    适配卡
    Advanced application
    高级应用
    Analytical graph
    分析图表
    Analyze
    分析
    Animations
    动画
    Application software
    应用软件
    Arithmetic operations
    算术运算
    Audio-output device
    音频输出设备
    Access time
    存取时间
    access
    存取
    accuracy
    准确性
    ad network cookies
    广告网络信息记录软件
    Add-ons
    附软件
    Address
    地址
    Agents
    代理
    Analog signals
    模拟信号
    Applets
    程序
    Asynchronous communications port
    异步通信端口
    Attachment
    附件

    B
    Bar code
    条形码
    Bar code reader
    条形码读卡器
    Basic application
    基础程序
    Binary coding schemes
    二进制译码方案
    Binary system
    二进制系统
    Bit
    比特
    Browser
    浏览器
    Bus line
    总线
    Backup tape cartridge units
    备份磁带盒单元
    Bandwidth
    带宽
    Bluetooth
    蓝牙
    Broadband
    宽带
    Browser
    浏览器
    Business-to-business
    企业对企业电子商务
    Business-to-consumer
    企业对消费者
    Bus
    总线

    C
    Cables
    连线
    Cell
    单元箱
    Chain printer
    链式打印机
    Character and recognition device
    字符标识识别设备
    Chart
    图表
    Chassis
    支架
    Chip
    芯片
    Clarity
    清晰度
    Closed architecture
    封闭式体系结构
    Column

    Combination key
    结合键
    computer competency
    计算机能力
    connectivity
    连接,结点
    Continuous-speech recognition system
    连续语言识别系统
    Control unit
    操纵单元
    Cordless or wireless mouse
    无线鼠标
    Cable modems
    有线调制解调器
    carpal tunnel syndrome
    腕骨神经综合症
    CD-ROM
    可记录光盘
    CD-RW
    可重写光盘
    CD-R
    可记录压缩光盘
    Channel
    信道
    Chat group
    谈话群组
    chlorofluorocarbons(CFCs) ]
    氯氟甲烷
    Client
    客户端
    Coaxial cable
    同轴电缆
    cold site
    冷战
    Commerce servers
    商业服务器
    Communication channel
    信道
    Communication systems
    信息系统
    Compact disc rewritable
    Compact disc
    光盘
    computer abuse amendments act of 19941994
    计算机滥用法案
    computer crime
    计算机犯罪
    computer ethics
    计算机道德
    computer fraud and abuse act of 1986
    计算机欺诈和滥用法案
    computer matching and privacy protection act of 1988
    计算机查找和隐私保护法案
    Computer network
    计算机网络
    computer support specialist
    计算机支持专家
    computer technician
    计算机技术人员
    computer trainer
    计算机教师
    Connection device
    连接设备
    Connectivity
    连接
    Consumer-to-consumer
    个人对个人
    cookies-cutter programs
    信息记录截取程序
    cookies
    信息记录程序
    cracker
    解密高手
    cumulative trauma disorder
    积累性损伤错乱
    Cybercash
    电子现金
    Cyberspace
    计算机空间
    cynic
    愤世嫉俗者

    D
    Database
    数据库
    database files
    数据库文件
    Database manager
    数据库管理
    Data bus
    数据总线
    Data projector
    数码放映机
    Desktop system unit
    台式电脑系统单元
    Destination file
    目标文件
    Digital cameras
    数码照相机
    Digital notebooks
    数字笔记本
    Digital bideo camera
    数码摄影机
    Discrete-speech recognition system
    不连续语言识别系统
    Document
    文档
    document files
    文档文件
    Dot-matrix printer
    点矩阵式打印机
    Dual-scan monitor
    双向扫描显示器
    Dumb terminal
    非智能终端
    data security
    数据安全
    Data transmission specifications
    数据传输说明
    database administrator
    数据库管理员
    Dataplay
    数字播放器
    Demodulation
    解调
    denial of service attack
    拒绝服务攻击
    Dial-up service
    拨号服务
    Digital cash
    数字现金
    Digital signals
    数字信号
    Digital subscriber line
    数字用户线路
    Digital versatile disc
    数字化通用磁盘
    Digital video disc
    数字化视频光盘
    Direct access
    直接存取
    Directory search
    目录搜索
    disaster recovery plan
    灾难恢复计划
    Disk caching
    磁盘驱动器高速缓存
    Diskette
    磁盘
    Disk
    磁碟
    Distributed data processing system
    分部数据处理系统
    Distributed processing
    分布处理
    Domain code
    域代码
    Downloading
    下载
    DVD
    数字化通用磁盘
    DVD-R
    可写DVD
    DVD-RAM DVD
    随机存取器
    DVD-ROM
    只读DVD

    E
    e-book
    电子阅读
    Expansion cards
    扩展卡
    end user
    终端用户
    e-cash
    电子现金
    e-commerce
    电子商务
    electronic cash
    电子现金
    electronic commerce
    电子商务
    electronic communications privacy act of1986
    电子通信隐私法案
    encrypting
    加密术
    energy star
    能源之星
    Enterprise computing
    企业计算化
    environment
    环境
    Erasable optical disks
    可擦除式光盘
    ergonomics
    人类工程学
    ethics
    道德规范
    External modem
    外置调制解调器
    extranet
    企业外部网

    F
    Fax machine
    传真机
    Field

    Find
    搜索
    FireWire port port
    火线端口
    Firmware
    固件
    Flash RAM
    闪存
    Flatbed scanner
    台式扫描器
    Flat-panel monitor
    纯平显示器
    floppy disk
    软盘
    Formatting toolbar
    格式化工具条
    Formula
    公式
    Function
    函数
    fair credit reporting act of 1970
    公平信用报告法案
    Fiber-optic cable
    光纤电缆
    File compression
    文件压缩
    File decompression
    文件解压缩
    filter
    过滤
    firewall
    防火墙
    firewall
    防火墙
    Fixed disk
    固定硬盘
    Flash memory
    闪存
    Flexible disk
    可折叠磁盘
    Floppies
    磁盘
    Floppy disk
    软盘
    Floppy-disk cartridge
    磁盘盒
    Formatting
    格式化
    freedom of information act of 1970
    信息自由法案
    frustrated
    受挫折
    Full-duplex communication
    全双通通信

    G
    General-purpose application
    通用运用程序
    Gigahertz
    千兆赫
    Graphic tablet
    绘图板
    green pc
    绿色个人计算机

    H
    handheld computer
    手提电脑
    Hard copy
    硬拷贝
    hard disk
    硬盘
    hardware
    硬件
    Help
    帮助
    Host computer
    主机
    Home page
    主页
    Hyperlink
    超链接
    hacker
    黑客
    Half-duplex communication
    半双通通信
    Hard disk
    硬盘
    Hard-disk cartridge
    硬盘盒
    Hard-disk pack
    硬盘组
    Head crash
    磁头碰撞
    header
    标题
    help desk specialist
    帮助办公专家
    helper applications
    帮助软件
    Hierarchical network
    层次型网络
    history file
    历史文件
    hits
    匹配记录
    horizontal portal
    横向用户
    hot site
    热战
    Hybrid network
    混合网络
    hyperlinks
    超连接

    I
    Image capturing device
    图像获取设备
    information technology
    信息技术
    Ink-jet printer
    墨水喷射印刷机
    Integrated package
    综合性组件
    Intelligent terminal
    智能终端设备
    Intergrated circuit
    集成电路
    Interface cards
    接口卡
    Internal modem
    内部调制解调器
    internet telephony
    网络电话
    internet terminal
    互联网终端
    Identification
    识别
    i-drive
    网络硬盘驱动器
    illusion of anonymity
    匿名幻想
    index search
    索引搜索
    information pushers
    信息推送器
    initializing
    初始化
    instant messaging
    计时信息
    internal hard disk
    内置硬盘
    Internal modem
    内部调制解调器
    Internet hard drive
    网络硬盘驱动器
    intranet
    企业内部网

    J
    joystick
    操纵杆

    K
    keyword search
    关键字搜索

    L
    laser printer
    激光打印机
    Layout files
    版式文件
    Light pen
    光笔
    Locate
    定位
    Logical operations
    逻辑运算
    Lands
    凸面
    Line of sight communication
    视影通信
    Low bandwidth
    低带宽
    lurking
    潜伏

    M
    Main board
    主板
    Mark sensing
    标志检测
    Mechanical mouse
    机械鼠标
    Memory
    内存
    Menu
    菜单
    Menu bar
    菜单条
    Microprocessor
    微处理器
    Microseconds
    微秒
    Modem card
    调制解调器
    Monitor
    显示器
    Motherboard
    主板
    Mouse
    鼠标
    Multifunctional device
    多功能设备
    Magnetic tape reels
    磁带卷
    Magnetic tape streamers
    磁带条
    mailing list
    邮件列表
    Medium band
    媒质带宽
    metasearch engine
    整合搜索引擎
    Microwave
    微波
    Modem
    解调器
    Modulation
    解调

    N
    Net PC
    网络计算机
    Network adapter card
    网卡
    Network personal computer
    网络个人电脑
    Network terminal
    网络终端
    Notebook computer
    笔记本电脑
    Notebook system unit
    笔记本系统单元
    Numeric entry
    数字输入
    na?ve
    天真的人
    national information infrastructure protection act of1996
    国际信息保护法案
    national service provider
    全国性服务供应商
    Network architecture
    网络体系结构
    Network bridge
    网桥
    Network gateway
    网关
    network manager
    网络管理员
    newsgroup
    新闻组
    no electronic theft act of1997
    无电子盗窃法
    Node
    节点
    Nonvolatile storage
    非易失性存储

    O
    Object embedding
    对象嵌入
    Object linking
    目标链接
    Open architecture
    开放式体系结构
    Optical disk
    光盘
    Optical mouse
    光电鼠标
    Optical scanner
    光电扫描仪
    Outline
    大纲
    off-line browsers
    离线浏览器
    Online storage
    联机存储

    P
    palmtop computer
    掌上电脑
    Parallel ports
    并行端口
    Passive-matrix
    被动矩阵
    PC card
    个人计算机卡
    Personal laser printer
    个人激光打印机
    Personal video recorder card
    个人视频记录卡
    Photo printer
    照片打印机
    Pixel
    像素
    Platform scanner
    平版式扫描仪
    Plotter
    绘图仪
    Plug and play
    即插即用
    Plug-in boards
    插件卡
    Pointer
    指示器
    Pointing stick
    指示棍
    Port
    端口
    Portable scanner
    便携式扫描仪
    Presentation files
    演示文稿
    Presentation graphics
    电子文稿程序
    Primary storage
    主存
    Procedures
    规程
    Processor
    处理机
    Programming control lanugage
    程序控制语言
    Packets
    数据包
    Parallel data transmission
    平行数据传输
    Peer-to-peer network system
    得等网络系统
    person-person auction site
    个人对个人拍卖站点
    physical security
    物理安全
    Pits
    凹面
    plug-in
    插件程序
    Polling
    轮询
    privacy
    隐私权
    proactive
    主动地
    programmer
    程序员
    Protocols
    协议
    provider
    供应商
    proxy server
    代理服务
    pull products
    推取程序
    push products
    推送程序

    R
    RAM cache
    随机高速缓冲器
    Range
    范围
    Record
    记录
    Relational database
    关系数据库
    Replace
    替换
    Resolution
    分辨率
    Row

    Read-only
    只读
    Reformatting
    重组
    regional service provider
    区域性服务供应商
    repetitive motion injury
    反复性动作损伤
    reverse directory
    反向目录
    right to financial privacy act of 1979
    财产隐私法案

    S
    Scanner
    扫描器
    Search
    查找
    Secondary storage device
    助存储设备
    Semiconductor
    半导体
    Serial ports
    串行端口
    Server
    服务器
    Shared laser printer
    共享激光打印机
    Sheet
    表格
    Silicon chip
    硅片
    Slots
    插槽
    Smart card
    智能卡
    Soft copy
    软拷贝
    Software suite
    软件协议
    Sorting
    排序分类
    Source file
    源文件
    Special-purpose application
    专用文件
    Spreadsheet
    电子数据表
    Standard toolbar
    标准工具栏
    Supercomputer
    巨型机
    System cabine
    系统箱
    System clock
    时钟
    System software
    系统软件
    Satellite/air connection services
    卫星无线连接服务
    search engines
    搜索引擎
    search providers
    搜索供应者
    search services
    搜索服务器
    Sectors
    扇区
    security
    安全
    Sending and receiving devices
    发送接收设备
    Sequential access
    顺序存取
    Serial data transmission
    单向通信
    signature line
    签名档
    snoopware
    监控软件
    software copyright act of1980
    软件版权法案
    software piracy
    软件盗版
    Solid-state storage
    固态存储器
    specialized search engine
    专用搜索引擎
    spiders
    网页爬虫
    spike
    尖峰电压
    Star network
    星型网
    Strategy
    方案
    subject
    主题
    subscription address
    预定地址
    Superdisk
    超级磁盘
    surfing
    网上冲浪
    surge protector
    浪涌保护器
    systems analyst
    系统分析师

    T
    Table
    二维表
    Telephony
    电话学
    Television boards
    电视扩展卡
    Terminal
    终端
    Template
    模板
    Text entry
    文本输入
    Thermal printer
    热印刷
    Thin client
    瘦客
    Toggle key
    触发键
    Toolbar
    工具栏
    Touch screen
    触摸屏
    Trackball
    追踪球
    TV tuner card
    电视调谐卡
    Two-state system
    双状态系统
    technical writer
    技术协作者
    technostress
    重压技术
    telnet
    远程登录
    Time-sharing system
    分时系统
    Topology
    拓扑结构
    Tracks
    磁道
    traditional cookies
    传统的信息记录程序
    Twisted pair
    双绞线

    U
    Unicode
    统一字符标准
    uploading
    上传
    usenet
    世界性新闻组网络

    V
    Virtual memory
    虚拟内存
    Video display screen
    视频显示屏
    Voice recognition system
    声音识别系统
    vertical portal
    纵向门户
    video privacy protection act of 1988
    视频隐私权保护法案
    virus checker
    病毒检测程序
    virus
    病毒
    Voiceband
    音频带宽
    Volatile storage
    易失性存储
    voltage surge
    冲击性电压

    W
    Wand reader
    条形码读入
    Web
    网络
    Web appliance
    环球网设备
    Web page
    网页
    Web site address
    网络地址
    Web terminal
    环球网终端
    Webcam
    摄像头
    What-if analysis
    假定分析
    Wireless revolution
    无线革命
    Word
    字长
    Word processing
    文字处理
    Word wrap
    自动换行
    Worksheet file
    工作表文件
    web auctions
    网上拍卖
    web broadcasters
    网络广播
    web portals
    门户网站
    web sites
    网站
    web storefront creation packages
    网上商店创建包
    web storefronts
    网上商店
    web utilities
    网上应用程序
    web-downloading utilities
    网页下载应用程序
    webmaster web
    站点管理员
    web
    万维网
    Wireless modems
    无线调制解调器
    wireless service provider
    无线服务供应商
    world wide web
    万维网
    worm
    蠕虫病毒
    Write-protect notch
    写保护口

    其他缩写
    DVD digital bersatile
    数字化通用光盘
    IT ingormation technology
    信息技术
    CD compact disc
    压缩盘
    PDA personal digital assistant
    个人数字助理
    RAM random access memory
    随机存储器
    WWW World Wide Web
    万维网
    DBMS database management system
    数据库管理系统
    HTML Hypertext Markup Language
    超文本标示语言
    OLE object linking and embedding
    对象链接潜入
    SQL structured query language
    结构化查询语言
    URL uniform resouice locator
    统一资源定位器
    AGP accelerated graphics port
    加速图形接口
    ALU arithmetic-logic unit
    算术逻辑单元
    CPU central processing unit
    中央处理器
    CMOS complementary metal-oxide semiconductor
    互补金属氧化物半导体
    CISC complex instruction set computer
    复杂指令集计算机
    HPSB high performance serial bus
    高性能串行总线
    ISA industry standard architecture
    工业标准结构体系
    PCI peripheral component interconnect
    外部设备互连总线
    PCMCIA Personal Memory Card International Association
    个人计算机存储卡国际协会
    RAM random-access memory
    随机存储器
    ROM read-only memory
    只读存储器
    USB universal serial bus
    通用串行总线
    CRT cathode-ray tube
    阴极射线管
    HDTV high-definition television
    高清晰度电视
    LCD liquid crystal display monitor
    液晶显示器
    MICRmagnetic-ink character recognition
    磁墨水字符识别器
    OCR optical-character recognition
    光电字符识别器
    OMR optical-mark recognition
    光标阅读器
    TFT thin film transistor monitor
    薄膜晶体管显示器

    其他
    Zip disk
    压缩磁盘
    Domain name system
    DNS)域名服务器
    file transfer protocol(FTP)
    文件传送协议
    hypertext markup language(HTML)
    超文本链接标识语言
    Local area network
    LAN)局域网
    internet relay chat(IRC)
    互联网多线交谈
    Metropolitan area network(MAN)
    城域网
    Network operation system(NOS)
    网络操作系统
    uniform resource locator(URL)
    统一资源定位器
    Wide area network(WAN)
    广域网

    展开全文
  • 摄像头基础介绍 一、摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行...

     摄像头基础介绍                

    一、摄像头结构和工作原理.

       拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。

    数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。DSP结构框架:

      1. ISP(image signal processor)(镜像信号处理器)

      2. JPEG encoder(JPEG图像解码器)

      3. USB device controller(USB设备控制器)

        常见的摄像头传感器类型主要有两种,

    一种是CCD传感器(Chagre Couled Device),即电荷耦合器

    一种是CMOS传感器(Complementary Metal-Oxide Semiconductor)即互补性金属氧化物半导体

    CCD的优势在于成像质量好,但是制造工艺复杂,成本高昂,且耗电高。在相同分辨率下,CMOS价格比CCD便宜,但图像质量相比CCD来说要低一些。CMOS影像传感器相对CCD具有耗电低的优势,加上随着工艺技术的进步,CMOS的画质水平也不断地在提高,所以目前市面上的手机摄像头都采用CMOS传感器。

    手机摄像头的简单结构

    滤光片有两大功用:

      1.滤除红外线。滤除对可见光有干扰的红外光,使成像效果更清晰。

           2.修整进来的光线。感光芯片由感光体(CELL)构成,最好的光线是直射进来,但为了怕干扰到邻近感光体,就需要对光线加以修整,因此那片滤光片不是玻璃,而是石英片,利用石英的物理偏光特性,把进来的光线,保留直射部份,反射掉斜射部份,避免去影响旁边的感光点.

     

    二、相关参数和名词

    1、常见图像格式

        1.1 RGB格式:

        传统的红绿蓝格式,比如RGB565,RGB888,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼对绿色比较敏感。

        1.2 YUV格式:

        luma (Y) + chroma (UV) 格式YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。

    色度(UV)定义了颜色的两个方面─色调与饱和度,分别用CB和CR表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。

    主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。

        1.3 RAW data格式:

        RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据。RAW文件是一种记录了数码相机传感器的原始信息,同时记录了由相机拍摄所产生的一些元数据(Metadata,如ISO的设置、快门速度、光圈值、白平衡等)的文件。RAW是未经处理、也未经压缩的格式,可以把RAW概念化为“原始图像编码数据”或更形象的称为“数字底片”。sensor的每一像素对应一个彩色滤光片,滤光片按Bayer pattern分布。将每一个像素的数据直接输出,即RAW RGB data

    Raw data(Raw RGB)经过彩色插值就变成RGB.

    RAW格式图像示例

    2. 相关技术指标

    2.1 图像解析度/分辨率(Resolution)

      SXGA(1280 x1024)又称130万像素

      XGA(1024 x768)又称80万像素

      SVGA(800 x600)又称50万像素

      VGA(640x480)又称30万像素(35万是指648X488)

      CIF(352x288) 又称10万像素

      SIF/QVGA(320x240)

      QCIF(176x144)

      QSIF/QQVGA(160x120)

    2.2 彩色深度(色彩位数)

        256色灰阶,有256种灰色(包括黑白)。

        15或16位彩色(高彩色):65,536种颜色。

        24位彩色(真彩色):每种原色都有256个层次,它们的组合便有256*256*256种颜色。

        32位彩色:除了24位彩色的颜色外,额外的8位是储存重叠图层的图形资料(alpha频道)。

    2.3 光学变焦和数码变焦:

        光学变焦: 通过镜头的调整,拉近拉远所要拍摄的对象,保持像素不变和画质基本不变,却可以拍到自己             理想的物像。     数码变焦:其实没有什么变焦,只是从原图片中截取出来放大,你从液晶屏幕上看到变大了,实际上画质并没有本质提高,而像素比你相机能拍摄的最大像素降低了。 画质上说基本是鸡肋把,但是可以提供一些方便。

    2.4 图像压缩方式:

        JPEG/M-JPEG

        H.261/H.263

        MPEG

        H.264 

    2.5 图像噪音:

      指的是图像中的杂点干挠。表现为图像中有固定的彩色杂点。

    2.6 自动白平衡处理技术(auto White Balance)

          简单来说就是:摄像机对白色物体的还原。相关概念:色温。

    2.7 视角

      与人的眼睛成像是相成原理,简单说就是成像范围。

    2.8 自动对焦:

           自动对焦可以分成两大类:一类是基于镜头与被拍摄目标之间距离测量的测距自动对焦,另一类是基于对焦屏上成像清晰的聚焦检测自动对焦(清晰度算法)。

    注:变焦就是把远处的物体拉近。对焦是让图像清晰。

    2.9 自动曝光和Gamma

          就是光圈和快门的组合。光圈,快门速度,ISO。Gamma即人眼对亮度的响应曲线。

     

     

     

    三、高通的CAMERA部分硬件架构

     

    CAMERA部分硬件架构

    VFE:VIDEO front-end 视频前端

    VPE:Video preprocessing 视频预处理

    摄像头模组中自带了ISP(图像信号处理器),所以,VFE和VPE有关图像效果处理的功能都是关闭的。

    1.VFE的功能:

        1.1 通过算法提高图像的质量。

        1.2 提供高分辨率的图像的AWB(自动白平衡)/AE(自动曝光)/AF(自动对焦)算法处理。

        1.3 图像衰减校正。

        1.4 低光下的噪声滤波。

        1.5 图像色彩效果优化。

        1.6 皮肤颜色效果优化。

        1.7 图像抖动计算。

        1.8 亮度适应算法。

    2.VPE的功能:

        2.1 图像稳定性。

        2.2 数字对焦。

        2.3 图像旋转。

        2.4 Overlay。

    三、android系统camera基本架构

    1.应用层

    Camera 的应用层在Android 上表现为直接调用SDK API 开发的一个Camera 应用APK 包。代码在/android/packages/apps/Camera 下。主要对 android.hardware.Camera(在Framework中) 类的调用,并且实现Camera 应用的业务逻辑和UI 显示。一个Android 应用中若要使用这个android.hardware.Camera类,需要在Manifest 文件声明Camera 的权限,另外还 需要添加一些<uses-feature> 元素来声明应用中的Camera 特性,如自动对焦等。 具体做法可如下:

    <uses-permission android:name = "android.permission.CAMERA" />

    <uses-feature android:name = "android.hardware.camera" />

    <uses-feature android:name = "android.hardware.camera.autofocus" />

    2.Framework层

    2.1 android.hardware.Camera:代码位置/android/frameworks/base/core/java/android/hardware/Camera.java

    这部分目标是framework.jar。这是是Android 提供给app层调用的java接口。这个类用来连接或断开一个Camera 服务,设置拍摄参数,开始、停止预览,拍照等。

    2.2 android.hardware.Camera这个类是和JNI中定义的类是一个,有些方法通过JNI的方式调用本地代码得到,有些方法自己实现。  Camera的JAVA native调用部分(JNI):/android/frameworks/base/core/jni/android_hardware_Camera.cpp。Camera.java 承接JAVA 代码到C++ 代码的桥梁。编译生成libandroid_runtime.so 。libandroid_runtime.so库是公用的, 其中除了Camera 还有其他方面的功能。

    2.3 Camera框架的client部分:

    代码位置:/android/frameworks/base/libs/camera/下5个文件。

    Camera.cpp

    CameraParameters.cpp

    ICamera.cpp

    ICameraClient.cpp

    ICameraService.cpp

    它们的头文件在/android/frameworks/base/include/camera目录下。

    这部分的内容编译生成libcamera_client.so 。在Camera 模块的各个库中,libcamera_client.so 位于核心的位置,作为Camera 框架的 Client 客户端部分,与另外一部分内容服务端 libcameraservice.so 通过进程间通讯(即Binder 机制)的方式进行通讯。

    2.4 Camera框架的service部分:

    代码位置:/android/frameworks/base/services/camera/libcameraservice。

    这部分内容被编译成库libcameraservice.so 。CameraService 是Camera 服务,Camera 框架的中间层,用于链接CameraHardwareInterface 和Client部分 ,它通过调用实际的Camera 硬件接口来实现功能,即下层HAL层。

    四. 摄像头预览、拍照、录像基本数据流向和处理流程以及驱动调试

    HAl层相关代码:(frameworks/base/services/camera/libcameraservice/CameraService.cpp)

    vendor/qcom/android-open/libcamera2/QualcommCameraHardware.cpp

    vendor/qcom/proprietary/mm-camera/apps/appslib/mm_camera_interface.c

    vendor/qcom/proprietary/mm-camera/apps/appslib/camframe.c

    vendor/qcom/proprietary/mm-camera/apps/appslib/snapshot.c

    vendor/qcom/proprietary/mm-camera/apps/appslib/jpeg_encoder.c

    vendor/qcom/proprietary/mm-camera/apps/appslib/cam_frame_q.c

    vendor/qcom/proprietary/mm-camera/apps/appslib/cam_display.c

    vendor/qcom/proprietary/mm-camera/targets/vfe31/8x60/

    vendor/qcom/proprietary/mm-camera/targets/vfe31/common/vpe1/QualcommCameraHardware.cpp

    主要分为三个部分,preview,snapshot,video。它们分别用一个pthread进行处理。另外还有auto focus功能也是用pthread的方式处理。预览或拍照、视频线程处理得到的数据帧都以datacallback的方式回调到上层CameraService.cpp中,进行存储或预览等操作。以下是HAL层部分的代码大概的调用结构流程。

     

    1. 整个模块主要巡行三个主线程:control、config及frame。

      control用来执行总的控制,是上层控制接口。

            config主要进行一些配置,这个线程里面主要进行3A的工作,另外还有一些跟效果有关的设置;

            frame线程主要用来做帧queue的循环获取处理。所有事件或状态的反馈,用回调函数的方式传回QualcommCameraHardware.cpp。

    2. 驱动部分从设备驱动s5k8aa.c开始。新建平台设备后,执行入口函数probe时,调用创建摄像头设备功能函数

    int msm_camera_drv_start(struct platform_device *dev,                                          

                                    int (*sensor_probe)(const struct msm_camera_sensor_info *, 

                                                struct msm_sensor_ctrl *))

    并将设备信息结构体和摄像头设备调用入口sensor_probe传入。msm_camera_drv_start(xxx)函数在msm_camera.c中实现。他创建了提供上层调用的四个终于设备结点:

    /dev/msm_camera/frame%d

    /dev/msm_camera/control%d

    /dev/msm_camera/config%d

    /dev/msm_camera/pic%d

    实现了上层库对VFE模块,VPE模块,jpeg_encoder模块和摄像头sensor模块驱动的控制调用接口。在file_operations中的相应函数中分别实现的是这些设备的新建初始化和IOCTL功能调用接口。

    然后这个函数还创建了四个工作队列: 

    struct msm_device_queue event_q; 

    struct msm_device_queue frame_q; 

    struct msm_device_queue pict_q; 

    struct msm_device_queue vpe_q;

    event_q包括/dev/msm_camera/control%d传入的控制信号队列,用于将上层传下来的控制命令(command)传到config thread中去。

    frame_q用于对图像帧的操作管理,预览或录像时帧将传递给DSP进行处理。

    pict_q包含拍照帧,用于给jpeg_encoder进行图像编码处理。

    vpe_q是VPE控制命令队列。

    s5k8aa.c是相应摄像头设备的驱动部分。它的功能很简单,主要实现sensor模块的创建、初始化和控制。主要实现以下三个函数: 

    s->s_init = ov2685_sensor_init; 

    s->s_release = ov2685_sensor_release; 

    s->s_config = ov2685_sensor_config;

    ov2685_sensor_init函数:    

    主要实现摄像头的上电、时钟控制(MCLK)、设备初始化功能。    上电分为DOVDD、DVDD、AVDD、reset、PWDN几个部分。需要按照设备要求顺序操作,一般时钟控制顺序也包含在内。    设备初始化过程是将sensor设备的所有寄存器全部初始化一遍,采用IIC方式将初始化寄存器地址和值全部发送到sensor端。完成后此时摄像头模组才能正常工作,并将图像通过MIPI线路传送到CPU端。

    ov2685_sensor_config函数:    

    主要实现对sensor的各种配置接口,相应的有帧率配置,白平衡效果设置,曝光度设置,特效设置等等。相应接口将配置好的寄存器列表通过IIC发送到sensor中。

    3. 摄像头调试中的几个问题点:

    1.1 是否正确上电,是否有时钟波形输出。    检测输出电压的电压值是否和上电时序以及MCLK是否符合sensor的要求。这部分可以用示波器和万用表测量。测量电压值和上电时序以及MCLK的时钟频率是否正确。

    1.2 IIC读写是否正常。调试CPU与ISP间的I2C通信。    检测包括IIC地址是否正确,协议是否匹配。这部分也可以用示波器测量IIC的SDA、CLK的峰值、波形逻辑是否正确。

    1.3 正确上电并初始化以后sensor模块是否正常工作。    这部分主要通过用示波器测量MIPI线路的数据和时钟PIN是否正确,它的波形是否含有数据,是否标准波形,峰值有没有达到要求等。

    1.4 如果以上都正确了以后,MIPI控制器将接收到中断,并开始处理图像信号。此时如果出错,可以通过中断信号的出错值查看错误状态。除CPU端是否正常初始化工作的问题外,需要关注模组端设置的图像格式和CPU接收的默认图像格式和图像大小(SIZE)是否一致。模组中图片格式和图像大小通过寄存器值查看。CPU端接收图片格式和图像大小在HAL部分的s5k8aa中设置, 拍照源图像大小和预览源图像大小需要分别设置。

    以上部分完成后,摄像头可以正确预览。

    展开全文
  • 常用对照:NLP CRF算法: 中文名称条件随机场算法,外文名称conditional random field algorithm,是一种数学算法,是2001年提出的,基于遵循马尔可夫性的概率图模型。 全部对照第一部分、计算机算法常用术语中英...
  • Atitit 2017年的技术趋势与未来的...1.1. Web not native 2 1.2. 更加移动优先,,more spa 3 1.3. Ar vr ai 3 1.4. Google pwa Progressive Web App渐进式 Web Apps 3 1.5. Iot Lbs 3 1.6. 区块链和分布式 3 ...
  • 电子计算机名词缩写

    2007-12-19 14:26:00
    1、CPU 3DNow!(3D no waiting,无须等待的3D处理) AAM(AMD Analyst Meeting,AMD分析家会议) ABP(Advanced Branch Prediction,高级分支预测) ACG(Aggressive Clock Gating,主动时钟选择) AIS(Alternate ...
  • Android Camera的HAL接口

    2013-11-11 18:32:21
    Android Camera的HAL接口 ...在Linux系统中,硬件平台驱动,以及...目前产业界的Camera传感器主要有两种类型:电荷耦合设备(CCD,Charge Couple Device)和互补金属氧化物半导体(CMOS,Complementary Metal Oxi
  • IoT的那些操作系统

    2016-11-16 10:14:50
    引子 IoT(Internet of Things)一直是个市场没爆发,但炒作够火的概念。 最近看了Brillo(Goolge放出的OS for IoT),再结合手头做的项目,来聊聊打着IoT旗号的那些操作系统及其生态。可以让大家在对此类嵌入式...
  • 计算机缩写术语完全介绍 在使用计算机的过程中,你可能会碰到各种各样的专业术语, 特别是那些英文缩写常让我们不知所云,下面收集了各方面的词组, 希望对大家有帮助。 一、港台术语与内地术语之对照
  •  LTF(Linux Thermal Framework),主要位于BSP kernel模块,LTF抽象出两种类型的设备,热区设备TZD[Thermal Zone Device] 和冷却设备[Cooling Device]。 热区设备主要负责获取和上报从热传感器读取的转换温度值...
  • 将2009年诺贝尔物理学奖授予华人科学家高锟(美英双重国籍)以及科学家韦拉德·博伊尔(美加双重国籍)和美国科学家乔治·史密斯,以奖励他们在光纤和半导体领域中的开创性研究。高锟1933年出生于中国上海,并于1987...
  • Linux-4.4-x86_64 内核配置选项简介 作者:金步国 64-bit kernel CONFIG_64BIT 编译64位内核.本文仅讲述x86_64(AMD64)平台的内核编译,所以这个是必选项. General setup 常规设置 ...arm-linux...
  • Atitit 2017年的技术趋势与未来的...1.1. Web not native 1 1.2. 更加移动优先 ,,more spa 2 1.3. Ar vr ai 2 1.4. Google pwa Progressive Web App 渐进式 Web Apps 2 1.5. Iot Lbs 2 1.6. 区块链和分布式
  • 单词本

    2019-10-18 22:37:11
    缩写 href hyper reference 超链接 ...native void super interface subclass final 单词 mock proof alt alternative servlet 小服务程序 prettify 美化 entropy 无序状态(熵) incurring 导致 ...
1 2 3 4 5 ... 12
收藏数 230
精华内容 92