android的开发语言是什么,Android开发用什么编程语言
Android系统基于Linux,内核和驱动用C/C语言开发。为什么设计一个Dalvik JVM,然后选择Java作为SDK级别的开发语言?
首先,我们需要选择一种语言来开发本地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/是一种轻语言。
没错。在我心目中,语言划分的标准基本属于这个,只要是代码中需要讲效率的。那是沉重的语言。
语言最重要的是它的运行效率。然后关注工程。
语言讲究开发效率和敏捷。
让我们回到语言选择的原则。
我们想开发一个本地应用程序。还是在低性能手机上。
然后在C以外的开发语言中,效率最高的是C,然后是Java。
然后轻语就会被一个个踢出去。
Ruby在web端有事可做。但是激情的中心。图形库比较少,开发者都是web端的人。被踢。
JavaScript——这是未来统一的趋势。但现在我们正在寻找一种语言来开发本地应用程序。
再加上真诚的html JavaScript有先天劣势。(效率离线)
Python有完整的库。有一个非常受欢迎的社区。也有在手机上开发的尝试。(诺基亚做到了这一点。Ubuntu Phone的UML也是类似python的语言。)谷歌也是python的大用户。效率是问题。但也不是绝对的。先对Python实现有所保留。
然后我们再来看本轮入围的四种语言。
Java/C /Python/Go
再来说说围棋。围棋语言尚未成熟。无声短靴不多。开发商少。但是作为谷歌的主要语言。很有可能。谷歌将提供基于Go的Android sdk。至少现在Android的主要语言不会是Go。
剩下的三扇门
C /Python/Java
再操作效率。但是跨平台比较弱。很难发展。图书馆很多,用的人也很多。
Python,注重开发效率。高跨平台。开发难度低,库多,用户多。
Java .重新开发效率。没有python高效,没有c高效,开发难度低。Ku。很多人用。
然后回到需求:
谷歌想要一种开发本地应用的语言。谷歌想要屏蔽底层硬件的差异。它是实现开发者的统一平台。
同时。对于现阶段的手机平台来说。功耗和性能。是一个无法回避的问题。
那么这种语言的跨平台要求是非常高的。同时效率很高。
Python说:效率真的不能满足它一般的手机要求。特别是对于诸如图像处理的高计算操作。还有。社区不能和C /Java比。意味着库没有Java和C多,开发人员跟Java和C不是一个层次的。
C:用过JNI的都知道当地的C/C库,至少要编译好几遍。不同的框架代表不同的编译环境。而如果直接用C编译运行。c不能很好的屏蔽硬件差异。因此,调试对于开发来说是一项相当困难的任务。
c不是很好的工程开发语言。
有办法破解吗?第四季度.你可以用框架遮住大部分细节。Qt5.0支持Android。
为什么不管用。猜测是Qt不是Google的产品的问题。
说Java:虚拟机是核心。因为虚拟机确实可以屏蔽很多开发上的差异。并通过虚拟机。开发者只要在打包的时候翻译成运行代码就可以了,不需要翻译成机器码。许多差异都是通过虚拟机解决的。而且效率损失不是很严重。
而且Java在开源和工业界都比C更受欢迎。连Java都有版权问题。
我们排除了最基本的硬件差异。通过Linux,屏蔽了手机的一些基本功能差异。然后提供有利于开发者开发和测试的纯方法。只能通过虚拟机。而这个虚拟机需要讲性能。
谷歌建立了一个Davlik虚拟机。没错。这是安卓的核心。因为性能要求高。不得不重新开发虚拟机。Davlik是一个非常高效的虚拟机。其他常见的库是可用的和现成的。不一定要自己写。打包吧。
还有一些库和应用程序必须进行效率测试。怎么办。
用JNI技术调用c
对,就是这样。
为什么Object-C语言忽略了我的大部分需求?因为苹果有能力创造更好的语言。对于Google Android,只需在开源社区中选择一种语言即可。
还有。ObjectC生于苹果,死于苹果。兼容性。我不需要考虑。所以人们敢于使用Object-C和Android,以实现真正的跨平台。只能选择Java。
如何查看电脑配置历史中提交的图片或压缩文件?