当前位置:首页 > 技术文章 > 正文内容

运行Android应用的“艺术”

arlanguage1个月前 (03-29)技术文章33

我们知道Android本身是一个Linux操作系统,其应用程序(Apps)大多使用Java语言编写,而Java语言本身是一种解释型语言,在以前的推送中,我介绍过,Java源程序经过javac命令编译后能得到字节码,字节码可以被JVM解释执行,JVM所解释的字节码其实是一种“汇编语言”。

一、Android中的应用程序

Android Apps既然采用Java语言进行编写,其源代码也必然是需要经过“编译成字节码”和“解释执行”两个阶段才能使Apps跑起来。

Android Apps 的Java源代码在一个特定的项目构建工具的帮助下进行编译,得到一些“只能在Android上解释运行的字节码”。

Android中每一个App都是一个单独的APK文件,即“Android应用包”,它类似于Java的可执行JAR文件

每个APK文件包含了“只能在Android上解释运行的字节码”“运行相关库”“应用相关资源”等内容。

二、什么是“艺术”(ART)?

Android通常用于使用电池的移动设备,也就是说Android Apps的运行环境注定受到了功耗、内存等方面的限制

每一个传统的Java应用运行时都需要一个单独的JVM进程,因此会占用大量的内存

Android使用一种方案解决了这个问题。在Android中,它并不使用JVM来运行应用,而采用了一种完全不同的虚拟机,叫作Android运行时(Android Runtime,即ART) (Android 4.4以前使用Dalvik虚拟机)。


三、只能在Android上解释运行的字节码

因为实际的Android应用在ART中运行,而非JVM,所以Android使用了一种格式为DEX而非class的字节码

你可以用带有特定的项目构建工具的编译程序编译Android程序的Java源代码,这些源代码最终会形成适用于ART的高效、简短的DEX字节码

ART可以把DEX字节码解释成为不同设备能识别的机器语言,直接在设备的CPU上运行。

因此,Android Apps可以跨设备运行。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3685.html

分享给朋友:

“运行Android应用的“艺术”” 的相关文章

Nginx常用技巧

Nginx常用技巧:提高性能、安全性与稳定性Nginx作为高性能的Web服务器和反向代理服务器,广泛应用于各类生产环境中。通过一些常用的配置技巧,可以有效提高Nginx服务器的性能、安全性和可靠性。以下将介绍几项关键的配置技巧,帮助您最大化利用Nginx的优势。直达服务器选购网址:www.tsyvp...

Nginx重写规则(2) nginx中地址重写有哪些选项

需求:研发提出了一些路由跳跃的要求。解决问题:在特殊情况下,如果业务和研发无法快速处理,则需要运维快速跳转来解决临时问题并避免出现较大的漏洞。Nginx重写规则案例一:临时将请求路径/colorv1/getcolorv1 的请求转发到 v2,且带着问号后面的参数 :location ~ ^/(.)/...

Linux 安装 Alist 个人云盘 alpine linux安装

1. 简介云服务器有比较大的空间,想自己搭建一个个人云盘,做大文件的转存。其他百度云盘等的下载速度感人,不想充值会员。查询了一轮之后 Alist,Nextcloud,Cloudreve,ownCloud,Seafile等等看到了不少,但是很多都需要各种配置安装。要么是通过宝塔可以快速安装,但是我的服...

如何在 CentOS 8 上安装 Nginx centos8.0安装教程

如何在 CentOS 8 上安装 NginxNginx发音为“ engine x”,是一种开源的高性能HTTP和反向代理服务器,负责处理Internet上一些最大站点的负载。它可用作HTTP和非HTTP服务器的独立Web服务器,负载平衡器,内容缓存和反向代理。与Apache[1]相比,Nginx可以...

Nginx总结(九) 实现系统的动静分离

前段时间,搞Nginx+IIS的负载均衡,想了解的朋友,可以看这篇文章:《nginx 和 IIS 实现负载均衡》,然后也就顺便研究了Nginx + IIS 实现动静分离。所以,一起总结出来,与大家共同探讨。 什么是动静分离所谓系统动静分离,其实,就是将网站静态资源(HTML,JavaScript,C...

linux上将大文件切割成小文件之split命令

说明:很多场景需要拷贝或传输文件时,如果我们需要拷贝的文件太大的话,就需要想办法将其分成小个文件进行拷贝,然后载重新合并。今天介绍 split 命令格式:split [OPTION] [INPUT [PREFIX]]一、压缩并切割使用tar命令进行压缩,使用split进行切割实例:# 压缩 ]# t...