开发人员android3.1

android3.1  时间:2021-04-03  阅读:()
Android概述在移动开发社区的帮助与支持下,Android操作系统已经成为移动操作系统中的全球领先者.
移动设备用户已经显示出对Android的喜爱.
开发Android应用是将移动用户作为目标并想留住用户的商业公司的一个主要方向.
手机制造商和移动运营商已经在Android上投入巨资,用于给用户创造一种独特的体验.
企业家和初创企业正努力为其服务提供Android应用的用户体验,这是在其他移动平台或其他平台(如桌面)上所见不到的情景.
此外,新设备不断涌现,设备的创造者为这些设备采用Android操作系统充分支持.
在移动开发社区,Android已逐渐成为一个改变游戏规则的平台.
Android是一个创新和开放的平台,随着持续扩展到手机和平板电脑之外的新型设备,以及向其他领域的进一步渗透,Android正在满足不断增长的市场需求.
本章将介绍Android是什么,该平台如何融入已建立的移动市场,以及该平台的运作方式.
1.
1Android开源项目(AOSP)Android开源项目(AndroidOpenSourceProject,AOSP)由Google主导,旨在使Android操作系统的源代码可供所有人阅读、审查并可根据自己的喜好进行修改.
只要愿意,也可以贡献自定义的代码供其他人使用.
AOSP的主要目标是提供一套相容性指导方针,以便OEM和设备制造商将Android移植到定制设备以及构建符合Android开放配件标准的附件,使OEM厂商和制造商能够提供标准体验.
虽然任何人都可以自由地创建Android操作系统的源代码分支,但是保持OS体验的一致性对Android生态系统非常重要,因为对体验进行根本性的改变将在市场上引入分裂,以及与Android分发形成竞争.
要了解更多关于AOSP和审查OS源代码的信息,请参阅https://source.
android.
com/index.
html.
1第章第Ⅰ部分Android平台概述41.
2开放手机联盟Google一直致力于宣传它的愿景、品牌,推广它的搜索和创收平台以及针对移动市场的开发工具套件.
Google公司的商业模式已经在互联网上取得了巨大成功.
从技术角度看,移动市场并没有什么不同.
1.
2.
1Google进入移动市场Google最初进入移动市场遇到了所能想象的所有问题.
互联网用户享受的自由与使用旧式手机的用户完全不同,因为那时的移动操作系统是封闭的生态系统——不像Android是开放源代码的——所以能为这些处于封闭状态的手机操作系统开发应用的开发人员仅限于少数.
互联网用户可以选择一系列不同的电脑品牌、操作系统、互联网服务提供商和网络浏览器.
几乎所有Google服务都是免费的,是由广告驱动的.
Google创建了许多应用,并直接与这些封闭生态系统的移动操作系统上可用的应用进行竞争.
这些应用的范围从简单的日历和计算器到Google导航地图,更不用说其他服务,如Gmail和YouTube.
然而,这种做法并没有产生预期的效果,Google决定采用不同的方式:改造整个移动应用开发的基础系统,希望可以为用户和开发人员提供一个更开放的环境——互联网模式.
互联网模式允许用户在免费软件、共享软件和付费软件之间选择,这允许不同服务之间的自由市场竞争.
到今天,Google对Android的巨大投入已经成为人们关注的焦点.
Google的搜索引擎算法已被修改,从而对不兼容移动系统的网站实施惩罚.
移动搜索的流量已经超过台式机搜索的流量,并且这还会持续增长.
Google移动至上的理念绝对非常重要.
1.
2.
2开放手机联盟介绍凭借以用户为中心、民主的设计理念,Google将现存的、壁垒森严的移动市场转变为手机用户可以在不同运营商之间轻松切换,可以无限制地运行应用和服务的市场.
凭借庞大的资源,Google已经采取广泛的方法,研究移动市场的整个基础架构——从FCC的无线频谱政策,乃至手机制造商的需求、应用开发人员的需求以及移动运营商的期望.
多年前,Google加入了具有相同理念的移动社区,并提出如下问题:如何制造更好的手机开放手机联盟(OpenHandsetAlliance,OHA)这个成立于2007年11月的组织回答了这个问题.
开发手机联盟是由这个星球上许多规模最大、最成功的手机厂商组成的联盟.
它的成员包括芯片厂商、手机制造商、软件开发商和服务提供商.
它们很好地代表了整个移动供应链.
AndyRubin被称为Android平台之父.
他的公司Android.
Inc于2005年被Google收购.
OHA成员(包括Google)开始开发一个基于Android.
Inc技术的开发式标准平台,旨在缓解阻碍移动社区的上述问题.
这就产生了Android项目.
第1章Android概述5Google在Android项目中的参与是如此广泛,以至于谁是Android平台的主导(OHA还是Google)并不清晰.
Google提供了Android开源项目的早期代码,并提供了在线Android文档、工具、论坛和软件开发工具包(SoftwareDevelopmentKit,SDK),供开发人员使用.
最重要的Android新闻来自Google.
Google还举办了多项会议(GoogleI/O、全球移动通信大会和CTIA无线通信展览会).
一系列的竞赛用于鼓励开发人员编写Android平台的杀手级应用,优胜者可获取数百万美元的奖励.
Google不仅是组织者,更是平台后面的驱动力.
1.
2.
3加入开放手机联盟AOSP提供了Android操作系统的完整源代码,以及为满足设备兼容性需求的指南,但这不包括许多Google私有应用套件的源代码.
加入开放手机联盟的好处包括授予Google移动服务(GoogleMobileServices,GMS)许可的能力,这包括Google私有的应用,如GooglePlay、YouTube、Google地图、Gmail和其他许多Google自有品牌的应用和服务.
GMS不包括在AOSP中,必须从Google直接授权.
成为OHA的成员,还可将GMS捆绑到Android兼容的设备.
1.
2.
4制造商:设计Android设备开发手机联盟里有一半的成员是设备制造商,例如Samsung、Motorola、Dell、SonyEricsson、HTC和LG,以及半导体公司,例如Intel、TexasInstruments、ARM、NVIDIA和Qualcomm.
第一部搭载Android的手机T-MobileG1由手机制造商HTC开发,由移动运营商T-Mobile提供服务,发布于2008年10月.
许多其他的Android手机则于2009年和2010年早期发布.
Android平台发展势头迅猛,到了2010年第4季度,Android开始统治智能手机市场,逐步取代了其他竞争的手机平台,例如RIM的黑莓、苹果公司的iOS以及WindowsMobile.
Google通常在每年的GoogleI/O会议和重要会议上宣布Android平台的统计数据,例如财务收入.
到2015年5月,Android设备销售到的国家和地区已超过130个,在过去12个月里,GooglePlay有超过十亿的活跃用户,500亿个应用被下载和安装.
制造商和运营商支持的优势显得卓有成效.
制造商不断创造新一代的Android设备——从手机和配备高清显示器的平板电脑,到提高移动体验或管理健康水平的手表,再到专用的电子书阅读器,到全功能的电视机、上网本、与汽车集成,以及你能想象到的几乎其他所有"智能"设备.
1.
2.
5移动运营商:提供Android体验设备开发出来后,必须交付给用户使用.
包括北美、南美和中美洲,以及欧洲、亚洲、印度、澳大利亚、非洲和中东地区的移动运营商都加入了OHA,从而确保了Android的全第Ⅰ部分Android平台概述6球市场地位.
拥有近10亿用户的电信巨头——中国移动也是联盟的创始成员之一.
大部分Android设备的成功往往基于以下事实:许多Android设备不需要和传统手机一样加上价签——不少手机由运营商提供免费激活;而竞争对手,如苹果公司的iPhone则受困于无法在低端市场提供有竞争力的产品.
这是第一次,一个普通人可以负担得起全功能的智能手机.
我们听说过很多人,从待业人员到杂货店的店员,说到他们的生活在收到第一部Android手机后变得更好了,而这种现象只会日益提升Android的霸主地位.
制造厂商为Android的增长做出了巨大贡献.
2015年7月,据IDC公司统计(http://www.
idc.
com/getdocjspcontainerId=prUS25804315),2015年第二季度,三星全球出货量7320万部智能手机,这些设备的大部分最有可能搭载的是Android系统.
Google还创建了自己的Android品牌,称为Nexus.
现在的Nexus产品线有6款设备,分别是Nexus4、5、6、7、9和10,每款设备分别由手机制造商合作伙伴LG(4、5)、摩托罗拉(6)、华硕(7)、HTC(9)和三星(10)制造.
Nexus设备提供了完整的、真正的Google所希望的Android体验.
许多开发人员使用这些设备来创建和测试他们的应用,因为它们是世界上唯一能及时更新Android操作系统的设备.
如果希望自己的应用能工作在最新的Android操作系统版本上,应该考虑购买其中一款或多款设备.
1.
2.
6应用驱动设备的销售:开发Android应用用户购买了Android后,他们需要杀手级应用,不是吗最初,Google主导开发Android应用,其中有很多应用(例如电子邮件客户端和网页浏览器)是这个平台的核心功能.
他们还开发了首个成功的第三方Android应用分发平台:Android市场,也就是现在的GooglePlay商店.
GooglePlay商店仍然是用户下载应用的主要方式,但不再是唯一的Android应用分发平台.
截至2015年5月,在过去12个月内,从GooglePlay商店下载、安装的应用超过500亿.
这些只考虑了应用在该市场分发,没有考虑其他应用单独出售或在其他市场分发的情况.
这个数字也没有考虑到在Android平台上运行的Web应用.
这些为Android用户提供了更多选择,也为Android开发人员提供了更多机会.
GooglePlay商店一直在努力增加展示和销售游戏应用,并提供了PlayGameServicesSDK.
该SDK允许开发人员在游戏中增加实时社交功能,以及应用编程接口(ApplicationProgrammingInterface,API)来实现排行榜和成就榜单,从而吸引新用户并鼓励老用户.
Google还在进行一项旨在帮助推动内容销售的工作.
用户总是寻找新的音乐、电影、电视节目、书籍和杂志等.
GooglePlay专注于这些内容来满足用户对这方面服务的需求.
1.
2.
7利用所有Android设备的优势Android的开放平台已经得到大量移动开发社区的支持——远远超过了OHA的成员.
随着Android设备和应用变得越来越容易获得,许多其他的移动运营商和设备制造商转而销售Android设备给他们的客户,特别是相对于其他专有平台的成本方面来考虑.
第1章Android概述7Android平台的开放标准能为运营商减少许可和专利费用,所以我们看到了更多开放设备的迁移.
市场已经完全敞开,新用户能够首次就考虑智能手机,而Android很好地填补了这一需求.
1.
2.
8Android:我们现在取得的进展Android在各个方面(设备、开发人员和用户)持续增长.
最近,焦点主要集中在以下这几个方面:有竞争力的硬件和软件功能升级:AndroidSDK开发人员专注于提供竞争对手没有的功能API,从而保持Android在市场上的领先地位.
例如,最新发布的AndroidSDK版本显著改善了通知功能,在需要时为你提供重要信息.
扩展智能手机和平板电脑:智能手表的用户与Android用户都呈上升趋势.
目前市场上有许多新的Android穿戴设备,它们有不同的尺寸和外形.
一些硬件制造商甚至将Android应用到游戏机、电视机和汽车仪表盘,以及许多其他需要操作系统的设备.
Google甚至已经宣布ProjectBrillo,专为物联网(InternetofThings,IoT)设计的一个Android版本,以及一个用于连接这些设备的IoT协议Weave.
提升面向用户功能:Android的开发团队将重点从功能的实现转到了提供面向用户的可用性升级和"多彩性".
投入巨资来创造更流畅、更快速、反应更灵敏的用户界面,并更新他们的设计文档,使其成为一流的教程供开发人员学习实践.
遵循这些原则可以帮助所有的应用增加可用性.
注意有些人可能会对移动市场中围绕着Android几乎所有成员的法律纠纷感到困惑.
虽然大部分并没有直接影响开发人员,但其中一些(特别是涉及应用内购买的)则有影响.
这种事情在任何主流的平台上都会发生.
这里并不能提供任何法律意见.
我们能给出的建议是保持对法律纠纷的关注,希望一切都好,不只是在Android平台,还在其他受影响的平台.
1.
3Android平台的独特性Android平台本身被誉为"第一个完整、开放和免费的移动平台".
完整:在开发Android平台的时候,设计者进行了全面的考虑.
他们从一个安全的操作系统开始,在上面建立一个健壮的软件框架,从而允许在上面开发丰富的应用.
开放:Android平台通过开源许可协议来提供.
开发人员开发应用时可以获得前所未有的访问设备功能的权限.
第Ⅰ部分Android平台概述8免费:Android应用可以免费开发.
在该平台上开发不需要许可费用.
没有加入开发成员的费用,没有测试费用,不需要签名或认证费用.
Android程序可以通过多种方法来分发和商业化.
分发自己的应用是免费的,也有免费发布应用以供下载的应用商店.
但是在GooglePlay商店上架则需要注册和支付一笔一次性的$25费用(免费意味着开发过程可能是有成本的,但这些在Android平台上不是强制要求的.
这并不包括设计、开发、测试、市场和维护费用.
如果提供了所有这些,可能不需要再付费,除了一项费用——$25的开发人员注册费,这项收费用于鼓励开发人员为GooglePlay创建高质量的应用).
1.
3.
1Android的由来Android的吉祥物是一个绿色的小机器人,如图1.
1所示,这个小机器人经常用来表示Android相关的内容.
图1.
1Android官方吉祥物自从Android1.
0SDK发布以来,Android平台持续以快速的步伐前进.
相当一段时间,每隔几个月时间就有一个新的AndroidSDK发布出来!
在高科技行业,每个AndroidSDK版本都有一个独特的项目名称.
在Android世界里,每一代SDK是按字母顺序命名的甜点.
1.
3.
2自由和开放源代码Android是一个开源平台,不论是开发人员还是设备制造商都不需要为该平台开发支付专利费或许可费用.
Android底层的操作系统基于GNU通用公共许可第二版(GPLv2)著作权许可,它要求任何第三方的修改必须继续保持开源许可协议的条款;而Android框架则基于Apache软件许可证(ASL/Apache2)发布,它允许发布开源或闭源的版本.
平台的开发人员(尤其是设备制造商)可以选择增强Android功能而不需要将他们的改动提供给开源社区.
相反,平台开第1章Android概述9发人员可以从特定设备的改进工作中获利,并在他们想要的许可协议下重新发布工作成果.
Android应用开发人员可以在他们喜爱的许可协议下发布他们的应用,也可以编写一个开源的自由软件或传统意义上的收费应用,或是介于两者之间的软件.
1.
3.
3熟悉且廉价的开发工具不像某些专有平台,需要开发人员缴纳注册费用、审批费用和购买昂贵的编译器,开发Android程序没有前期成本.
1.
免费提供的软件开发工具包(SDK)AndroidSDK和工具都可以免费得到.
开发人员同意AndroidSDK许可协议后,就可以在Android网站下载AndroidSDK.
2.
熟悉的编程语言,熟悉的开发环境开发人员现在可以使用官方的集成开发环境(IDE)用于Android应用开发.
AndroidStudio集成了AndroidSDK工具、最新的AndroidPlatform以及最新的带GoogleAPI的Android模拟器系统镜像.
AndroidStudio基于免费的由JetBrainss.
r.
o公司开发的IntelliJIDEACommunityEdition.
在AndroidStudio成为Android开发的官方IDE之前,许多开发人员选择流行而且免费的EclipseIDE来设计和开发Android应用.
Eclipse是最流行的Android集成开发环境之一.
被称为Android开发人员工具(AndroidDeveloperTools,ADT)的AndroidEclipse的插件则可以辅助Android开发.
还可以选择从命令行以独立应用的方式使用AndroidSDK工具,而不将其整合到特定的IDE中,也可以运行命令行构建脚本.
AndroidStudio是Android应用开发推荐的IDE.
Android应用可以在以下操作系统中开发:Windows2003、Vista、7和8(32位或64位)MacOSX10.
8.
5至10.
9的所有版本LinuxGNOME或KDE桌面(在UbuntuLinux14.
0464位上测试过)1.
3.
4合理的开发学习曲线Android应用使用著名的编程语言Java编写.
Android应用框架包含了传统的编程结构,如线程和进程,以及专门设计的数据结构来封装移动应用常用的对象.
开发人员可以依靠熟悉的类库,例如java.
net和java.
text.
专业库的支持(例如图形和数据库的管理)则基于良好定义的开放标准,如OpenGL嵌入式系统(OpenGLES)和SQLite.
1.
3.
5功能强大的应用开发支持过去,设备制造商往往和信赖的第三方软件开发商(OEM、ODM)建立特殊关系.
软件第Ⅰ部分Android平台概述10开发商的精英们为之编写原生应用,如消息管理和Web浏览器,作为设备的核心功能集.
为了设计这些应用,开发商需要给予开发人员得到内部软件框架和固件资料的权限.
而在Android平台上,原生应用和第三方应用之间并没有区别,从而可以保持开发人员之间的良性竞争.
所有Android应用使用同一套API,Android应用可以访问底层硬件,允许开发人员编写更强大的应用.
应用可以完全被扩展或替代.
1.
3.
6丰富和安全的应用集成Android平台一个最引人瞩目和创新的功能是设计良好的应用集成.
如果开发人员愿意,Android可以允许开发人员编写一个应用,无缝地集成核心功能,如Web浏览器、联系人管理和短消息等.
应用也可以作为内容提供程序并以安全的方式分享彼此的数据.
1.
3.
7没有昂贵的开发费用不像iOS等平台,Android应用不需要昂贵和耗时的测试认证程序.
创建Android应用,你所需要的仅是一台电脑、一个Android设备、一个好的想法和对Java的理解.
如果你想在GooglePlay商店发布应用,则需要支付一次性的低成本($25)的开发人员费用,但是你也可以选择一个不需要支付开发人员费用的应用商店来发布你的应用,或者你也可以自己为应用提供下载.
1.
3.
8应用的"自由市场"Android开发人员可以自由选择任何一种他们想要的收入模式.
他们可以开发免费软件、共享软件、试用软件或带广告的应用和收费应用.
Android的目的是从根本上颠覆移动应用的开发规则.
在Android移动平台之前,开发人员面临着许多功能方面的限制,如:软件市场对同一类特定类型应用数量的限制.
软件市场对价格、收费模式和专利费用的限制.
运营商不愿意为少数人提供应用.
在Android平台上,开发人员可以编写和成功发布他们想要的任何类型的应用.
开发人员可以为少数人提供定制的应用,而不是基于移动运营商的要求只提供多数人的收费版本.
垂直市场的应用可以部署到特定目标人群.
因为开发人员拥有多种应用分发机制的选择,他们可以选择一种方式而不需要强迫遵守别人的规则.
Android开发人员可以通过多种方式发布他们的应用:Google开发的GooglePlay商店(原来的Android市场)——一个通用的收入共享的Android应用商店.
GooglePlay商店现在拥有一个Web商店用于在线浏览和购买应用.
GooglePlay同时也销售电影、音乐和书籍.
因此,选择它,你的应用将出现在一个极好的商店里售卖.
Amazon在2011年上线了AmazonAppStore,它包含了一系列令人兴奋的Android应用,并使用自己的收费和收入共享系统.
第1章Android概述11还有许多其他的第三方应用商店可供选择.
有些比较小众,有些支持不同的移动平台.
开发人员还可以提供自己的支付/收费机制,例如在网站或企业内部分发.
移动运营商和手机开发商现在仍然可以免费地开发自己的应用商店并执行自定的规则,但这不再是开发人员分发他们应用的唯一方式.
在这些平台分发你的应用之前,请一定仔细阅读应用商店的协议.
1.
3.
9一个不断发展的平台早期的Android开发人员必须面对新平台的典型困难:频繁修改的SDK,缺乏良好的文档,市场的不确定性;移动运营商和设备制造商对Android的升级支持即使有,也很慢.
这意味着Android开发人员常需面对不同的SDK版本以满足所有用户.
幸运的是,不断发展的Android开发工具使其变得简单,现在Android已经是一个完善的平台,其中许多问题已经得到解决.
Android论坛社区十分活跃和友善,并非常倡导互相帮助解决困难.
AndroidSDK每一次的版本更新都提供了一些平台的实质改善.
在最新的版本中,Android平台增加了很多人需要的"艳丽"用户界面,表现在视觉和性能上的改善.
流行的设备,例如智能手表或互联网电视现在完全支持该平台,此外还支持新的类别,如智能汽车.
虽然大部分的升级和改善是受欢迎和必要的,但是新的SDK版本常会导致Android开发人员社区的混乱.
一些已经发布的应用都需要重新测试和重新提交到GooglePlay商店来满足新的SDK的需求.
这带来了Android设备的固件升级,使得一些旧的应用过时,有时甚至无法使用.
虽然这些成长中的阵痛可以预见,而且大部分开发人员已经容忍了这些,但记住,和iOS平台相比,Android在移动市场是一个后来者.
苹果的APPStore拥有许多应用,但用户希望在他们的Android设备上也有相同的应用,开发商很少只为一个平台开发部署,他们必须能支持所有流行的平台.
1.
4Android平台Android是一个操作系统,也是开发应用的软件平台.
一些日常任务的核心组件,例如网页浏览和电子邮件应用都包含在Android设备里.
作为OHA的愿景——强大开源的移动开发环境,Android是一个领先的移动开发平台.
该平台旨在鼓励自由开放的市场,一个用户所希望的和开发人员渴望去开发的市场.
到目前为止,该平台没有辜负这一期望.
1.
4.
1Android的底层架构与其前辈相比,Android平台被设计成具有更高容错能力的平台.
设备运行在Linux操第Ⅰ部分Android平台概述12作系统上,Android应用在安全的方式下执行.
每个Android应用运行在自己的应用沙箱中(见图1.
2).
Android应用都是托管代码,因此,它们不太可能导致系统崩溃,进一步导致系统损坏(无法使用)的可能性更小.
Android平台应用沙箱Android应用AAndroid应用BAndroid应用C用AndroidJavaFramework编写用AndroidJavaFramework编写用AndroidJavaFramework编写应用沙箱应用沙箱Linux用户ALinux用户BLinux用户CLinux3.
10操作系统(硬件抽象层)安全内存管理进程管理BinderIPC网络栈I/O显示键盘触摸屏电源管理其他设备Wi-Fi,蓝牙,摄像头,音频电话,内存,设备传感器物理硬件图1.
2Android平台架构图1.
Linux操作系统Linux内核负责处理核心系统服务,并作为硬件抽象层(HardwareAbstractionLayer,HAL)介于物理硬件和Android软件栈之间.
内核处理的一些核心功能包括:增强的应用权限和安全性.
低级别的内存管理.
进程管理和多线程.
网络栈.
第1章Android概述13显示、键盘输入、摄像头、Wi-Fi无线、闪存、声音、Binder进程间通信(IPC)和电源管理驱动的访问.
2.
Android应用运行时环境每个Android应用运行在单独的进程中,在它自己的应用沙箱中.
Android运行时(AndroidRuntime,ART)是Dalvik的运行时继任者.
ART引入的一个主要改进功能是预编译(Ahead-Of-TimeCompilation,AOT),而不是Dalvik的及时编译(Just-In-TimeCompilation,JIT).
有了ART,应用在安装过程中编译.
编译后的可执行文件存储在设备上,而不必在启动应用之前编译可执行文件.
而另一方面,Dalvik在启动应用之前将编译应用文件.
ART在Android5.
0中正式推出,并带来显著的性能增强,这是Dalvik以前所不具备的.
1.
4.
2安全和权限Android平台的完整性通过一系列安全措施来维护.
这些措施确保用户数据安全,设备不会遭受恶意软件和误操作的影响.
1.
应用作为操作系统的用户当一个应用被安装后,操作系统创建了一个和该应用相关联的新的用户配置文件.
每个应用作为不同的用户来运行,在文件系统中拥有私有的文件,有独立的用户ID,独立的安全操作环境.
应用在操作系统中使用自己的用户ID,在自己的应用安全沙箱中运行自己的进程.
2.
安全增强型Linux内核模块Android4.
3推出了安全增强型Linux(Security-EnhancedLinux,SELinux)内核模块的修改版本.
此版本为Android操作系统提供了增强的安全性,并进一步将应用限制在自己的沙盒,同时在所有进程上实施强制访问控制(MAC).
3.
明确定义的应用权限Android应用需要注册所需要的特定权限来访问系统上的共享资源.
有些权限允许应用使用设备的功能来拨打电话、访问网络、控制摄像头和其他硬件传感器.
应用也需要权限来获取包含私人信息的共享数据,例如用户偏好、用户位置和联系人信息.
应用也可以声明其他应用来使用它们自己的权限.
一个应用可以声明任意数量的不同权限类型,例如只读或读写权限,从而更好地施加控制.
Android6.
0(API等级23)推出了精简的许可程序.
不再要求用户在安装应用时授予应用需要的所有权限,允许开发人员可在运行期间当应用实际上需要访问特定权限时请求权限.
常规保护级别的权限在安装时进行授权,而非常规的其他所有级别的权限必须在运行期间请求授权.
第Ⅰ部分Android平台概述144.
应用签名所有Android应用包都使用证书来签名,所以用户知道该应用是认证过的.
证书的私钥由开发人员保存.
这有助于建立开发人员和用户的信任关系.
它也能使开发人员控制哪些应用能提供系统上其他应用的访问权限.
没有哪家证书颁发机构是必需的,自签名也是可以接受的.
5.
多用户和限制配置文件Android4.
2(API级别17)带来了可共享设备,例如平板电脑的多用户账户支持.
随着Android4.
3(API级别18)版本的发布,主设备用户现在可以创建限制配置文件,用于限制用户访问特定应用的权限.
开发人员也可以利用他们应用中的限制配置文件的功能,从而使主设备用户拥有进一步限制特定设备用户访问特定应用内容的能力.
6.
GooglePlay开发人员注册为在广受欢迎的GooglePlay商店发布应用,开发人员必须创建一个开发人员账户.
GooglePlay商店管理严格,并且不允许有恶意软件.
1.
4.
3探索Android应用AndroidSDK提供了大量最新的、健壮的API.
Android设备的核心服务公开给所有的应用来访问.
只要授予了相应的权限,Android应用可以相互共享数据,并能安全地访问系统上的共享资源.
1.
Android编程语言选择Android应用是用Java语言编写的.
到目前为止,Java语言是开发人员访问完整AndroidSDK的唯一选择.
提示有一些猜测:其他的编程语言(例如C++)可能会在Android未来版本中加入.
如果你的应用必须依赖其他的编程语言(例如,C/C++)的本地代码,你可能需要考虑使用AndroidNativeDevelopmentKit(NDK).
也可以开发一个运行在Android设备上的移动Web应用.
这些应用可以通过Android浏览器访问,也可以通过嵌入本地Android应用(仍然是用Java编写的)的WebView控件访问.
本书专注于Java应用的开发.
可以在Android开发人员网站找到更多关于开发Web应用的内容:http://d.
android.
com/guide/webapps/index.
html.
想要部署到Android平台的Flash应用请检查Android平台的Adobe的AIR支持情第1章Android概述15况.
用户从GooglePlay商店安装了Adobe的AIR应用之后,就可以用来加载兼容应用了.
欲了解更多信息,请访问Adobe网站http://adobe.
com/devnet/air/air_for_android.
html.
开发人员甚至可以选择使用某些脚本语言开发应用.
目前有一个开源项目,它可以使用脚本语言,例如将Python等作为构建Android应用的选择,但是这个项目已经很长一段时间没有更新了.
欲了解更多信息,请参阅Android脚本项目:https://github.
com/damonkohler/sl4a.
与Web应用、AdobeAIR应用类似,开发SL4A应用不在本书的介绍范围之内.
2.
自带应用和第三方应用之间无差异不像其他的应用开发平台,Android平台上的自带应用和第三方应用之间没有区别.
只要授予相应的权限,所有应用都能以相同的方式访问核心库以及底层接口.
Android设备出厂的时候自带了一系列原生应用,例如Web浏览器和联系人管理器.
第三方应用可以整合这些核心应用,并扩展它们以提供更丰富的用户体验,或者使用替代应用完全替代.
这意味着:任何应用都是使用与第三方开发人员也能使用的完全相同的API构建的,从而营造了公平,或者尽可能接近公平的竞争环境.
值得注意的是,在较早时期Goolge公司自己在某些情况下使用了未文档化的API.
因为Android是开放的,没有私有的API.
Google从来没有禁止访问这些未文档化的API,但是警告了开发人员,使用这些私有API可能导致在未来的SDK版本中不兼容.
参考博客http://android-developers.
blogspot.
com//2011/10/ics-and-non-public-apis.
html,有一些曾经未文档化的API成为公开API的示例.
3.
常用的包在Android平台,移动开发人员不需要重新发明车轮.
相反,开发人员可以使用Android的Java包内的类库来完成常见任务,包括图形、数据库访问、网络访问、安全通信和实用工具.
Android包提供了以下支持:各种用户界面控件(按钮、下拉列表、文本输入).
各种用户界面布局(表格、标签页、列表).
整合功能(通知、窗口小部件).
安全的网络和Web浏览功能(SSL、WebKit).
XML支持(DOM、SAX、XMLPull解析器).
结构化存储和关系数据库(应用程序首选项、SQLite).
强大的2D和3D图形库(包括SGL、OpenGLES和RenderScript).
播放和录制单机或网络流的多媒体框架(MediaPlayer、JetPlayer、SoundPool和AudioManager).
对许多音频和视频格式的广泛支持(MPEG4、H.
264、MP3、AAC、AMR、JPG和PNG).
第Ⅰ部分Android平台概述16可以访问可选的硬件,如基于位置的服务(Location-BasedServices,LBS)、USB、无线网络、蓝牙、近场通信以及硬件传感器.
4.
Android应用框架Android应用框架提供了实现一般应用所需的一切东西.
Android应用的生命周期主要包含以下主要组件:Activity(活动)是应用执行的功能.
Fragment(片段)是可重用和模块化的子Activity.
Loader(加载器)用于将数据异步加载到Fragment或Activity中.
视图的Group(布局)用于定义应用的布局.
Intent(意图)通知系统有关应用的计划.
Service(服务)允许后台处理而不需要用户交互.
Notification(通知)在一些有趣的事情发生时提醒用户.
Contentprovider(内容提供程序)促进不同应用之间的数据传递.
5.
Android平台服务Android应用使用一系列管理器与操作系统以及底层硬件交互.
每个管理器负责保持一些系统服务的状态.
例如:LocationManager用于和设备上的基于位置的服务进行交互.
ViewManager和WindowManager负责显示界面以及与设备相关的用户界面的基本组件.
AccessibilityManager负责辅助事件,为有物理损伤的用户提供支持.
ClipboardManager提供了访问设备全局剪切板的功能,可以剪切和复制内容.
DownloadManager作为系统服务,负责HTTP的后台下载.
FragmentManager管理Activity的Fragment.
AudioManager提供对音频和振铃控制的访问.
6.
Google服务Google提供了API用于整合许多不同的Google服务.
这些服务被添加之前,开发人员需要等待移动运营商和设备制造商更新Android设备,才可以使用许多功能,例如地图和基于位置的服务.
现在,开发人员可通过在应用的项目中加入所需的SDK来整合这些最新最好的服务更新.
Google服务包括:地图(Maps)基于位置的服务(Places)游戏服务(PlayGameservice)Google账户登录(GoogleSign-In)应用内收费和订阅(In-appBillingandSubscription)第1章Android概述17Google云消息(GoogleCloudMessaging)移动应用分析SDK(MobileAppAnalyticsSDK)AdMob广告服务(AdMobAds)1.
5OHA和GMS之外的Android版本设备制造商加入OHA的一个主要好处是可以授权使用Google品牌应用的GMS套件,如GooglePlay.
GMS提供了很多特性和功能.
也就是说,有一些与OHA没有关联的流行Android版本,所以如果设备售出后用户不自己安装GMS的话,这些版本的Android不能访问GMS.
基于非OHA的Android版本的设备,不包含GMS或GooglePlay,这并不意味着你应该忽视为这些设备提供应用支持.
下面介绍一些有趣的自定义Android版本.
1.
5.
1AmazonFireOS亚马逊(Amazon)创建了自己的Android版本,名为FireOS.
FireOS是AOSP的一个分支,FireOS安装在所有的亚马逊Fire品牌设备上,如FirePhone、FireTablet和FireTV.
最近,亚马逊发布了基于AndroidLollipop的FireOS5开发人员预览版.
根据StrategyAnalytics公司的一份报告,亚马逊FireTV自开卖以来,出货量接近450万台(http://www.
prnewswire.
com/news-releases/amazonfires-to-the-top-of-the-us-digital-media-streamer-market-says-strategy-analytics-300094475.
html).
有几百万台的设备,所以在亚马逊FireOS上支持你的Android应用是绝对值得考虑的.
要进一步了解亚马逊的FireOS版本的Android,请参考https://developer.
amazon.
com/public/solutions/platforms/android-fireos.
1.
5.
2CyanogenOS和CyanogenMod另一个值得关注的Android版本是CyanogenOS.
CyanogenOS基于CyanogenMode项目,该项目是AndroidOS的一个社区驱动的分支版本,没有GMS,不过用户社区提供了指南和工具用于安装GooglePlay等应用.
Cyanogen公司的博客(https://cyngn.
com/blog/an-open-future)号称分布在全球190个国家的超过5000万用户在运行不同版本的CyanogenMod.
CyanogenMod定位为一个可替代的固件,为了替换购买时设备内置的系统,需要用户手动安装.
另一方面,CyanogenOS是一个可预先安装在Android设备上的固件.
Cyanogen是CyanogenOS背后的公司,正在致力于创建一个像Google一样有竞争力的Android生态系统.
Cyanogen公司最近融到一笔8000万美元的风险投资,来自QualcommIncorporated、TwitterVentures、RupertMurdoch、AndreesenHorowitz以及腾讯等投资人.
欲了解更多有关CyanogenMod的信息,请参考http://www.
cyanogenmod.
org.
欲了解更多有关CyanogenOS的信息,请参考https://cyngn.
com.
第Ⅰ部分Android平台概述181.
5.
3MakerMovement和开源硬件另一个值得关注的领域是"MakerMovement",这是一个DIY技术爱好者社区,通常也称为"Makers"(创客).
这一社区的亚文化潜心于基于开源硬件的项目.
类似于开源软件运动的早期,硬件工业正经历类似开源的趋势——主要在电子和印刷电路板(PCB)设计领域.
进入设计复杂的电子设备(例如电脑、笔记本电脑、平板电脑或IoT设备)的壁垒似乎只局限于人们的想象力和创新的欲望.
主要的硬件组件公司历来谨慎保护电子和PCB设计,现在逐渐意识到某些开源设计的创新潜力.
处理器制造商,例如Intel,以及授权和制造基于ARM处理组件的其他公司,已发布开源PCB设计并提供完整的PCB电路图,列出了完成电路设计所需的组件.
这对组件制造商提供可工作的PCB设计以帮助推动这些组件的销售是一种激励.
相当多生产ARM处理器的公司已经为平板电脑设备开发了开源PCB,使用Android作为操作系统.
这使得设计复杂的设备(运行Android的平板电脑)对有PCB设计能力的人来说能轻松完成.
PCB软件设计工具(例如,AltiumDesigner)被用于PCB设计.
强大的工具与开源PCB设计以及AOSP相结合,可能带来我们现在还无法想象的新一代设备.
Android应用开发的未来一定是光明的,为Android开发创新应用的可能性几乎是无限的.
1.
5.
4保持警觉虽然本书是关于开发Android应用的,但我们希望提供整个Android生态系统的背景知识.
我们认为随着不断扩张的Android生态系统,对这些事情产生的影响保持警觉总是一个好主意,因为这些事情将影响每个参与者.
今天,Android有许多令人兴奋的事件值得关注,也希望未来能带给我们更多惊喜.
1.
6本章小结Android软件开发在过去几年发展迅猛.
Android已经成为移动开发平台的领头羊,它借鉴了其他平台过去的成功经验,吸取了过去其他平台的失败教训.
Android设计为鼓励开发人员编写创新型应用.
该平台是开源的,没有前期费用,相对于其他的竞争平台,开发人员可以享受很多好处.
Android生态系统在不断地努力进军一些有前途的新领域.
现在是深入研究Android平台,以便可以评估Android平台能给你带来什么的时候了.
1.
7小测验1.
首字母缩写AOSP指的是什么第1章Android概述192.
判断题:加入开放手机联盟后,就允许设备制造商绑定GoogleMobileService.
3.
Google购买了哪家公司,并在Android操作系统中使用和发展了它的技术4.
第一款Android设备是什么哪家设备制造商开发了它在哪家移动运营商销售5.
基于Android的AmazonOS的名称是什么1.
8练习题1.
描述Android作为开源系统的好处.
2.
用你自己的语言,阐述Android的底层架构.
3.
要熟悉Android的文档,可以通过下面的网址找到:http://d.
android.
com/index.
html.
1.
9参考资料和更多信息Android开发人员:http://d.
android.
com/index.
htmlAndroid开源项目:https://source.
android.
com/index.
html开放手机联盟:http://openhandsetalliance.
com官方的Android开发人员博客:http://android-developers.
blogspot.
com本书的博客:http://introductiontoandroid.
blogspot.
comIntel开放源码:Android在Intel平台上:https://01.
org/android-IAARMConnectedCommunity:AndroidCommunity:http://community.
arm.
com/groups/android-communityAltiumDesigner:http://www.
altium.
com/altium-designer/overviewWikipedia:MakerCulture:https://en.
wikipedia.
org/wiki/Maker_culture

