首页编程java编程安卓为什么一定要java虚拟机 安卓为什么要用虚拟机,而不直接在Linux系统上运行程序

安卓为什么一定要java虚拟机 安卓为什么要用虚拟机,而不直接在Linux系统上运行程序

编程之家2023-10-1291次浏览

大家好,关于安卓为什么一定要java虚拟机很多朋友都还不太明白,今天小编就来为大家分享关于安卓为什么要用虚拟机,而不直接在Linux系统上运行程序的知识,希望对各位有所帮助!

安卓为什么一定要java虚拟机 安卓为什么要用虚拟机,而不直接在Linux系统上运行程序

安卓为什么要用虚拟机,而不直接在Linux系统上运行程序

1.

因为本来Java在不同架构的CPU、不同操作系统上的开发就具有统一的优势。

2.

安卓为什么一定要java虚拟机 安卓为什么要用虚拟机,而不直接在Linux系统上运行程序

Java是语言,Linux是平台,语言一定要依靠于某个平台来工作。

3.

兼容性就是安装了JVM的机器都可以跑Java程序。

安卓为什么一定要java虚拟机 安卓为什么要用虚拟机,而不直接在Linux系统上运行程序

4.

Java虚拟机是为每个平台都提供的。也就是说,每一个平台都会编写一个特定的Java虚拟机。

5.

至于为什么其他软件不能运行在其他操作系统上,这个取决于底层的体系结构和接口

Linux和Windows的文件结构都不一样,而且操作系统的架构相差特别多,而且底层的接口也是相差巨大,特别是在库文件方面。

6.

Android系统和Linux发行版的系统根本区别是Android上面只跑了一个Dalvik/ART,而Linux发行版上面跑了很多Dalvik/ART而已。

7.

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

安卓系统是运行在java虚拟机上的这句话 什么意思

安卓底层是C写的,即linux内核,应用层是java语言写的,而我们都知道,java程序是运行在虚拟机上的,安卓程序也是java程序,它也是运行在虚拟机上,这个虚拟机就是安卓的应用层驱动程序

所谓的非智能机(Feature Phone)的系统本身并不是Java的,它只是能够运行Java开发的程序而已。而现在的智能机(Smart Phone),对于安卓系统来说,在App层,它基于Java开发出了一整套运行环境(再次强调,对于App层面来说是这样)。

Android可以对上层应用的开发提供各种API,一方面降低开发难度,另一方面也可以实现更强悍的功能。而以前的FP,只是能够运行Java的程序而已,其本身不对程序做任何支援。

安卓系统为什么一定要借助虚拟机来达到不同cpu的通用目的

借助虚拟机,最大的好处是简化了开发,比如安卓运行在x86之上和arm之上,只要安卓大版本一样,那么app的开发就是完全一样的(除了个别用到具体硬件特性的功能),这对于开发人员非常有利,因为不需要考虑不同硬件带来的差异,高通和华为海思这种同为arm的就更不在话下;

适配不同的硬件,主要问题是驱动程序的问题,这是在虚拟机这一层之下的,不至于说系统全部重写,但你可以了解一下编写驱动的难度,能写驱动的人水平跟在虚拟机写app的人的水平完全不在一个等级;

你的问法有问题,应该说是适配不同硬件,cpu只是其中一种硬件,其他的零部件都要去适配,就是2里面说的写驱动,安卓=linux内核+java虚拟机,不借助虚拟机也可以做到适配不同硬件,但是,第一,这就不是安卓了,第二,无法做到app快速简洁开发了,而且,安卓的体积会很恐怖,因为需要集成常见硬件的驱动,这个就好比是现在的windows,也是因为驱动不同,所以不同厂商,甚至同厂商不同型号手机的rom是无法通用的。

为什么JAVA运行要用到JAVA虚拟机,而 C 语言不用呢

我跟你清除点说,java是一次编译到处运行的,听说过这句话吧。其实java这个到处运行的特性被java虚拟机来完成了,所以java必须要虚拟机。从另一个角度,java程序首先被编译成*.class文件,然后,虚拟机在将*.class文件编译成本地机器能执行的机器语言,这步是由java虚拟机完成的;与c不同,c编译时一步到位,被直接编译成本地机器语言,所以一般来说c的执行速度要比java快,因为它少了一次编译。当然,c语言也就不可能实现一次编译到处运行这种特性了。

OK,本文到此结束,希望对大家有所帮助。

java8 什么意思 JAVA中文是什么意思java中switch里能放什么类型(java switch(true)的括号里可以是boolean类吗)