google 的android系统应用层方面为什么不选择c或c++语言而选择java,虽然java一次编译到处运行,

google 的android系统应用层方面为什么不选择c或c++语言而选择java,虽然java一次编译到处运行,可我们不需要他到处运行啊,只要在android这一个系统上能运行就可以了啊,何况java执行效率不如c

C和C++编译后的二进制文件是和CPU架构相关的,应用层用java来做,这样就把平台的差异性交给了底层,所以这样就为应用层的开发带来了好处,使得android的普及占据了很大的优势性!
“只要在android这一个系统上能运行就可以了啊”,如果android使用C、C++这种平和硬件相关性很强的语言,那么应用层的开发必然也要考虑硬件平台了,那么开发一个应用层软件,必然会出现ARM版本、MIPS版本、X86版本,或者htc XXX版、联想 XXX版,moto XXX版,那么给用户带来的是无尽的麻烦,用户肯定会说,这个android太烂了,其实这样的现象已经出现过了,现在很多非android的手机软件都分平台的,比如最常用的手机QQ,下载的时候必须选你的手机是那种吧,但是就有一种java版不区分手机平台的。
另外,现在的jvm已经很强了(并且会更强:)),加上硬件平台的快速更代,效率方面已经不是主要瓶颈了。
所以,google android选择了java。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-17
基于c/c++已经有很多了,用的java的话开发简单些,只要底层的提功能足够强的话,用java是没有问题的,效率的话,我的觉得差不多,还有跨平台这点很重要,设计者设计的时候主要应该是比较看重这点,况且android上的java不是一般的java了,用的库什么的都是google提供的,只要语法类似于java,跟java关系不是很大,就好像j2se跟j2me都是java,除了语法类似外,基本没什么很大关联!
第2个回答  2011-05-23
2009年 6月 Google 发布了 Native Development Kit (NDK)
可以在Android上 用C++来开发了。
NDK的发布,许多人会误以为,类似于Symbian、WM,在Android平台上终于可以使用纯C、C++开发第三方应用了!其实不然,NDK文档明确说明:it is not a good way。因为NDK并没有提供各种系统事件处理支持,也没有提供应用程序生命周期维护。此外,在本次发布的NDK中,应用程序UI方面的API也没有提供。至少目前来说,使用纯C、C++开发一个完整应用的条件还不完备。

NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。
使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。
NDK促使专业so组件商的出现。(乐观猜想,要视乎Android用户的数量)
2、NDK将是Android平台支持C开发的开端。
NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布C组件。同时,Google承诺在NDK后续版本中提高“可调式”能力,即提供远程的gdb工具,使我们可以便捷地调试C源码。在支持Android平台C开发,我们能感觉到Google花费了很大精力,我们有理由憧憬“C组件支持”只是Google Android平台上C开发的开端。毕竟,C程序员仍然是码农阵营中的绝对主力,将这部分人排除在Android应用开发之外,显然是不利于Android平台繁荣昌盛的。本回答被网友采纳
第3个回答  2011-05-14
最主要的原因是java中间字节码的通用性,就不需要每个厂家不同硬件的机型出相应的软件包版本。避免出现一个游戏出nokia版、联想版,moto版的情况。java的口号,写一次,到处运行。
其次是java是和.net平台竞争的平台,本身最适合做应用。有大了开发者基础,节省很多再学习再教育成本。
第4个回答  2011-05-14
C处理和硬件之间的交互效果比较好,适用于底层开发
但是现在硬件发展比价快,人们更注重于应用了,相对来说对硬件的关注度不是很高,使用JAVA是因为JAVA在应用开发方面有完整和成熟的架构,同时也比较容易进行相关开发