轻云互联-618钜惠秒杀,香港CN2大宽带KVM架构云服务器月付22元,美国圣何塞精品云月付19元爆款!海量产品好货超值促销进行中!

官方网站:点击访问青云互联活动官网优惠码:终身88折扣优惠码:WN789-2021香港测试IP:154.196.254美国测试IP:243.164.1活动方案:用户购买任意全区域云服务器月付以上享受免费更换IP服务;限美国区域云服务器凡是购买均可以提交工单定制天机防火墙高防御保护端口以及保护模式;香港区域购买季度、半年付、年付周期均可免费申请额外1IP;使用优惠码购买后续费周期终身同活动价,价格不...

可抵御99%的攻击中国单域版cdn:9元/月7T防御 cloudsecre

官方网站:点击访问CDN客服QQ:123008公司名:贵州青辞赋文化传媒有限公司域名和IP被墙封了怎么办?用cloudsecre.com网站被攻击了怎么办?用cloudsecre.com问:黑客为什么要找网站来攻击?答:黑客需要找肉鸡。问:什么是肉鸡?答:被控的服务器和电脑主机就是肉鸡。问:肉鸡有什么作用?答:肉鸡的作用非常多,可以用来干违法的事情,通常的行为有:VPN拨号,流量P2P,攻击傀儡,...

