转http://blog.csdn.net/developcoding/article/details/17176263

一、C++是与cpu相关的本地代码,也就是说每种机型都要提供相应的编译器,而且每个应用都要分别编译成适应不同机型的版本 而Java只要开发商提供针对特定硬件平台的JVM,你的应用程序代码只需一次编译就可以运行在所有android机上了。所以对于android这样的系统,必然要以Java为程序语言的,否则结果是无法想象的。


二、Java跨平台,入门简单,而学习和精通C++的成本实在比JAVA要高太多了。java拥有世界上最大的开发群体,有最大的开源社区的技术支持,这样它就可以吸引最大量的开发者团队或者公司,提供更多更强优质的产品,而优质的产品和人气,是吸引最终用户的法宝。 其实这也就体现了,为什么开源软件是软件产业的一次革命了。


三、Google采用Java虚拟机的另一个很关键的原因,就是能使手机开发厂商摆脱Linux的GPL协议的束缚;Google通过Java虚拟机在Linux 内核和应用层之间做了隔离,因此,开源的只是内核和Java虚拟机,而厂商采用Java编写的驱动和应用则不需要开源,这样,既维护了各厂商的利益,又保证了各种android应用在各款手机的跨平台应用。


四、说Java效率低下的朋友一定没有深入理解过JVM的实现。现在的嵌入式CPU大多都集成了Java协处理,支持JVM指令集,能直接运行微码,不再是以前的“解释执行了”,效率上已经非常接近于C。Android的GUI框架是基于Native C底层的一套自有框架,基本上所有视频加速功能都是由C/C++实现,GUI效率一点不打折扣。


五、Google Android发布了NDK,使得Android支持Java+C/C++开发

转载于:https://www.cnblogs.com/ukouryou/articles/3762446.html

更多相关文章

  1. Linux 4.4内核移植以及Android系统编译
  2. Dalvik虚拟机和ART(Android(安卓)RunTime)的区别
  3. 3.系统运行库
  4. Fedora17 64位 android "failed to create the SD card" 解决方
  5. 让你的模拟器不再卡:VirtualBox安裝 Android-x86 4.0
  6. 关于Android加快应用崩溃效率
  7. 知识普及:Android手机操作系统构架
  8. 将Android移植到FS2410开发板上
  9. 为什么ios比android流畅

随机推荐

  1. android 让Activity单例运行
  2. android通过http上传图片
  3. android的ViewFlipper
  4. Android(安卓)NDK Overview ---- Android
  5. Android(安卓)HandlerThread使用
  6. Android(安卓)Studio对话框登录。。。
  7. android系统本身的图片资源
  8. Android: 上传图片到服务器
  9. android 设置各种颜色 android:backgrou
  10. android studio Missing Constraints in