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 系统的基础, 被保存在根文件夹的文件里;

-- 扩展project : 使用其他开源项目的部分;

-- 包部分 : 提供了 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 : 壁纸;

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-12 15:59:05

Android相框 与 源代码结构的相关文章

Android 4.0 源代码结构

21.Android 4.0 源代码结构 Android源码的第一级目录结构 Android/abi (abi相关代码.ABI:application binary interface,应用程序二进制接口) Android/bionic(bionic C库) Android/bootable(启动引导相关代码) Android/build(存放系统编译规则及generic等基础开发配置包) Android/cts(Android兼容性测试套件标准) Android/dalvik(dalvik J

Android 5.0 源代码结构

本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第2章,第2.2节分析Android源代码结构,作者 李骏. 网址:https://yq.aliyun.com/articles/93279?spm=5176.100239.blogcont93310.17.gtBsUg 2.2 分析Android源代码结构 获得Android 5.0源代码后,源代码的全部工程分为以下3个部分. Core Project:核心工程部分,这是建立Android系统的基础,被保存在根目录的各个文件夹

Android 源代码结构(转)

简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码. 图:找不到Android源码的提示 我们都知道Android系统是一个开源工程,在网上可以下载到源代码.一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是http://android.git.kernel.org

Android源码目录结构详解(转载)

转自:http://blog.csdn.net/xiangjai/article/details/9012387 在学习Android的过程中,学习写应用还好,一开始不用管太多代码,直接调用函数就可以了,但是工作中却需要修改到framework之类的东东 所以感觉开始纠结了,又是初学,很多不懂,所以就去找了关于源代码结构介绍的,感觉有很大帮助,所以转载过来分享 Android 4.0|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)

第三篇 安卓Android应用程序目录结构解析

建立的HelloWorld的应用项目,其代码是由ADT插件自动生成的,形成Android项目特有的结构框架. 接下来让我带领大家解析一个Android程序的各个组成部分,这次我们拿一个Hello,World做例子,虽然只是一个Hello,World,但也是麻雀虽小五脏俱全,通过分析Hello,World的目录结构,让我们对Android程序有一个整体全面的认识. 一.创建一个Android 应用项目 启动Eclipse: 选择File->New->Project…:选择Android 下的An

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放Java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. 2.gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有

Android源码目录结构说明

在学习Android的过程中,学习写应用还好,一开始不用管太多代码,直接调用函数就可以了,但是工作中却需要修改到framework之类的东东 所以感觉开始纠结了,又是初学,很多不懂,所以就去找了关于源代码结构介绍的,感觉有很大帮助,所以转载过来分享 Android 4.0 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android

说一说Android的工程目录结构

这段时间正在学习有关Android的知识,对在Eclipse下开发的Android项目的目录结构有了一定的了解,在此对目录结构做一个简单的介绍.下图是在Eclipse下Android项目展开的项目目录: 下面就对上图中各级目录结构及其作用做一个简单的介绍: 1. src文件夹 这个文件夹是放你写的项目的源代码用的,你用java写的源代码系统都会自动放在这个文件夹里面. 1 package com.example.day04_01; 2 import android.app.Activity; 3