登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 理工学类 > 自动化 > 正文

安卓,计算机世界的新孩子外文翻译资料

 2022-09-05 03:09  

Android, the New Kid on the Block

As a kid of the early nineties, I naturally grew up with my trusty Nintendo Game Boy. I spent countless hours helping Mario rescue the princess, getting the highest score in Tetris, and racing my friends in RC Pro-Am via link cable. I took this awesome piece of hardware with me everywhere and every time I could. My passion for games made me want to create my own worlds and share them with my friends. I started programming on the PC but soon found out that I couldnrsquo;t transfer my little masterpieces to the Game Boy. I continued being an enthusiastic programmer, but over time my interest in actually playing video games faded. Also, my Game Boy broke . . .

Fast forward to 2010. Smartphones are becoming the new mobile gaming platforms of the era, competing with classic dedicated handheld systems such as the Nintendo DS or the Playstation Portable. That caught my interest again, and I started investigating which mobile platforms would be suitable for my development needs. Applersquo;s iOS seemed like a good candidate to start coding games for. However, I quickly realized that the system was not open, that Irsquo;d be able to share my work with others only if Apple allowed it, and that Irsquo;d need a Mac to develop for the iOS. And then I found Android.

I immediately fell in love with Android. Its development environmentworks on all the major platforms, no strings attached. It has a vibrant developer community happy to help you with any problem you encounter as well as comprehensive documentation. I can share my games with anyone without having to pay a fee to do so, and if I want to monetize my work, I can easily publish my latest and greatest innovation to a global market with millions of users in a matter of minutes.

The only thing I was left with was actually figuring out how to write games for Android and how to transfer my PC game development knowledge to this new system. In the following chapters, I want to share my experience with you and get you started with Android game development. This is of course a rather selfish plan: I want to have more games to play on the go!

Letrsquo;s start by getting to know our new friend: Android.

A Brief History of Android

Android was first publicly noticed in 2005 when Google acquired a small startup called Android, Inc. This fueled speculation that Google wanted to enter the mobile space. In 2008, the release of version 1.0 of Android put an end to all speculation, and Android became the new challenger on the mobile market. Since then, itrsquo;s been battling it out with already established platforms such as iOS (then called iPhone OS) and BlackBerry, and its chances of winning look rather good.

Because Android is open source, handset manufacturers have a low barrier of entry when using the new platform. They can produce devices for all price segments, modifying Android itself to accommodate the processing power of a specific device. Android is therefore not limited to high-end devices but can also be deployed to low-budget devices, thus reaching a wider audience.

A crucial ingredient for Androidrsquo;s success was the formation of the Open Handset Alliance (OHA) in late 2007. The OHA includes companies such as HTC, Qualcomm, Motorola, and NVIDIA, which collaborate to develop open standards for mobile devices. Although Androidrsquo;s core is developed mainly by Google, all the OHA members contribute to its source in one form or another.

Android itself is a mobile operating system and platform based on the Linux kernel version 2.6 and is freely available for commercial and noncommercial use. Many members of the OHA build custom versions of Android for their devices with modified user interfaces (UIs)—for example, HTCrsquo;s HTC Sense and Motorolarsquo;s MOTOBLUR. The open source nature of Android also enables hobbyists to create and distribute their own versions of Android. These are usually called mods, firmwares, or ROMs. The most prominent ROM at the time of this writing was developed by a fellow known as Cyanogen and is aimed at bringing the latest and greatest improvements to all sorts of Android devices.

Since its release in 2008, Android has received seven version updates, all code-named after desserts (with the exception of Android 1.1, which is irrelevant nowadays). Each version has added new functionality to the Android platform that has relevance in one way or another for game developers. Version 1.5 (Cupcake) added support for including native libraries in Android applications, which were previously restricted to being written in pure Java. Native code can be very beneficial in situations where performance is of upmost concern. Version 1.6 (Donut) introduced support for different screen resolutions. We will revisit this fact a couple of times in this book because it has some impact on how we approach writing games for Android. With version 2.0 (Eacute;clair) came support for multi-touch screens, and version 2.2 (Froyo) added just-in-time (JIT) compilation to the Dalvik virtual machine (VM), which powers all the Java applications on Android. The JIT speeds up the execution of Android applications considerably—depending on the scenario, up to a factor of five. At the time of this writing, the latest version is 2.3, called Gingerbread. It adds a new concurrent garbage collector to the Dalvik VM. If you havenrsquo;t noticed yet: Android applications are written in Java.

A special version of Android, targeted at tablets, is also being released in 2011. It is called Honeycomb and represents version 3.0 of Android. Honeycomb is not meant torun on phones at this point. However, some features of Honeycomb will be ported to the main line of Android. At the time of this writing, Android 3.0 is not av

