为什么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执行效率和内存分配都很差劲,如果不及时释放掉,机子会运行越来越慢

相似回答