持续学习,持续更新……

AOSP

AOSP stands for Android Open Source Project.

Stock

Stock Android is what Google provides in their Nexus devices.
Stock ROM on the other hand is when Google releases source code for the latest android OS and mobile companies take this standard source code released by Google and then port it to work on various devices by integrating some device specific drivers and software into the standard source code. 

stock就是类似原生的意思,原生的android.

vanilla

Maybe instead of "stock", we can use the term vanilla? 

原生android.

landscape

the way of printing a document in which the top of the page is one of the longer sides 

(文件的)横向打印格式,就是横屏的意思。

portrait

printed so that the top of the page is one of the shorter sides

纵向打印格式的,竖屏的意思。

NANDroid

Nandroid, sometimes written as NANDroid, is a portmanteau for NAND flash memory, the type of permanent storage memory that your device uses, and Android. A Nandroid backup is a de-facto (by the hacking community) standard directory structure for backing up a perfect mirror image of your Android device. By doing this backup, you can save literally everything, from your own personal data to the system files.

NANDroid是NAND和Android的合体词语,通常是指Nandroid backup 。而Nandroid backup是hacking论坛 社区起的名字,是一个目录结构的标准,主要是为了备份你的手机,包括用户数据和系统的文件。以后你就能再次用这个备份来将手机恢复到这个状态。

Rom Mod Firmware

 Although the real definitions are different, in the Android world, ROM, Mod, and Firmware are all used as if they mean essentially the same thing. They all refer to a customised version of the Android operating system that has been modified to work on a particular brand of phone with a specific set of customisations or changes. This can be done so that an old phone like the G1 can be given a brand new version of Android, such as 2.2 even if the manufacturer has decided not to provide it. Or could be to provide extra functionality not available in the manufacturer's supplied version of Android, or to fix problems in the manufacturer supplied version. 

Rom,Mod,Firmware 指的是一个东西,就是android系统,一般是定制化过的,用来运行在特定品牌的机器上。
有时候一个老款的手机,手机厂商假如不打算再支持这个手机的更新,你可能会失去继续用下去的兴趣。但是有热心的网友,自己将新的android版本或者功能为这款手机定制,那么你就可以继续在老的手机上使用这些定制的android版本。

OTA

An Over The Air (OTA) update is when your phone receives an update to its Android operating system "over the air", ie it is sent the files automatically over the cellular network from either Google or from your phone network without ever needing to be plugged into a PC. 

OTA升级,通过网络下载升级版本,然后去升级,不需要你去连接电脑。

Root

Rooting is when you gain "Root" access to the phone giving you the power to do anything you want to it (it comes from the Unix Root User, essentially the Unix equivalent to the Windows Administrator account). Normally you're prevented from being Root for your own good, as it's very easy to break your phone once you have root access, and quite hard to break it without.

Root这个词语来自unix的Root用户,享有最高权限。如果你的手机获取了Root权限,就能干任何事情。通常不要去root手机,如果操作不当,对手机系统造成损坏,可能会开不了机等。

Bootloader

The bootloader controls how the device boots. Google's PC-side tool for getting into the bootloader and other related tasks is called Fastboot, and running the bootloader interactively may be called "Fastboot mode". A locked bootloader will verify the Android system partition and restore it to stock if it doesn't match, whereas an unlocked bootloader doesn't do the same checking, which is why unlocking the bootloader is required to permanently root a device.

bootloader控制手机如何去启动,是进入正常的android系统,还是进入recovery系统。而fastboot就是android侧的bootloader(对高通平台的手机,都有Modem系统,我想应该也存在一个modem侧的相应bootloader),你可以和这个bootloader进行交互。当手机进入fastboot模式,你可以使用google提供的pc侧工具(adb,fastboot)和这个bootloader进行交互。例如下载recovery,下载新的kernel等。
如果手机的bootloader是上锁的,那么bootloader会去校验android的system分区,如果校验不通过,则会还原为stock,就是前面的正确版本。但是未加锁的bootloader不会做校验。所以root手机前,一般都需要先解锁bootloader。

Fastboot

fastboot is a small tool that comes with the Android SDK (software developer kit) that can be used to re-flash partitions on your device. It is an alternative to the recovery mode for doing installations and updates.

