android现在支持纯C/C++ 语言开发应用吗?还需要ART/java虚拟机吗?
安卓底层是用C/C++开发的,如果需要编写很牛逼的Android应用的话,毫无疑问的说,一定会用到C或者C++,但是Android的应用框架是用Java写的,而开发者一般而言只会用到应用框架这一层面,所以可以这么说,Android开发基本上就是使用J***a语言进行开发。如果你有对J***a比较了解的话,那么你一定就会知道JNI,是j***a调用C/C++代码的一种机制,这样就可以使得可以在Android终端设备上跑C++代码了~我和你说,我就是大三才开始学J***a和android开发的,大二升大三的那个***期自学J***a,开学后开始学Android开发的,想要学习,永远都不晚!哇撒撒~码了不少字,望***纳
目前截止到2.3系统来看,最终安装的文件仍然是apk格式,界面和系统大多数功能均使用J***a开发,但是稍微高端的应用考虑到性能和安全性使用 C/C++是必要的,C/C++最终编译的so文件就相当于Windows下的dll动态库,需要一个宿主去加载调用,我们通过J***a的JNI去调用这些本地方法,目前从NDK的版本来看Google不断增强和开放C++在Android开发的用处,以保证和iPhone这种使用本地语言开发出来的软件体验度不能差距太大。
请问J***a语言有哪些特点?什么是J***a虚拟机?
J***a 语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点。
J***a虚拟机(J***a Virtual Machine, JVM)是J***a程序的软件环境,J***a虚拟机可以理解成一个以字节码为机器指令的CPU。在任何中,只要JVM存在,J***a程序都可以运行,真正实现了程序的可移植性。
J***a虚拟机在执行J***a程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。
j***a虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?
j***a虚拟机功能就是执行J***a字节码,其编码实现就是一个死循环,每一次循环就是取字节码,执行字节码的过程,所以跟其它程序没有什么本质区别。主流的j******M还是用C语言实现的居多,再以汇编为辅助,用j***a实现j******M的情况有,但不多。
下面是一个在智能设备里用C语言实现虚拟机的片段。
这一段代码就是对short加法这个字节码的实现。
而这一段代码就是取字节码并执行,是不是觉得J******M也不过如此呢。
有不少人会为了优化虚拟机的效率,而选择用汇编把这些执行频度很高的代码重写一下。
总结就是C实现的多,会结合汇编作为***。其它语言也有,但不是主流。
C ! C++可能要少一些。但是核心部分一定是C的代码。所以是C占多数, 要调用操作系统的一些都东西 操作系统基本都是c搞的。因为只有C和C++才能访问内存的堆栈等等结构,还有利用指针,IO等[_a***_],通过JVM的底层可以看到,里面设计到IO流和网络的部分都是用NATIVE声明的类和方法,NATIVE是专门调用其他语言而用的一种机制.
j***a虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。J***a虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得J***a程序只需生成在J***a虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。