• Android 系统架构


    应用层(System Apps)

    系统内置的应用(联系人,浏览器,相册,文件管理器)和 其他应用都属于应用层,负责与用户进行直接交互

    应用框架层(Java API Framework)

    应用框架层为开发人员提供了开发应用程序所需要的API,我们平常开发应用程序都是调用这一层所提供的API,当然也包括系统应用。
    这一层是由Java代码编写的,可以称为Java Framework

    • 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器
    • 资源管理器(Resource Manager)用于访问非代码资源,例如本地化的字符串、图形和布局文件(layout)
    • 通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息
    • 活动管理器(Activity Manager) 用于管理应用的生命周期,提供常见的导航返回栈
    • 内容提供器(Content Providers)可让应用访问其他应用(例如“联系人”应用)中的数据或者共享其自己的数据

    系统运行层 (Nativa C/C++ Libraris & Android Runtime)

    Nativa C/C++ Libraris

    许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库
    Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如 Java OpenGL API 等
    C/C++程序库能被Android系统中的不同组件所使用,并通过应用程序框架为开发者提供服务,使用NDK开发

    Android Runtime

    每个应用都在其自己的进程中运行,并且有其自己的 ART 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少

    • 预先 (AOT) 和即时 (JIT) 编译
    • 优化的垃圾回收 (GC)
    • 更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置观察点以监控特定字段

    硬件抽象层 (HAL)

    硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,向更高级别的 Java API 显示设备硬件功能。
    为了保护硬件厂商的知识产权,它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性

    Linux 内核

    Android的核心系统服务基于Linux内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核/

  • 相关阅读:
    VS生成Map文件
    Google Android Studio Kotlin 开发环境配置
    byte数组存储到mysql
    C# 读取 appconfig文件配置数据库连接字符串,和配置文件
    关于byte[]与string、Image转换
    运行vs2010,Debug时发生“无法启动程序"http://localhost:xxx",系统找不到指定文件
    【转】使用Navicat for Oracle新建表空间、用户及权限赋予
    eclipse创建maven项目
    使用eclipse自动生成WSDL客户端代码
    使用Apache CXF根据wsdl文件生成代码
  • 原文地址:https://www.cnblogs.com/lukelmouse/p/14516588.html
Copyright © 2020-2023  润新知