为什么android的软件都用Java开发而不用C/C++?

为什么android的软件都用Java开发而不用C/C++?Java运行效率太低了,用C或C++编写的程序执行效率非常高,这样是不是太低端了?linux上面一般都是用C++开发的,为什么android不是呢?不是基于linux吗?以前觉得三星i9100硬件上面比iPhone4强N多倍,即使是最新的android系统,但是可玩性和执行效率还是比iPhone4差,换句话说就是程序运行没iPhone4流畅,可能有大部分是这个原因吧?我说的对吗?因为IOS上面都是用C++开发的,很少用Java,Java程序的内存管理虽然是自动的,但是相当凌乱,打开一个程序如果不释放内存的话机子会很卡,所以大虾门给我个解释吧!我现在对安卓有点疑惑了!

选择Java肯定是google经过深思熟虑的抉择,先说能确定的优势,
Java有跨平台优势,手机的硬件可能千差万别,Java软件可以只出一套执行档。而C/C++需要针对机型出专用的编译版。
Java有大量人员优势,几乎不用重复学习就能做android。
Java天生是做应用的语言,和C/C++不同,Java的语言和类库都是多年积累的、应用最需要的常用功能。

关于性能,说些个人看法。
越是应用,新创意的成分可能越多,定式越少。这时候用一些宽松的语言越能快速的实现产品。
相反没有创意的复制,才需要高效的语言。比如压缩算法-视频编码、比如3d绘制算法,都是专家组总结的最佳算法,没有创意只需要实现,这时就需要最高效的语言最大限度的发挥cpu,所以这里用c都不够,甚至要汇编SIMD,甚至要电路硬件解码。
有创意的东西、特别是新东西、还没来得及形成定式,这时需要一些很灵活的语言,比如网页网站一日数变,甚至Java都不够灵活,需要更灵活的脚本语言python、php之类才合用。
总之,Java是个灵活和性能的一种折中,不够最快但够快,不是最灵活但够灵活。所以才适合做这些应用软件。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-14
选择Java肯定是google经过深思熟虑的抉择,先说能确定的优势,
Java有跨平台优势,手机的硬件可能千差万别,Java软件可以只出一套执行档。而C/C++需要针对机型出专用的编译版。
Java有大量人员优势,几乎不用重复学习就能做android。
Java天生是做应用的语言,和C/C++不同,Java的语言和类库都是多年积累的、应用最需要的常用功能。

关于性能,说些个人看法。
越是应用,新创意的成分可能越多,定式越少。这时候用一些宽松的语言越能快速的实现产品。
相反没有创意的复制,才需要高效的语言。比如压缩算法-视频编码、比如3d绘制算法,都是专家组总结的最佳算法,没有创意只需要实现,这时就需要最高效的语言最大限度的发挥cpu,所以这里用c都不够,甚至要汇编SIMD,甚至要电路硬件解码。
有创意的东西、特别是新东西、还没来得及形成定式,这时需要一些很灵活的语言,比如网页网站一日数变,甚至Java都不够灵活,需要更灵活的脚本语言python、php之类才合用。

总之,Java是个灵活和性能的一种折中,不够最快但够快,不是最灵活但够灵活。所以才适合做这些应用软件。
摘自:http://zhidao.baidu.com/question/355813258.html
第2个回答  2011-12-18
因为android的UI层是用java的类封装的,而底层是用c/c++。所以开发UI层(也就是软件的界面层)时要用java开发,而你要用C++来提高软件效率的话,需要使用jni,通过jni,在java中可以去调用c++程序。
第3个回答  2011-12-17
android的底层是用C开发的,好像是objectiveC,应用库是用java写的。java调用的是底层用C写得那些接口。我觉得是不是因为现在国外大多数程序员使用的都是java语言呢,或者是java的语法更加简单易学呢。呵呵,个人猜想而已!!希望采纳!!
第4个回答  2011-12-17
IOS不是用objective-c开发的嘛!还是有区别的。追问

区别我知道啊,关键是一个用C开发,一个用Java开发,Java执行效率和内存分配都很差劲,如果不及时释放掉,机子会运行越来越慢

