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

  简介

  在使用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/上海企业网站制作a> 后看到的,就是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 Lin上海徐汇企业网站设计与制作ux 内核
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命令,逐步进入到f上海闵行企业网站制作rameworks/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-09 19:15:13

Androi“.NET研究”d 源代码结构的相关文章

Tomcat研究之组件结构

Tomcat研究之组件结构     大家好,上篇介绍了<Tomcat研究之ClassLoader>,这篇我们介绍组件结构      在没有任何实质性资料的前提下研究Tomcat的内核将是非常困难的事情,但无论如何还有opensource,我们至少可以跟踪Tomcat成百上千的类,为了我们能彻底解开Tomcat的面纱,我们还是要继续努力.    通过UML类图不难看出,Core包里面最重要的一个类是ContainerBase,而这个抽象类实现了Container, Lifecycle, Pipe

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"文件夹中. 在本节的内容中

Android 源代码结构

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

Skia引擎API整理介绍(skia in Androi“.NET研究”d 2.3 trunk)

序 通过google, baidu,我们都很难搜索到关于skia引擎方面的文档,skia的官方wiki(http://code.google.com/p/skia)也只有寥寥无几的文字简单介绍了SkCanvas, SkBitmap等几个主要的class,我通过分析源代码,查看jni接口对skia引擎的封装,总结和翻译了下面的一些文字,希望对想在Android平台进行native画图的朋友有所帮助,当然,你也可以直接使用OpenGL来画图. Skia引擎在android源代码库当中的位置 头文件(

应用SAAS结构技术的开源药店管理系统-源代码结构说明

一.药店系统内容说明 在前些时间,我们发布了一个基于AgileEAS.NET平台的SAAS结构的案例-AgileEAS.NET平台开发实例-药店系统-快速的SAAS开发体验,在文章中同时向大家提供了基于SAAS部署安全的演示客户端下载,也向大家提供了包含全部源代码下载. AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库.资源

Androi“.NET研究”d整体印象

很多人觉得Google能做出Android本身就是一个很了不起的工作过程,真的是这样吗?正好在Android上花过半年时间业余研究,从上到下还算是比较熟了,就说说我的印象吧: 1. 内核 以开发用机G1和Sapphire做例子,内核部分Qualcomm的那部分初始工作最重要(但也称不上大项目),Google的几个mechanism实际上工作量很轻.和类似目的的成熟组件比实际上都是超级简化版,设计的也有不少有欠考虑的地方. lower memory killer多么简陋就不说了,另一个差劲的设计就

Androi“.NET研究”d如何在三年时间里征服移动世界的

摩托罗拉Droid手机的出现被大多数人认为是Google在移动市场上的转折点 人们很容易会忘记,其实并不是很久以前,还没有人相信Android和我们的生活会有多大关系. 毕竟,Android的市场爆发也仅仅是在过去的一年里才真正开始的,大概也就是2007年秋天它的首次露面后的两年后.根据ChangeWave公司调查报告,今年上海徐汇企业网站设计与制作一月以来,Android在移动操作系统上的市场份额已经翻了一翻,截止到2010年第三季度,所有销售的智能手机中高达44%的设备是使用的Android

怎样去阅读一份php源代码

一份好的源代码例如 dz的论坛,wind论坛,帝国cms,dedecms等,都具有自己的一套设计思路和设计模式,所以在看某个产品之前就要做好心理准备,可以把自己的经验和这些产品做对比,但千万别一直用自己的思维去评判.一句话就是"以学习和批评的辩证思想去看待". 好吧!我们就开始吧! 那具体的我们怎样去阅读一份php的源代码呢? 一.先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式. 二.浏览源代码的目录结构,了解各个目录的功能. 三.经过以上两步后相信你对这个开源的产品