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工程师,这个最基本的认识还是要知道的吧。

  • 相关阅读:
    IDEA 修改JavaWeb的访问路径
    坦克大战--Java类型 ---- (1)音乐播放
    codeforces 620C
    算法笔记之KMP算法
    算法笔记数组
    26. Remove Duplicates from Sorted Array
    哈夫曼树的证明
    Complete Binary Search Tree
    Root of AVL Tree
    .net framework环境
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/what-android-is.html
Copyright © 2011-2022 走看看