android的jni可以使用c/c++来开发,相比java而言,运行的效率提高了很多,特别是在做一些图像算法,或者游戏逻辑的时候,使用jni将大大的提高效率。比如某个游戏要采用opengl,同样加载一个由1000个多边形组成的3d模型,jni要比java运算快好几倍,这样就保证了游戏运行的fps不会太低。
另外一个好处就是内存管理上面,java的内存管理全部由虚拟机来管理,C++由程序员来管理,利用率上面就好多了。
等等其他优点。
既然这么多的优点,为什么一个android程序不采用纯c来开发呢?因为是android的 UI framework采用java,所以,在UI上面还是采用java来开发。
效率,,java是面向对象的,离计算机的理解能力有点远。c、c++都是做linux内核驱动的。不然android怎么对得起别的程序员,不壮大团队怎么跟苹果竞争。
有时候通过存java访问不到linux某些东西,jni就可以.而且相对于效率上而言jni比android 高