版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章
Android系统概述CONTENTS目录02
什么是Android01
智能手机03
Android系统架构04
Android16新特性介绍智能手机011.1.1什么是智能手机什么是智能手机智能手机的起源最早可追溯至1973年摩托罗拉DynaTAC原型机的诞生,人们普遍以2007年苹果iPhone3G的发布作为现代智能手机的普及开端,随着这些年来智能手机的飞速发展,智能手机的内涵也在不断深入,本书认为现如今的智能手机应该融合最新的操作系统、计算机网络、大数据与云计算,以及人工智能等相关技术前沿。基于上述给出智能手机的描述,智能手机(SmartPhone)是指搭载开放操作系统(如Android、iOS等),具备类似于计算机的架构体系,支持用户自主安装相关的应用程序,通过4G/5G甚至6G移动网络以及Wi-Fi7等实现高速互联网接入,并具备融合AI计算能力的移动终端设备的总称。智能手机与功能手机(FeaturePhone)的核心区别(1)系统开放性:以最新的Android16等现代操作系统为代表,支持深度定制和模块化扩展,相比早期JavaMIDP应用,现代应用商店(如GooglePlay)提供超过500万款优化应用(2)智能特性:集成NPU神经处理单元,支持实时AI语音助手(如GoogleGemini)、场景感知等智能功能(3)网络能力:支持Sub-6GHz/mmWave5G、Wi-Fi7(802.11be)、蓝牙5.3等新一代连接技术智能手机:1.1.1什么是智能手机
智能手机六大核心特征(1)智能计算平台:搭载7nm以下制程处理器,集成AI加速引擎,算力可达10+TOPS(2)全场景连接:支持5GSA/NSA、卫星通信(部分机型)、多频段Wi-Fi7(3)开放生态:兼容APK/XAPK等安装包格式,支持模块化功能扩展(4)智能交互:具备屏下摄像头、超声波指纹、眼动追踪等生物识别技术(5)融合体验:通过Android16的跨设备协同功能,实现与PC/汽车/IoT设备无缝连接(6)安全架构:基于TrustZone2.0和隐私计算芯片的硬件级安全防护
现代智能手机已发展为集通信、计算、感知于一体的智能终端,其扩展性和功能性远超传统功能手机封闭系统(如KaiOS等)的局限,并且较若干年之前的智能手机相比其采用的相关技术也有了质的飞跃。智能手机:1.1.2智能手机操作系统
智能手机是一种在手机内安装了相应开放式操作系统的手机,随着通信技术的发展,尤其是第五代(5G)、第六代(6G)移动通信技术的逐步成熟,市场上对功能更强、扩展性能更好的智能手机的需求量增长迅猛。具备独立的操作系统是智能手机最重要的特征,智能手机操作系统是一种运算能力及功能比传统功能手机系统更强的手机系统。智能手机操作系统领域也是各手机大厂商争夺的焦点。
为了让读者能够对智能手机操作系统有一个全面的了解,本书将分块内容介绍智能手机操作系统,第一块内容包括SymbianOS、WindowsPhone、PalmOS、BlackBerryOS等4类智能手机操作系统,该四类智能系统在智能手机发展的初期和中期占据了相当一部分市场地位,然而随着市场竞争的日益激烈,该四类操作系统已经逐渐被淘汰;第二块内容包括Android、iOS以及HarmonyOS,该三种智能手机操作系统为目前的市场主流,尤其是以HarmonyOS为代表的系统标志了国产系统的飞速发展。如下将详细介绍该7类智能手机操作系统。1.SymbianOS
塞班操作系统(SymbianOS)最初是由Symbian公司(诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通信设备商共同出资组建的一个合资公司,专门研发手机操作系统)开发的,其前身是Psion公司推出的EPOC(ElectronicPieceofCheese)操作系统,是专门用于智能手机和移动设备的32位抢占式、多任务操作系统。其内核与GUI(GraphicalUserInterface,又称图形用户接口)分开,功耗低、占用内存少。
Symbian操作系统在智能移动终端上拥有强大的应用程序以及通信能力,这都要归功于它有一个非常健全的、核心强大的对象导向系统、企业用标准通信传输协议以及完美的SunJava语言。Symbian认为无线通信装置除了要提供声音沟通的功能外,同时也应具有其他种类的沟通方式,如触笔、键盘等。在硬件设计上,它可以提供许多不同风格的外形。例如,提供真实或虚拟的键盘,在软件功能上可以容纳许多功能,包括和他人分享信息、浏览网页、发送、接收电子邮件、传真以及个人生活行程管理等。此外,Symbian操作系统在扩展性方面为制造商预留了多种接口,而且EPOC操作系统还可以细分成三种类型:Pearl、Quartz、Crystal,分别对应普通手机、智能手机和HandHeldPC场合的应用。
塞班操作系统为第三方开发商提供一个标准和开放的平台环境。使得第三方应用程序的设计者能够基于该平台开发自己的应用软件。这种方式带来的不足之处是:由于第三方厂商的用户接口程序是不同的,造成了软件不能通用,扩展性较差。这使得塞班操作系统在办公软件和多媒体录放软件上没有开发出足够多的软件供用户使用。
多年来Symbian系统一直占据智能系统的市场霸主地位,系统能力和易用性方面均很出色,但是在Android系统出现后,Symbian系统的市场占有率急剧下降。2.WindowsPhone
WindowsPhone最早叫WindowsMobile(简称WM)是微软针对移动设备而开发的操作系统。该操作系统的设计初衷是尽量接近于桌面版本的Windows,微软按照电脑操作系统的模式来设计WM,应用软件以MicrosoftWin32API为基础。2010年10月WindowsPhone操作系统正式发布后,WindowsMobile系列正式退出手机系统市场。
微软公司正式发布了智能手机操作系统WindowsPhone,同时将谷歌的Android和苹果的iOS列为主要竞争对手。2011年2月,诺基亚与微软达成全球战略同盟并深度合作共同研发。2012年3月21日,WindowsPhone7.5登陆中国。6月21日,微软正式发布最新手机操作系统WindowsPhone8,WindowsPhone8采用和Windows8相同的内核。
WindowsPhone具有桌面定制、图标拖曳、滑动控制等一系列前卫的操作体验。其主屏幕通过提供类似仪表盘的体验来显示新的电子邮件、短信、未接来电、日历约会等,让人们对重要信息保持时刻更新。它还包括一个增强的触摸屏界面,更方便手指操作,以及一个最新版本的IEMobile浏览器,该浏览器在一项由微软赞助的第三方调查研究中,和参与调研的其他手机浏览器相比,可以执行指定任务的比例超过高达48%。很容易看出微软在用户操作体验上所做出的努力,而史蒂夫-鲍尔默也表示:“全新的Windows手机把网络、个人电脑和手机的优势集于一身,让人们可以随时随地享受到想要的体验。”3.PalmOSPalmOS是Palm公司开发的专用于PDA上的一种操作系统,这是PDA上的霸主,一度占据了90%的PDA市场的份额。虽然其并不专门针对于手机设计,但是PalmOS的优秀性和对移动设备的支持同样使其能够成为一个优秀的手机操作系统。Palm操作系统是多任务的,但每次只允许一个应用程序的打开,多个应用程序不能同时运行,这使得其运行速度很快,具有较好的实用性。但不适应需要多应用程序运行的场合。4.BlackBerryOSBlackBerryOS是RIM公司(ResearchInMotion)专用的操作系统。“黑莓”(Blackberry)移动邮件设备基于双向寻呼技术。该设备与RIM公司的服务器相结合,依赖于特定的服务器软件和终端,兼容现有的无线数据链路,实现了遍及北美、随时随地收发电子邮件的梦想。这种装置并不以奇妙的图片和彩色屏幕夺人耳目,甚至不带发声器。黑莓是目前在美国、加拿大地区相当流行的无线收发电子邮件的软件,它将软件客户端结合在移动电话、PDA及其他通信终端上,用户可以通过其无线装置来安全地访问电子邮件、企业数据、Web以及进行企业内部的语音通话。BlackBerryOS具有多任务处理能力,并支持特定的输入装置,如滚轮、轨迹球、触摸板以及触摸屏等。BlackBerry平台最著名的莫过于它处理邮件的能力。该平台通过MIDP1.0以及MIDP2.0的子集,在与BlackBerryEnterpriseServer连接时,以无线的方式激活并与MicrosoftExchange,LotusDomino或NovellGroupWise同步邮件、任务、日程、备忘录和联系人。该操作系统还支持WAP1.2。5.AndroidAndroid是由Google主导开发,基于现代Linux内核的开源移动操作系统,它已从最初的智能手机平台,发展成为驱动全球数十亿台智能设备的核心系统,涵盖手机、平板、可穿戴设备、电视、汽车信息娱乐系统以及物联网设备等广泛领域。作为一款以Linux为基础的开放源码操作系统,Android主要应用于各类便携设备。Linux操作系统的嵌入式版本是专门为各种资源受限的嵌入式终端产品设计的,开放的源代码和免费使用的特点使得Linux相关应用的开发人员能够专注于业务的拓展。现如今,越来越多的智能手机开发商也倾向于研发Linux智能手机以此来降低手机成本。Android继承了Linux内核的坚实基础,并在此基础上构建了高度优化的移动体验,其核心优势包括:(1)卓越的硬件兼容性与可扩展性。支持从低功耗物联网设备到高性能旗舰手机的全系列ARM架构处理器,并适配x86和新兴的RISC-V等架构。通过ProjectTreble等现代化架构,实现了硬件抽象层(HAL)的标准化,显著提升了系统更新的效率和设备兼容性。其强大的可移植性和模块化设计,允许制造商针对不同形态因子如折叠屏,和性能需求的设备进行深度优化。(2)强大的多任务处理与现代系统架构。继承了Linux的多用户、多任务能力,并针对移动环境进行了高度优化,使其更符合现代安全与兼容性标准,持续增强对隐私、安全(如权限沙箱、加密、每月安全更新)和性能(如动态性能框架)的重视。(3)开放性与高度可定制化的生态系统。通过Android开源项目(AOSP)保持其开源本质,允许任何开发者访问源代码。制造商和开发者拥有极高的自由度,可以深度定制用户界面(如各厂商的UI)、服务以及底层功能,打造差异化的用户体验。(4)面向开发者的先进平台。提供现代化的开发工具链,官方集成开发环境AndroidStudio和强大的Jetpack库极大提升了开发效率。Kotlin已成为Google推荐的首选开发语言,但同时继续支持Java(考虑到本科生课程体系的特点本书仍然以Java作为主要开发语言),并支持跨平台框架如Flutter,提供丰富的API和灵活的商业模式支持应用分发与变现。Android最初由AndyRubin等人创建,并于2005年被Google收购。在Google的持续投入和开放手机联盟(现演变为更广泛的生态系统合作)的推动下,Android实现了爆炸式增长。其内核已从早期的Linux2.6演进至长期支持(LTS)的现代Linux内核版本(如5.x系列)。系统采用了高度优化的运行时环境(ART),其用户界面基于MaterialYou设计语言,强调个性化和一致性。凭借其开放性、广泛的硬件支持、丰富的应用生态以及持续的创新,Android已成为全球市场占有率遥遥领先的移动操作系统,与苹果公司的iOS以及华为的HarmonyOS共同主导市场。其SDK和开发工具持续开放,赋能全球开发者创造应用,同时制造商也能在遵循兼容性要求的前提下进行深度的界面和功能定制。6.iOSiOS在2011年6月前叫iPhoneOS,是苹果公司为其移动设备开发的操作系统,最初是设计给iPhone和iPodtouch使用的。与MacOSX操作系统一样,它也是以Darwin为基础的。2011年6月之后iOS的版本为5和6,通常称为iOS5和iOS6苹果推出其第一款智能手机iPhone后获得了巨大的成功。iOS继承了MacOSX在个人电脑上界面美观的优势,多点触摸技术的加入为苹果iPhone在智能手机领域获得了可观的市场份额。iOS采用Quartz图形框架,能够通过显卡硬件加速实现复杂的图形显示。然而iOS是一个不开放的平台,用户不能设计和加载任何第三方的应用程序。这使得iOS的扩展性受到很大的限制iOS是苹果公司为其全系列移动设备开发的专属操作系统,作为苹果生态的核心组成部分,现已驱动iPhone、iPad(iPadOS已独立)、AppleWatch(watchOS)和AppleTV(tvOS)等数十亿设备。该系统基于Darwin内核深度优化,融合了macOS的稳定架构与移动端创新交互范式iOS的核心演进与技术特性总结如下(1)无缝融合的生态系统。通过Continuity技术实现苹果设备间的无感协作(如跨设备复制粘贴、通用控制),iCloud+云服务深度集成,支持端到端加密数据同步,采用统一内存架构,显著提升跨设备任务处理效率(2)革命性的交互体验。引入空间计算交互范式(iOS17+配合VisionPro头显),灵动岛动态交互区重塑通知管理形态(iPhone14Pro及以上机型),增强现实平台ARKit5支持室内场景重建与物体追踪(3)隐私与安全架构。隐私营养标签强制要求应用披露数据收集行为,App追踪透明度框架(ATT)赋予用户广告追踪控制权,安全隔区协处理器SecureEnclave实现生物信息本地加密(4)开发者生态的革新。SwiftUI声明式框架成为官方首选界面开发方案,机器学习工具包CoreML4支持设备端大模型运行,应用商店开放第三方支付通道(5)性能与图形方面的突破。Metal3图形引擎实现主机级光影渲染与超分辨率技术,硬件加速的空间视频录制(iPhone15Pro及以上机型),能效管理系统自动优化后台进程资源分配自2007年初代iPhone发布以来,iOS已成长为移动操作系统领域的技术标杆。其封闭生态通过严格的App审核机制保障用户体验一致性,同时借助超210万款应用构建完整服务矩阵。最新统计显示,iOS在高端智能手机市场占据78%份额,年度开发者分成突破500亿美元。7.HarmonyOS
HarmonyOS,中文名为鸿蒙操作系统,由华为于2019年正式发布,是面向万物互联时代研发的全场景分布式操作系统,其技术层次可分为三个阶段
内核层,初期采用多内核设计(Linux宏内核+LiteOS轻内核),2021年升级为自研微内核架构(OpenHarmony3.0+),实现确定性低时延(时延波动率<5%)与高安全等级(CCEAL5+认证)
系统架构,基于分布式软总线技术,实现跨设备硬件资源虚拟化;2023年推出异构计算框架,支持CPU/GPU/NPU协同调度
开发体系,构建方舟编译器(静态编译提升效率40%)、鸿蒙IDE工具链(支持ArkTS/JS/Java),并贡献核心代码至OpenHarmony开源项目(开源率超80%)基于分布式架构与微内核设计,使得HarmonyOS具备以下特点:(1)全场景的无缝协同。支持手机、平板、车机、智能家居等10+类设备形态,通过超级终端功能实现设备“一拉即合”,跨屏协作时延<20ms(2)原生智能与流畅体验。集成盘古大模型端侧引擎,实现本地化AI服务(如语义理解、图像生成等),确定性时延引擎保障关键任务优先调度,应用启动速度提升30%(3)隐私安全双体系。微内核实现权限最小化,其内核代码仅万行级,TEE可信执行环境+机密计算框架实现端到端数据加密(4)弹性部署能力。系统可裁剪至128KB内存(IoT设备)或扩展至16GB+(旗舰手机),组件化架构支持按需配置
作为国产操作系统的代表,鸿蒙在工业互联网、智能座舱等领域形成领先优势,搭载设备数目前已突破8亿台,覆盖手机、平板、智慧屏等主力产品。在鸿蒙生态方面,其全球开发者超300万,开源社区贡献者逾1.2万人,应用商店月活达2.3亿。
作为我国自研的操作系统,HarmonyOS实现从内核到框架的全栈自研,规避安卓/GMS断供风险,真正实现了技术自主可控,同时主导IEC物联网操作系统国际标准,推动了行业标准制定。但HarmonyOS目前也面临一些困境,如海外生态拓展受限,高端芯片供应制约硬件迭代等,同时采取相应对策,如目前开源鸿蒙已适配龙芯/兆芯等国产芯片。什么是Android021.2.1Android的历史"Android一词起源"Android一词最早出现于法国作家利尔亚当(AugusteVilliersdel'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'èvefuture)中,将外表像人的机器起名为Android.Android发展历程Android本意指“机器人”,是一个全身绿色的机器人,绿色也是Android的标志。Android最初由现任Google工程副总裁的安迪•罗宾(AndyRubin)开发于2003年,于2005年被Google收购Android操作系统简介Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(OpenHandsetAlliance)开发。它采用了软件堆层(SoftwareStack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。Android在未公开之前常被传闻为Google电话或gPhone,大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。1.2.2Android的发展2003年10月,Android公司在加州PaloAlto市成立,联合创始人为AndyRubin、RichMiner、NickSear与ChrisWhite。2005年8月,Google收购了成立仅22个月的高科技企业Android公司。2007年11月5日,Google公司正式向外界展示Android操作系统。Google与34家手机制造商、软件开发商、电信运营商和芯片制造商共同创建开放手持设备联盟。2008年5月28日,PatrickBrady于GoogleI/O大会上提出AndroidHAL架构图,8月18日,Android获得美国联邦通信委员会的批准。Android软件一经推出,版本升级非常快,几乎每隔半年就有一个新的版本发布。2008年9月发布Android第一版Android1.1。后从Android1.5版本开始,Android用甜点作为它们系统版本代号的命名方法。2009年4月30日,官方1.5版本Cupcake(纸杯蛋糕)正式发布。2009年9月15日,Android1.6Donut(甜甜圈)版本发布。2009年10月26日,Android2.0/2.0.1/2.1Eclair(松饼)版本发布。2010年5月20日,Android2.2/2.2.1Froyo(冻酸奶)软件发布。2010年12月7日,Android2.3Gingerbread(姜饼)版本发布。2011年2月2日,Android3.0Honeycomb(蜂巢)版本发布。2011年5月11日,Android3.1Honeycomb(蜂巢)版本发布。2011年7月13日,Android3.2Honeycomb(蜂巢)版本发布。2011年10月19日,Android4.0IceCreamSandwich(冰激凌三明治)版本在香港正式发布。2011年12月20日,谷歌发布了Android4.0操作系统的最新版本4.0.3,称其对Android系统作出了多处改进,并修复了一些缺陷。2012年6月28日,谷歌2012年I/O开发者大会上发布了Android4.1操作系统,Android4.1JellyBean(果冻豆)是继“冰激凌三明治”之后的下一版Android系统。2012年10月底,Google在网上以在线的形式发布了全新的Android4.2系统,以及新一代的Nexus系列手机LGNexus4和平板电脑Nexus10。Android4.2新系统界面改动不大,代号还称为JellyBean不变,新增了系统全景拍照以及无线同步输出等实用的小功能,并在系统层面做了更多的优化。2013年7月25日,发布Android4.3。2013年11月,Android4.4发布,代号KitKat。2014年10月16日,发布Android7.0版本,代号Nougat,第一次全面支持ART,并支持平板和可穿戴设备的开发。2015年3月,Google发布了Android5.1版本,主要目的是修复Android7.0版本的Bug,因此其版本号仍然为Nougat。2015年5月8日,Google在GoogleI/O2015大会发布Android6.0版本,版本号为Marshmallow。2016年5月18日,Google在GoogleI/O2016大会发布Android7.0版本,版本号为AndroidNougat,又称为AndroidN。2017年8月21日,发布Android8.0,英文代号为Oreo(奥利奥),主要更新内容包括画中画模式、通知渠道、ProjectTreble以及自动填充框架等。2018年8月6日,发布Android9.0,英文代号为Pie(派),主要更新内容包括手势导航、数字健康看板、自适应电池/亮度、神经网络API1.1等。2019年9月3日,发布Android10,英文代号为Q,主要更新内容包括全局深色模式、折叠屏官方支持、隐私控制中心、ProjectMainline等。2020年9月8日,发布Android11,英文代号为RedVelvetCake(红丝绒蛋糕),主要更新内容包括对话通知分区、一次性权限授权、内置屏幕录制、设备控制中心等。2021年10月4日,发布Android12,英文代号为SnowCone(雪糕),主要更新内容包括MaterialYou设计语言、隐私指示器、近似位置权限、游戏模式等。2022年8月15日,发布Android13,英文代号为Tiramisu(提拉米苏),主要更新内容包括应用独立语言设置、照片选择器、蓝牙LEAudio支持、跨设备剪贴板等。2023年10月4日,发布Android14,英文代号为UpsideDownCake(翻转蛋糕),主要更新内容包括超大字体重构、HealthConnect统一数据接口、预测性返回手势、电池循环计数等。2024年10月3日,发布Android15,英文代号为VanillaIceCream(香草冰淇淋),主要更新内容包括卫星通信支持、应用归档功能、动态性能框架升级、空间音频API等。2025年发布Android16,英文代号为Baklava(拔克拉弗饼),主要更新内容包括硬件级AI加速引擎、隐私沙盒正式版、多屏协同低延迟优化等。本书的编写就是基于Android16版本进行的。1.2.3Android的优点
Android的优点主要包括以下6项内容:Android性价比高
消费者选择产品,价格是必然要考虑的一大因素,iPhone虽好,但是价格让一般人望而却步。苹果就像是宝马、奔驰,虽然大家都认为它很好,但是一般人消费不起,只有看的份儿。而Android如同大众,满大街跑的都是,甚至有一些型号是可以与宝马、奔驰相媲美的。目前安卓系统具有全价位覆盖的高性能体验,形成了折叠屏旗舰到性能机型再到普惠设备的完整产品矩阵。高端市场如三星GalaxyZFold系列、GooglePixelPro等,中低端机型如华为、小米等品牌提供千元级5G设备,性能达骁龙7系水准。另外120Hz高刷屏、亿级像素主摄、卫星通信等功能覆盖了80%在售机型。应用程序生态体系庞大
智能手机的核心是各种App应用的使用,目前各种品牌的安卓手机自带的应用市场能够提供500万左右的备选应用安装,且随着开发者的增多以及开发范式的逐步成型,安卓代码能够实现一次编码,多次部署,因此App的数量还将继续增长,目前该数量已远超iOS应用数量。智能手机厂家助力
现在,世界很多智能手机厂家几乎都加入了Android阵营,并推出了一系列的Android智能机。很多Android智能手机厂商与谷歌建立了Android平台技术联盟,厂商加盟的越多,手机终端就会越多,其市场潜力就越大。运营商鼎力支持目前全球300+运营商预装Android,支持毫米波/Sub-6双模5G,Android15+原生支持双向卫星通信(华为北斗、高通SnapdragonSatellite),GoogleFi虚拟运营商服务覆盖200+国家,流量资费低于当地运营商30%。1.2.3Android的优点
硬件形态与技术不断创新形态创新方面,主导折叠屏、卷轴屏、AR眼镜等新设备品类;硬件配置方面融合LTPO自适应刷新率屏幕、UWB精准定位、端侧大模型算力芯片;模块化拓展方面通过Matter协议统一控制智能家居/车载设备,覆盖了近2亿+物联网终端。
开源生态与安全进化Android是开源的,允许第三方修改,这在很大程度上容许厂家根据自己的硬件更改版本,从而能够更好地适应硬件,与之形成良好的结合,Android的开源项目OSP代码开源率超95%,各个厂商可深度定制属于自己的安卓系统。另外,开源安全联盟(OSA)能够实现漏洞72小时内全球协同修复,从而给安卓生态提供了更好的安全性能,也给开发人员提供了一个更大的创新空间,使Android版本升级更快、更稳定、更安全。Android系统架构03Android系统架构
Android系统架构图1.1是Android操作系统的架构,架构包括5层,由上到下依次是应用程序层、应用程序框架层、系统核心库层、硬件抽象层和Linux内核。其中,系统核心类库中包含原生C/C++库及Android运行环境图1.1
Android操作系统的架构1.3.1应用程序层Android应用程序架构Android装配了一个核心应用程序集合,包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序和其他程序,所有应用程序都是用Java编程语言编写的。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。1.3.2应用程序框架层
应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布它的功能且任何其他应用程序都可以使用这些功能(需要服从框架执行的安全限制),这一机制允许用户替换组件。开发者完全可以访问核心应用程序所使用的API框架。通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等。所有的应用程序都是由一系列的服务和系统组成的,主要包括以下几种:
视图(Views)。这里的视图指的是丰富的、可扩展的视图集合,可用于构建一个应用程序,包括列表(Lists)、网格(Grids)、文本框(TextBoxes)、按钮(Buttons),甚至是内嵌的Web浏览器。
内容管理器(ContentProviders)。内容管理器使得应用程序可以访问另一个应用程序的数据(如联系人数据库)或者共享自己的数据。
资源管理器(ResourceManager)。资源管理器提供访问非代码资源,如本地字符串、图形和分层文件(layoutfiles)。
通知管理器(NotificationManager)。通知管理器使得所有的应用程序都能够在状态栏显示通知信息。
活动管理器(ActivityManager)。在大多数情况下,每个Android应用程序都运行在自己的Linux进程中。当应用程序的某些代码需要运行时,这个进程就被创建并一直运行下去,直到系统认为该进程不再有用为止,然后系统将回收该进程占用的内存以便分配给其他的应用程序。活动管理器管理应用程序生命周期,并且提供通用的导航回退功能。1.3.3系统核心库
Android本地系统核心库包含原生C/C++库和Android运行时库,以供Android系统的各个组件使用。这些功能通过Android的应用程序框架为开发者提供服务。许多核心Android系统组件和服务(如ART和HAL)都是从需要用C和C++编写的原生库的原生代码构建的。Android平台提供Java框架API,用于向应用提供其中一些原生库的功能。例如,可以通过Android框架的JavaOpenGLAPI访问OpenGLES,以支持在应用中绘制和操控2D和3D图形。下面介绍C/C++库中的一些核心库:
系统C库。标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备。
媒体库。基于PacketVideo的OpenCORE,这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。
界面管理。管理访问显示子系统,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore。新式的Web浏览器引擎,支持Android浏览器和内嵌的Web视图。
SGL。一个内置的2D图形引擎。
3D库。基于OpenGLES1.0APIs实现,该库可以使用硬件3D加速或包含高度优化的3D软件光栅。
FreeType。位图和矢量字体显示渲染。
SQLite。SQLite是一个所有应用程序都可以使用的强大且轻量级的关系数据库引擎。
1.3.4硬件抽象层(HLA)硬件抽象层(HAL)提供了用于向较高级别的JavaAPI框架公开设备硬件功能的标准接口。HAL由多个库模块组成,每个模块都为特定类型的硬件组件(例如相机或蓝牙模块)实现一个接口。当框架API发出调用以访问设备硬件时,Android系统将为该硬件组件加载库模块。
1.3.5Linux内核Android基于Linux提供核心系统服务,例如安全、内存管理、进程管理、网络堆栈、驱动模型。除了标准的Linux内核外,Android还增加了内核的驱动程序,如Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、Wi-Fi驱动、蓝牙驱动、电源管理。Linux内核也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。分层的好处就是使用下层提供的服务为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化时,不会影响到上层,可以说是高内聚、低耦合。Android16新特性介绍041.4.1宏观视角:从“移动优先”到“大屏生产力”
Android16DesktopWindowingModeAndroid16延续了Google近年来“大屏优先”的战略方向,首次在系统级别引入DesktopWindowing模式。该模式允许平板与折叠屏设备以窗口化、可拖曳、可层叠的形式运行应用,从而实现近似桌面级的多任务体验。开发者需确保窗口生命周期与拖曳数据的一致性。1.4.2用户可见的新交互:通知、返回动画与状态表达进度式通知系统新增Notification.ProgressStyle,开发者可通过setProgressStyle()将外卖配送、文件下载等阶段性任务直接呈现于通知栏。该样式支持分阶段文案与实时百分比更新,显著减少用户跳转次数。预测返回动画针对高频连续通知场景(如安防摄像头的运动触发警报、即时通讯工具的连续消息),系统引入多模态聚类算法,自动识别同一应用内具有强时序或语义关联的通知流,将其折叠为单一聚合通知单元。用户可通过展开操作查看详情,避免锁屏与状态栏被重复信息淹没。扩展状态API系统提供三态CheckBox、字段必填提示与展开/折叠状态的统一语义。TalkBack朗读更加精准,开发者只需调用ViewCompat.setStateDescription()即可同步无障碍树。1.4.3影像系统:相机与视频的“专业级”升级
Android16通过底层算法重构与编解码器革新,显著提升了移动设备的影像创作能力与视觉呈现质量,核心升级集中于以下3个维度。(1)混合自动曝光。CameraCharacteristics.CONTROL_AE_MODE_OFF_KEEP_AE允许应用关闭自动曝光
的同时
保留测光结果,为专业相机App带来
可交互曝光滑杆。实验环节可让学生对比传统AE与混合模式的成像差异。。(2)夜景场景检测。通过EXTENSION_NIGHT_MODE_INDICATOR,系统实时返回环境照度阈值,开发者可据此一键切换夜间滤镜,无需额外传感器计算。(3)APV-422-10编码。新增MediaFormat.MIMETYPE_VIDEO_APV支持2Gbps10-bit422采样,为后期调色保留更大空间。课程可引入FFmpeg管线演示高位深视频的导入与导出。(4)图形与渲染:AGSL的自定义滤镜生态。Android16将AGSL(AndroidGraphicsShaderLanguage)扩展至
自定义滤镜与混合模式。开发者可在Kotlin/Java层通过RuntimeColorFilter与RuntimeXfermode直接编写GPU着色器,无需NDK。实验示例:利用AGSL实现实时LOMO滤镜
并测量GPU占用。Android16新特性介绍:1.4.4国际化:直书文字与度量系统分离
直书文字Paint.setVerticalTextFlag(true)可在不旋转Canvas的情况下实现竖排日文/蒙古文渲染,同时保留StaticLayout的换行与对齐逻辑。
度量系统分离地区偏好与语言解耦,用户可在中文界面下使用英制度量(in、ft)。开发者仅需调用NumberFormat.getInstance()即可自动切换1.4.5后台任务:JobScheduler自检API
新增JobScheduler.getPendingJobReasons()返回作业未执行的详细原因(电量限制、网络条件、系统策略),帮助开发者快速定位后台任务异常。实验环节可让学生故意触发。setRequiredNetworkType(NETWORK_TYPE_UNMETERED)并观察返回代码。THEEND谢谢第2章
Android开发环境搭建CONTENTS目录02
软件安装01
系统需求03
创建第一个Android应用程序04
调
试
程
序系统需求012.1系统需求支持Android开发的系统如下,读者可以选择自己喜欢的系统平台。
WindowsXP(32位)、Vista(32位或64位)、Windows7(32位或64位)、Windows10(32位或64位)。
MacOSX10.5.8或以后版本(x86)。LinuxUbuntu。软件安装022.2.1JDK的安装
JDK的安装步骤说明如下:
下载JDK。通过Android系统架构可以知道,要进行开发需要下载并安装Java的开发环境。首先需要下载免费JDK软件包。Android16SDK新特性需要高于JDK17以上版本支持。JDK包含一整套开发工具。由于Sun公司已经被Oracle公司收购,因此需要到Oracle公司的网站下载,下载地址是:/technetwork/java/javase/downloads/index.html,值得注意的是,必须下载完整的JDK开发包,不可以只安装JRE运行版本,下载界面如图2.1所示。目前最新版本是JDK24,但是为了更好的稳定性,建议使用JDK24。
安装JDK。双击下载的可执行文件,接受许可后就可以安装了。安装过程比较简单,就不再展开描述了。
配置Java环境变量。为了使用Java工具进行编译、运行,需要配置Java环境变量,采用相对路径的方法,需要设置的三个环境变量:JAVA_HOME、CLASSPATH和PATH。假设将JDK安装到了C:\JAVA\JDK24\路径下,则右击“我的电脑”|“属性”|“高级”|“环境变量”。
配置JAVA_HOME:JAVA_HOME=“C:\JAVA\JDK24\”。
配置PATH:PATH=“%JAVA_HOME%\bin;”。图2.1
JavaJDK下载界面2.2.2AndroidStudio
图2.2
AndroidStudioMeerkat下载页开发Android16应用程序需要下载支持相关特性开发的AndroidStudio版本。Android官方推荐的是meerkat版本。到/studio开发网页,如图2.2所示,根据自己的操作系统下载Androidstudio软件安装包。本书使用官方推荐的AndroidStudioMeerkatFeatureDrop|2024.3.2Patch1进行开发,发布时间是2025.5.22。
下载完成后,双击即可安装。AndroidStudio包含开发Android应用所需要的文件、运行环境及相关工具,如图2.3所示。图2.3
AndroidStudio运行界面2.2.2AndroidStudio
AndroidStudio的“Tools”菜单下包含一个“Android”菜单项,如图2.4所示,单击其中的子菜单“SDKManager”会启动SDK管理器。通过SDK管理器可以查看本机已经安装的AndroidSDK版本,如图2.5所示。
SDK管理器,如图2.6所示,可完成对SDK的文档、工具等进行相应的安装和更新工作。选中status项为notinstalled的项,单击OK按钮即可下载。图2.4
Android子菜单图2.6
SDK管理器下载SDK图2.5
SDKManager2.2.3创建AVD
在AndroidStudio中单击
Tools|DeviceManager命令,启动Android虚拟设备管理器,如图2.7所示。单击按钮,选择“CreateVirtualDevice”出现新建虚拟设备界面,如图2.8所示。总体而言,界面分为左中右三部分,左侧为Phone、Tablet、WearOS、Desktop、TV、Automotive六个类别,说明Android16对手机、平板、电视、可穿戴设备、桌面应用、车载应用的开发都提供了支持;右侧为针对左侧的某个类别已经建立好的虚拟设备的配置文件,可基于配置文件直接创建虚拟设备。图2.7
Device管理器图2.8
新建虚拟设备界面2.2.3创建AVD
例如,要基于SmallPhone配置文件创建虚拟手机,其分辨率为1080×2400,显示分辨率为420dpi,需要在左侧单击“Phone”,在中间选择“SmallPhone”配置文件,然后单击“Next”按钮,出现虚拟设备配置界面,如图2.9所示,为虚拟设备设定名字,选择APILEVEL和SERVICE,选择系统映像文件,决定虚拟手机的Android系统版本、系统架构以及API等级。设定APILevel为36,架构为x86_64,单击“Additionalsettings”标签页,进入虚拟设备参数配置界面,如图2.10所示,可对虚拟设备的皮肤、前后摄像头、横屏还是竖屏、存储空间、绘图使用硬件加速还是软件加速等信息进行配置。最后单击“Finish”按钮,完成虚拟手机设备的创建。创建的虚拟设备会出现在设备管理器中,单击运行即可启动,如图2.11所示。图2.9
系统映像选择图2.10
虚拟设备参数配置图2.11
新创建的AVD创建第一个Android应用程序032.3.1创建HelloWorld工程
启动AndroidStudio,依次选择File|New|NewProject,将会出现如图2.12所示的界面。左侧选择要创建的工程类型,右侧选择具体工程模板。左侧我们选择“PhoneandTablet”创建手机和平板应用,右侧选择NoActivity工程模板,以创建一个没有Activity的工程架构代码。单击Next按键,出现如图2.13所示工程配置界面。在name项中输入项目名称“HelloWorld”,在packagename中输入“roduction”,系统会自动生成包名为“roduction.helloworld”,ProjectLocation指定工程文件存放的位置,“Language”选择“Java”。AndroidStudio支持Java和Kotlin编程,本书的编程语言都为java。“minimumSDK”设置为“API36.0”。单击“Finish”按钮,完成工程创建,生成如图2.14工程文件。AndroidStudio会用Java语言进行代码生成,同时支持Kotlin语言。图2.14
创建的工程文件图2.13
设置工程参数图2.12
创建HelloWorld工程2.3.1创建HelloWorld工程
AndroidStudio会根据刚才指定的相关信息生成相关工程结构,如图2.14所示。但是由于目前工程中并不存在Activity,所以无法直接运行。下面我们为该工程添加可运行的Activity。在Android视图下,右击Java文件夹,选择NEW→Acttivity→EmptyViewsActivity,如图2.15所示,出现新建Activity界面,如图2.16设置。选中generateaLayoutFile复选框以生成布局文件,选中LauncherActivity复选框,使新建的mainActivity成为启动Activity,SourceLanguage选择Java。点击“Finish”,工程中会生成MainActivity.java文件,同时在res目录下,会生成layout/activity_main.xml布局文件。双击activity_main.xml打开文件编辑器,拖入TextView组件。由于布局文件默认布局为ConstraintLayout,因此需要为拖入的TextView组件新建水平和垂直两个方向的constraint。然后,修改TextView的Text属性为“HelloWorld!”如图2.17所示。图2.16Activity设置图2.15新建JavaActivity2.3.1创建HelloWorld工程
通过DeviceManager启动虚拟机“SmallPhone”,按Shift+F10快捷键,将生成的工程运行到虚拟机上查看运行效果,如图2.18所示。图2.18运行效果图2.17添加TextView2.3.2相关代码
双击HelloWorld工程中的MainActivity.java,该文件程序代码如下:packageroduction.helloworld;importandroid.os.Bundle;importandroidx.appcompat.app.AppCompatActivity;publicclassMainActivity2extendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setTheme(androidx.appcompat.R.style.Theme_AppCompat_Light);setContentView(R.layout.activity_main);}}MainActivity.java中的代码比较简单,表明类MainActivity继承了AppCompatActivity类,并重写了onCreate()方法。AppCompatActivity类是AndroidStudio中默认的构建自定义Activity的模板类,与Activity相比,AppCompatActivity提供了更丰富的功能。科技在MainActivity的onCreate()方法体中调用了父类的onCreate()方法,然后调用以下语句:
setTheme(androidx.appcompat.R.style.Theme_AppCompat_Light);setTheme设置了活动的主题为Theme.AppCompat.Light。这是一个预定义的主题,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB37T 5366-2026 建筑幕墙工程技术标准
- 体育场扣件式钢管脚手架施工方案
- 专科护理不规范原因分析及整改措施
- 进口食品企业质量安全管理制度
- 2026人力资源师考试试题及答案
- 2026年度学校辅导员少先队知识竞赛练习题及答案
- 放射医学模拟试卷及答案(副主任医师)
- 中原银行面试题及答案
- 感恩教育主题班会课件
- 中外历史纲要(下) 选择性必修3 第30单元 第58讲 战争与文化交锋
- 商标知识题库及答案
- 永登县石灰沟防洪治理工程报告表
- 计算机软件技术的发展趋势
- GB 28375-2025混凝土结构防火涂料
- 检验检查结果互认培训
- 《PLC应用项目工单实践教程》课件 模块2 S7-1500PLC位指令应用
- 术后肺部感染的预防及护理
- 《新能源乘用车二手车鉴定评估技术规范 第1部分:纯电动》
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 工程造价咨询服务投标方案(技术方案)
- DL∕T 1708-2017 电力系统顺序控制技术规范
评论
0/150
提交评论