#1,Android 体系结构 2000字简介 入门Android(Studio)开发

简介: #1,Android 体系结构 2000字简介 入门Android(Studio)开发

Android 体系结构:

Android系统采用分层架构,由高到低分为4层,依次是应用程序层(Applications)、应用程序框架层(Application Framework)、核心类库(Libraries)和Linux内核(Linux Kernel)。

应用程序层

应用程序层是一个核心应用程序的集合,所有安装在手机上的应用程序都属于这一层,例如自带的联系人程序、短信程序,或者从Google Play上下载的小游戏等都属于应用程序层。

应用程序框架层

应用程序框架层主要提供了构建应用程序时用到的各种API。Android自带的一些核心应用就是使用这些API完成的,例如视图(Views)、活动管理器(Activity Manager)、通知管理器(Notification Manager)等。开发者也可以通过这些API来构建自己的应用程序。

核心类库

核心类库中包含了系统库及Android运行环境。系统库这一层主要是通过C/C++库来为Android系统提供主要的特性支持,如OpenGL / EL库提供了 3D 绘图的支持,Webkit库提供了浏览器内核的支持。

Android 运行时库(Android Runtime )主要提供了一些核心库,能够允许开发者使用Java语言来编写 Android 应 用 ,另外Android运行时库中还包括了Dalvik虚拟机.它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。相较于Java城拟机,Dalvik是专门为移动设备定制的,它针对手机内存、CPU性能等做了优化处理。

Linux内核

Android系统主要基「 Linux内核开发,Linux内核层为Android设备的各种硬件提供「底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、电源管理驱动等。

Dalvik 虚拟机

在Android运行时库中包括了 Dalvik虚拟机。Dalvik是Google

公司自已设计的用于Android平台的虚拟机,它可以简单地完成进程隔离和线程管理 ,并且 可以提高内存的使用效率,每一个Android应用程序在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解析下得以执行。

很多人都认为Dalvik虚拟机是一个Java虚拟机 .因为Android开发的编程语言恰恰是

Java语言 .但是这种说法并不准确Dalvik虚拟机并不是按照Java虚拟机的规范来实现的 . 两者不兼容,而且也有很多不同之处下面通过一个图进行对比说明。

Java虚拟机和Dalvik虚拟机主要有两大区别:一是它们编译后的文件不同;二是它们基于的架构不同。具体如下:

1.编译后的文件不同

Java虚拟机运行的是.class字节码文件,而Dalvik虚拟机运行的则是其专有的.dex文件。

在Java程序中Java类会被翻译成一个或者多个字节码文件 (.class )然后打包到.jar文件,之后Java虚拟机会从相应的.class文件和.jar文件中获取相应的字节码。Android程序虽然也是使用Java语言进行编程,但是在翻译成.class文件后,还会通过工具将所有的.class文件转换成一个.dex文件,然后Dalvik虚拟机从其中读取指令和数据,最后的.odex是为了在运行过程中进一步提高性能面对.dex文件进行的进一步优化,能加快软件的加载速度和开启速度。

基于的架构不同

Java虚拟机是基于栈的架构,栈是一个连续的内存空间,取出和存入的速度比较慢;而Dalvik是基于寄存器的架构,寄存器是CPU上的一块缓存,寄存器的存取速度要比从内存中存取的速度快很多,这样就可以根据硬件最大限度地优化设备,更适合移动设备的使用。

Android系统下的Dalvik虚拟机默认给每一个应用程序最多分配16MB内存,如果Android加载的资源超过这个值,就会报出OutOfMemoryError异常,因此一定要注意这个问题。

ART模式

ART模式英文全称为Android Runtime,是谷歌Android 4.4 系统新增的一种应用运行模式。与传统的Dalvik模式不同,ART模式可以实现更为流畅的安卓系统体验。

ART模式与Dalvik模式最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。

相关文章
|
5月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
906 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
5月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
756 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
5月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
958 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
6月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
733 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
5月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
285 0
|
6月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
729 6
|
8月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
551 11
|
10月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
1888 36
|
8月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
350 0
|
9月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
417 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡

热门文章

最新文章