Android为什么用JAVA,安卓系统为什么用java

1,安卓系统为什么用javajava是好东西啊,世界上首个夸平台编程语言.每种编程语言都不会严重导致程序的运行效率低或者耗内存,不然永远不会让世人接受,主要是程序员的问题,现在软件都,但是很多软件耗内存,不过很多主要是因为软件皮肤导致的,还有可能很多程序员为了开发效率没有考虑CPU及内存问题,也许是CPU及内存发展的太快,如果程序不怎么占内存和CPU,,用不着多核处理器的话,intel&&AMD可能都要倒闭了不能安卓是有JAVA虚拟机的,但是不支持塞班的后缀为sis,sisx等软件,只支持单纯的JAVA应用,部分应用还存在分辨率问题 。【Android为什么用JAVA,安卓系统为什么用java】
2,安卓系统为什么要用java语言写可以用C语言写程序吗这就要看安卓的系统体系结构了,安卓系统内核是基于linux kernel上,中间层是多以java 实现,并且采用特殊的dalvik 虚拟机 , dalvik虚拟机是一种“暂存器型态”的java虚拟机 。所以应用程序是java语言编写的 。任何语言都有优缺点 , java适合网络编程和应用层程序编写,c语言适合底层硬件控制 。你是要问写安卓这个系统为什么要用java呢?还是要问写安卓这个系统的软件为什么要用java写 呢?安卓这个系统不是全部用java写的,而是用java写的系统是最上层 , 最底层是用C语言写的,安卓的内核是Linux,是用C语言写的 。写安卓的应用软件一般用java,应该也可以用C写,不过用C写的话是很费力的 , 毕竟C不支持面对对象编程 。所以一般只用C写底层的驱动什么的 。
3,android为什么要用JAVAandroid也可以用c的,不只是java 。因为Google用了Java每种开发语言都要其独到的地方 , 要是说为什么android要用java作为开发语言的原因,我想可能是由android开发者一开始就使用其有关吧!因为源生安卓本身就是java语言,只不过他应用了安卓独有的一套包,就好比java语言中导入第三方jar包一样 。所以,想要干安卓,第一关就是java,如果java基础都不过关,怎么写安卓呢 。android要推广,能让很多开发人员去使用,必须减少开发人员学习成本 , 并且技术成熟稳定 。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 。

    推荐阅读