从多方面理解Android体系结构

android体系结构介绍 l应用程序(application) l应用程序框架(Application Framework) l各种库和android运行环境 l操作层OS Ø应用程序(application):android的应用程序通常涉及用户界面和交互; Ø应用程序框架(application Framework): 1.一组view(UI组件):这些UI组件包括L 阅读详情

Android作为一个为当前手机系统市场带来新的活力的具有空前生命力的移动操作系统,其成功有其必然性,它定是集众高人的智慧,具有说也说不完的优点所在。若想真正了解它,掌握它,肯定需要一个不断深入学习的过程,这里不防先从下面几个角度来理解Android系统的优点。

一、以分层的方式来看Android

首先看一下官方关于Android体系结构的图:

相信大家对上面这个图都见过很多次了,甚至已经印在脑中了,这里我也不详细赘述了,只是简单描述一下;

1)、Linux Kernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。

2)、 Libraries和Android Runtime:Libraries:即C/C++函数库部分,大多数都是开放源代码的函数库,例如WebKit,该函数库负责Android网页浏览器的运行,例如标准的C函数库Libc、OpenSSL、SQLite等,当然也包括支持游戏开发2D SGL和3D OpenGL | ES,在多媒体方面有MediaFramework框架来支持各种影音和图形文件的播放与显示,例如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等众多的多媒体文件格式。Android的Runtime负责解释和执行生成的Dalvik格式的字节码。

3)、 Application Framework:(应用软件架构),Java应用程序开发人员主要是使用该层封装好的API进行快速开发。

4)、Applications:该层是Java的应用程序层,Android内置的Google Maps、E-mail、即时通信工具、浏览器、MP3播放器等处于该层,Java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。

优点:上面四个层次中,下层给上层服务,上层支持下层支持,调用下层的服务,这种严格的分层机制,为Android系统带来很大的灵活性,稳定性和可扩展性。也利于不同层的开发人员专心于该层次的开发任务。

二、以MVC模式来看Android结构

这里还是拿官方的一个图来简单说明一下Android系统中所蕴藏的MVC模式:

     MVC的概念相信凡是做过软件的人都会接触到这个理念,即Model、View、Controller三层结构。

1)、模型(Model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。

2)、视图(View)对象:是应用程序中负责生成用户界面的部分。也是在整个MVC架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。注意这里只简单负责与用户交互相关的任务。

3)、控制器(Control)对象:是根据用户的输入,控制用户界面数据显示及更新Model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给M哦得了处理。

     在Android里MVC模式体现在:

模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。

视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,(当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。)

控制层(Controller):Android的控制层的任务主要是由众多的Acitvity的实现,这句话也就暗含了不要在Acitivity中写代码,要通过Activity交给Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。

三、以常见的设计模式来理解Android

Android的应用开发是基于面向对象的JAVA语言,要想发挥面向对象的优势,免不了要使用常见的设计模式,Android系统在这点上也不例外,也不排除它在这方面会有过人之处,不然Android系统会那么受欢迎。

常用的设计模式有:

* Template Method模式

* Factory Method模式

* Observer模式

* Abstract Factory模式

* Adapter模式

* Composite模式

* Strategy模式

* State模式

* Proxy模式

* Bridge模式

* Iterator模式

* Mediator模式

* Façade模式

如果有精力阅读Android的源代码,就会发现设计模式无处不在了,呵呵。

四、以IOC(控制反转)的思想来理解Android

IOC控制反转的另一个名字就是依赖注入,简单的说就是将对象、组件以及服务之间的依赖分离开,通常采用配置文件或回调的方式在开发时分离,使其相对独立,在运行时由容器(这里就是指Android的框架)来根据实际需要来将相关的依赖关系注入到相应的对象、组件中。

在Android中常见是例如Activity的常用函数Oncreate()方法,通俗地说就是你不用来找我,我会来找你的。在开发时对这个软件层次更容易理解,专注于关键的几个地方,大大提高了开发效率。

  总之,Android系统的优点需要我们慢慢体会发现,这里我是在看到众多高人的博客后,简单整理一下自己的思路,也算是抛砖引玉了,希望各位不吝赐教,以求进步。

 

注:本文主要参考了http://www.cnblogs.com/guoshiandroid/archive/2010/06/05/1752150.html里面的部分内容,希望对大家有用。

