Android 源代码结构

  简介

  在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试。但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码。

  图:找不到Android源码的提示  

  我们都知道Android系统是一个开源工程,在网上可以下载到源代码。一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是http://android.git.kernel.org/。关于利用Git下载android源代码的方法,我就不再赘述了,因为网上的方法很多,这里给出一个参考链接Windows平台下Android源码的下载

  如果你跟我一样是初学者,相信看了上面的文章,你就知道如何使用Git下载android源码了。但是,看着http://android.git.kernel.org/ 站点下的各种目录和文件,相信你也会跟我一样傻眼,不知道那个目录下的文件对应是什么代码,想找到自己所需要的东西都比较难了。所以这里给大家介绍一下android源代码的结构,如果发现文章有错误之处,还请各位童鞋轻点砸砖!

  图:http://android.git.kernel.org/ 下纷繁复杂的文件  

  认识Android源代码结构之前,先来再熟悉一下Android的系统架构吧!Android系统架构被分为四层,自下而上分别是:Linux操作系统及驱动层、本地框架和Java运行环境、Java框架、Java应用层。每一层的具体介绍在此就略过了。

  图:Android系统架构  

  认识Android源代码结构

  Android代码的工程分为3个部分,在打开http://android.git.kernel.org/ 后看到的,就是android源代码的根目录。(建议:打开这个网站后,对照学习以下内容)

  • 核心工程(Core Project):建立Android 系统的基础,在根目录的各个文件夹中。
  • 扩展工程(External Project):使用其他开源项目扩展的功能,在external 文件夹中。
  • 包(Package):提供Android 的应用程序和服务,在package 文件夹中。

  1、Android 的核心工程

  Android 的核心工程包含了对Android系统基本运行的支持,以及Android系统的编译系统,工程的内容如下表:

