Android 为什么要用 Java 开发软件?Java 的运行效率不是很低吗?

关注者
221
被浏览
121,399

32 个回答

因为要快速拓展生态,降低开发成本。

当年 iOS 异军突起,Android 作为一个全新系统,如何让大量的程序员,以及大量的软件开发企业,愿意为这个全新的系统开发应用,是件很重要的考量。

那个时候,Java 程序员最多最广泛,在当年,Java 就是热度排名第一的语言(虽然现在其实常常被 C, C++, python 等超越,但这是后话了)。与此同时,非智能机(功能机)时代,Java本就常常被用于开发手机应用。

我在海外读书时,他们计算机专业就直接用Java语言教学,Java在海外的普及程度甚至比国内还要高。

由于懂 Java 的人太多,在 Android 问世的当年,Java 程序员的工资,只有 C/C++ 程序员的60%~70%。所以,选择 Java ,可以帮助软件企业降低开发 Android 应用的成本。也就大幅度提升了企业开发 Android 应用的意愿。

所以,选择 Java 对于 Android 来说,就非常合理。

至于Java运行效率偏低的问题,Java运行效率偏低是客观事实,我不会像其它答案一样睁着眼睛说瞎话。但这个问题总归可以用硬件性能的提升来弥补,从Android问世到现在,手机硬件性能的发展已经提升了很多倍。以至于现在这个问题已经并没有那么明显。

Java最大的性能问题其实还是嵌入式领域,比如哪些使用低配处理器低配硬件小内存系统等场合,用Java确实还是明显感觉性能不足,用C++会流畅很多。但对于今天的智能手机来说,今天的智能机性能已经远远超过绝大多数嵌入式设备,因而,Java性能已经算是在可以接受范围了。

1. Java运行效率并不算低。

2. Android里运行的其实不是Java程序,只是语法是Java,虚拟机是Goolge自己的,做了些优化。

3. 现在的智能机,硬件已经相当强悍了,运行效率已经不如开发效率来得重要。熟悉Java语法的人相对很多,Android这样做也是为了吸引大批草根程序员。

4. 有些非常注重性能,或比较底层的程序,例如写视频解码器,通常采用NDK开发,用C/C++来写。