Because fastboot mode can start on your device even before Android loads (and can even run when Android isn't installed at all), fastboot mode is useful for updating the firmware quickly, without having to use a recovery mode. In fact, it's frequently the preferred way to initially install the recovery image on many devices. Fastboot can also be used for developer operations like unlocking the bootloader of Google's Nexus devices.

Not all devices support fastboot, but many do.

There are two "sides" to using fastboot-- the computer side and the device side. Typically your device first is connected to your computer via a USB cable. Then you boot to the "fastboot mode" on the device. On your computer, you then run the fastboot tool to issue commands. Please note that fastboot commands will ONLY work while the device is in fastboot mode. 

fastboot应该说是存在两个部分,一部分为电脑pc侧的fastboot软件,一部分是手机侧的。你在使用fastboot的时候,首先需要重启进入fastboot模式,然后利用fastboot的pc侧软件利用adb和手机进行交互。
fastboot mode是在android系统启动前运行,因此非常适合快速升级系统的firmware,而不需要进入recovery模式(相比升级速度慢了很多)。而一般fastboot是用来初始安装recovery image的首选途径。此外fastboot模式下还能解锁bootloader。

recovery

一般指recovery模式,进入recovery后会有下面的选项,可以擦除分区,从sd卡升级等。

reboot system now
apply sdcard:update.zip
wipe data/factory reset
wipe cache partition

一般原生的recovey能做的事情很少,所以可以先在fastboot模式下刷入第三方的recovey.img,然后进入recovery系统做自己想做的事情。

ACP

The Android compatibility program works for the benefit of the entire Android community, including users, developers, and device manufacturers.

ACP,既是Android兼容性程序,初衷是为了整个android的生态圈所服务,希望给用户、开发者、设备生产商都带来好处。

Our goals were designed to benefit each of these groups:

    Provide a consistent application and hardware environment to application developers. Without a strong compatibility standard, devices can vary so greatly that developers must design different versions of their applications for different devices. The compatibility program provides a precise definition of what developers can expect from a compatible device in terms of APIs and capabilities. Developers can use this information to make good design decisions, and be confident that their apps will run well on any compatible device.

    Enable a consistent application experience for consumers. If an application runs well on one compatible Android device, it should run well on any other device that is compatible with the same Android platform version. Android devices will differ in hardware and software capabilities, so the compatibility program also provides the tools needed for distribution systems such as Google Play to implement appropriate filtering. This means users see only the applications they can actually run.

    Enable device manufacturers to differentiate while being compatible. The Android compatibility program focuses on the aspects of Android relevant to running third-party applications, which allows device manufacturers the flexibility to create unique devices that are nonetheless compatible.

    Minimize costs and overhead associated with compatibility. Ensuring compatibility should be easy and inexpensive to device manufacturers. The testing tool is free, open source, and available for download. It is designed to be used for continuous self-testing during the device development process to eliminate the cost of changing your workflow or sending your device to a third party for testing. Meanwhile, there are no required certifications, and thus no corresponding costs and fees.

那么到底什么是兼容?下面是google FAQ中的回答,

What does "compatibility" mean?

We define an "Android-compatible device" as one that can run any application written by third-party developers using the Android SDK and NDK. We use this as a filter to separate devices that can participate in the Android app ecosystem and those that cannot. Devices that are properly compatible can seek approval to use the Android trademark. Devices that are not compatible are merely derived from the Android source code and may not use the Android trademark.

In other words, compatibility is a prerequisite to participate in the Android apps ecosystem. Anyone is welcome to use the Android source code. But if the device isn't compatible, it's not considered part of the Android ecosystem.

上面提到如果一个设备是兼容的,它就可以去获取Android的商标,否则不行。但是也不是说兼容的设备就一定可以使用google的商标。

如何创建一个Android-compatible的设备呢?

To build an Android-compatible mobile device, follow this three-step process:

Obtain the Android software source code. This is the source code for the Android platform that you port to your hardware.
Comply with the Android Compatibility Definition Document (CDD). The CDD enumerates the software and hardware requirements of a compatible Android device.
Pass the Compatibility Test Suite (CTS). Use the CTS as an ongoing aid to evaluate compatibility during the development process.
After complying with the CDD and passing the CTS, your device is Android compatible, meaning Android apps in the ecosystem provide a consistent experience when running on your device. For details about the Android compatibility program, see the program overview.

需要注意的是,对于不同的Android版本其source code tree的分支是不同的,所以每个版本都有各自的CDD和CTS。

CDD

Compatilbility Definition Document,既是描述ACP中兼容性标准的描述文档,就是什么是兼容的。

The CDD's role is to codify and clarify specific requirements, and eliminate ambiguity. 

CDD的核心任务就是详细描述需求,减少歧义,就像法规一样。

CTS

The CTS runs on a desktop machine and executes test cases directly on attached devices or an emulator. 

CTS,Compatilbility Test Suite,是谷歌提供的一组测试组件,测试的时候你需要将手机连接到电脑上,CTS测试软件在电脑上运行,然后测试手机的兼容性。
其实ACP做的这些事情,都是为了给Android提供一个统一的生态环境。那么我们什么时候需要做这个CTS测试呢?
如果你的设备需要使用“Android”商标,或者必须内置Google的Android的应用程序,例如Google map和Google play等,这时候你首先需要完成ACP。

下面是Google FAQ中的一个问题,兼容的设备就能使用Google play和商标了吗?

If my device is compatible, does it automatically have access to Google Play and branding?
Google Play is a service operated by Google. Achieving compatibility is a prerequisite for obtaining access to the Google Play software and branding. Device manufacturers should contact android-partnerships@google.com to obtain access to Google Play. While we read every email that is received at this alias, we cannot respond to each of them. Please note, we will be in contact if we can help you.

可以看出,ACP只是前提条件。想要使用Google Play和商标,设备厂商必须联系Google去获取授权,需要发邮件申请。

Bitmap

In computing, a bitmap is a mapping from some domain (for example, a range of integers) to bits, that is, values which are zero or one. It is also called a bit array or bitmap index.

例如,把32个int,转换为1个int的32位。

In computer graphics, when the domain is a rectangle (indexed by two coordinates) a bitmap gives a way to store a binary image, that is, an image in which each pixel is either black or white (or any two colors).The more general term pixmap refers to a map of pixels, where each one may store more than two colors, thus using more than one bit per pixel. Often bitmap is used for this as well. In some contexts, the term bitmap implies one bit per pixel, while pixmap is used for images with multiple bits per pixel.

在计算机图形学中,bitmap用来保存二进制图片(每个像素不是黑就是白,0,255)。而pixmap这个词语表示图片的每个像素不止2种颜色,因此每个像素不能只用一位表示(1, 4, 8, 16, 24, 32, 48, or 64),在某些地方,bitmap和pixmap是一个意思。但是在另外一些地方,bitmap表示每个像素1 bit,pixmap表示每个像素多个bit。android中bitmap应该指的就是pixmap。