zoukankan      html  css  js  c++  java
  • android 系统架构

    android 系统架构

    简介

    Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的软件块。”

    Android 是一种以Linux 为核心的移动平台,可以安装在智能手机与平版计算机等移动设备上。Android 整个系统架构如下
    android-os

    从底层往上分为四个主要功能层:

    • linux内核层
    • 系统运行时库(libraries和android runtime)
    • 应用程序架构层(application fragment)
    • 应用程序层(applicaion)

    下面对四个层分别进行简单的介绍,为以后需要的时候,查看方便

    linux内核层

    我们通常说android是基于linux内核实现的一个嵌入式系统,所以linux内核是os的重要组成部分。linux内核是持续更新的,其中android5.0版本中的linux内核版本是3.10。
    其中包含的主要驱动模块:显示屏驱动,相机驱动,蓝牙驱动,闪存驱动,binder驱动,usb驱动,键盘驱动,wifi驱动,音频驱动,电源管理

    系统运行时库(libraries和android runtime)

    两部分:library 、 android runtime

    libray

    Android 有一个内部函数库,此函数库主要以C/C++编写而成。Android 应用程序开发人员并非直接使用此函数库,而是通过更上层的应用程序框架(Application Framework)来使用此函数库功能,所以有人称此类函数库为原生函数库(Native Libraries)。此函数库依照功能又可细分成各种类型的函数库,以下列出比较重要的函数库。

    • Media Framework(媒体函数库):此函数库让Android 可以播放与录制许多常见的音频与视频文件,支持的文件类型包括MPEG4、H.264、MP3、AAC、AMR、JPG 与PNG 等。
    • Surface Manager(外观管理函数库):管理图形界面的操作与2D、3D 图层的显示。
    • WebKit①:Android 内置的浏览器,其引擎就是WebKit,与Google 的Chrome②、Apple的Safari③ 浏览器引擎相同。
    • SGL:专门处理Android 的2D 图形。
    • OpenGL|ES④:适合嵌入式系统使用的3D 图形函数库,此函数库实现OpenGL ES 1.0版以上的功能。如果Android 手机本身有3D 硬件加速器,程序会直接使用该硬件加速器,否则会使用软件加速功能。
    • SQLite⑤:属轻量级但功能齐全的关系数据库引擎,方便让Android 所有的应用程序访问数据。

    android runtime

    Android Runtime 可分成Android Core Libraries(Android 核心函数库)与Dalvik VirtualMachine(Dalvik VM,Dalvik 虚拟机)。
    Android Core Libraries:Android 核心函数库所提供的功能,大部分与Sun 的Java 核心函数库相同。
    Dalvik Virtual Machine:一般编写好的Java 程序编译后会产生class 文件(或称Bytecode),而且由JVM(Java Virtual Machine)运行;但是Android 不使用JVM,而改用Google 自行研发的Dalvik VM,所运行的文件则是dex 文件(Dalvik Executable),而非class 文件。在Dalvik VM运行dex 文件之前,必须使用Android 开发工具(Android SDK)内的dx 工具将class 文件转成dex 文件⑦,然后交给Dalvik VM运行,如图3-29 所示。dex 文件比class 文件更精简、运行性能更佳,而且更省电,可以说是为了移动设备量身打造的。由前述可知,开发者仍需要以Java 程序语言编写Android 应用程序,而最后dx 工具会将java 文件产生的class 文件转成dex 文件。

    应用程序架构层(application fragment)

    就是android的API,开发者调用的api都来自这里。比如View、activity manager、ContentProvider、NotificationManager等等

    应用程序层(application)

    这里就是安装app的地方,这里面包含用户自己安装的app和手机系统内置的app

    写在最后

    基本上所有的内容读来自网络上的各家博客,做的只是整理一遍,希望哪些复习回顾、或者准备面试,就拿过来回顾一样
    一直说自己是android工程师,这个最基本的认识还是要知道的吧。

  • 相关阅读:
    51nod 1087 1 10 100 1000(找规律+递推+stl)
    51nod 1082 与7无关的数 (打表预处理)
    51 nod 1080 两个数的平方和
    1015 水仙花数(水题)
    51 nod 1003 阶乘后面0的数量
    51nod 1002 数塔取数问题
    51 nod 1001 数组中和等于K的数对
    51 nod 1081 子段求和
    51nod 1134 最长递增子序列 (O(nlogn)算法)
    51nod 1174 区间中最大的数(RMQ)
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/what-android-is.html
Copyright © 2011-2022 走看看