`

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 : 墙纸;


分享到:
评论

相关推荐

    安卓图表引擎AChartEngine(六)-框架源码结构图.pdf

    安卓图表引擎AChartEngine(六)-框架源码结构图.pdf

    基于Android的家庭理财系统的设计与实现.rar(毕业论文设计+程序源码) android studio导入可直接打开

    2.1 Android平台的系统框架 2.2Android平台的特征 2.3Android平台的优势 2.4相关概念与技术 13 2.4.1资源文件与XML 13 2.4.2 SQLite 数据库 14 2.4.3图形用户界面与组件 14 2.4.4 Binder 机制 15 2.5本章小结 16 ...

    Android项目源码基于MVVM架构的非官方知乎日报APP.zip

    项目结构 android data binding来实现MVVM。 dagger2来完成依赖注入。 retrofit2 rxjava实现restful的http请求。 第三方类库 retrofit2 dagger2 butterknife rxjava rxandroid LoganSquare glide android...

    深入浅出Android软件开发教程.pdf+源码

    本书是面向Android初学者的教程,介绍设计开发Android应用程序的基础理论和实践方法,讲解Android系统的体系结构、Java语言与面向对象编程基础、XML基础、开发环境搭建、Android应用程序的调试和发布方法、用户界面...

    《Android应用开发揭秘》源码

     1.1.3 Android应用程序框架  1.2 OMS介绍  1.2.1 OPhone介绍  1.2.2 Widget介绍  1.3 小结  第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和配置  2.2.1 安装JDK和配置...

    Android代码-快速开发框架

    AFBaseLibrary 序 这个库,其实我之前已经有封装过一些了,但是感觉还不规范,还...这部分包含了我在项目中所遇到的一些常见的界面结构的整理,其中Activity和Fragment都会有相匹配的功能,即Activity有的功能,Fragme

    Android类似qq的结构框架

    模仿QQ的框架源码,并且增加使用了万能的适配器,极大的减少了适配器代码的编写!你也可以从中感觉一下泛型编程的基本思路!

    Android项目源码看雪论坛客户端源码

    看雪论坛客户端,使用框架:网络通信Volley,列表下拉刷洗上拉加载使用pulltorefresh框架 没找到用户注册api,只能以游客身份登录,无法发帖,用于Volley、PullToRefresh框架练习之作。 有许多自定义的控件,注解...

    实用源码——Android屏幕锁源码.zip

    我们将项目源码设计为模块化的结构,开发人员可以根据自己的需求选择和定制所需的功能模块。同时,我们还提供了丰富的文档和示例代码,以帮助开发人员理解和使用项目源码。 我们的安卓项目源码还采用了一些常用的...

    android开发揭秘PDF

    1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 ...

    Android中国象棋源码.zip

    我们将项目源码设计为模块化的结构,开发人员可以根据自己的需求选择和定制所需的功能模块。同时,我们还提供了丰富的文档和示例代码,以帮助开发人员理解和使用项目源码。 我们的安卓项目源码还采用了一些常用的...

    android 源码分析

    Android 的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和 linux 核心层。

    Android项目源码NBA资讯和赛事信息的平台带服务端.zip

    程序采用的Web框架是Flask,开启一些定时任务来爬取一些站点的信息并进行存储,提供 api 为APP提供接口。 由于访问的站点未经授权,所以关于第三方api站点部分的文件未上传,但不影响对整体的了解。

    android案例源码

    包括Android框架及工程结构分析,计算器,电子词典,文件管理器,备忘录,短信收发工具,通讯录,任务管理器,软件管理器,公交查询,股票查询软件,Google天气客户端,RSS新闻阅读器,Android地图应用,新浪微博...

    Android插件框架Android-Plugin-Framework.zip

    此项目是Android插件框架完整源码以及实例。用来开发Android插件APK,并通过动态加载的方式在宿主程序中运行。 若插件APK是完全独立的APK,那么插件apk也可独立安装运行。 若插件APK不是完全独立的apk,比如...

    《Android应用开发实战》源码

    全书主要内容一共分为三大部分:准备篇简明扼要地讲解了Android开发的基础知识,并为第二部分实战篇的内容打下了基础,将微博客户端的框架搭了起来,同时想起介绍了微博的API;实战篇以迭代的方式完整的重现了从微博...

    delphi xe10的datasnap 三层结构完整服务端+源码 (测试可用)

    delphi xe10的datasnap 三层结构完整服务端+源码 (测试可用) 适合新手学习使用,我个人在网上找了很多资料,搭建起来的平台

    android volley框架相册

    包含: android volley框架相册源码,帮助volley使用 配置安全文件android:networkSecurityConfig 包含:php后台接口,帮助初学者学习jsonobject,jsonarray结构 包含:linux文件资源,配置资源到指定linux目录...

    Android P Media源码笔记

    以前跟Android Meida部分源码,做了细致的笔记,贴出来说不定会有帮助呢。 MediaSession使用参考这篇文章:MediaSession框架全解析 跟踪的工程路径:\android_9\aosp\packages\apps\Car\Media 需要加载的目录: \...

    Android系统源代码情景分析[罗升阳著]pdf完整清晰版

    非常好的进阶的书籍,分析的非常清楚,大神必备。高清完整版,希望大家喜欢。..., 通过上述内容及其组织,本书能使读者既能从整体上把握Android系统的层次结构,又能从细节上去掌握每一个层次的要点。

Global site tag (gtag.js) - Google Analytics