1、安卓开发发展及要点安卓开发发展及要点引言数据是一件珍贵的事物,它将比系统本身持续更长时间。蒂姆伯纳斯-李进入 Android 行业有自己的要求。当你决定是否进入 Android 行业时,最好全面了解这些要求和规范。正如在之前章节中所讨论的,Android 操作系统已经是移动设备行业领袖,其市场份额逐年增长。通过引入 x86 的 Android 软件栈(一系列相关软件的组合),Android 现在支持 x86 系统应用程序的编写,进一步扩大了市场。第 1 章 Android 的市场份额据国际数据公司(IDC) 数据, 2013 年第二季度 Android 产品的销售额已达到 1.87 亿。打破了
2、 Android 2012 年的纪录。这些数字显示 Android 智能手机操作系统占有 79%的市场份额。相比去年的 1.36 亿,安卓已经增长了超过 74%的份额。Android 的增长是从三星在当年最后一个季度占智能手机制造业的市场份额的 39%的成功以上开始的。国际数据公司(IDC) 的高级分析师 Kevin Restivo 关于安卓的成功曾经这样说:iOS 智能手机操作系统的市场份额因为 Android 的出现下降并不是一个巧合。智能手机操作系统并不是一个孤立的产品,这是一个技术生态系统的至关重要一部分。谷歌有一个蓬勃发展,多方面的产品组合。它的许多竞争对手所生产的一些较差的移动操作
3、系统改编作品,并不被市场所需求。这个因素等导致竞争对手无一例外亏损。Android 的市场份额是未来极具争论的话题。一些业内专家称,这是 Android 呈主导地位的顶峰时期。专家认为,新 iPhone 的发布模型,和新的 iOS 更新,苹果可能在未来几年从谷歌窃取市场份额。别人说这仅仅是开始,最好的说明是 John Koetsier:Android 就像一个火车刚离开车站,这是没有人可以阻止的。在整个 2007 年,仅本季度 Android 手机销售的数量就大于各种智能手机销售的总数。很难说什么智能手机操作系统市场的未来的样子。没有人可以肯定的说,未来的市场份额如何?Android 是免费和
4、开源的,那么谷歌是如何赚钱的呢?2第 2 章 Android 如何赚钱不可否认谷歌是一个成功的大公司。但谷歌的 Android 项目是如何赚钱呢?苹果 ios 的盈利来源为他们的操作系统,还有对其升级和应用程序。谷歌公司的策略则是更符合他们的主要收入方式广告。谷歌从 Android 和它的软件等各种途径赚钱。首先,谷歌从Android 浏览器中通过广告赚钱,而在谷歌商店。这个广告收入似乎很小,; 然而,这就是谷歌的大部分盈利来源。谷歌收取应用程序在谷歌版块的费用,和将内容添加到谷歌应用商店的费用。行业领导者的地位使其拥有来自在谷歌网站的广告每年数十亿美元的收入,并通过AdSense 网络等 “
5、合作伙伴”网站上。2012 年第三季度,谷歌的广告收入总额超过了 140亿美元。谷歌首席执行官拉里佩奇,使得谷歌的移动业务拥有 80 亿美元市场价值。这几乎相比去年 25 亿美元增长了三倍。他就增长评论说,“这部分收入来自用户付费内容和谷歌应用商店的应用程序。” 谷歌的高级副总裁和首席财务官 Patrick Pichette 评论说,“很明显广告仍然是最大的收入来源。”第 3 章 Android 为什么成功究竟是什么原因,让 Android 如此成功?一些专家声称,它的强大在于金融公司依赖于其产品,其他人声称它是开源社区的支持和自由分享的状态,还有些人声称它的特性和广泛的开发能力。很难找到一个
6、单一的原因,但更容易指出其成功的地方。3.1 免费安卓一直且永远是免费的。这使得其获得来源于各方的巨大支持。制造商可以放心投入资金,Android 硬件将是免费的,开发人员可以放心编写应用程序,而不需要担心复杂的平台成本并且研究人员寻找缺陷,提高底层系统,无需购买许可和协议。3.2 开源开源社区是一个巨大的开发者和志同道合的人分享信息的地方,可以生产出更强大和更好的产品。Android 是这个社区的孩子,多亏了谷歌其已经开源。这允许来自世界的程序员各地的贡献和扩展他们每天使用的软件。33.3 定制Android 软件堆栈可以个性化你的设备,使你感觉舒适。你可以改变颜色,你的手机回复通知,删除和
7、添加应用程序,甚至改变护你的设备的方式保。这种级别的自定义使得用户可以最大限度地利用设备的潜力。3.4 应用程序基础谷歌应用商店有超过 100 万不同价格的 Android 应用程序。这些应用程序可以在任何开发人员可以想象的设备及方式使用。与 iOS 的应用商店相比,谷歌应用商店主要包括免费应用程序。考虑到这一点,苹果应用商店产生更高的收入。在 2013 年第二季度谷歌播应用拥有超过了苹果应用商店下载的应用程序数量。开发人员可以从其应用程序的广告获得收入,这使得它允许用户下载的应用程序是免费的。3.5 硬件的选择与其他手机操作系统相比,Android 设备的选择最多。有超过 3900 的 An
8、droid 设备存在于现在的市场。消费者可以找到所有他们所需要的功能的设备。这些选择也覆盖所有在美国,和欧洲国家主要的移动服务提供商,使其提供了更大的拓展。3.6 设备价格Android 为用户提供不同的价位的设备。消费者可以选择他们想要性价比的 Android设备,这对于他们来说是重要的。一些第三方手机服务提供商提供 Android 设备现收现付制。更高的价格和服务合同提供最新最好的 Android 设备。你花的钱越多,你的设备将包含更多的硬件性能和特性。第 4 章 对于过去和未来版本的兼容Android 已经商业化了五年,并产生了大量的软件版本和硬件平台。为了 Android 平台的健壮性
9、,必须选择如何处理过去的版本,以及将来的修订。向后兼容性是一个所有的大型平台都面临的问题。44.1 对历史版本的兼容Android 版本 1.5 及以上,打包到硬件平台,存在于商业市场。Android 软件是完全向后兼容的。这意味着应用程序为 1.5 版本可以用来建造他们的全部版本 4.2 设备。这解决了一些开发人员在面对新设备对失去市场的份额问题。然而,重要的是要注意,这种兼容性不使用 Android 的新特性。为了最好的质量和功能,应用程序应该被重写为新版本。安卓也有一些有趣的硬件需求。为了获得谷歌的 Android 的认可,制造商必须符合一定资格,像蜂窝无线电,GPS 功能,和 Wi-F
10、i 芯片。然而,许多用户认为理所当然的事情却不授权或监管。这个列表包括屏幕大小、屏幕分辨率、内部存储大小、GPU 的速度,甚至处理器规格。这提供了制造商的自由创造高性能设备,消费者获得高性价比的设备,兼顾两者的条件。4.2 对未来版本的兼容谷歌的 Android 的未来版本策略是满足向后兼容性和最大的市场份额的条件。新版本的 Android 将拥有运行多年前开发的应用程序的机制。重要的是要注意,新的应用程序无法运行在旧系统。如果你使用 Android 4.1 版本软件开发工具包开发一个应用程序,该应用程序无法运行在 2.3 Android 设备。然而,一个写给 2.3 Android 设备的应
11、用程序,将在4.1 设备没有修改的运行。4.3 为什么 x86 和 Android 搭配是正确的Android 和 x86 家族业务准入门槛较低和成功概率显著。较低的准入要求即使是最小的公司也有获得成功的机会,主要是因为启动成本很小。你将面临的问题不是 Android和 x86 是否适合你,而是你需要采取什么措施。4.4 交叉兼容性x86 体系结构提供了一个部署在许多行业的多样化的网络的系统。从收银机、电视、移动设备,甚至是主要的实用程序控制系统,x86 平台上无处不在。x86 架构随着与Android 平台的结合,拓展壮大。Android 编写的应用程序将运行在所有相同版本的 Android
12、 设备,不用其管底层处理器是什么。这意味着编写的应用程序和测试部门工作量 Android 设备几乎没有用于英特尔x86 Android 设备的完整功能。例外的情况是应用程序使用 Android NDK。然而,一个简5单的编译,应该启动并运行应用程序。关于软件迁移的更多信息,请参考第七章:创建和移植 NDK-based Android 应用程序。4.5 门槛经济学上来说,使用乔s贝恩的经典定义,“ 门槛是一个利用卖家建立卖家在一个行业潜在进入者,这是反映在多大程度上建立了卖家可以持续提高他们的价格高于竞争水平并且没有吸引新的公司进入这个行业。”门槛是为什么许多公司可以垄断某些行业。例如,石油行业
13、有一个非常高的门槛。创建一个成功的石油公司的成本高得惊人,因为你必须有很多的资源和工具来与现有的行业巨头竞争。Android 行业门槛很低。成本和需求在 Android 创建一个成功的商业空间比大多数其他技术产业要低得多。最大的挑战是寻找某个产品理念和构建一个开发团队。强烈的想法和一个基本的团队,成功只是一个开发和营销的问题。确实成本足够低,即使个人也可以在这个市场上取得成功。第 5 章 安卓系统的安全提供者比客户往往更担忧软件系统的安全。良好的系统安全可以解释为不被破坏。Android 是一个系统,有着围绕着平台及其组件的安全记录和研究。更多关于系统的信息和技术细节,参考安卓 x86 上的安
14、全指南。5.1 应用程序安全性由于引入应用程序市场,安卓的安全模型已经非常复杂。Android 还必须确保自己的应用程序和提供一些第三方应用程序级别的安全性。其安全系统必须足够简单,普通用户可以理解应用程序,它必须允许用户决定是否要使用它们。Android 的解决问题的办法是使用权限。为了访问设备的某些功能,你必须注册相关许可。例如,应用程序中使用数据或 Wi - Fi 服务 ,您必须注册许可使用互联网。当应用程序显示给用户,显示不同的权限。如果一个应用程序试图使用一个没有登记许可的特性,应用程序将崩溃。应用程序安全性的另一个主要部分是应用程序之间的信息的分离。如果一个应用程序可以自由地在电话
15、里与其他应用程序交互,恶意的事情会发生。有各种各样的情况下,当用户需要的应用程序能够将消息发送到对方。Android 的 inner-application 消息传递系统传递6信息的使用意图的概念体现在整个操作系统中。一个意图由应用程序将一个自由格式的消息交给 Android。这些消息可以有各种类型的数据,有两个主要特点。存在一个隐式意图是一条消息,任何应用程序都可以访问它。例如,在许多 Android 应用程序,当你点击一个链接,出现一个窗口,让你选择几个可以查看该网站的应用程序。在清单文件中,应用了一个隐式意图,然后传送到所有可用的应用程序。明确的意图,另一方面,是针对一个特定的应用程序。
16、可以看到此意图和处理仅由它制作的申请。第三方应用程序也作为独立操作底层操作系统上的用户。这意味着,第三方应用程序不能访问文件和另一个应用程序拥有的资源。例外是系统应用程序。系统应用程序可以访问所需的所有部分设备的操作。5.2 平台安全手机及其周围的环境安全特性是一个广泛讨论的话题。Android 提供了许多不同的安全特性帮助用户和他们的数据安全。这些特性包括屏幕锁,文本和电子邮件加密,多种类型的密码,,和额外的密码提示,当你访问设备的某些部分。这些特性验证通过身份验证用户。第三方应用程序也被创建来帮助这项工作。存在一些应用程序,可以检测你的设备,如果是偷来的,将从你的手机删除数据,远程锁定装置
17、,并添加更多的自定义的方法与设备进行身份验证。第 6 章 许可在软件开发行业,许可费用是很常见的。从图书馆许可成本,平台许可成本,甚至设备许可成本,有很多情况下,你需要花一点钱来开发和销售产品。自安卓是一个开源的开发者社区以来,它的目标是让这些成本低。6.1 Android 的许可费用没有。Android 是开源的 Apache 2.0 许可协议,允许完全免费的商业使用,修改和分发。这意味着任何人都可以玩安卓操作系统的源代码,并创建一个全新的产品。76.2 应用程序许可费用创建 Android 应用程序是一个更为复杂的过程。开发套件和软件开发工具包都是免费的,任何人想要下载它们都可以。用这些工
18、具您可以将任何 Android 应用程序从源代码构建、测试和部署到开发设备,。 Android 设备可以通过等 USB 和 SD 卡第三方应用程序安装,提供了被启用选项,但这些媒介对于消费者不是很方便。进入谷歌应用商店,Android 应用程序市场,开发人员可以快速、轻松地为整个 Android 消费者上传和更新应用程序。应用程序在谷歌商店商店直接销售的过程。第一步是设置一个谷歌帐户。这使你访问Android 开发的网站 ,在那里你可以管理你的应用程序。一旦你创建账户,需要一次性支付25 美元的费用给谷歌内部分配应用程序至谷歌应用市场。你可以上传和配置您的应用程序在市场上销售。现在您已经申请你
19、想发表的应用程序,你如何赚钱呢?收钱从你的 Android 应用程序销售,你需要一个 Google Checkout 商家帐户。消费者在谷歌应用商店购买您的应用程序将转账到你的谷歌钱包。谷歌收取的你所拥有的利润比例,将基于许多因素如应用程序销售量。第 7 章 物理开发成本当你开始在软件业务,重要的是要记住,您将创建有需求的虚拟产品。与传统工程不同,出售的东西不一定会有一个物理组件。创建并完全测试一个 Android 应用程序,有一些物理平台,是必需的。7.1 软件开发系统开发人员使用软件开发系统编写将在 Android 设备上运行的代码。安卓软件开发工具包(SDK) 可以运行在 Windows
20、、Linux 和 Mac,所以开发人员选择一个操作系统,当涉及到硬件的选择,有几件事情需要考虑。Android SDK 是一个相对较大的应用程序,尤其是下载后的文件需要运行不同版本的Android。拥有一个硬盘足够容纳所有需要的工具和文件是必须的,但是硬盘速度也是一个严重的问题。随着固态硬盘价格的下降,这是值得考虑的一个选择。固态硬盘在读写速度通常是传统硬盘速度的两倍。这意味着减少大量的时间,系统将启动更快,集成开发环境(IDE )将运行得更快,且应用程序将运行得更快。如果你计划在笔记本电脑上运行 Android 模拟器,将需要大量的 RAM。4 GB 及更高8的应该是足够了。如果你少于 2G
21、B,你会有问题。更多的内存系统,可以同时运行多个应用程序。最后,你需要一个处理器强大到足以运行 SDK 和所需的开发工具。选择您的开发团队,越新越好。有多个核心总是优先。7.2 Android 测试系统几乎所有的 Android 模拟器都能够模拟物理 Android 设备所提供的功能。即便如此,在真正的硬件测试是最重要的。真正的硬件系统将完全按照顾客预期反应,在真实硬件上测试获得更多的自然体验。一个 Android 设备是不够的。在多个相同的 Android 版本设备上测试是很重要得。如果应用程序正在开发以前版本的 Android,必须有在更新的版本设备上测试。用更多种类的设备来测试软件并确认可用性,你会发现更多的 bug 和问题。发现和解决问题,才能将帮助客户使用你的产品。第 8 章 概述Android 和 x86 是一个强大的组合。低门槛,一个强大的安全支持,许可成本低,和一个简单的机制来部署应用程序,Android 是一个简单的和有利可图的行业。由于 Android的成功和谷歌的利润,Android 堆栈将获得日益增长的支持。Android 和 x86 的发展是正确的选择。仔细思考得来的开发团队和产品,一个可行的策略,和成功的管理,将有很多利润从其中产生。