一. 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框架 与 源码结构的更多相关文章

  1. 【Android 系统开发】Android框架 与 源码结构

    一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...

  2. Android 4.0源码结构

    Android 4.0 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等 ...

  3. Python Tornado框架三(源码结构)

    Tornado 是由 Facebook 开源的一个服务器“套装”,适合于做 python 的 web 或者使用其本身提供的可扩展的功能,完成了不完整的 wsgi 协议,可用于做快速的 web 开发,封 ...

  4. android企业级商城源码、360°全景图VR源码、全民直播源码等

    Android精选源码 [新版]Android技术博客精华汇总 开源了:乐乐音乐5.0-Android音乐播放器 android实现仿真水波纹效果源码 360°全景图VR,这是一个值得把玩的APP a ...

  5. 学习嵌入式开发板的Android平台体系结构和源码结构

    本文转自迅为论坛资料:http://www.topeetboard.com 推荐学习嵌入式开发板平台:iTOP-4412开发板 下面这张图出自Google官方,展示了Android系统的主要组成部分. ...

  6. 史上最详细的Android消息机制源码解析

    本人只是Android菜鸡一个,写技术文章只是为了总结自己最近学习到的知识,从来不敢为人师,如果里面有不正确的地方请大家尽情指出,谢谢! 606页Android最新面试题含答案,有兴趣可以点击获取. ...

  7. PostgreSQL9.2.4内核源码结构介绍

    PostgreSQL的源代码可以随意获得,其开源协议也允许研究者任意修改,这里介绍一下PostgreSQL的源码结构以及部分实现机制.下载PostgreSQL源代码并减压后,其一级目录结构如下图: P ...

  8. 实例源码--Android日历实例源码

      下载源码   技术要点: 1.Android基础控件的使用 2.Android应用开发基础框架 3.源码带有非常详细的中文 注释 ...... 详细介绍: 1. Android应用开 发技术 此套 ...

  9. 【转】Android 4.3源码的下载和编译环境的安装及编译

    原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html  告诉windows用户一个不好的消息,windows环境下没法 ...

随机推荐

  1. centos7 使用指定邮箱发送邮件

    一.安装sendmail与mail .安装sendmail: ) centos下可以安装命令:yum -y install sendmail ) 安装完后启动sendmail命令:service se ...

  2. 转:AbstractQueuedSynchronizer的介绍和原理分析

    引自:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同 ...

  3. 面试乐融集团Python开发工程师有感

    这是笔者第一次面试,,乐融集团位于朝阳区朝阳公园的乐融大厦.是下午两点的笔面试,笔者是一点半到的,然后在里面等了会,开始笔试 笔试题并不是太难,就是考的比较宽,因为笔者是校招,所以笔试题出来了数据结构 ...

  4. kubernetes资源清单定义

    apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 ...

  5. Strange RadioButton group behavior with ToolBar

    原文地址:https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/83352293-ca52-4e22-8092-8e23c453bc75/str ...

  6. 优步UBER司机全国各地奖励政策汇总 (2月8日-2月14日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. sqlite helper

    //-------------------------------------------------------------------------- // // Copyright (c) BUS ...

  8. Mysql忘记密码处理办法

    找回密码的步骤如下: 1.停止mysql服务器 sudo /opt/lampp/lampp stopmysql 2.使用`--skip-grant-tables' 参数来启动 mysqld sudo ...

  9. Tomcat7后台通过get接收数据处理乱码

    Tomcat7后台通过get接收数据处理乱码 //因为tomcat7 默认将用get传来的数据用ISO-8859-1封装, //将ajax传过来的值解码,再转码,//因为tomcat7 默认将用get ...

  10. css 网站常用

    简单的loading效果 .progressBar { border: solid 1px #303031; font: bold 20px/22px Arial, sans-serif; backg ...