第1章,介绍了阅读本书所需要做的一些准备工作,包括Android 4.0源码下载和编译、搭建Eclipse环境,以及如何调试Android系统进程(system_process)等。第2章,介绍了Java Binder和MessageQueue的实现。第3章,介绍了SystemServer,并分析了图1中第5部分所包含的Service的工作原理。
以下的规则并不是普通的指导方针或者我们的推荐,而是严格的规范。不遵循这些风格而构建出来的 Android 软件将不会被接受。目前,并不是所有的代码都符合规范,但是以后的代码应该向规范靠拢。
感谢你对 Android 的喜爱。帮助我们改善 Android 的最好方式就是告诉我们你发现关于它的任何问题。报告问题注意:安全漏洞的问题,请查看 Reporting Security Issues。如果你发现一个安全漏洞,请不要使用下面的形式。使用一个普通的形式,让大家都可以看到你的报告,这样能够在 bug 修复之前让其他用户不再冒险。还有,请发送 email 到 security@android.com 描述详情。
Android 开源项目维护了一个公共的 issue 跟踪管理,在这里你可以报告 bugs 并给核心 Android 软件请求功能(可以到 Reporting Bugs 页面查看 issure 跟踪器的详细信息)。提交 Bugs 是一件很棒的事情(谢谢!),但是当你提交完之后会发生什么呢?这个页面就是描述 Bug 的生命周期。
这个页面将描述提交补丁到 AOSP 的全过程,包括校验和 Gerrit 追踪更改。前提条件在按照说明学习本页面内容之前,你需要初始化构建环境,下载源码,创建密码和按照密码生成页面的说明学习。可以在 developing 章节查看 Repo 和 Git 的详细信息。可以在 Project roles 章节查看你可以在开源社区扮演的各种角色信息。
Android 开源项目(AOSP)使用一个基于 WEB 编码的查看工具,叫做 Gerrit。下方的流程图说明一个补丁被创建之后的详细发展状态。虽然它看似很复杂,但它主要的步骤都会在一个 WEB 应用中呈现。想要知道开始使用 gerrit 和 git 的详细说明,请查看 Submitting Patches 页面。
感谢你对 Android 的喜爱。这里有几个方法能够让你介入并帮助我们改善 Android。你可以在 Overview 页面看到 Android 项目的背景和我们的目标。报告错误帮助我们改善 Android 一个最简单而且很有效的方法就是提出 Bug。你可以查看 Reporting Bugs 页面获取更多信息。请注意我们并不能保证特定的 bug 会在特定的版本中解决。
有关 Git 的更多信息,请查看这些优秀的站外资源: 书本 Git Community Book (Scott Chacon 著)Git 维基百科Git 手册页面 GitCasts (Git 教程视频)
本文将帮助您为 Android 平台开发建立 Eclipse IDE。注意:如果您正在寻找如何使用 Eclipse 开发 Android 上运行的应用程序的资料,那么这不是您要找的页面。你也许会发现 the Eclipse page on developer.android.com 页面更加有用。基本设置首先,重要的是要确保常规 Android 开发系统的设置。
Repo 的使用形式如下:repo <COMMAND> <OPTIONS>可选元素显示在方括号[]里面。例如,许多命令接受的项目列表作为参数。您可以指定项目列表作为名称列表或本地源目录的路径列表:repo sync [<PROJECT0> <PROJECT1> <PROJECTN>]repo sync [</PATH/TO/PROJECT0> ... </PATH/TO/PROJECTN>
应用 Android 代码时,你需要同时使用 Git 和 Repo,在大多数情况下,你可以使用 Git 而不是 Repo,或是混合使用 Git 和 Repo 形成的复杂命令。然而,把 Repo 使用于基本跨网络(across-network)的操作时,将会使你的工作更加简单。 Git 是一个开源的版本控制系统,设计来处理分布在多个存储库的大项目。
即使是在我们最好的照看下,也会偶尔出现小的问题。这篇文章会持续追踪在使用 Android 源码的过程中出现的问题。构建问题在 toro 构建中丢失 CellBroadcastReceiver症状在 AOSP 给 toro 的构建中(Jelly Bean 4.2.1 之后的版本),CellBroadcastReceiver 并不会包括在系统中。原因:在 vendor/samsung/toro/device-partial.
概述从构建系统的观点看,最显著的更改是用同一个 build 就可以生成出可以支持在 2 个目标 CPU 架构上(64 位和 32 位)的构建文件。这就是被人们所知的多库构建。为了构建本地静态库和共享库,构建系统启动规则去给两个架构的 CPU 生成二进制文件。产品配置(PRODUCT_PACKAGE),和图形依赖,然后寻找到使用的是哪一个二进制文件,最后安装进系统镜像中。
如果你只对内核感兴趣,你可以利用这篇文章来帮助你下载并且构建出合适的内核。下面的信息我们假定你还没有下载所有的 AOSP。如果你已经下载了所有的 AOSP,你可以跳过 git clone 的部分到下载实际的内核源码。在下面的例子中,我们将使用 Pandaboard 内核。
这一篇补充说明主页上有关构建和运行中运行在特殊设备上的信息。通过当前已经发放的版本,可以在 Nexus 4,Nexus 7 以及一些 Galaxy Nexus 的变异版本的手机上构建。每一个设备的具体实用性水平,取决于硬件所属的二进制文件。给 Nexus 4 和 Nexus 7,所有的配置都可以使用,并且所有的硬件都可以工作。由于硬件的不同,不要在 Nexus 7 上使用 4.1.1,它已经被 4.1.
下面的信息对于构建 Android 资源树的指导适用于各个分支,包括 master 分支。选择一个分支有些构建工程的环境所需要的请求,是需要搞清楚你计划要编译这些代码所使用的版本的。请查看 Codenames,Tags,and Build Numbers 里面完整的分支列表以供你来选择。
Android 的源代码树在 Google 托管的 Git 仓库中。本文主要阐述如何下载源码树中具体的 Android 代码。 安装 RepoRepo 是一个方便在 Android 中使用 Git 的工具。想了解更多关于 Repo 的信息,请参阅 Developing 章节。
这个章节阐述如何建立起你的本地工作环境来构建 Android 源文件。你需要使用 Linux 或 Mac OS 操作系统。目前暂不支持在 Windows 下编译。 想对整个代码审查和代码更新过程有个整体的了解,请参阅 Life of a Patch。 选择一个分支部分构建环境的需求取决于你打算编译的源码版本,查看 Build Numbers 里面包含一个完整的分支列表供你选择。
通常内部测试 Android 的构建是在最近一个版本的 Ubuntu LTS(14.04)中, 但是大多数的发行版本都具有构建所需的工具。我们非常欢迎收到在其它版本上尝试的结果反馈,无论是成功,还是失败。
Android 这个名字, 这个标志,“谷歌应用程序商店”这个品牌和其他商标都是谷歌公司的财产,因此,我们不能通过Android 开源项目获取这些资源的任何部分。如果你对使用这些品牌来预示它们和你的设备之间的关系感兴趣,你必须遵循本文的指南。请谨记,这些指南对应并且补充了 Android 应用程序开发品牌指南和谷歌品牌许可。
关注时代Java