`

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. 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源码目录结构详解

    这是Android框架的核心部分,包括了构成系统基础的应用程序框架和服务,如Activity Manager、Window Manager、Power Manager等。这部分代码定义了应用程序可以访问的API。 #### 10. `hardware` 此目录包含了硬件...

    Android框架揭秘(完整版pdf)

    Android框架揭秘 金泰延 宋亨周 朴知勋 李白 林起永 著 武传海译 《Android框架揭秘》通过对Android...Android服务框架的结构与理解,通过Camera Service、Activity Manager Service等服务分析实际的Android服务等。

    android源码目录结构

    "Android 源码目录结构详解" Android 源码目录结构是 Android 操作系统的核心组成部分,了解 Android 源码目录结构是学习和开发 Android 应用程序的基础。本文将详细介绍 Android 源码目录结构,涵盖了 Android 2.1...

    Android例子源码各种常见菜单集合框架例子源码.zip

    这个名为"Android例子源码各种常见菜单集合框架例子源码.zip"的压缩包提供了一个全面的Android UI框架源码示例,它包含了多种常见的菜单实现,包括底部导航菜单、顶部导航栏、仿微信右上角弹出菜单以及右划个人中心...

    android超级玛丽源码

    在移动开发领域,Android是一个非常流行的操作系统,它为开发者提供了丰富的工具和框架来创建各种应用程序,包括游戏。"Android超级玛丽源码"是一个典型的移动游戏开发示例,它基于经典游戏《超级玛丽》的玩法,通过...

    Android例子源码各种常见菜单集合框架例子源码(含eclipse和android studio 两个版本).zip

    标题中的“Android例子源码各种常见菜单集合框架例子源码”揭示了这是一个关于Android应用程序开发的资源包,其中包含了各种菜单和框架的示例代码。这些示例代码可以帮助开发者理解和学习如何在Android平台上构建...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    1. **Android源码结构**:Android源码分为几个主要部分,如HAL(硬件抽象层)、系统服务、框架层、库和应用层。Launcher属于应用层,但与系统服务和框架层有密切关系。 2. **Launcher的工作原理**:Launcher负责...

    安卓Android源码——afinal开源框架实例源码.zip

    《深入解析Android Afinal开源框架源码》 在Android应用开发中,选择合适的框架能够显著提升开发效率,Afinal就是这样一款高效、轻量级的Android ORM(对象关系映射)框架,它使得开发者可以便捷地进行数据库操作。...

    Android程序研发源码Android afinal开源框架实例源码.rar

    通过这个源码实例,开发者不仅可以了解Afinal的基本用法,还能学习到其内部实现机制,对于提升Android开发技能和优化项目代码结构非常有帮助。同时,分析开源框架的源码也有助于学习其他优秀项目的编程思想和设计...

    安卓Android源码——安卓Android快速框架+多线程下载框架的技术.rar

    本资源"安卓Android源码——安卓Android快速框架+多线程下载框架的技术"提供了深入理解Android平台下的应用程序开发,特别是涉及到Afinal和Gson这两个关键库的使用。下面我们将详细探讨这些知识点。 一、Android...

    Android 7.1.1源码(Nougat)

    5. **组织结构与依赖**:`org`目录包含了各种开源库和框架的源码,如Apache HTTP客户端、XML解析器等,它们构成了Android系统的基础架构。 三、源码学习与开发实践 掌握Android 7.1.1源码对于开发者来说至关重要,...

    android 4.0.1系统源码

    Android系统主要由五层结构组成:Linux内核、硬件抽象层(HAL)、系统库层、应用程序框架层和应用程序层。在4.0.1源码中,我们可以看到这些层次的实现细节: 1. Linux内核:作为Android的基础,提供了设备驱动和...

    Android 2.1 源码结构分析.doc

    Android 2.1 的源码结构是理解 Android 系统底层运作的关键,它包含了操作系统、应用程序框架以及系统服务等各个层面的源代码。下面将详细分析这些目录和子目录的作用。 1. **bionic**:bionic 是 Android 的 C 库...

    android小游戏源码.rar

    - **帧动画** 和 **补间动画**:Android提供的动画框架,用于实现角色移动、攻击等效果。 4. **物理引擎** - **碰撞检测**:游戏中的物体碰撞处理,可能使用简单的矩形碰撞检测或更复杂的算法。 - **重力模拟**...

    android P android9源码编译.ipr.iml文件

    在Android P源码编译中,这些模块可能包含操作系统的不同组件,如系统服务、框架或者用户界面部分。 要使用这些文件编译Android P源码,你需要遵循以下步骤: 1. 下载Android P的完整源码,这通常通过使用Git从...

    Android_2.2_源码结构分析

    《Android 2.2 源码结构深度解析》 Android 操作系统作为一个开源项目,其源码结构的深入理解对于开发者来说至关重要。本文将详细剖析 Android 2.2(Froyo)版本的源码目录结构,揭示其背后的逻辑与功能。 首先,...

    安卓Android源码——UI界面源码.zip

    在安卓(Android)开发中,UI界面是用户体验的关键部分,其源码的解析与理解对于开发者来说至关重要。这个名为“安卓Android源码——UI界面源码.zip”的压缩包,很显然是一个包含Android用户界面(UI)相关源代码的...

    Android天气预报源码

    这个源码项目是开发者在网络中发现并分享的,旨在促进Android开发者的交流与学习,帮助他们理解如何在Android应用中集成天气信息的获取、展示和更新。 一、主要知识点 1. **Android SDK**:此源码基于Android软件...

Global site tag (gtag.js) - Google Analytics