首页 > 其他分享 >Android系统结构介绍

Android系统结构介绍

时间:2024-03-24 18:58:05浏览次数:35  
标签:Java 层次 系统结构 介绍 应用程序 工具 Android 模拟器

1. 系统介绍

        Android 是 Google 开发的基于 Linux 平台的、开源的、智能手机操作系统。Android 包括操作系统、中间件和应用程序,由于源代码开放,Android 可以被移植到不同的硬件平台上。

        OHA(Open Handset Alliance,开放手机联盟),为 Google 与 33 家公司联手为 Android 移动平台系统的发展而组建的一个组织。

        HTC 和 Google 合作推出了几款手机:G1、G2、Hero 和 Nexus One,其他的手机厂商也推出了几款 Android手机,如下图所示:

 

         围绕在 Google 的 Android 系统中,形成了移植开发和上层应用程序开发两个不同的开发方面。手机厂商从事移植开发工作,上层的应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还可以基于仿真器环境。
        Android 1.5 以前的仿真环境,Android 1.6 以后的仿真器环境如下所示:

 

 2. 技术优势

        (1)、全开放智能手机平台
        (2)、多硬件平台的支持
        (3)、使用众多的标准化技术
        (4)、核心技术完整,统一
        (5)、完善的 SDK 和文档
        (6)、完善的辅助开发工具
        Android 的开发者可以在完备的开发环境中进行开发,Android 的官方网站也提供了丰富的文档、资料。这样有利于 Android 系统的开发和运行在一个良好的生态环境中。

3.软件结构和使用的工具 

        从宏观的角度来看,Android 是一个开放的软件系统,它包含了众多的源代码。从下至上,Android 系统分成 4 个层次:
        第 1 层次:Linux 操作系统及驱动;
        第 2 层次:本地代码(C/C++)框架;
        第 3 层次:Java 框架;
        第 4 层次:Java 应用程序。
        Android 系统的架构如图所示:

        Android 的第 1 层次由 C 语言实现,第 2 层次由 C 和/C++实现,第 3、4 层次主要由 Java 代码实现。
        第 1 层次和第 2 层次之间,从 Linux 操作系统的角度来来看,是内核空间与用户空间的分界线,第 1 层次运行于内核空间,第 2、3、4 层次运行于用户空间。
        第 2 层次和第 3 层次之间,是本地代码层和 Java 代码层的接口。
        第 3 层次和第 4 层次之间,是 Android 的系统 API 的接口,对于 Android 应用程序的开发,第 3 层次以下的内容是不可见的,仅考虑系统 API 即可。
        由于 Android 系统需要支持 Java 代码的运行,这部分内容是 Android 的运行环境,由虚拟机和Java 基本类组成。
        对于 Android 应用程序的开发,主要关注第 3 层次和第 4 层次之间的接口。除了软件本身的代码之外,Android 还提供了一系列工具来辅助系统开发,这些主要的工具包括:

aapt ( Android Asset Packaging Tool ):用于建立 zip 兼容的包( zip 、 jar 、 apk ),也可用于将资源编译到二进 制的 assets 。 adb ( Android Debug Bridge , Android 调试桥):使用 adb 工具可以在模拟器或设备上安装应用程序的 .apk 文件,并从命令行访问模拟器或设备。也可以用它把 Android 模拟器或设备上的应用程序代码和一个标准 的调试器连接在一起。 android 工具: android 工具是一个脚本,用于创建和管理 Android Virtual Devices ( AVDs )。 AIDL 工具( Android Interface Description Language , Android 接口描述语言工具), AIDL 工具可以生成进程 间接口的代码,诸如 Service 可能使用的接口。 AVDs ( Android Virtual Devices , Android 虚拟设备) 用于配置模拟器,模拟出类似的设备效果 DDMS ( Dalvik Debug Monitor Service , Dalvik 调试监视器服务):这个工具集成了 Dalvik ,能够在模拟器 或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观 察堆( heap )和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。 dx : dx 工具用于将 .class 字节码( bytecode )转换为 Android 字节码(保存在 .dex 文件中)这个字节码文件 是给 Android 的 Java 虚拟机运行用的。 Draw 9-patch : Draw 9-patch 工具允许使用所见即所得( WYSIWYG )的编辑器轻松地创建 NinePatch 图形。 Emulator (模拟器):模拟器是一个运行于主机上的程序,可以使用模拟器来模拟一个实际的 Android 系统 的运行,使用模拟器非常适合调试和测试应用程序。 Hierarchy Viewer (层级观察器):层级观察器工具允许调试和优化用户界面。它用可视的方法把视图( view ) 的布局层次展现出来,此外,还给当前界面提供了一个具有像素栅格( grid )的放大镜观察器。 mksdcard :帮助创建磁盘映像( disk image ),可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如 SD 卡)。 Monkey : Monkey 是在模拟器或设备上运行的一个小程序,它能够产生随机的用户事件流,例如:点击 ( click )、触摸( touch )、挥手( gestures ),还包括一系列系统级事件。可以使用 Monkey 给正在开发的程序做随机的但可重复的压力测试。 sqlite3 : sqlite3 工具能够方便地访问 SQLite 数据文件,这是一个 sqlite 标准命令行工具。 Traceview :这个工具可以将 Android 应用程序产生的跟踪日志( trace log )转换为图形化的分析视图。

