安卓艺术探索 jni,编译器附带java虚拟机一个

一个ARM编译器附带了AndroidNDK,说复杂一点,其实是基于linux下修改过的java虚拟机 , 运行Java程序,所以每个APP都会创建一个dalvik虚拟机,这是一个linux进程,Linux是使用标准C语言开发的操作系统,android是基于linux的开源操作系统 。
【安卓艺术探索 jni,编译器附带java虚拟机一个】
1、 安卓/linux中怎样调用原有的JNIso库函数电脑上的CPU是x86,手机上的CPU是ARM架构 。你的动态链接库只有经过ARM Gcc编译器编译后才能在手机上运行 。一个ARM编译器附带了AndroidNDK 。你可以用NDK编译器重新编译它,然后用JNI调用它 。JNI呼叫不是三言两语能说清楚的 , 还有专门的教程 。如果太麻烦就不要用C写了,如果是简单的应用,为什么要用C语言写?JDK可以满足大多数要求 。如果太麻烦,你应该少碰NDK 。
2、 安卓系统是用java开发的吗?android是基于linux的开源操作系统 。Linux是使用标准C语言开发的操作系统,Android驱动和操作系统内核使用C语言和汇编开发 。android操作系统本身是用Java开发的,通过JNI调用本地C语言库来实现操作系统的底层调度,Android应用是用Java开发的;同时也可以使用C/c原生开发 , 但是大部分时候不需要C,所以基本上Java是标准的开发语言 。Android用的是一个修改过的JVM(Java虚拟机),叫做dalvik虚拟机,本质是Java虚拟机,所以每个APP都会创建一个dalvik虚拟机,这是一个linux进程 。说复杂一点,其实是基于linux下修改过的java虚拟机,运行Java程序 。

    推荐阅读