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平台概述41f20;BACKGROUND-COLOR:#4ae2f7">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.
41f20;BACKGROUND-COLOR:#4ae2f7">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年第41f20;BACKGROUND-COLOR:#4ae2f7">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=prUS258041f20;BACKGROUND-COLOR:#4ae2f7">4315),2015年第二季度,三星全球出货量7320万部智能手机,这些设备的大部分最有可能搭载的是Android系统.
Google还创建了自己的Android品牌,称为Nexus.
现在的Nexus产品线有6款设备,分别是Nexus41f20;BACKGROUND-COLOR:#4ae2f7">4、5、6、7、9和10,每款设备分别由手机制造商合作伙伴LG(41f20;BACKGROUND-COLOR:#4ae2f7">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位或641f20;BACKGROUND-COLOR:#4ae2f7">4位)MacOSX10.
8.
5至10.
9的所有版本LinuxGNOME或KDE桌面(在UbuntuLinux141f20;BACKGROUND-COLOR:#4ae2f7">4.
041f20;BACKGROUND-COLOR:#4ae2f7">4641f20;BACKGROUND-COLOR:#4ae2f7">4位上测试过)1.
3.
41f20;BACKGROUND-COLOR:#4ae2f7">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.
41f20;BACKGROUND-COLOR:#4ae2f7">4Android平台Android是一个操作系统,也是开发应用的软件平台.
一些日常任务的核心组件,例如网页浏览和电子邮件应用都包含在Android设备里.
作为OHA的愿景——强大开源的移动开发环境,Android是一个领先的移动开发平台.
该平台旨在鼓励自由开放的市场,一个用户所希望的和开发人员渴望去开发的市场.
到目前为止,该平台没有辜负这一期望.
1.
41f20;BACKGROUND-COLOR:#4ae2f7">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.
41f20;BACKGROUND-COLOR:#4ae2f7">4.
2安全和权限Android平台的完整性通过一系列安全措施来维护.
这些措施确保用户数据安全,设备不会遭受恶意软件和误操作的影响.
1.
应用作为操作系统的用户当一个应用被安装后,操作系统创建了一个和该应用相关联的新的用户配置文件.
每个应用作为不同的用户来运行,在文件系统中拥有私有的文件,有独立的用户ID,独立的安全操作环境.
应用在操作系统中使用自己的用户ID,在自己的应用安全沙箱中运行自己的进程.
2.
安全增强型Linux内核模块Android41f20;BACKGROUND-COLOR:#4ae2f7">4.
3推出了安全增强型Linux(Security-EnhancedLinux,SELinux)内核模块的修改版本.
此版本为Android操作系统提供了增强的安全性,并进一步将应用限制在自己的沙盒,同时在所有进程上实施强制访问控制(MAC).
3.
明确定义的应用权限Android应用需要注册所需要的特定权限来访问系统上的共享资源.
有些权限允许应用使用设备的功能来拨打电话、访问网络、控制摄像头和其他硬件传感器.
应用也需要权限来获取包含私人信息的共享数据,例如用户偏好、用户位置和联系人信息.
应用也可以声明其他应用来使用它们自己的权限.
一个应用可以声明任意数量的不同权限类型,例如只读或读写权限,从而更好地施加控制.
Android6.
0(API等级23)推出了精简的许可程序.
不再要求用户在安装应用时授予应用需要的所有权限,允许开发人员可在运行期间当应用实际上需要访问特定权限时请求权限.
常规保护级别的权限在安装时进行授权,而非常规的其他所有级别的权限必须在运行期间请求授权.
第Ⅰ部分Android平台概述141f20;BACKGROUND-COLOR:#4ae2f7">441f20;BACKGROUND-COLOR:#4ae2f7">4.
应用签名所有Android应用包都使用证书来签名,所以用户知道该应用是认证过的.
证书的私钥由开发人员保存.
这有助于建立开发人员和用户的信任关系.
它也能使开发人员控制哪些应用能提供系统上其他应用的访问权限.
没有哪家证书颁发机构是必需的,自签名也是可以接受的.
5.
多用户和限制配置文件Android41f20;BACKGROUND-COLOR:#4ae2f7">4.
2(API级别17)带来了可共享设备,例如平板电脑的多用户账户支持.
随着Android41f20;BACKGROUND-COLOR:#4ae2f7">4.
3(API级别18)版本的发布,主设备用户现在可以创建限制配置文件,用于限制用户访问特定应用的权限.
开发人员也可以利用他们应用中的限制配置文件的功能,从而使主设备用户拥有进一步限制特定设备用户访问特定应用内容的能力.
6.
GooglePlay开发人员注册为在广受欢迎的GooglePlay商店发布应用,开发人员必须创建一个开发人员账户.
GooglePlay商店管理严格,并且不允许有恶意软件.
1.
41f20;BACKGROUND-COLOR:#4ae2f7">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/sl41f20;BACKGROUND-COLOR:#4ae2f7">4a.
与Web应用、AdobeAIR应用类似,开发SL41f20;BACKGROUND-COLOR:#4ae2f7">4A应用不在本书的介绍范围之内.
2.
自带应用和第三方应用之间无差异不像其他的应用开发平台,Android平台上的自带应用和第三方应用之间没有区别.
只要授予相应的权限,所有应用都能以相同的方式访问核心库以及底层接口.
IMIDC发布了6.18大促销活动,针对香港、台湾、日本和莫斯科独立服务器提供特别优惠价格最低月付30美元起。IMIDC名为彩虹数据(Rainbow Cloud),是一家香港本土运营商,全线产品自营,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非等地机房,CN2网络直连到中国大陆。香港服务器 $39/...
一般大厂都是通过首年才有可以享受爆款活动,然后吸引我们注册他们商家达到持续续费和购买的目的。一般只有大厂才能有这样的魄力和能力首年亏本,但是对于一般的公司和个人厂家确实难过,这几年确实看到不少的同类商家难以生存。这里我们可以看到有对应的套餐方案。不过这两个套餐都是100%CPU独享的,不是有某云商家限制CPU的。但是轻量服务器有个不好的就是带宽是较大且流量是限制的额,分别是1GB和1.2TB月流量...
小白云是一家国人自营的企业IDC,主营国内外VPS,致力于让每一个用户都能轻松、快速、经济地享受高端的服务,成立于2019年,拥有国内大带宽高防御的特点,专注于DDoS/CC等攻击的防护;海外线路精选纯CN2线路,以确保用户体验的首选线路,商家线上多名客服一对一解决处理用户的问题,提供7*24无人全自动化服务。商家承诺绝不超开,以用户体验为中心为用提供服务,一直坚持主打以产品质量用户体验性以及高效...