安卓是运行在虚拟机之上么?那么虚拟机与底层linux kernel有什么联系呢? 20
RT同时虚拟机的用途是什么呢???JNI在其中有没有起到作用???刚刚学习安卓,被弄得七晕八素,麻烦知道的指教一下了!!!!...
RT 同时 虚拟机的用途是什么呢???JNI在其中有没有起到作用???
刚刚学习安卓,被弄得七晕八素,麻烦知道的指教一下了!!!! 展开
刚刚学习安卓,被弄得七晕八素,麻烦知道的指教一下了!!!! 展开
1个回答
展开全部
虚拟机与JAVA虚拟机的概念是一样的,安卓虚拟机就是JAVA虚拟机的改良版,安卓买了JAVA的授权
安卓的系统级是二进制的,运行在linux内核之上,安卓虚拟机在内核中有大量代码,与内核合二为一,充分发挥了linux内核和arm硬件JAVA加速的功能, 所以安卓虚拟机的运行效率很高,
安卓的应用软件基本上是运行在虚拟机上的,
后来android的CDK使用C做开发,可以不用虚拟机直接运行,虚拟机做界面,提高了运行效率
关于jin,我搜了一篇帖子,jin就是用来给java界面指出自己写的C代码的加载和使用方法的
http://www.androidwhy.com/android_8_27_zh.html
Android开发深入教程
ID #1026
JNI是什么?
对于已经Android开发入门的朋友在看一些Java书箱的时候可能会见到JNI这个词。本文章简单介绍JNI。
JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。
使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机实现下。
如果不是对性能或其他特定的需求,不建议使用JNI。因为如果使用了JNI,就没有了Java的“一次编写,到处运行”的效果了!
安卓的系统级是二进制的,运行在linux内核之上,安卓虚拟机在内核中有大量代码,与内核合二为一,充分发挥了linux内核和arm硬件JAVA加速的功能, 所以安卓虚拟机的运行效率很高,
安卓的应用软件基本上是运行在虚拟机上的,
后来android的CDK使用C做开发,可以不用虚拟机直接运行,虚拟机做界面,提高了运行效率
关于jin,我搜了一篇帖子,jin就是用来给java界面指出自己写的C代码的加载和使用方法的
http://www.androidwhy.com/android_8_27_zh.html
Android开发深入教程
ID #1026
JNI是什么?
对于已经Android开发入门的朋友在看一些Java书箱的时候可能会见到JNI这个词。本文章简单介绍JNI。
JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。
使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机实现下。
如果不是对性能或其他特定的需求,不建议使用JNI。因为如果使用了JNI,就没有了Java的“一次编写,到处运行”的效果了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询