Dalvik虚拟机简介:
http://www.ophonesdn.com/article/show/15引用
Android应用所使用的编程语言是Java语言,和Java SE一样,编译时使用Sun JDK将Java源程序编程成标准的Java字节码文件(.class文件),而后通过工具软件DX把所有的字节码文件转成DEX文件(classes.dex)。最后使用Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件(二进制格式)组合成一个应用程序包(APK)。应用程序包可以被发布到手机上运行。
Android,开源还是封闭?
http://www.iteye.com/articles/2121引用
“Android解决了长期令手机制造商头痛不已的问题:业界缺乏一个开源的Java虚拟机,以及统一的应用程序接口。现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。”这段话解释了,为什么Android应用程序,都必须用Java语言开发。因为不这样做的话,没法让程序做到硬件无关。
为什么是java,google的android策略:
http://8760.blog.spforum.net/archives/2008/13212.html引用
google的android于2007年11月12日悄然发布了。它出人意料的使用了java作为了该平台的开发语言,并且是自己做的一套实现。
我第一时间下载了该开发包,并大致使用了一下。虽然很多人对google使用非正统的java虚拟机作为android平台的核心怀有异议,但是我认为这是google的策略使然。
1、google不会自己做硬件,所以只能选用与硬件无关的语言作为开发语言
google不是传统的设备制造商,其进入手持设备领域也不是为了赚取手持设备的利润。其主要目的在于将其网络化的服务延伸到该领域。那么android在越多的异构平台上被支持,对google来说就越有利。但是不同的硬件平台,会有不同的差异。如果使用传统的编程语言,由于依赖库和语言本身的限制,很难屏蔽掉这些 差异。就不能达到google的一次编译,在大部分平台上运行的目的。所以选用java,是google不自己做硬件的一种策略。
2、市面上已经有很多手持设备上的java应用,这些应用的开发者都能很容易的转变成android的开发人员
虽然说java在手持终端中的应用并没有象其在企业级领域内那么兴盛。但是随着sun及很多公司在该领域的长期投入和积累,也为该领域培养了很多一流的开发人员和技术储备。加上google将网络服务向手持设备延伸的策略,也会吸引一批原本使用java做服务开发的程序员投入其中。而且java的入门简单。这些都表明google选择java是明智的。
3、google将java提到了系统级的高度,彻底改变了java在手持设备中的生态环境
传统的java都是以应用的形态存在于系统中,其与系统的结合比较松散,应用的执行效率比较低。google从新设计了java虚拟机和系统。使得android的java应用更接近于底层系统,效率更高。基本上达到了用户接收的程度。另外使用虚拟机技术使得android的应用是在被监控的情况下运行的,安全度更高。更适合google的网络化和开源策略。既保证了系统的开放性,又保证了系统的安全性。且开发人员基本上看不到操作系统,也能满足运营商或设备制造商的需求。
所以说google选择java作为其android平台的开发语言,有其策略的必然性。
分享到:
相关推荐
在Android开发领域,经典代码例子是开发者学习和提升技能的重要资源。这些例子涵盖了各种关键功能和组件的实现,有助于深入理解Android应用的工作原理。在这个压缩包中,我们可能找到了多个有关Android编程的示例...
在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与设备硬件交互等。"Android开发入门60个小案例+源代码"这个资源提供了丰富的...
该组件是基于开源库`Android-wheel`实现的,`Android-wheel`是一个适用于Android的滚轮选择器,它可以创建类似于iOS中PickerView的效果,让用户通过滚动来选取所需的数据。在省市区三级联动中,当用户在一级(省)...
Android 4.4.2 SDK(软件开发工具包)是Google为开发者提供的一个关键工具集,用于构建、调试和发布针对Android 4.4.2(KitKat)操作系统的应用程序。这个离线包包含了所有必要的组件,使得开发者无需连接到互联网...
在Android开发中,系统默认的日期和时间选择器虽然实用,但往往无法满足所有场景的需求。因此,开发者经常需要自定义日期选择器来提供更符合应用风格或特定功能的交互体验。这篇内容将深入探讨如何在Android中创建一...
在Android开发中,有时我们需要与远程数据库进行交互,例如SQLServer。这个场景通常是通过Web服务,如WebService来实现。本文将详细介绍如何在Android应用中利用WebService接口连接到SQLServer数据库,实现数据的增...