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

    Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层。

    system-architecture

    下面是简单翻译的版本:

    system-architecture_nebulayao

    1. Linux内核(Linux Kernel)
      • Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。
      • Linux 内核是硬件和软件层之间的抽象层。
    2. 中间件
      • 中间件包括两部分:核心库和运行时(libraries & Android runtime)
      • 核心库包括,SurfaceManager 显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite 数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit 浏览器引擎等。
      • Dalvik虚拟机:区别于Java虚拟机的是,每一个Android 应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik 虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。
      • Dalvik:

        Android另一个重要的部分,包括虚拟机和一组重要的运行环境。它的设计非常巧妙,是个很好的一个手机终端的底层应用。

        代码如何生成?

        Dalvik虚拟机只执行.dex的可执行文件。当Java程序通过编译,最后还需要通过SDK中的工具转化成.dex格式才能在虚拟机上执行。

      • Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

    3. 应用程序框架(Application Framework)
      • 丰富而又可扩展性的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮( buttons), 可嵌入的web 浏览器。
      • 内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。
      • 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。
      • 通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
      • 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
    4. 应用程序 (Applications)
      • Android 系统会内置一些应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA 语言编写的。

     

     

     

     

    Android.jar文件浅析

    作为一个Java项目,通常情况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。如果我们在Eclipse中展开来看,可以看到j2se中的包,apache项目中的包,还有Android自身的包文件。在这里我们简单浏览一下Android的包文件:

    android.app :提供高层的程序模型、提供基本的运行环境
    android.content :包含各种的对设备上的数据进行访问和发布的类
    android.database :通过内容提供者浏览和操作数据库
    android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
    android.location :定位和相关服务的类
    android.media :提供一些类管理多种音频、视频的媒体接口
    android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
    android.os :提供了系统服务、消息传输、IPC 机制
    android.opengl :提供OpenGL 的工具
    android.provider :提供类访问Android 的内容提供者
    android.telephony :提供与拨打电话相关的API 交互
    android.view :提供基础的用户界面接口框架
    android.util :涉及工具性的方法,例如时间日期的操作
    android.webkit :默认浏览器操作接口
    android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用

     

     

     

  • 相关阅读:
    Android API Guides---Storage Access Framework
    Memcache安装与使用
    Can a GridView have a footer and header just like ListView?
    【大话设计模式】——简单工厂模式
    三层架构—简析
    OpenStack 使用Ceph 配置指导
    mysql 8小时问题
    centos7 安装mysql
    mysql 创建用户
    Waiting for table metadata lock
  • 原文地址:https://www.cnblogs.com/lianghui66/p/2748414.html
Copyright © 2011-2022 走看看