4.扩展相关

        以上就是Android系统结构介绍,如需了解更多关于android的细节可前往下方地址下载相关电子书参照查看。

http://code.drjtrtj.xyz/downCode?id=4001

标签:Java,层次,系统结构,介绍,应用程序,工具,Android,模拟器
From: https://blog.csdn.net/qq_56819189/article/details/136992228

相关文章

  • Android14音频进阶:AudioFlinger究竟如何混音?(六十三)
    简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】......
  • Android 11 -- app 服务保活
    app服务保活(android11源码)frameworks/base/services/core/java/com/android/server/am/ActiveServices.javastop后台service的逻辑:AMS的doStopUidLocked方法会先stop后台service,再去更新uid并分发uid的changestopInBackgroundLocked回调后,service不一定会真被stopvoid......
  • (Service)服务启动流程分析(Android 10.0)
    (Service)服务启动流程分析,AMS内保活服务(Android10.0)frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.javaframeworks/base/services/core/java/com/android/server/am/ActiveServices.javaframeworks/base/core/java/android/app/Contex......
  • pymysql介绍
    PyMySQL介绍【1】简洁纯Python实现的模块,可以与Python代码兼容衔接,并也几乎兼容MySQL-python。遵循Python数据库APIv2.0规范。官网:https://zetcode.com/python/pymysql/【2】安装通过pipinstallpymsql安装【3】用法#导入模块importpymysqlfrompymysql.cur......
  • C++ 的标准模板库(STL)常用容器介绍
    C++的标准模板库(STL)提供了丰富的容器类来帮助开发者管理和存储数据。下面我将介绍C++中常用的STL容器,并且为每个容器提供一个简单的示例来说明其基本用法。1.vector(向量)#include<iostream>#include<vector>intmain(){std::vector<int>vec;//添加元......
  • QT 常用模块介绍以及使用说明
    当学习QT编程时,掌握以下几个关键模块是非常重要的。下面是每个模块的简要说明及示例程序:QtWidgets模块:说明:QtWidgets模块包含用于创建传统桌面应用程序的UI控件。示例程序:#include<QApplication>#include<QWidget>intmain(intargc,char*argv[]){QApp......
  • 使用 adb 命令修改 Android/data 目录下的文件(给碧蓝档案国服吃布丁)
    本文记录如何使用adb命令修改Android/data目录下的文件,然后给国服的碧蓝档案打上布丁......
  • NAND介绍
    一.NAND是一种电压元件,因此它是以不同的电压范围来代表不同的数据。NAND根据不同品质划分等级,依次为正片、白片、黑片正片:NAND原厂颗粒及原厂封装,或品牌方购买原厂颗粒后自己封装。白片:原厂或品牌方封好的正片中,仍会有部分再次检测有瑕疵的颗粒。黑片:在原料筛选的初级阶段便......
  • ARM总线结构介绍
    ARM架构是当今世界上最为广泛应用的嵌入式处理器架构之一,其总线结构是连接处理器核、内存、外设和其他系统组件的重要桥梁。本文将介绍ARM总线结构的基本概念、主要特点和常见组成部分。以下是我整理的关于嵌入式开发的一些入门级资料,免费分享给大家:https://m.hqyjai.net/emb_......
  • FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需FFmpeg的so库。1、下载Linux版本的android-ndk-r21e登录Linux服务器(比如华为云的......