工程名称 工程描述
bionic [Build 系统] C运行时支持:libc、libm、libdl、动态linker
bootloader/legacy Bootloader 参考代码 (内核加载器,在内核运行之前运行)
build [Build 系统] Build系统
dalvik Dalvik虚拟机
delelopment 高层的开发和调试工具
framework/base Android 核心的框架库
framework/policies/base 框架配置策略
hardware/libhardware 硬件抽象层库
hardware/ril 无线接口层(Radio Interface Layer)
kernel Linux 内核
prebuilt [预编译内核] 对Linux 和 Mac OS 编译的二进制支持 
system/core 最小化可启动的环境
system/extras 底层调试和检查工具

  除了上表列出的工程外,还有其他的工程,但大都是Android系统第2个层次的源代码。

  2、Android 扩展工程

  Android 的扩展工程包含在external文件夹中,是一些经过修改后适应Android系统的开源工程。有一些工程在主机上运行,也有些在目标机上运行。由于包含的扩展工程就多,就不一一列出,感兴趣的童鞋可以自己收集一些资料学习一下。

  

  3、Android 中的Java程序包

  Android中的Java程序包是Android系统架构第4层的内容,主要包括应用程序(Application)和内容提供器(Content Providers)两个部分,还有一个目录inputmethods是输入法的部分。

  应用程序(Application)在package/apps目录中,主要包括:

  AlarmClock,Browser,Calculator,Calendar,Camera,Contacts,E-mail,GoogleSearch

  HTML Viewer,IM,Launcher,Mms,Music,PackageInstaller,Phone

  Settings,SoundRecorder,Stk,Sync,Updater,VoiceDialer。

  

  内容提供者(Content Providers)在package/providers目录中,主要包括:

  CalendarProvider,ContactsProvider,DownloadProvider,DrmProvider

  GoogleContactsProvider,GoogleSubsribedFeedsProvidercImProvider,MediaProvider

  SettingsProvider,SubscribedFeedsProvider,TelephonyProvider。

  按需下载

  如果你只需要其中的某一个或者几个文件的话,可以使用如下的git命令:

  git clone git://android.git.kernel.org/工程代码路径  

  (例如: git clone git://android.git.kernel.org/platform/packages/providers/DrmProvider.git)

  下载的目标地址,就是当前git命令行所在的当前目录。

  下载各个版本的Android SDK 源代码

  给大家提供一个在Windows下下载不同版本SDK源代码的方法,我也在网上找过其他的方法,但是都是Copy&Paste出来的。

  或者参考另一篇博文:使用git 工具下载android.jar Source Code

  1、下载Git,并且安装好;

  2、新建一个文件frameworks,这个文件夹就是用来存放你将要下载的Android SDK源代码的目录

  3、启动Git bash命令行,输入命令  git clone git://android.git.kernel.org/platform/frameworks/base.git frameworks,将会把android.git.kernel.org站点上的base文件夹下的所有文件和文件夹下载本地的frameworks文件夹中;

  4、在Git命令行环境下,使用cd命令,逐步进入到frameworks/base文件夹中;

  5、使用 "git tag" 命令,显示所有的Android的源代码工程名称;  

  6、找到你所需要的源代码的名称和版本,在使用命令"git checkout android-1.5r4"切换到模拟器(emulator)对应的版本;

  7、将frameworks/base/core/java下的所有文件拷贝到你的SDK目录下的"android-sdk-windows\platforms\android-3\sources"文件夹下。

  注意:每次切换模拟器的版本时,git会自动从网站上下载对应版本的源代码到frameworks/base/文件夹下,再将该文件夹下的文件拷贝到对应版本的SDK目录下即可。

时间: 2024-10-11 13:26:29

Android 源代码结构的相关文章

Android 源代码结构(转)

简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码. 图:找不到Android源码的提示 我们都知道Android系统是一个开源工程,在网上可以下载到源代码.一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是http://android.git.kernel.org

《深入理解Android 5 源代码》——第2章,第2.2节分析Android源代码结构

2.2 分析Android源代码结构 获得Android 5.0源代码后,源代码的全部工程分为以下3个部分. Core Project:核心工程部分,这是建立Android系统的基础,被保存在根目录的各个文件夹中. External Project:扩展工程部分,可以使其他开源项目具有扩展功能,被保存在"external"文件夹中. Package:包部分,提供了Android的应用程序.内容提供者.输入法和服务,被保存在"package"文件夹中. 在本节的内容中

Androi“.NET研究”d 源代码结构

简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码. 图:找不到Android源码的提示 我们都知道Android系统是一个开源工程,在网上可以下载到源代码.一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是http://android.git.kernel.org

《深入理解Android:Telephony原理剖析与最佳实践》一2.2 Android源代码下载及编译过程

2.2 Android源代码下载及编译过程 前面完成了Ubuntu.JDK.Android SDK的安装和配置,接着开始下载和编译Android 4.0源代码,这个过程简单但花费的时间比较长,请读者先有个心理准备. Android 4.0的代号为Ice Cream Sandwich,简称ICS,中文名称冰淇淋三明治. 2.2.1 工作目录设置 本书采用ICS名称的文件夹作为Android 4.0源代码的根目录,在用户根目录下新建代码根目录ICS文件夹,并设置此目录为工作目录,在.bashrc中增

《深入理解Android:Telephony原理剖析与最佳实践》一第2章 搭建Android源代码编译环境

第2章 搭建Android源代码编译环境 第1章介绍了Android以及其Telephony功能模块的基本结构,在本章中将带着读者去搭建Android编译环境.即使你已经能够在自己计算机上成功编译Android源代码了,也希望你能阅读本章内容,因为本章不乏一些技巧的总结和Android相关实用工具使用方法的介绍. Android的编译环境作为深入学习Android的基础,不可缺失,能够成功下载Android源代码并编译成功,对深入学习Android是非常关键和重要的一步:Android环境搭建比

Android开发权威指南(第2版)新书发布(免费下载随书光盘内容,包括Android源代码)

光盘内容下载 光盘内容下载(新浪微盘) Android4.2.2(CM ROM)源代码下载 如果需要虚拟环境的,这里提供了ubuntu10.04 LTS版本,不需要CPU支持虚拟化(VirtualBox版[VirtualBox-4.2.10-84105]) Ubuntu10.04 VirtualBox版 分卷1 分卷2 分卷3 分卷4 分卷5 分卷6   用户名:root 秘密:12345678   <Android开发权威指南(第二版)>是畅销书<Android开发权威指南>的升

Android……源代码问题

问题描述 Android--源代码问题 传说中的编译 Android源代码 中的源代码应该不是自己写的java代码吧--编译源代码有什么用呢?众大神帮忙帮忙解惑 解决方案 不是你自己写的,如果你想定制系统,就需要对源代码进行修改,然后编译成新的系统,比如小米,华为,都是在源代码基础上修改过的 解决方案二: Android 基站定位源代码(有问题)解决Android通讯录中显示姓名颠倒问题的小工具的源代码

Android源代码结构分析

Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套. 第一级别的目录和文件如下所示: [cpp] view plaincopy ----------------   ├── Makefile            全局的Makefile   ├── build               系统编译规则和配置所需要的脚本和工具   ----------------   ├── prebuilt        各种平台编译工具链   ├─

android源代码改变修改日期

问题描述 android源代码改变修改日期 请教各位大神,下载的android源代码,怎么改变修改日期?因为要答辩,怕老师知道是下载的,妹子在此谢谢了 解决方案 文件不多的话,可以调整自己的电脑日期和时间,打开一个文件,加个空格,然后保存即可.注意调整后的日期和时间的真实性. 解决方案二: android源代码?你指的是安卓系统源代码?还是按照应用源代码? 解决方案三: 这篇文章解释的很清楚 你可以参考一下http://www.glmei.cn/?p=1783 解决方案四: 写个小程序,遍历所有