安卓架构设计

先上一张总图,这是一张较为完整的安卓平台架构图,从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。

蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。



我主要负责 应用程序层(application),这层的内容比较少,

Android的应用程序主要是用户界面(User Interface)方面的,通常用Java语言编写,其中还可以包含各种资源文件(放置在res目录中)、Java程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home)、联系人(Contact)、电话(Phone)以及浏览器(Brower)等众多的核心应用。

这些应用程序都是用Java 语言编写的,并且由于安卓开源的特性,这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。应用程序开发人员在开发时处于应用程序层,调用下层应用程序框架中的API 进行开发。

下面介绍APK(Android Package)



Android应用程序是用Java编程语言写的。编译后的Java代码——包括应用程序要求的任何数据和资源文件,通过aapt工具捆绑成一个Android包,归档文件以.apk为后缀。这个文件是分发应用程序和安装到移动设备的中介或工具,用户下载这个文件到他们的设备上。一个.apk文件中的所有代码被认为是一个应用程序。

下面简单说说用户界面



安卓用户界面框架采用MVC(Model View Controller)模型

用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。



自己的看法:安卓采用软件堆栈的架构,结构清晰,分工明确。而且所有的应用程序都是在虚机上运行的,使得只要移植了Android系统,Android应用就能在任意的硬件平台上面跑起来。非常便捷。

时间: 2024-08-02 22:23:37

安卓架构设计的相关文章

安卓架构 视频 Android 插件化架构设计

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha Android 插件化架构设计-Dream老师 自定义SDK =====

安卓开发 第七篇 我的安卓应用架构设计-----Adapter类及ViewHolder类

在Android开发中,对于AdapterView类型的控件,我们都需要通过适配器来给它设置数据,如果显示的内容比较简单,我们通常使用SimpleAdapter或者ArrayAdapter,而对于复杂多变的数据,我们一般使用自定义一个继承自BaseAdapter的Adapter来处理.为了itemview的复用,我们通常用一个Viewholder来包装itemview里面的控件. 在我的安卓架构中,使用BaseAbsListAdapter作为所有AbsListView的适配器的基类: /** *

安卓开发 第八篇 我的安卓应用架构设计-----图片选择以及剪裁

Android开发中遇到要从相册选择图片时,大多数人都会选择调用Android自带的相册,毕竟这样可以节约时间,又不用自己去处理图片的问题,不过这样也会产生一些问题,有些系统自带的相册真的是丑到没朋友,有时调用系统相册时不时的还可能发生崩溃问题.而我的安卓架构中选择了自定义相册的功能,其效果是仿照QQ的图片选择样式,通过dialog展现出来的,还自定义了图片的剪裁,使用了CropImageView 实现了多种剪裁效果. 图片选择的直接辅助类: /** * 图片选择辅助类 * Created by

整合微信小程序的Web API接口层的架构设计

在我前面有很多篇随笔介绍了Web API 接口层的架构设计,以及对微信公众号.企业号.小程序等模块的分类划分.例如在<C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系>介绍了相关模块的划分,在<基于微信小程序的系统开发准备工作>介绍了Web API的架构设计思路.本篇随笔对之前介绍的架构内容进行统一的调整更新,以便更加方便实际项目的应用开发,以期达到统一.重用.清晰的目的. 1.公众号.企业号.小程序模块的划分 我们知道,目前微信企业应用,分为公众号.企业号(企业

浅谈工业级物联网项目架构设计及实施

[说明]这是发表在<程序员>电子刊10月B架构专题文章 网页链接:http://www.csdn.net/article/2015-10-31/2826093 摘要:互联网+和物联网由于发展的侧重点不同,在做架构设计上肯定有所不同.而以中小项目为主的物联网项目,其实更看重的,一是系统稳定可靠,能保证系统长期稳定的运行.本文主要介绍工业级物联网项目的架构设计及实施. 前言 早在1999年就已经有了“物联网”这个概念,但是直到十年之后的2009年,IBM提出“智慧地球”的概念,才推动很多国家把物联

安卓架构...有什么清晰的方式?

安卓架构...有什么清晰的方式? 前言 我们知道写出有质量的软件是复杂而且困难的:它不仅仅在于满足所有的需求,同时也应该是健壮的.易于维护的.方便测试的.非常灵活的(能够灵活的改变内容,如模块加减).清晰的架构(The Clean Architecture)就是在这种需求下诞生,而且能够成为在软件开发过程中的一个好的选择. 清爽的架构的想法非常简单:它代表一组方式规则,能够产生如下的系统: 与框架无关 易于测试 与UI无关 与数据库无关 与其他外部组件无关 在实际应用过程中,没有必要像图中那样来

百亿级日访问量的应用如何做缓存架构设计?

微博日活跃用户 1.6 亿+,每日访问量达百亿级,面对庞大用户群的海量访问,良好的架构且不断改进的缓存体系具有非常重要的支撑作用. 本文由新浪微博技术专家陈波老师,分为如下四个部分跟大家详细讲解那些庞大的数据都是如何呈现的: 微博在运行过程中的数据挑战 Feed 平台系统架构 Cache 架构及演进 总结与展望 微博在运行过程中的数据挑战 Feed 平台系统架构 Feed 平台系统架构总共分为五层: 最上面是端层,比如 Web 端.客户端.大家用的 iOS 或安卓的一些客户端,还有一些开放平台.

架构设计之六个复杂度来源

之前在谈谈架构设计的目的 这篇文章中说过,架构设计的目的就是为了解决软件系统复杂度带来的问题. 但是究竟复杂度有哪些呢?所以今天借此说说软件复杂度的六个来源: 1.高性能; 2.高可用; 3.可扩展性; 4.低成本; 5.安全; 6.规模; 一.高性能 对性能孜孜不倦的追求是整个人类技术不断发展的根本驱动力.例如计算机,从电子管计算机到晶体管计算机再到集成电路计算机,运算性能从每秒几次提升到每秒几亿次.但伴随着性能越来越高,相应的方法和系统复杂度也是越来越高.现代的计算机CPU集成了几亿颗晶体管

日访问量百亿级的应用如何做缓存架构设计

微博日活跃用户1.6亿+,每日访问量达百亿级,面对庞大用户群的海量访问,良好架构且不断改进的缓存体系具有非常重要的支撑作用. 4月21日,中生代技术走进盒子科技的现场技术交流活动上,新浪微博技术专家陈波为大家讲解了微博Cache架构的设计实践过程. 刷微博吗?跟我们一起听听那些庞大的数据是如何呈现的吧! 数据挑战 Feed平台系统架构 总共分为五层,最上层是端层,比如web端,客户端,大家用的ios或安卓的一些客户端,还有一些开放平台,第三方接入的一些接口.下面是平台接入层,不同的池子,主要是为