Android 源码结构

Android Source Code Architecture
1. Android framework

2. Android directories


|-- bionic
Android使用开源Linux内核同时Google为Linux内核增强了不少东西,自己开发了Bionic库。首先GNU的内核在体积和运行效率上不适合移动设备,系统核心组件都是以动态库的形式驻留在每个进程中,运行效率和内存占用都是十分重要的问题。Google开发了一个自定义的库名为Bionic,以BSD许可形式开源。

|-- bootloader
Legacy, 未知
|-- build
        Android 的Makefile实际上在此目录下。
        |-- buildspec.mk.default                        //此文件注释中提到此文件为临时文件,
        |-- cleanspec.mk                //clean build
|-- core                //mk (Makefile 文件) 文件多在此目录下
|-- envsetup.sh                //用于编译Android 的脚本
|-- libs                //不太清楚
|-- target                //类似于qtopia 中QPE/device目录,关于不同target所需要的一些定义,为目标所需要文件
`-- tools                //编译过程中主机所需要的工具,一些需要经过编译生成
其中,core中的Makefile是整个Android编译所需要的真正的Makefile,它被顶层目录的Makefile引用。
envsetup.sh是一个在使用仿真器运行的时候,用于设置环境的脚本。
dalvik目录用于提供Android JAVA应用程序运行的基础————JAVA虚拟机。
development目录展开的一个级别的目录如下所示:



|-- dalvik
        Google自己的java虚拟机, 有源码。

|-- development
        在Android中运行, 用于开发中调试的工具。如Emulator上运行的,用于监视系统运行情况的程序。
|-- apps                       //Android应用程序的模板
|-- build                      //编译脚本模板
|-- cmds
|-- data
|-- docs
|-- emulator                   //模拟器相关
|-- host                       //包含windows平台的一些工具
|-- ide
|-- pdk
|-- samples                    //一些示例程序
|-- simulator                  //大多是目标机器的一些工具
`-- tools
在emulator目录中qemud是使用QEMU仿真时目标机器运行的后台程序,skins是仿真时手机的界面。
samples中包含了很多Android简单工程,这些工程为开发者学习开发Android程序提供了很大便利,可以作为模板使用。


|-- external
        非系统库,bluez, dbus, yaffs2等。有一个googleclient, 还没有看。
在external中,每个目录表示Android目标系统中的一个模块,可能有一个或者若干个库构成。其中:
opencore为PV(PacketVideo),它是Android多媒体框架的核心。
webkit是Android网络浏览器的核心。
sqlite是Android数据库系统的核心。
openssl是Secure Socket Layer,一个网络协议层,用于为数据通讯提供安全支持。



|-- frameworks                Android framework
        |-- base
        Base下的目录列表
        |-- Android.mk
|-- MODULE_LICENSE_APACHE2
|-- NOTICE
|-- awt
|-- camera
|-- cmds
|-- core
                重点。Android SDK源码在此。
               
|-- data
|-- docs
|-- graphics
|-- include
|-- libs
|-- location
|-- media
|-- opengl
|-- packages
|-- preloaded-classes
|-- sax
|-- services
|-- telephony
|-- test-runner
|-- tools
`-- wifi
|-- opt                //不大清楚
`-- policies        //手机运行的后台,好像管理按键消息,以及关机等

|-- hardware
        GPS, POWER, WIFI等硬件驱动

|-- kernel
        Linux kernel



|-- out                //编译出的结果放在此目录下,包括img文件以及编译好的jar库
|-- packages        //Android应用程序,SDK中已经实现的应用程序,Alarm Clock, Media Player 等, 不能直接在1.0sdk上编译,1.0的sdk中并没有source code中庫的接口
|-- prebuilt                //平台相关 windows, linux(x86)等。
|-- recovery                //不大清楚
`-- system                //adb源码在此
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值