【编者按】本文作者为 RoboVM 的 CEO 兼联合创始人 Henric Müller,主要介绍选用 Java 编写移动应用的八大理由。文章系国内 ITOM 管理平台 OneAPM 编译呈现。
在过去的十年中,Java一直很火。2015年,它又被再次证明是业内中坚力量——在TIOBE语言指数中占据绝对优势。虽然TIOBE排名的计算方法存在一些问题,但是与其他流行排名如RedMonk和PYPL结合来看,Java语言的受欢迎程度还是显而易见的。
作为行业内的领先选手,Java语言的增长步伐一直比较稳定。但是如何解释它最近的激增呢?甲骨文 使用Java 8 编写Lambdas和Streams显然是很重要的一大原因。此外,在增速极快的移动平台上面担任通用语言更是让Java如虎添翼。随着近来安卓向OpenJDK的靠拢,加上 Java 9 的步步逼近,笔者相信Java 的活跃度将持续增长。
Java语言的诸多益处显然引来了新鲜血液,但是作为老兵,我们知道久经考验的平台实力才是Java真正吸引开发者的原因。下面列出了8个你应该使用Java编程的原因:
1. 静态类型
随着后端和移动应用复杂度的不断增加,拥有一个易于维护和重构的代码库至关重要。静态类型确保了开发者在整个项目的开发周期中都保持理智,它在编译时就能发现大量的程序错误,确保了代码最优化,从而保证Java在工具生态系统中绝对领先的地位。
2. 运行时管理
JVM的垃圾回收器有效降低了编写内存安全应用的复杂度,消除了手动内存管理时容易出现的大多数错误。而并发,作为在Java早期就已出现的重要属性,提供了线程安全回收,原始类型同步和简单易用的多线程API。反射(reflection)是运行时管理的最后一招,它确保了依赖注入(dependency injection)或面向方面(aspect oriented)编程等高级理念的实现。
3. 性能
考虑服务端应用的性能时,HotSpot JVM 的 JIT(Just-in-Time)编译器和它多种多样的垃圾回收器几乎让人毫不犹豫地选择Java。而提前(Ahead-of-Time)编译是移动平台上的主导机制。在安卓上,ART 为计算型重负荷提供了几乎原生的性能。而在 iOS 平台上,RoboVM 使用了 LLVM( C/C++/Objective-C/Swift编译所用的相同后端),从而达到与Objective-C和Swift相当或更好的性能表现。
4. 工具
如果不管理论上的益处,围绕语言的工具数量与质量才是真正决定语言成败的关键。Eclipse,IntelliJ和NetBeans之类的IDE(集成开发环境)是其他可比平台工具的优质对比标准。代码导航,重整,完善和模板使得书写和维护项目代码变得更为高效。代码热调换(hot-swapping),调试,性能分析和单元测试让你很轻易找到问题根源。源码控制、应用服务器管理以及编译和依赖管理的集成环境为你的项目部署提供了基础。
5. 庞大的社区
世界上大概有超过九百万Java程序员。这一数字进而催生了大量的Java会议,书籍,在线资源,论坛和培训计划。Java开发者可以从中选择来提高技能。相比于Java人才资源库,其他语言平台的资源显得微不足道。此外,由于Java语言同时应用于服务器端和移动应用端,Java开发者能更灵活地全栈中放光发热。
6. 第三方生态系统
不管你正尝试解决什么难题,几乎可以确认的是Java社区中已经有人提出了解决方案。你的后端需要大数据分析?没问题,你可以在众多方案中选择,如Hadoop,Spark或是Elasticsearch。不想亲自为手机应用写分析代码?Twitter Fabric或Parse,你拿来用就行。需要JSON在后端和移动应用上同时实现序列化?简单,添加Gson,然后在全站分享你的POJO和序列逻辑。有了Maven和Grable的帮忙,添加第三方库就像在编译文件里添加一段代码那样简单。
7. 备选语言
虽然Java语言一直都是Java虚拟机里面的首要语言,而且正变得更具表现力。但是平台架构同时也欢迎其他语言。最近几年, Kotlin,Scala或Clojure等语言的采纳率正不断提升,这不仅仅是因为它们的语言特性,更是因为它们与现有的Java生态系统具有互通性。
8. 代码分享
我们将最为重要的问题放在了最后。Java在后端运行,不管是安卓还是iOS,它覆盖了几乎所有的大型平台。它的可移植性使你能够跨平台共享大量代码,进而节省应用部署所需的成本与资源。使用那些免费且有用的资源,将精力放在你真正的产品上,以此获得用户的青睐!
2015年对Java来说是辉煌的一年。或许,借助这个契机,使用Java编写跨平台移动应用会给你的2016带来事业上的成功。
OneAPM 能为您提供端到端的 Java 应用性能解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
原文链接: https://dzone.com/articles/8-reasons-your-next-mobile-ios-and-android-app-sho
相关推荐
开发者可以使用Eclipse或Android Studio进行项目配置,通过JNI与Java层进行通信。COCOS2D-X在Android上同样支持各种服务集成,如Google Play Games Services。 五、沃PHONE开发 沃PHONE平台相对小众,但COCOS2D-X...
在Android或iOS平台上,开发者需要将训练好的深度学习模型部署到APP中。对于Android,可以使用TensorFlow Lite等轻量级框架,将模型转换为可在移动设备上运行的格式。同时,需要编写前端界面和逻辑,与后端服务进行...
### 第三方平台上App开发教程详解 #### 一、引言 随着移动互联网的快速发展,越来越多的企业和个人希望通过开发自己的应用程序来拓展业务或者实现个人创意。在众多的开发平台中,第三方平台因其灵活性和便利性而...
在App自动化测试中,常用的测试框架有Appium、Espresso(Android)和XCTest(iOS)。这些框架提供了一套API,允许开发者编写可运行在真实设备或模拟器上的测试代码。Appium是一个跨平台的框架,支持Android和iOS,而...
1. Xamarin:由微软收购的Xamarin框架允许开发者用C#编写代码,一次编写,多平台运行,支持iOS、Android和Windows平台。 2. React Native:Facebook推出的JavaScript框架,允许开发者使用JavaScript和React创建原生...
NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级...
移动应用市场主要由两大平台主导:Google的Android操作系统和Apple的iOS操作系统。Android在全球市场中的份额约为71.9%,而iOS则占据了大约27.2%的市场份额。开发者需要考虑诸如屏幕尺寸、硬件配置和电池寿命等因素...
- **原生应用(Native app)**:指那些为特定平台开发的应用程序,例如iOS上的Swift或Objective-C编写的应用,Android上的Java或Kotlin编写的应用。 - **移动Web应用(Mobile Web app)**:这类应用通过浏览器运行...
1. 安卓(Android):由谷歌公司主导的开源操作系统,广泛应用于各种移动设备,支持Java和Kotlin编程。 2. iOS:苹果公司的封闭式操作系统,适用于iPhone、iPad等产品,主要使用Swift或Objective-C编程。 三、移动...
- **移动应用开发**: 推出Android和iOS版本的APP,进一步拓展用户群体。 - **国际化**: 实现多语言支持,扩大市场覆盖范围。 - **社交功能**: 增加分享、评论等社交功能,增强用户粘性。 - **智能推荐**: 引入机器...
1. **Appium**:目前最流行的移动应用自动化测试框架之一,支持iOS和Android平台的应用程序。 2. **UIAutomator**:这是Android官方提供的自动化测试框架,支持各种Android设备和事件操作。 3. **Monkey/Monkey ...
移动应用开发涵盖了iOS和Android两大主流平台,以及新兴的跨平台框架。对于iOS,主要使用Swift或Objective-C编程语言;对于Android,主要是Java或Kotlin。跨平台框架如React Native、Flutter和Ionic等允许开发者使用...
为了访问原生设备功能,如GPS、蓝牙或推送通知,开发者需要编写原生模块,将JavaScript代码与iOS或Android的SDK接口对接。这通常涉及到Java、Swift或Objective-C的编程。 七、动画与性能优化 React Native支持 ...
- 当前主流的移动开发平台有iOS(使用Swift或Objective-C)、Android(使用Java或Kotlin)以及跨平台解决方案(如Flutter、React Native等)。 2. **跨平台框架的优势**: - 跨平台框架允许开发者使用单一代码库...
八、社区与生态系统 React Native拥有庞大的社区支持,丰富的第三方库和插件如Redux、Apollo GraphQL等,为应用开发提供了更多可能性。同时,不断更新的版本也意味着开发者需要关注社区动态,及时升级以获取新功能和...