安卓游戏开发实战宝典 本文还有配套的精品资源,点击获取 简介:安卓游戏开发是一个多方面技术结合的过程,涵盖环境搭建、编程语言、游戏框架选择、图形动画处理、物理碰撞、音频处理、数据管理、网络通信、性能优化、用户体验设计、测试与发布等。本宝典详细讲解了这些关键知识点,并提供了实践指南,以帮助开发者学习并掌握从基础到高级的各项技术,实现高效的游戏开发。 1. 安卓环境搭建与工具使用 在... 阅读详情

相关推荐

深入探索小米便签安卓源码

本文还有配套的精品资源,点击获取 简介:小米便签作为一款流行的安卓应用,深受用户喜爱。其安卓源码对开发者来说是宝贵的学习资源,特别是对于想要深入了解小米产品开发流程或对便签应用开发感兴趣的程序员。源码涵盖了安卓框架使用、UI设计、数据存储、网络通信、异步处理与多线程、权限管理、版本兼容性、版本控制、持续集成与自动化测试以及代码风格与最佳实践等方面的知识点。 1. 安卓...

weixin_42610010的博客 1272

Android体系结构

Android体系结构:Android系统采用分层架构,由高到低总共分为4层。分别是应用程序层、应用程序框架层、核心类库、Linux内核层。关于各层的简介具体如下: 1. 应用程序层:应用程序层是一个核心应用程序的集合,所有安装在手机上的应用程序都属于这一层,例如系统自带的联系人程序、短信程序、或者下载的程序等等。 2. 应用程序框架层:主要提供了构建应用程序的各种API。Android自带的一些核心应用就是使用这些API开发的, 例如活动管理器、通知管理器、内容提供者等,开发者也可以通过这些API来开发应

qq_44910623的博客 2654

深入理解Android构架设计

深入理解android构架设计,内容丰富:android应用程序基础、android系统启动、系统service、service Manager、Audio Manager、Media Player等。

Android体系结构分析

Android笔记系列 1.Applications应用程序: 应用层是一个核心应用程序的集合,所有安装在手机上的应用程序都属于这一层,例如短信,浏览器,通讯录等,或者下载的微信、QQ、支付宝等 2.Application Framework应用程序框架: Android为开发者提供的开放平台,位于应用程序的下一层,主要提供了构建应用程序时用到的各种API。Android提供的是一

Happy的博客 4177

投第一篇SCIE英文期刊(详细步骤)

一个投稿SCIE英文期刊的过程

weixin_48849679的博客 1万+

使用STC15F104W产生PWM脉冲

最近的小项目中使用到了STC15F104W产生PWM脉冲

yeats1989的专栏 1万+

Android系统架构——各层功能简介

对Android系统的各层的功能进行介绍。主要面向应用程序层(Application)的开发人员

觅梦云的专栏 2万+

嵌入式学习之QT学习---14 QT跨平台运行之把QT程序交叉编译到ARM开发板

想要把qt工程放到开发板上运行,就需要用到交叉编译。由于qt是跨平台的,所以只需要换个编译器编译一下就可以。 以“定时器”的例子为例,在移植之前还需要进行一个准备工作,在windows下运行的时候,电脑屏幕很大,但是运行的窗口只有一点点大,开发板也有外接屏幕,如何让运行窗口自动适配开发板的外接屏幕呢?令其占满屏幕显示,而不是一小块。 第一步:需要设置一下,先给ui布局,如果不布局,控件就不会随着屏幕的大小的变化而变化。 第二步:利用代码来获取屏幕的大小,给widget.cpp文件下添加如下代码 #inclu

qq_42822743的博客 5456

Android系统架构

Android系统采用分层的思想,如下图所示,从下层到上层,分别是:Linux内核、系统库和运行时、应用程序框架层、应用层。  一、 Linux内核       Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、

天外来客1009 1222

Arthas实战(3)- CPU使用率高问题排查

Arthas实战(3)- CPU使用率高问题排查

java_liuyuan的博客 1731

USB HID虚拟电池:Windows零驱动电源状态模拟方案

