网站首页 > 开源技术 正文
我们知道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可以跨设备运行。
猜你喜欢
- 2025-09-09 apk一键加固(JAVA层加密DEX,防反编译)
- 2025-09-09 Android关于Gradle构建流程,简单易懂,收获满满
- 2025-09-09 monkey大全!可直接运用在项目中的常规monkey命令
- 2025-09-09 Android的基本世界观——系统简介,组件逻辑及其他
- 2025-09-09 视频:Win10手机开发移植安卓应用有多方便
- 2025-09-09 浅谈xaingce apk样本分析_安卓样本分析
- 2025-09-09 7款优秀的App安全测试工具_安全测试工具appscan
- 2025-09-09 34.如何获取app(apk和ipa)中的资源
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)