剩余内容已隐藏,支付完成后下载完整资料


安卓,计算机世界的新孩子

作为一个90年代初出生的孩子,任天堂的游戏机伴随着我的成长。我花了无数个小时帮助马里奥拯救公主,在俄罗斯方块中得到最高分数,通过连接电缆和我的朋友在钢筋混凝土上赛车。 无论任何时间地点,只要我可以,我一定带着这些极好的设备。我对游戏的热爱使我想要创造一个世界并和我的朋友分享。我开始在电脑上编程,但很快发现我不能把我的小杰作发给我的游戏机。我仍然是一个热情的程序员,但随着时间的推移,我的兴趣在实际玩视频游戏中褪色。还有,我的游戏机坏了。..

快速前进到2010。智能手机正在成为新的移动游戏平台,与经典的专用的手持系统如任天堂DS和PSP的竞争。这引起了我的兴趣,我开始调查,哪一个移动平台将适合我的发展需要。苹果的iOS似乎是一个很好的候选者,然而我很快意识到这个系统并不开放,只有得到苹果公司的允许,我才能把我的作品分享,而且我需要一个Mac电脑才能开发IOS程序。之后我发现了安卓。

我很快就爱上了安卓,它的开发环境工作于所有的主要平台,没有附加的字符串。它有一个充满活力的开发人员社区很乐意帮助您遇到的任何问题,以及全面的文档。我能够分享我的创作而不用支付其他费用,而且如果我想要通过我的作品赚钱,我可以很容易的发布我最新的和最有创新的作品在全球市场上,在几分钟之内就可以供百万消费者使用。我剩下的唯一一件事就是弄清楚如何编写游戏,以及如何将我的电脑游戏开发知识转移到这个新系统。在下面的章节中,我想和你分享我的经验,让你开始与安卓游戏开发。这当然是一个相当自私的计划:我想有更多的游戏去玩!

让我们开始认识我们的新伙伴:安卓。

安卓历史简介

安卓第一次出现在公众视野是当谷歌收购了一个叫安卓的小公司时,这助长了谷歌想进入移动空间的猜测。在2008年,随着安卓1.0版本的发布,这些猜测得到了证实,安卓成为移动市场上的新挑战者。自那时以来,它已经在与已建立的平台如iOS(当时称为iPhone OS)和黑莓,其获胜的机会看起来很好。因为安卓是开源的,当使用新平台的时候,手机厂商的入门门槛很低。他们可以生产所有的价格段的设备,修改安卓本身以适应特定设备的处理能力。因此,安卓不仅限于高端设备,而且还可以部署到低成本的设备,从而达到更广泛的受众。Android的成功的一个关键因素是开放手机联盟(OHA)在2007年底形成了。OHA包括公司如HTC、高通、摩托罗拉和Nvidia,他们通过合作,一起为移动设备制定开放标准。 虽然Android的核心主要是由谷歌开发的,但是所有OHA成员贡献其整体的一部分。Android本身是一个手机操作系统和平台,基于Linux内核2.6版本,供免费的商业和非商业性使用。OHA的成员们为他们自己的设备开发了众多改进了用户界面的Android定制版本—例如,HTC的HTC Sense和摩托罗拉的Motoblur。 Android的开源特性也使爱好者创建和分发他们自己版本的Android。这些通常叫做mods,firmwares,或者ROMS。在写这篇文章的时候最突出的ROM是由一位叫做Cyanogen的开发人员开发的,旨在将最新的改进,应用到各种Android设备。

自从2008发布以来,安卓已经收到了七个版本的更新,所有的代码都被命名为甜点(除了1.1,这是不相关的)。每一个版本都为安卓平台带来了一些新特性,这些特性都直接或间接地影响了游戏开发者。版本1.5(蛋糕)在安卓应用程序中增加了对本地库的支持,以前安卓应用只能用纯JAVA编写。本机代码在以性能为先的情形下是非常有益的。版本1.6(甜甜圈)介绍了不同的屏幕分辨率支持。在这本书中,我们将重新审视这一事实,因为它对我们开发安卓游戏的方法有一定的影响。版本2.0(Eacute;Clair)是多点触摸屏的支持,版本2.2(Froyo)对Dalvik虚拟机增加了即时编译的功能,虚拟机驱动了所有在Android上运行的JAVA程序。

即时编译大大增加了安卓应用程序的执行速度—视情况而定,取决于五个因素。在我写这本书的时候,最新版本是2.3,叫做姜饼。它增加了一个新的并发垃圾收集器给Dalvik虚拟机。你可能没有注意到:Android应用程序是用java写的。

