您是否有关于Android*应用的绝妙创意,而不知道如何通过可用的编程工具和语言来实现?本文将为您介绍可用于Android开发的主要编程语言。
最常用的编程语言有Java、C#、C++和HTML5。每种语言都有自己的发展历史、用途,和利弊。下面我们来一一介绍它们的工作原理、适用框架和IDE。
JavaJava作为互联网应用语言,于年首次亮相。不过现在它应用于多个不同的开发领域,包括游戏、导航、企业解决方案和移动行业。
Java是一种经典的Android开发语言。从本质上来说,Java是一种解释性语言。这种特性使其成为跨平台语言:要想运行Java代码,Java虚拟机必不可少。在Android案例中,ART或Dalvik*(在KitKat*或之前Android版本中)担任虚拟机的角色。但ART采用的方法完全不同:它在应用安装阶段编译Javadex字节码,将其转换成面向目标设备的可执行文件。此处详细介绍了ART的主要特性以及不同于Dalvik*的编译原理。
Google提供一种强大的Java基础架构:AndroidSDK具有丰富的JavaAPI。您可以仅下载SDK工具或AndroidStudio—基于IntelliJ*IDEA的官方AndroidIDE,包括AndroidSDK工具、平台和仿真器。它可以安装于Windows*、MacOSX*和Linux*。具备新特性、采用新技术的SDK6.0Marshmallow现已上市!
如果您更喜欢使用一些常见、通用的工具,可以获取Android开发工具(ADT),经将其集成至Eclipse*IDE。
除SDK和IDE外,您还可以使用许多对开发人员有用的框架,比如BoxD*、LibGDX*和Basic4Android*。
C#C#是Microsoft开发的一种面向对象、可替换Java的编程语言。它与.NET框架相关,后者是一种Windows*组件,包含运行C#代码和类库所需的通用语言运行时(CLR)。
在Android案例中,Mono*在Windows中担任.NET的角色。Mono是一个开源项目,Xamarin面向C#和CLR的ECMA标准为其提供支持。
Mono由四部分组成:C#编译器、Mono运行时、BaseClassLibrary和MonoClassLibrary(面向Gtk+*、Zip*文件、LDAP*、OpenGL*、Cairo*、POSIX*等的类)。
Xamarin也可为移动开发人员提供多种工具:XamarinPlatform:支持使用原生接口构建交叉平台C#应用,XamarinTestCloud:支持测量(您没有的)真实设备上的有效性,XamarinInsights:支持实时监控用户与应用的交互方式,XamarinUniversity:提供学习移动开发的在线和离线课程。Xamarin框架可轻松与MicrosoftVisualStudio*集成。
以下框架适用于C#编程:Unity*、Monocross*和CocosD-XNA*。
C++C++是世界上功能最强大的语言之一。可使用它编写的软件不计其数:AdobePhotoshop*、Illustrator*、WindowsOS*,以及其他Microsoft产品,比如Office*、VisualStudio、InternetExplorer*,以及MozillaFirefox*和部分OSX系统。
C/C++Android开发过去代表构建原生应用的方法。原生表示编译器将程序代码转换成特定于硬件的二进制代码。因此原生代码必须面向各特定设备构建。这非常困难,但这些类型的应用以速度最快而著称。而且,原生应用还可以直接访问摄像头、GPS、或操作系统和设备的地址簿和其他特性。
原生应用开发有其独特的优势和劣势,因此您必须了解自己将要创建的应用。它是3D游戏,还是简单的笔记本应用,或者是用于叫出租车的应用?如果应用需要密集的CPU或GPU计算,C++编码可能是最佳选择。但最重要的是必须保持简单,而不要造成不必要的复杂性。
如果您百分百确定具有原生特性的开发可以提升性能,那么您将需要用到原生开发套件(NDK).
但是,完全原生的Android应用少之又少。它们通常有一部分采用其他语言编写而成。因此,Java提供Java原生接口(JNI),调用Java虚拟机的本机功能。
许多游戏引擎或其他框架的最终目的都是为了简化C/C++Android开发。其中包括:Unity*、UnrealEngine*、ProjectAnarchy*、Marmalade*、CocosD-X*。
英特尔可提供两种用于优化和提高Android原生应用性能的工具:英特尔?图形性能分析器(英特尔?GPA)和面向Android的英特尔?VTune?放大器。英特尔?GPA由三部分组成:系统分析器、平台分析器和帧分析器,可帮助您检测和解决GPU密集型应用中的难题。此处是有关各分析器的详细信息。如果是CPU密集型应用,英特尔VTune放大器在查找和修复热点和瓶颈方面将发挥不可替代的作用。请参阅教程,了解更多信息。
HTML5HTML5是用于组织和演示Web内容的标记语言标准。HTML5标记一般与其他密钥Web工具同时使用:JavaScript*编程语言和CSS3(级联样式表)。这种结合有助于您创建极其复杂的Web应用。
但万维网并不是HTML5的唯一可用之处。目前,它广泛用于旨在创建混合应用的移动开发。因此,如果您是一名经验丰富的Web编程人员,希望开发Android应用,也完全无需学习一门全新的语言。
什么是“混合应用”?有一种分类方法将所有应用分成了三类:原生应用、Web应用和混合应用,即混合应用融合了Web特性和原生UI元素。一方面,混合应用由WebView(AndroidView类的延伸,可支持您在Android应用中插入网页)运行。它支持应用连接所需的硬件功能。另一方面,您无法直观地看出混合应用与原生应用之间的差别!
许多引擎或SDK都以HTML5标准为中心,包括:MarmaladeWeb、UnrealEngine、CocosD-JS、Cordova*等。
如欲经济高效地创建混合Android应用,可尝试使用英特尔?XDK,该开发环境可为各开发阶段(从设计到分享至应用商店)提供所需的工具。它包含一个直观地GUI布局编辑器(称为“AppDesigner”)和可加速开发流程的内置代码编辑器。借助现场开发任务享受应用测试过程。如需了解更多有关这些编辑器和其他英特尔XDK特性的信息,请阅读入门指南。
英特尔?XDK有一项面向D游戏开发的特殊服务。“游戏资产管理器”有助于轻松访问、管理和控制游戏资产。它还包含许多框架支持以及ApacheCordova插件和API。如欲开始尝试英特尔XDK游戏开发,请查阅HTML5游戏开发入门。
结论本文简要介绍了使用最广泛的几种编程语言及其在Android领域的地位。其中的要点是,在找到合适的编程语言之前,需要明确应用概念。您需要问自己:它将成为一个什么样的应用?如果是一个简单的计算器,您可以选择经典的Java、C#或现代HTML5。但如果您打算发布一款图形丰富的3D游戏产品,那么可以尝试发挥C++或C#的原生功能。
参考资料Android开发人员
OracleJava
C++标准
C#语言规范
HTML5-万维网联盟
关于作者AnnaBelova是英特尔公司软件和服务事业部的一名软件工程实习生。她拥有商务信息学专业的学士学位,目前正在俄罗斯国立研究大学高等经济学院攻读应用数学与信息学硕士学位。Anna对移动和可穿戴技术很感兴趣。
原文