安卓为什么用java,为什么安卓的软件开发用的是JAVA

1,为什么安卓的软件开发用的是JAVA安卓系统就是跑在java上的,软件也一样 , 所以只能拼强大的硬件…至于以后谁也说不好,说不准明天就能杀出黑马或许3、5年,或许明天就被击败
2 , android系统是基于Linux的那为什么应用程序java开发呢java特点就是跨平台啊…… 你不如问为什么NOKIA的也要用JAVA,因为JAVA开发的程序很容易移植到其他平台,而手机平台很多,而且没有垄断的平台的,所以要为开发者考虑移植的问题,没道理让大家每个平台都开发一次 。另外也是方便其他平台的软件移植到安卓系统(ANDROID)上面来 。另外LINUX语言这种说法是没有的,LINUX下面有SHELL语言,那是类似WINDOWS命令行的东东……编程语言在任何系统都是可以用的,只不过不同的系统支持的库不一样,所以编程的时候有区别 。就好像不同场合说不同话一样,说的虽然不一样,但是语言还是一样的 。
3,android为什么要用JAVAandroid要推广,能让很多开发人员去使用,必须减少开发人员学习成本,并且技术成熟稳定 。JAVA发展这么久了,开发人员大军也是领先的,所以选用java非常合适 。并且java也是跨平台的android也可以用c的,不只是java 。因为Google用了Java每种开发语言都要其独到的地方,要是说为什么android要用java作为开发语言的原因,我想可能是由android开发者一开始就使用其有关吧!因为源生安卓本身就是java语言,只不过他应用了安卓独有的一套包,就好比java语言中导入第三方jar包一样 。所以,想要干安卓,第一关就是java,如果java基础都不过关,怎么写安卓呢 。【安卓为什么用java,为什么安卓的软件开发用的是JAVA】
4,Android为什么选择Java作为开发语言Android选择java作为开发语言的主要原因如下:1、安卓操作系统是开源的,其开源的初衷便是希望通过该措施整合所有的手机硬件提供商以及手机生产厂商,本质上就是谷歌希望让安卓系统能运行于任何不同类型的硬件上 , 而其中的硬件主要便是指CPU,其中包括,高通、德州仪器、三星,甚至包括国产的华为(海思处理器) 。如果要让一个app(应用程序)能够在各种不同的平台设备上运行,开发语言就必须跨平台 。有两层意思:一个是跨操作系统,另一个是跨硬件,而我们所说的就是跨硬件 。2、因为当时Java语言是一个相当成熟的计算机编程语种,除了基础类库完善,各种高效的第三方组件更是不计其数,最最重要的一点是Java虚拟机规范也是开放的,谷歌只要按照甲骨文的虚拟机规范很容易写出一套虚拟机 。3、java的程序员众多 , 而让这些人转向安卓开发太容易了 。更容易开发出快速应用的app 。5,为什么当年android选择用java做开发语言首先我们需要选用一个语言来开发本地App 。那么,我们第一步干啥了 。在现有的语言中挑选语言 。那么首先考虑的条件是不火的语言和没前途的语言是不在选择范围的 。---因为没人用,那么库就会少 。因为库少就不会好用 。因为不好用 。所以用的人更少 。生态圈的核心思想 。--那这个世界是不是只有C++/Java了 。肯定不是 。因为有些语言是有前途的 。最大的特点是 。简化了程序员的负担 。或者效率更高 。未来肯定是主流 。那么我们常用的语言和有前景的语言是哪些C/C++/Java/C#/Python/Ruby/Go/JavaScript+Html好 。这些是我们常用的语言 。我们看待的是怎么把这些语言一步步的踢掉 。然后只剩下Java的 。首先踢掉的是C 。至今大型的超过10万行代码的图形化界面程序没有几个是用C的 。因为复杂的错误处理和没有纠错机制 。使得程序非常容易崩溃 。同时 。因为C没有面向对象 。那么工程化开发显得非常麻烦 。相信没有人现在主动说 。用C开发App这种多界面程序吧 。继续踢掉的是C# 。我干嘛要用一个一出生就为了对付Java的 。还是微软的私货的语言 。对 。Android是开源界的 。而C#注定不是适合开源界的语言 。那我们继续踢语言:我们该要一门重语言还是轻语言?Java/C++/C#/Go/C是重语言 。Python/Ruby/JavaScript+Html/是轻语言 。对 。我心目中划分语言的标准基本上是属于这样的,只要在代码中体现我们需要讲效率的 。那就是重语言 。重语言首先讲究的是运行效率 。然后讲究工程化 。轻语言讲究开发效率 , 讲究敏捷性开发 。回到我们选语言的原则 。我们想开发一款本地App 。还在性能不高的手机上 。那么除了C之外的开发语言中 。运行效率最高的是C++,然后是Java 。那么轻型语言就要被一个个踢掉了 。Ruby在网页端有作为 。但是库太少 。图形库更少 , 开发者都是网页端的人 。被踢 。JavaScript+Html - ----> 这是未来大一统的趋势 。但是我们现在是找一门开发本地App的语言 。外加真心html+JavaScript有着先天的劣势 。(效率+Offline)Python有着完善的库 。有着极高的人气社区 。在手机上开发也有过尝试 。(Nokia就干过这事 。Ubuntu Phone的UML也是一种类python的语言 。)Google也是python的大用户 。效率是问题 。但是不是绝对的 。先对Python实现保留意见 。那么我们看这一轮入围的四门语言Java/C++/Python/Go再说Go 。Go语言还不成熟 。库也不多 。开发者少 。但是作为Google主打的语言 。很有可能 。Google会提供基于Go的Android sdk 。至少现在Android的主打语言不会是Go 。剩下三门C++/Python/JavaC++重运行效率 。但是跨平台性较弱 。开发难度较高 。库多,用的人多 。Python , 重开发效率 。跨平台性高 。开发难度低,库多 , 用的人多 。Java 。重开发效率 。不及python,重运行效率 , 不及C++ 。开发难度低 。库多 。用的人多 。那再回到需求:Google是想要一门开发本地App的语言 。Google想屏蔽掉底层硬件的差异 。实现对于开发者来说是一个统一的平台 。同时 。对于手机这个现阶段的平台来说 。耗电,以及性能 。是无法回避的问题 。那么这门语言的跨平台性要求很高 。同时效率又很高 。说Python:效率实在无法达到其普遍的手机要求 。尤其是对于图像处理这种高计算操作 。且 。社区无法与C++/Java相比 。意味着库没有Java和C++多,开发者不是跟Java和C++一个等级的 。说C++:用过JNI的人都知道本地的C/C++库,至少要编译多次 。不同的框架就代表者不同的编译环境 。而且直接用C++编译运行的话 。C++并不能很好的屏蔽掉硬件差异 。所以对于开发来说调试来说,都是一个比较艰巨的任务 。C++也不是一个非常好的工程化开发语言 。那有没有破解法 。Qt 。可以用框架屏蔽掉大部分的细节操作 。Qt5.0支持Android 。为什么没用 。估摸着是跟Qt不是Google家的产品加不开源的问题吧 。说Java:虚拟机是核心 。因为虚拟机真正能屏蔽掉开发的很多差异 。而且通过虚拟机 。开发者只要在打包的时候翻译成运行码而不需要翻译成机器码 。通过虚拟机完成很多差异的解决 。而效率并不是丢的非常严重 。且Java比C++更受开源界和工业界的共同欢迎 。即使Java也有版权问题 。。。我们屏蔽掉最基础的硬件差异 。通过Linux,在屏蔽掉手机的一些基本功能差异 。然后提供纯粹的利于开发者开发和测试的方法 。只有通过虚拟机了 。而这个虚拟机是需要讲性能的 。Google搞了一个Davlik虚拟机 。对 。这就是Android的核心 。就是因为性能要求高 。不得不重新开发虚拟机 。Davlik就是一个非常讲效率的虚拟机 。而其他的常用库都有的 , 现成的 。根本就不需要自己去写的 。只要打包就好 。那么还有些必须考效率的库和应用 。怎么办 。用JNI技术调用C++对就这么坑爹 。为什么Object-C这门语言无视我说的大部分要求了 。因为Apple有能力创造一门更好的语言 。Google对于Android,只是在开源社区挑一门语言 。且 。ObjectC生在Apple , 死在Apple 。兼容性 。人家才不需要考虑 。所以人家敢用Object-C,而Android为了实现真正的跨平台 。只能选Java 。

    推荐阅读