hostkvm:7折优惠-香港VPS韩国VPS,8折优惠-日本软银、美国CN2 GIA、新加坡直连VPS

hostkvm本月对香港国际线路的VPS、韩国CN2+bgp线路的VPS正在做7折终身优惠,对日本软银线路、美国CN2 GIA线路、新加坡直连线路的VPS进行8折终身优惠促销。所有VPS从4G内存开始支持Windows系统,当然主流Linux发行版是绝对不会缺席的!官方网站:https://hostkvm.com香港国际线路、韩国,7折优惠码:2021summer日本、美国、新加坡,8折优惠码:2...

android3.1为你推荐
vc组合洛天依的组合都有谁摩拜超15分钟加钱摩拜单车不是按骑行时间收费吗,我怎么只要开锁就要支付一元(而且只骑十几分钟)h连锁酒店连锁酒店有哪些bbs.99nets.com做一款即时通讯软件难吗 像hi qq这类的罗伦佐娜维洛娜毛周角化修复液治疗毛周角化有用吗?谁用过?能告诉我吗?haole018.comse.haole004.com为什么手机不能放?www.javmoo.comJAV编程怎么做?www.bbb551.comHUNTA551第一个第二个妹子是谁呀??www.175qq.com这表情是什么?www.diediao.com谁知道台湾的拼音怎么拼啊?有具体的对照表最好!
最新代理服务器ip 美国独立服务器 openv singlehop simcentric vps.net 国外服务器 10t等于多少g 新世界电讯 512m内存 小米数据库 idc资讯 网站木马检测工具 hostloc adroit 什么是服务器托管 免费mysql数据库 闪讯官网 免费的域名 阿里dns 更多