Android平台及其架构(部分转载)
一.Android的系统架构

1. 应用程序

同Android系统一起发布的核心应用程序,如email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。 这些应用程序都是用java编写的。
2. 应用程序框架

开发者可以用它开发应用,其中包括:
• 丰富而又可扩展的视图(Views):可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮( buttons), 甚至可嵌入的web 浏览器。
• 内容提供器(Content Providers):使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
• 资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串,图形,布局文件( layoutfiles )
• 通知管理器(Notification Manager): 使得应用程序可以在状态栏中显示自定义的提示信息
• 活动管理器( Activity Manager):用来管理应用程序生命周期并提供常用的导航回退功能
当我们开发Android应用程序时,就是面向底层的应用程序框架进行的。从这个意义上来讲,Android系统上的应用程序都是完全平等的,不管是Android系统提供的程序,还是普通开发者提供的程序,都是可以访问Andorid提供个的API框架。
3. 类库

一些C/C++核心库,方便开发者进行应用的开发。一般而言,Android应用开发者不能直接调用这些类库,但是可以通过应用程序框架来调用这些库。
• 系统C 库(libc):专门为基于embedded linux的设备定制的
• 媒体库:支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
• SurfaceManager :对显示子系统的管理,并且为多个应用程序提供了2D和3D 图层的无缝融合
• webkit/LibWebCore :Web 浏览引擎,支持Android 浏览器和一个可嵌入的web 视图
• SGL:底层的2D图形引擎
• 3D libraries : 基于OpenGL ES 1.0 APIs 实现的3D引擎
• FreeType :位图(bitmap)和矢量(vector)字体显示
• SQLite :轻型关系型数据库引擎
4. Android 运行时环境

• Android 核心库:提供了JAVA库的大多数功能
• Dalvik 虚拟机:依赖于linux 内核的一些功能,比如线程机制和底层内存管理机制。同时虚拟机是基于寄存器的,Dalvik 采用简练、高效的byte code 格式运行,它能够在低资耗和没有应用相互干扰的情况下并行执行多个应用,每一个Android 应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例。Dalvik 虚拟机中可执行文件为.dex文件,该格式文件针对小内存使用做了优化。所有的类都经由JAVA 编译器编译,然后通过SDK中的"dx" 工具转化成.dex 格式由虚拟机执行。
5. Linux 内核

Linux 内核作为硬件和软件栈之间的抽象层。Android 的核心系统服务: 安全机制、内存管理、进程管理、网络、硬件驱动

Android平台及其架构(部分转载)的更多相关文章
- 美团外卖Android平台化的复用实践
美团外卖平台化复用主要是指多端代码复用,正如美团外卖iOS多端复用的推动.支撑与思考文章所述,多端包含有两层意思:其一是相同业务的多入口,指美团外卖业务需要在美团外卖App(下文简称外卖App)和美团 ...
- android平台的技术架构
Android平台采用了软件堆层(Software Stack)的架构,主要分为四个部分: 1.应用软件 Android 连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端.SMS短消 ...
- (转载)Android平台下利用zxing实现二维码开发
Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...
- Windows平台分布式架构实践 - 负载均衡(转载)
Windows平台分布式架构实践 - 负载均衡 概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Li ...
- Android 平台架构
Android 平台主要组件如下 Linux 内核 Android 平台的基础是 Linux 内核.例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和低 ...
- Android平台免Root无侵入AOP框架Dexposed使用详解
Dexposed是基于久负盛名的开源Xposed框架实现的一个Android平台上功能强大的无侵入式运行时AOP框架. Dexposed的AOP实现是完全非侵入式的,没有使用任何注解处理器,编织器或者 ...
- Android 平台 Native 代码的崩溃捕获机制及实现
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w 一.背景 ...
- 两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2d ...
- Android WiFi系统架构【转】
本文转载自:http://blog.csdn.net/liuhaomatou/article/details/40398753 在了解WIFI模块的系统架构之前.我心中就有一个疑问,那么Android ...
随机推荐
- 莫小安 CentOS7使用firewalld打开关闭防火墙与端口
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disab ...
- lua学习笔记(十)
模块与包 使用require加载模块 一个规范的模块应该返回一个table作为这个模块所有导出功能的集合 lua里没通过任何强制性语法规则要求创建模块时反回一个table ...
- 题目1 : Farthest Point
时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 Given a circle on a two-dimentional plane. Output the integral ...
- php编译安装与配置
php编译安装与配置 =========================================== 官网:http://php.net/ 官网下载:http://php.net/downlo ...
- mysql 归档方案(一次性)
一. 归档流程: 1. 导出需要的数据 2. 创建临时表table_tmp 3. 导入数据到临时表 4. 修改原始表名为table_bak 5. 修改临时表为原始表名 二.归档方式对比 1. sele ...
- java程序优化
程序代码优化要点: 字符串优化:分析String源码,了解String常用方法,使用StringBuffer.StringBuilder. List.Map.Set优化:分析常用ArrayList.L ...
- 爬虫的原理获取html中的图片到本地
如果你想获取哪个网页的图片,如果你想知道那个网址的美女,还等什么.代码走起:下载即可使用 完成这次瞎爬的原理如下: 第一步:获取html内容 * 第二步:然后在获取的html文本中寻找图片,根据htm ...
- Boost学习总结(一)VS2010环境下编译STLport和Boost
Boost学习总结(一)VS2010环境下编译STLport和Boost Boost简介 Boost库是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库.1998年,Beman G.Da ...
- Matrix4x4矩阵 api
Matrix4x4 矩阵api介绍 Namespace: UnityEngine Description 描述 A standard 4×4 transformation matrix. 一个标准的4 ...
- 在Linux中显示日历(cal)
cal 2013 显示2013年整年日历 cal 7 2013 显示2013年 7 月 日历