Android Source Code
一. Android 框架
http://elinux.org/Master-android
Android框架层级 : Android 自下 而 上 分为 4层;
-- Linux内核层;
-- 各种库 和 Android运行环境层;
-- 应用框架层;
-- 应用层;
1. Linux内核层
Android 的 Linux 内核层 组成 : Linux 内核 和 驱动程序;
Linux内核 : Android 2.x 是基于 Linux 2.6 内核;
驱动程序 :
-- Display Driver (显卡驱动) : Linux 的帧缓冲 驱动;
-- Flash Memory Driver (Flash 内存驱动) : 基于 MTD 的 Flash 驱动程序;
-- Camera Driver (相机驱动) : 基于 Linux v4l 驱动;
-- Audio Driver (音频驱动) : 基于 ALSA 驱动;
-- Wifi Driver (Wifi驱动) : 基于 IEEE 801.31 标准的驱动程序;
-- KeyBoard Driver (键盘驱动) : 作为输入设备的键盘驱动;
-- Bluetooth Driver (蓝牙驱动) : 基于 IEEE 801.35.1 标准的无线传输技术;
-- Binder IPC Driver : Android 特有的驱动程序, 有单独的设备节点, 提供进程通信的功能;
-- Power Management (电源管理) : 管理电池电量等信息;
解析驱动 :
-- Frame Buffer (帧缓冲) : 视频输出设备 中包含 有 完整帧数据的 视频缓冲区, 使用该缓冲区 驱动视频显示设备;
-- v4l (Video for linux) : Linux 中的 摄像头驱动;
-- ALSA (Advanced Linux Sound Architecture) : 高级 Linux 声音体系驱动, 该组件 提供了 声卡驱动;
2. 库 和 Android 运行环境
该层分两部分 : Android 运行环境 和 各种 库;
各种库介绍 : 这些库以系统中间件形式提供, 与移动设备平台的应用有密切的关系;
-- C标准库 : Android 系统最底层的库, 该标准库调用 内核的系统调用实现所需的功能;
-- Media Framework (多媒体框架) : Android 多媒体核心部分, 是基于 PacketVideo 的 OpenCore框架, 功能一 音频视频回放, 功能二 音频视频记录;
-- SGL : 2D的引擎;
-- SSL (Secure Socket Layer) : 主要 为 TCP/IP 协议 与 应用层协议 之间的数据通信 提供安全支持;
-- OpenGL ES : 3D引擎;
-- Surface Management (界面管理工具) : 管理显示子系统的功能;
-- SQLite : 嵌入式数据库;
-- WebKit : 网络浏览器内核;
-- FreeType : 提供位图 和 矢量字体功能;
Dalvik虚拟机 与 JVM 区别 :
-- 执行文件 : JVM 执行 .class 标准字节码文件, Dalvik 虚拟机执行 .dex 文件;
-- 最大区别 : JVM 是基于栈 (Stack-based) 的虚拟机, Dalvik 虚拟机 是基于寄存器 (Register-based) 的虚拟机, 后者可以根据硬件实现更好的优化;
3. 应用程序框架层
应用框架层 : 该层 提供了 应用程序使用的 API, 包括 各种 UI 组件 和 其它组件, 包括下面的组件;
-- Activity : 主要活动界面;
-- BroadcastReceiver : 广播接收者;
-- Service : 服务;
-- ContentProvider : 内容提供者;
4. 应用程序层
该层主要是 apk 安装程序;
二. Android 源码结构
基于 android-2.3.4_r1 版本的源码进行分析;
Android 源码结构分类 :
-- 核心部分 : 该部分是建立Android 系统的基础, 被保存在根目录的文件中;
-- 扩展工程 : 使用其它开源项目的部分;
-- 包部分 : 提供了 Android 应用程序, 四大组件 等, 在 package 目录中;
1. 根目录 (/)
bionic : 基础库的源码, C 运行时支持库 libc, libm, libdl, 动态 linker;
bootable/bootloader/legacy : 内核引导加载器, 加载内核之前运行的程序;
build : 编译和配置所需要的脚本 和 工具;
dalvik : Android中的 Java 虚拟机, 提供Android应用程序运行基础;
development : 程序开发所需的模板和工具, 层次较高;
external : 使用的其它的开源的扩展库;
frameworks : 应用程序框架层, 四大组件等;
hardware : 硬件相关的库;
kernel : Linux 内核源码;
packages : Android 各种应用程序;
prebuilt : 各种平台下的编译预置脚本;
recovery : 与 Android 系统恢复功能相关;
system : Android 底层库;
Makefile : 整个 Android 源码 编译的 Makefile;
2. development 目录 (/development)
apps : Android 应用程序模板;
build : 编译脚本模板;
host : windows 平台的一些工具;
samples : 示例程序, 简单的Android程序, 可以作为模板;
3. external 目录 (/external)
opencore : Android 多媒体框架核心;
webkit : Android 网络浏览器核心;
sqlite : Android 数据库系统核心;
openssl : Secure Socket Layer, 是一个网络协议, 为数据通信提供安全支持;
4. frameworks
base : Android 核心框架库基本内容;
opt : 可选部分;
base 目录内容 :
-- cmds : 重要的命令;
-- core : 核心库;
-- data : 字体声音数据文件;
-- docs : 文档;
-- graphics : 图形相关;
-- include : 头文件;
-- keystore : 数据签名证书;
-- libs : 库;
-- location : 地区库;
-- media : 媒体相关库;
-- obex : 蓝牙相关的库;
-- opengl : 3D图形库;
-- packages : 设置 TTS VPN 等库;
-- sax : XML 解析;
-- services : 各种服务;
-- telephony : 电话通信管理;
-- test-runner : 测试工具相关;
-- test : 各种测试;
-- tools : 各种工具;
-- vpn :
-- wifi :
5. packages 目录 (/packages)
Apps : Android 中的各种应用程序;
providers : 保存内容提供者信息;
inputmethod : 输入法;
wallpapers : 墙纸;
Android Source Code的更多相关文章
- Troubles in Building Android Source Code
Some Troubles or problems you may encounter while you setup the Android source code build environmen ...
- Learning English From Android Source Code:1
英语在软件行业的重要作用不言自明,尤其是做国际项目和写国际软件,好的英语表达是项目顺利进行的必要条件.纵观眼下的IT行业.可以流利的与国外客户英文口语交流的程序猿占比并非非常高.要想去国际接轨,语言这 ...
- Learning English From Android Source Code:2 Ampersand
这一次想把标点符号的英语表达总结一下,这些单词非常重要但easy被我们忽视.以我的经验,还是多认识几个.以备不时之需. 以下从"标点符号"開始: punctuation [英][ˌ ...
- Google android source code build 问题总结【转】
本文转载自:http://light3moon.com/2015/01/31/Google%20android%20source%20code%20build%20%E9%97%AE%E9%A2%98 ...
- Increasing heap size while building the android source code on Ubuntu 15.10
http://stackoverflow.com/questions/34940793/increasing-heap-size-while-building-the-android-source-c ...
- Android source code compile error: “Try increasing heap size with java option '-Xmx<size>'”
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./pr ...
- android activity 启动过程分析(source code 4.4)
说实话,android source code从2.3到4.4变化是蛮多的,尤其是media部分,虽然总的框架是没有多大变化,但是找起代码来看还是挺麻烦的.在android里面最受伤的是使用了java ...
- Compile android source and kernel for emulator in Debian
1.download the android source code Reference from http://source.android.com/source/downloading.html ...
- ubuntu 12.04 下 eclipse关联 source code
一.JDK source code 命令行中: sudo apt-get install openjdk-7-source 下好的jdk源码在 Linux 在目录 usr/lib/jvm/openjd ...
随机推荐
- hdu 3530 Subsequence
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3530 Subsequence Description There is a sequence of i ...
- bootstrap插件之Carousel
兼容:ie9以上 特点:滑动图片看起来永远只有两帧,过度完美:是html css js的完美配合:其中html的data属性起了关键性作用 前提:normalize.css jquery.js ht ...
- JavaScript高级程序设计之作用域链
JavaScript只有函数作用域:每个函数都有个作用域链直达window对象. 变量的查找由内而外层层查找,找到即止. 同时不仅可以查找使用,甚至可以改变外部变量. var color = &quo ...
- Entity Framework学习笔记(一)
请注明转载地址:http://www.cnblogs.com/arhat 哈哈!老魏回来了,4月份的内容开始更新了,由于3月份时间都在做项目,没有时间写了,那么4月份老魏会尽可能的多写点东西的.那么4 ...
- 查看图片真正的格式,在不知道扩展名的情况下区分是jpeg还是bmp
用系统自带的画图软件打开图片,然后按文件-->另存为就会弹出保存窗口.保存窗口的保存类形就是"照片真正的格式".
- 文件操作的openmode
C中文件的openmode如下: r 只读 为输入打开一个文本文件 w 只写 为输出打开一个文本文件 a 追加 向文本文件尾添加数据 rb 只读 为输入打开一个二进制文件 wb 只写 为输出打开一个二 ...
- heap size eclipse 堆内存
可以根据eclipse 或 myeclipse heapstats 使用情况调整堆内存大小,heap size 设置,-vmargs-Xms256-Xmx1024 ,其中Xms表示初始值,Xmx表示最 ...
- PSP0表格
一 项目计划日志 周活动总结表 姓名:陆宇 日期:3.1 ...
- text-overflow 与 word-wrap:设置使用一个省略标记...标示对象内文本的溢出。
text-overflow 与 word-wrap text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出. 语法: 但是text-overflow只是用来说明文字溢出时 ...
- jQuery插件开发总结
jQuery插件的开发包括两种: 一种是类级别的插件开发$.extend,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法,比如:$.ajax, $.getJSON等.jQuery ...