一个特殊的安卓版本,针对平板电脑,也是在2011年发布。它又叫做蜂窝,它也是安卓3.0版本。注意蜂窝并不能在手机上运行。然而,蜂窝的一些功能将被移植到安卓系统的主线。在写这篇文章的时候,安卓3.0版本是不提供给公众,并没有在市场上的设备运行它。

安卓2.3版本可以安装在许多使用定制ROM的设备上。唯一使用姜饼的手机Nexus S,是一部开发手机,由谷歌直接销售。

碎片化

安卓最大的灵活性在价格上,选择自己开发用户界面的公司在安卓新版本发布之后,不得不进行一场快节奏的竞争。这可能导致手机中的安卓版本在几个月后就会过时,所以运营商和手机制造商拒绝创造更新,包括新的安卓版本的改进。大妖怪“碎片化”是这一过程的结果。碎片化有很多面。对于终端用户来说,它意味着无法安装和使用某些应用程序和功能,因为被困在一个旧的安卓版本。对于开发者来说,这意味着在创建应用程序时必须采取一些谨慎的方法,来保证在所有版本的安卓系统中都能使用。尽管为早期安卓版本编写的程序能够在新的版本中良好运行,但是反过来就不太可靠。在较新的安卓版本中添加的一些功能是不可用在旧版本,如多点触控支持。因此,开发人员不得不为不同版本的安卓创建单独的代码路径。但不要害怕。虽然这听起来很可怕,但事实证明,必须采取的措施是最小的。大多数时候,你甚至可以完全忘记整个问题,并假装只有一个版本的安卓。作为游戏开发人员,我们不太关心的差异在接口和更关心的硬件功能。这是不同形式的碎片化,这也是其他一些平台像IOS同样面临的问题,尽管不明显。这本书中,我会涵盖一些关于碎片化的问题,这可能会在你的下一个Andriod游戏开发中阻碍你。

谷歌扮演的角色

尽管虽然Android已经正式成为开放手机联盟的心血结晶,但是当提到实现Android本身以及Android的成长提供必要的生态系统,谷歌仍是领导者。

安卓开源计划

谷歌的努力都是在“安卓开源项目”的名义下进行的。大部分的代码许可在Apache 2许可下,相比其他开源许可证如GNU(通用公共许可证),是一个开放和限制更少的许可。每个人都可以自由使用这个源代码来构建自己的系统。不过,据称是安卓系统兼容的系统首先必须通过安卓兼容性程序,这是一个过程,确保与像我们这样的开发者编写的第三方应用程序的基本兼容性。兼容系统被允许参与安卓生态系统,其中也包括安卓市场。

安卓市场

在2008年10月,谷歌公司开放了安卓市场。这是一个帮助用户找到并安装第三方应用程序的在线软件商店。安卓市场只能通过设备上的安卓市场应用才能进入。但是根据谷歌,这种情况将在不久的将来发生变化,谷歌承诺通过浏览器访问桌面的在线商店的战略部署。

该市场允许第三方开发者发布他们的应用程序,无论是免费的还是付费的应用。付费申请可在30个国家购买。作为一个开发者销售应用程序,只占一个很小的比重。

在创建一个谷歌账户后,用户获准进入市场。目前应用只能通过信用卡来购买,在购买后的15分钟之内用户可以决定退还应用,并得到全额的退款。过去,退款时间窗口会存在24小时,最近退款时间15分钟的改动还没有得到终端用户的接受。

开发者需要注册一个安卓开发者账户,以便能够在市场上发布应用,这个账户谷歌一次性收取25美元的费用,。注册成功后,开发者可以立即开始在几分钟内发布一个新的应用程序。

安卓市场没有审批流程,但依赖于一个权限系统。一个用户在安装程序之前,需要一组应用程序的权限。这些权限可以处理接入电话服务、网络接入、SD卡等。只有在用户已经批准了这些权限之后,应用程序才能安装。系统依赖于用户做正确的事情。在电脑上,特别是在Windows系统,这个概念并没有太好的工作。在安卓看来,到目前为止它似乎已经开始有效,只有少数的应用程序已经退出市场,因为恶意行为。

为了销售应用程序,开发人员必须另外注册一个谷歌的收款账户,这是免费的。所有的金融业务都是通过这个帐户来处理的。

开发者挑战赛,设备播种计划,谷歌I/O大会