虚拟电池是一种在硬件测试与功耗分析中替代真实电池、实现可控电源状态注入的关键技术。其核心原理是通过标准USB HID协议(特别是UPS设备类)向操作系统上报可编程的AC/DC状态、剩余电量、容量参数等,绕过内核驱动限制,达成毫秒级响应与跨Windows版本兼容。该技术显著提升SoC能效验证、电池健康度校准及低电量行为触发等场景的可重复性与精度。本文基于CH554微控制器实现符合HID UPS规范的物理层虚拟电池设备,支持零驱动安装、USB原生识别与实时参数调控,适用于笔记本平台功耗建模、电源管理策略验证及自

weixin_35755188的博客 354

从多方面理解 Android 体系结构

该篇博客借鉴和参考了其他博客, 从自己的理解和实践方面来说, 还是很推荐大家读读. 共勉! 从多方面理解Android体系结构 原文:http://blog.youkuaiyun.com/java211/archive/2011/01/26/6164004.aspx Android作为一个为当前手机系统市场带来新的活力的具有空前生命力的移动操作系统,其成功有其必然性,它定是集众高人的智慧,具有说也说不...

CodingMan 1万+

一个响应ping包延迟偏大的问题

前段时间客户反馈一个使用pc上的命令行ping无线设备(WiFi4)时,设备平均响应时间(测试时长2小时,1秒Ping一次)相比其它机型偏慢的问题,并上传上具体的时间的Log.从log中看到,大多数包的响应还是比较快的,只是个别响应时间较长,且响应时间长的包时间几乎都是一样的100多ms.如下是部分响应时间截图. 整个2小时的测试时间里,总是时不时的出这么上102,104ms的响应时间,这直接导致了平均响应时间被拉大.于是本地测试,也发现了类似的延迟.本地测试时,现象略有...

流风回雪的博客 1万+

Android(七):从多方面理解Android体系结构

从多方面理解Android体系结构 原文:http://blog.youkuaiyun.com/java211/archive/2011/01/26/6164004.aspx Android作为一个为当前手机系统市场带来新的活力的具有空前生命力的移动操作系统,其成功有其必然性,它定是集众高人的智慧,具有说也说不完的优点所在。若想真正了解它,掌握它,肯定需要一个不断深入学习的过程,这里不防先从下面几个角度来...

mmdev 352

华为od 面试手撕代码题【完成任务最少小时】

华为od 面试手撕代码题【完成任务最少小时】

MISAYAONE的博客 1574

RK3588 , 基于mpp 解码 Jpeg To RGB

本文介绍了在RK3588开发板上使用Rockchip MPP(Media Process Platform)硬件加速接口将JPEG图像解码为RGB格式的完整流程。主要包括三个关键步骤:1) 读取JPEG文件数据;2) 配置MPP解码器,包括初始化上下文、设置RGB888输出格式和解码参数;3) 执行解码任务并将结果保存为图像文件。通过硬件加速,该方法能高效完成JPEG到RGB的转换,适用于嵌入式多媒体处理场景。

J。 1210

Android-理解体系结构 01

学习整理,欢迎推荐优秀博客~ 原文 :从多方面理解Android体系结构 http://blog.youkuaiyun.com/java211/archive/2011/01/26/6164004.aspx Android作为一个为当前手机系统市场带来新的活力的具有空前生命力的移动操作系统,其成功有其必然性,它定是集众高人的智慧,具有说也说不完的优点所在。 若想真正了解它,掌握它,肯定需要一个不断深...

xueningyang555的博客 330

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

安卓android经典开发教程15本全套:一站式掌握安卓开发精髓

安卓android经典开发教程15本全套:一站式掌握安卓开发精髓 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在这个数字化时代,移动应用开发成为了技术发展的前沿领域。安卓(android)作为全球最流行的移动操作系统之一,为开发者提供了广阔的舞台。今天,我们为您推荐一套极具价值的资源库——安卓android经典开发教程15本全套。这套教程集包含了从基础到高级的全面知...

gitblog_06713的博客 439

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【编程语言】Android--体系结构

从多方面理解Android体系结构 参考:多方面理解Android体系结构 一、以分层的方式来看Android 首先看一下官方关于Android体系结构的图: 1)Linux Kernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。 2) Libraries和Android Runtime(库文件和运行环境):       Librar

省 1607

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android的四层体系结构,基于mvc三层结构浅析

从多方面理解Android体系结构

Android 工程化与移动架构实践 7723
上一篇: 数学是成就卓越开发人员的必备技能
下一篇: VM下Ubuntu10.10里安装VMtools成功还是无法显示共享文件夹问题
Linux先生
博客等级 码龄20年 97粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值