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

为什么android的软件都用Java开发而不用C/C++?Java运行效率太低了,用C或C++编写的程序执行效率非常高,这样是不是太低端了?linux上面一般都是用C+... 为什么android的软件都用Java开发而不用C/C++?Java运行效率太低了,用C或C++编写的程序执行效率非常高,这样是不是太低端了?linux上面一般都是用C++开发的,为什么android不是呢?不是基于linux吗?以前觉得三星i9100硬件上面比iPhone4强N多倍,即使是最新的android系统,但是可玩性和执行效率还是比iPhone4差,换句话说就是程序运行没iPhone4流畅,可能有大部分是这个原因吧?我说的对吗?因为IOS上面都是用C++开发的,很少用Java,Java程序的内存管理虽然是自动的,但是相当凌乱,打开一个程序如果不释放内存的话机子会很卡,所以大虾门给我个解释吧!我现在对安卓有点疑惑了! 展开
 我来答
百度网友9308069
推荐于2018-07-06 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1924万
展开全部
选择Java肯定是google经过深思熟虑的抉择,先说能确定的优势,
Java有跨平台优势,手机的硬件可能千差万别,Java软件可以只出一套执行档。而C/C++需要针对机型出专用的编译版。
Java有大量人员优势,几乎不用重复学习就能做android。
Java天生是做应用的语言,和C/C++不同,Java的语言和类库都是多年积累的、应用最需要的常用功能。

关于性能,说些个人看法。
越是应用,新创意的成分可能越多,定式越少。这时候用一些宽松的语言越能快速的实现产品。
相反没有创意的复制,才需要高效的语言。比如压缩算法-视频编码、比如3d绘制算法,都是专家组总结的最佳算法,没有创意只需要实现,这时就需要最高效的语言最大限度的发挥cpu,所以这里用c都不够,甚至要汇编SIMD,甚至要电路硬件解码。
有创意的东西、特别是新东西、还没来得及形成定式,这时需要一些很灵活的语言,比如网页网站一日数变,甚至Java都不够灵活,需要更灵活的脚本语言python、php之类才合用。
总之,Java是个灵活和性能的一种折中,不够最快但够快,不是最灵活但够灵活。所以才适合做这些应用软件。
work_lift
推荐于2017-09-14 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:15.3万
展开全部
选择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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彭你好
2011-12-18
知道答主
回答量:11
采纳率:0%
帮助的人:1.7万
展开全部
因为android的UI层是用java的类封装的,而底层是用c/c++。所以开发UI层(也就是软件的界面层)时要用java开发,而你要用C++来提高软件效率的话,需要使用jni,通过jni,在java中可以去调用c++程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友38713fe
2011-12-17 · 超过31用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:49.7万
展开全部
android的底层是用C开发的,好像是objectiveC,应用库是用java写的。java调用的是底层用C写得那些接口。我觉得是不是因为现在国外大多数程序员使用的都是java语言呢,或者是java的语法更加简单易学呢。呵呵,个人猜想而已!!希望采纳!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arlene_1983
2011-12-17 · TA获得超过762个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:150万
展开全部
IOS不是用objective-c开发的嘛!还是有区别的。
追问
区别我知道啊,关键是一个用C开发,一个用Java开发,Java执行效率和内存分配都很差劲,如果不及时释放掉,机子会运行越来越慢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式