在持续不断的努力吸引更多的开发者到安卓平台,谷歌开始面临挑战。第一个挑战,被称为Android开发者挑战赛(ADC)成立于2008,为获奖项目提供较高的现金价格。ADC是在随后一年进行的,又在开发者参与方面取得了巨大的成功。2010年谷歌停止了ADC大赛,可能由于Android已经有相当多的开发者作为基础,因此不再需要更多的开发者参与进来。在2010年早期谷歌就开始了设备播种计划,拥有1个及以上应用,超过5000次的下载以及至少3.5星的用户评价的开发者可以获得一台崭新的Motorola Droid, Motorola Milestone, 或者Nexus One phone手机一部。这是一个在开发者社区非常受欢迎的方式,尽管开始并没有得到大家的信任。很多人认为这个蓝色的电子邮件通知是一个精心设计的骗局。幸运的是,这次推广是一个现实,成千上万的设备被发送给全球的开发者 —一个伟大的举动,由谷歌发起,为了保持其第三方开发者们高兴,使他们坚持在Android平台,并有可能吸引新的开发者。

谷歌还提供了专门的Android开发手机(ADP)给开发者。第一个ADP的版本是T-Mobile G1(也被称为HTC Dream)。下一步是HTC Magic 的变体,也叫做ADP 2。谷歌还发布了自己的手机Nexus One给终端使用者。尽管Nexus One并没有作为ADP发布,但是他被许多人认为是ADP2的继承者。最终谷歌停止销售Nexus One给终端用户,现在它只被提供给合作伙伴和开发者。在2010年末,最新的ADP发布了。这部三星手机运行安卓2.3系统(姜饼)又被称作Nexus S。ADP手机可以在安卓市场上买到,但这需要你有一个开发者账号。Nexus S能够通过一个独立的Google网站www.google.com/phone购买。

每年一次的Google I/O大会是每一个Android开发者每年都在期待的事情。在Google I/O大会上,最新的和最棒的谷歌科技和项目得到曝光,而且每次Android都会获得一个新特性。Google I/O大会通常会以多次与安卓有关的主题会议作为号召,这些会议的视频在YouTube上的谷歌开发者频道获取。

安卓的特性和架构

安卓不只是另一个为移动设备设计的Linux版本。但你在进行安卓时,你接触不到Linux内核。开发者看到的安卓是一个抽象了底层Linux内核的平台,通过Java来编程。从一个更高的角度来看,安卓拥有很多非常好的特性:

一个提供了一组丰富的应用程序接口的应用架构,以创建各种类型的应用程序。

Dalvik虚拟机负责安卓应用的运行,提供了供2D和3D编程的图形库。

支持常见的音频,视频和图片格式,例如Ogg Vorbis, MP3, MPEG-4, H.264,和 PNG,甚至有一组特殊的API用来后声效应,这给我们游戏开发提供了便利。

访问外围设备如摄像头,全球定位系统(GPS)、罗盘、加速度传感器、触摸屏、鼠标、键盘的API。 请注意,并非所有的安卓设备都有所有这些外围设备,这是硬件的碎片。

除了我刚才列举的这些特性外,安卓当然还有更多的特性。对于我们进行游戏开发,这些特性是最相关的。

安卓的架构是由一堆组件组成,每一个组件都在下面的层上构建新的组件。图1.1给出了安卓的主要组成组件的概述。

图1.1 安卓架构概述

内核

从堆栈的底部开始,你可以看到内核提供了硬件组件的基本驱动程序。此外,内核还负责这些基本的事情,如内存和进程管理,网络等。

运行库和Dalvik虚拟机

每一个安卓运行库都建立在内核之上,他负责支持安卓应用正常运行。每一个安卓应用有自己的进程和自己的虚拟机。

Dalvik运行DEX字节码格式的程序 。你通常通过软件开发组件提供的特殊工具dx,将Java的.class文件转换成DEX格式的文件。DEX格式相对于.class有更小的内存占用,这是通过重压缩、表和合并多个类文件来实现的。

Dalvik虚拟机的接口与核心库,提供接触java程序的基本功能。在Java SE中,通过Apache Harmony Java接口的使用,核心库提供了一部分类供开发者使用。这也意味着没有摆动或抽象窗口工具包(AWT),也没有任何的类,可以在java ME中使用。然而,只要小心一些,你仍然可以使用许多第三方库在Java SE的Dalvik虚拟机中。

在android 2.2(Froyo)之前,所有的代码都会被解释。Froyo引入了一个跟踪即时编译器,能够在运行时就把一部分代码编译成机器码。这大大增加了计算密集型应用的性能。即时编译器可以使用CPU的特点,专门为特殊的计算如专用的浮点单元(FPU)做一定的改进。

Dalvik还具有一个集成的垃圾收集器(GC)。这是一个标记和清除不具有继承性的垃圾收集器,并有使开发者有点疯狂的趋势。尽管有一些关注细节,但你可以在日常游戏开发中与之和平共处 。最新的安卓版本(2.3)有一个改进

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[147278],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图