为什么Android开发使用Java而不是C++?
1。效率特别高,废话JAVA是解释性语言,是把代码托管给jvm,效率能高么。事实:大型手游的核心都是c\/c++编写的。(用JAVA不得卡死?)2。安全性高,JAVA\/c#等编写的程序可以反编译!而c\/c++程序是编译成二进制机器码的,对应目标cpu的指令,是无法反编译的,只能反汇编。事实:比如银行应用,核心代...

为什么android的软件都用Java开发而不用C\/C++?
Java有跨平台优势,手机的硬件可能千差万别,Java软件可以只出一套执行档。而C\/C++需要针对机型出专用的编译版。Java有大量人员优势,几乎不用重复学习就能做android。Java天生是做应用的语言,和C\/C++不同,Java的语言和类库都是多年积累的、应用最需要的常用功能。关于性能,说些个人看法。越是应用,...

为什么android的软件都用Java开发而不用C\/C++?
C适合开发底层了。Android,其实就是一个linux的变种,那是用C开发,不能用java。但是在Android上运行的程序,用C开发成本太高。大部分人是不行的。再一个java的软件支持库很丰富,网络、多媒体等方面的API也比C强啊。所以用java

Android为什么要用JAVA做应用开发语言而不用C\/C++
C++重运行效率。但是跨平台性较弱。开发难度较高。用过JNI的人都知道本地的C\/C++库,至少要编译多次。不同的框架就代表者不同的编译环境。而且直接用C++编译运行的话。C++并不能很好的屏蔽掉硬件差异。所以对于开发来说调试来说,都是一个比较艰巨的任务。C++也不是一个非常好的工程化开发语言。具体...

google 的android系统应用层方面为什么不选择c或c++语言而选择java,虽 ...
C和C++编译后的二进制文件是和CPU架构相关的,应用层用java来做,这样就把平台的差异性交给了底层,所以这样就为应用层的开发带来了好处,使得android的普及占据了很大的优势性!“只要在android这一个系统上能运行就可以了啊”,如果android使用C、C++这种平和硬件相关性很强的语言,那么应用层的开发必然...

Android为什么选择Java作为开发语言
一、Java是一个跨平台的语言 而且是二进制跨平台,不需要重新编译,不管目标平台是什么架构,只要有JVM就能运行,这点C++就做不到,往往需要重新编译,且所有依赖库都必须要在目标平台上有。二、Java的开发效率比C++高 Java语法相对简单,虽然运行效率不佳,但是开发效率比较高。其垃圾回收,异常处理,无...

Android为什么选择Java作为开发语言
Android选择Java作为开发语言的主要原因:1、安卓操作系统是开源的,其开源的初衷便是希望通过该措施整合所有的手机硬件提供商以及手机生产厂商,本质上就是谷歌希望让安卓系统能运行于任何不同类型的硬件上,而其中的硬件主要便是指CPU,其中包括,高通、德州仪器、三星,甚至包括国产的华为(海思处理器)。...

安卓系统为什么要用java语言写?可以用C语言写程序吗?
所以,JAVA成为了android平台的首选开发语言,也可以说,JAVA是一个很均衡的选择,在性能和门槛之间平衡的一个选择。当然,毕竟是linux内核的系统,android的sdk除了提供JAVA版以外,也有C++版的,也还是可以用C\/C++开发android软件。安卓系统的架构图如下:Android系统本身是一套软件堆栈(或称为软件层叠架构)...

安卓开发一定要用Java?
楼主您好:如果是安卓系统的话:一般是Java开发,但是会调用C的代码;如果是安卓软件的话:必须是Java,因为安卓系统原始都是Java开发;顺便说一下:Android主流开发语言是Java,但也可以使用C、C++开发,即使用Android NDK,不过使用NDK编程有一些劣势,比如程 序更加复杂,兼容性难以保障,无法访问Framework ...

Android为什么选择Java作为开发语言
一.Java语言有跨平台优势 二.Java是一门各方面性能都很好的编程语言 三.Java语言类库的积累是应用最常用,copy代码高效 Java开发安卓APP成为主体语言

相似回答