【Android 系统开发】Android框架 与 源码结构 | 您所在的位置:网站首页 › 安卓程序目录 › 【Android 系统开发】Android框架 与 源码结构 |
一. 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. frameworksbase : Android 核心框架库基本内容; opt : 可选部分; base 目录内容 : -- cmds : 重要的命令; -- core : 核心库; -- data : 字体声音数据文件; -- docs : 文档; -- graphics : 图形相关; -- include : 头文件; -- keystore : 数据签名证书; -- libs : 库; -- location : 地区库; -- media : 媒体相关库; -- obex : 蓝牙相关的库; -- opengl : 3D图形库; -- packages : 设置 TTS V**等库; -- sax : XML 解析; -- services : 各种服务; -- telephony : 电话通信管理; -- test-runner : 测试工具相关; -- test : 各种测试; -- tools : 各种工具; -- v** : -- wifi : 5. packages 目录 (/packages)Apps : Android 中的各种应用程序; providers : 保存内容提供者信息; inputmethod : 输入法; wallpapers : 墙纸; |
CopyRight 2018-2019 实验室设备网 版权所有 |