Google-Android智能手机软件开发技术_第1页
Google-Android智能手机软件开发技术_第2页
Google-Android智能手机软件开发技术_第3页
Google-Android智能手机软件开发技术_第4页
Google-Android智能手机软件开发技术_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GoogleAndroid

智能软件开发技术主讲人:杨聪东北师范大学理想信息技术研究院agenda1、智能的开展2、Android操作系统介绍3、Android软件开发技术4、Android在中国agenda1、智能的开展2、Android操作系统介绍3、Android软件开发技术4、Android在中国智能的开展Voice--SMS--Colorscreen--Camera(Game)—MP3/MP4(Storage,Bluetooth)---MobileTV--GPS--Mobileinternet诺基亚投影5嵌入式系统:PDA个人信息助理掌上电脑导航产品与谷歌地图PDA+GPS导航=DopodU1000,且支持SkyPEMap-Star的GPS定位设备华硕GPS导航器SONYGPS导航器Nokia6110四频HSDPA/GPS导航器嵌入式系统:普通智能与PDA结合网络gphone韩国电信/电视遥控器二合一产品SonyEricsson超小型电脑放在底座上成为电脑Nokia户外音响内置DVB-H移动电视扩展手表:M3001英寸的显示屏USB接口可播放音乐支持蓝牙Nike的Speed+手表结合iPod和运动计测Matias公司让智能型可以插的键盘能够使用各种软件,还能创造虚拟按键IPad电子书+上网本+游戏机嵌入式技术逐步桌面化2007年计算机厂家进入市场苹果iPhone2008年互联网厂家进入市场谷歌gPhone革了谁的命?传统厂家出境艰难操作系统Symbian诺基亚为主,受谷歌冲击2010年2月开源,S60是主流WindowsCE微软:“WindowsMobile将熟悉的Windows体验扩展到了移动环境中,所以您可以立即使用它投入工作。”现在更名为WindowsPhone7RIM加拿大BlackBerry〔黑莓〕,邮件是特色对输入设备都做过特别设计,使输入设备可以频繁使用iPhoneOSMacOSX的衍生,类Unix系统,Objective-CPalmOS3Com公司的产品,专用于掌上电脑,PalmOS节能、占有非常小的内存、内置数据库,封闭操作系统MeeGo英特尔和诺基亚宣布整合Moblin和MaemoAndroid,MontaVista基于嵌入式LinuxSymbian摩托罗拉、西门子、诺基亚→诺基亚→开源前身是Psion公司的EPOC系统实时性、多任务的纯32位操作系统抢占式的多任务调度和内存保护具有功耗低、内存占用少等特点三个系统设计原那么是:用户数据的完整性和平安性至关重要不能浪费用户的时间所有的资源都是稀少的第二代内核EKA2可以运行在单处理器的:用户应用程序和信号栈两者都运行在一个处理器上SymbianOS操作系统按内核版本分有v6.1,v7.0,v8.0,v8.1,v9.1,v9.2等按用户平台〔界面〕分有S60,S80,S90,UIQ,MOAP等。WinCE微软从计算机到嵌入式系统1996-CE1.0,手持计算机〔HandheldPC〕,屏幕为480x240pixels、四色灰阶、2MB内存、44MHz处理器1997-CE2.x,PalmPC,支持彩色屏幕-与palm的纠纷2000-CE3.0,PocketPC,CompaqiPAQ2001-PocketPC2002,WinCE3.0核心,参加了功能的支持;同年针对小型化智能型发表Smartphone20022002-WindowsCE4.0.NET2003-WindowsMobile2003,以WindowsCE4.0.NET为核心2005-以WinCE5.0为核心的操作系统WindowsMobile5.0,支持3G网络,具备永续性内存储存一个版本到两个版本〔pocketpc,mobile〕,再回到一个版本精简的Windows95可以使用Windows平台上的编程工具〔如VB、VC等〕Windowsphone7.0WindowsMobile微软的手持设备,主要有、PDA、随身音乐播放器等2009年2月推出了WindowsMobile6.5的Phone7已经推出Motorola企业版左图为FR6000,右图为FR68HTCWindowsMobile6.5Windowsphone7.0微软4月底发布了WindowsPhone开发者工具CTP〔社区技术预览版〕的最新版本整合了最新发布的VisualStudio2010正式版为WindowsPhone仿真器升级了WindowsPhone7系统镜像2010年6月6日微软已经委托游戏开发公司TouchDimensions为WindowsPhone7平台开发20+休闲娱乐游戏硬件ARMv7-basedapplicationsprocessorHardwareaccelerationfortheDirectX®applicationprogramminginterfaceCapacitivemulti-touchscreenDigitalcameraBluetoothandWi-FiconnectivityFMradioreceiverA-GPSAccelerometer,compass,light,androximitysensors软件基于WindowsCE7内核RIMBlackBerry的经典设计宽大的屏幕和便于输入的QWERTY键盘,为拇指输入而优化最大特点就是和电子邮件的融合用户在任何有信号的地方接收互联网电子邮件推送邮件效劳〔pushemail〕新邮件自动由RIM的效劳器传送到效劳运营商,然后直接推送到黑莓终端上。封闭源码最新测试版本2009年12月PalmOSPalmOS是3Com公司的产品,专用于掌上电脑。主要特点:良好的节能功能。合理的内存管理,PalmOS占有非常小的内存。数据以数据库的格式存储1996-PalmPilot10002002-handera330胖梨PalmPre奔迈TreoProIPhoneOSiPhoneOS或OSXiPhone是由苹果公司为iPhone开发的操作系统iPhone、iPodtouch以及iPad以Darwin为根底的系统架构分为四个层次内核操作系统层〔theCoreOSlayer〕内核效劳层〔theCoreServiceslayer〕媒体层〔theMedialayer〕可轻触层〔theCocoaTouchlayer〕系统操作占用大概240MB的内存空间源码模式:封闭源码+开放源码组件最新测试版本4.0(build8A230m)2010-04-8IPad一台iPadWiFi版的实际价值是259.60美元触摸屏$95,金属后盖10.50美元,内部处理器等26.80美元处理器A4A4封装有三层两层RAM〔三星K4X1G323PE,256M〕一层含有微处理器。SOC,包括ARMCPU+GPU显示芯片〔PowerVRSGXGPU〕ARM架构,1GHz主频,Cortex-A8单核心微架构BSN网站称是A9,是错误的iPhoneOS3.22010年5月25日正式发布中移动OPhone及OMS(OpenMobileSystem)

是基于Android深度定制的实际产品基于Android深度定制的实际产品内核设备驱动程序浏览器引擎图形库DRM多媒体……应用协议栈进程调度Widget引擎本地应用框架Java虚拟机Flash播放器文件系统进程间通信网络协议系统库文件管理I/O操作网络功能系统功能调用Widget应用本地应用Java应用Flash应用Web应用浏览器操作系统应用平台中间件终端操作系统总体框架分析比照

基于其他系统内核类型开源性CPU指令集首次发布时间最近发布时间最新版本开发公司或组织SymbianEPOC微内核是ARM,x8619942010第一季度Symbian^3SymbianFoundationWindowsPhoneWinCE混合型否ARM,MIPS,x86,SuperH2000年4月2010年2月6.5.3MicrosoftBlackBerry无未知否ARM19992010年4月6.0RIMiPhoneOSDarwin混合型否ARM2007年1月2010年2月3.1.3AppleAndroidLinux宏内核是ARM2008年10月2010年5月2.2GooglePalm无未知否ARM199620075.5PalmwebOSLinux宏内核部分ARM2009年6月2010年3月1.4.1HPMeeGoLinux宏内核是x86,ARM2010年3月2010年5月1.0Intel,Nokia

多任务支持实时性软件安装方式内核编程语言应用编程语言编程API安全性模拟器用户界面Symbian是强软件包OviStoreC++C++,Java,PythonJ2ME,SymbianAPI数字签名WINSS60,UIQ,MOAP,QtWindowsPhone是强软件包,MarketplaceC++C++,C#,VB,Java.NET,J2ME,WinCEAPI证书和加密VS中集成Windows图形,SilverlightBlackBerry是弱软件包AppWorldC++JavaJ2ME,BlackBerryAPI数字签名有BlackBerry图形iPhoneOS否弱AppStoreC,C++,Objective-CObjective-CCocoaTouch数字签名有CocoaTouchAndroid是弱AndroidMarketC,C++JavaAndroidJavaClass权限控制有Android图形Palm否弱软件包CC,C++PalmAPI简单加密有Palm图形webOS是弱软件包、在线安装CC,C++,HTML,JavaScript,AJAXwebOSAPI

有webOS图形MeeGo是弱IntelAppUp,OviStoreC,C++C,C++MeeGoAPI

无Qt

智能操作系统的开展-WebOS互联网操作系统,最新型的嵌入式操作系统WebOS基于网络〔Web〕的操作系统Weboperatingsystem或者Web-basedOperatingSystem内涵运行在浏览器中的虚拟OS,是基于Web的效劳的开放式集合提供了WebOSAPI,能够根据WebOSAPI进行编程能够在WebOS中翻开应用程序外延用户通过浏览器运行基于Web的在线应用能实现PC操作系统上的各种操作程序语言以PHP,XML,JS等Web语言为主,尽可能消灭高级语言Android是典型的WebOSWebOS是下一代软件平台吗?优点基于Web的标准化程度很高,不同的程序和效劳能够方便的对接无需下载,维护方便,软件升级扩展性好免受病毒木马的骚扰,容易解决盗版问题,解决了收费困难的问题可在不同浏览器、不同的OS上运行程序,甚至可以在其他的终端缺点执行效率低机器码运行os→os运行浏览器→浏览器运行webos→webos运行webservice传统:机器码运行os→os运行software网络依赖性过强,对网络要求高WebOS本身开发难度大,js调试困难,浏览器的兼容性差隐私性:操作在网上,数据在效劳器上agenda1、智能的开展2、Android操作系统介绍3、Android软件开发技术4、Android在中国Android系统的诞生Android本意指“机器人”,最初由现任Google工程副总裁的安迪·罗宾〔AndyRubin〕创立于2003年,2005年被Google收购。开放联盟开放联盟,OpenHandsetAlliance:是美国Google公司与2007年11月5日宣布组建的一个全球性的联盟组织。联盟将会支持Google发布的Android操作系统或者应用软件,共同开发名为Android的开放源代码的移动系统。开放联盟包括制造商、芯片厂商和移动运营商几类。目前,联盟成员数量已经到达了43家。OHA与AndroidOHA是一个软硬件开发者组织,包括Google,NTTDoCoMo,SprintNextel,andHTC…目标:加速智能移动设备的开展提供用户更多更好更廉价的效劳由OHA开发的Android™,是第一个完整的、开放的、免费的智能移动开发平台。Android系统的成长历程2007年11月5日至2011年1月10日Android初步发布第一款机型DreamG1的诞生〔Android1.0时代〕不被市场认可--G1和G2逐渐被市场接受〔Android1.5时代〕HTCHero

G3广受欢送,成为最受欢送的机型〔Android1.6时代〕众多厂商加盟支持,机型越来越多,市场反响和占有率越来越高,同时伴随着Market出现爆发式增长。蓝牙2.1、多点触控支持是这一阶段的特色〔Android2.0时代〕支持动态桌面〔Android2.1时代〕支持在线视频Flash播放、网络共享功能,参加了Just-In-Time(JIT)功能较大提升了运行速度〔Android2.2时代〕内置NFCReader功能、强化游戏性〔Android2.3时代〕专门针对平板电脑进行优化的Android3.0版〔Android进入真正意义上的平板电脑时代〕Androidv1.02008年9月23日AndroidSDKV1.0发布;主要的变动为和wifi相关的改变,同时在androidpermission中做了不少权限改动,整个开发文档也得到了完善,和10月23日销售的T-MobileG1已经十分接近,但不包含GMail、Youtube等组件。2009年10月23日T-MobileG1〔Dream〕正式出售;Androidv1.5Android1.5版本相比之前的1.1版本增加了对屏幕虚拟键盘的支持。之前的老版本仅支持拍照,新版的增加了对视频录制功能,同时也将拍照时的启动速度做了优化,还可以将拍摄的视频发布到Youtube。支持了Widget,用户可以自行参加音乐播放器和文件夹快捷方式等。改进了GPS功能,定位库使用了A-GPS技术,搜星速度大幅提高。增加了VoiceSearch的语音识别功能,但是仅限于英文。蓝牙耳机支持A2DP蓝牙立体声,但仍然不能传输文件。内置的重力加速感应器增加了自动探测方向的支持。内置的GoogleChromeLite浏览器更新了Webkit内核,升级了包含了Squirellfish更快的JavaScript处理,从此浏览网页更为迅捷。用户界面细节改善,在Gmail、Calenda、Messaging等组件的外观都有较小改进。另外在程序菜单的背景出现花纹。中文显示和中文输入的支持,Android1.1除了英语以外,只能支持德语,而Android1.5的国际化有了更进一步的开展,支持包括中文在内的十几种语言。Android1.6Donut新的AndroidMarket:完全重新设计的AndroidMarket,可以显示更多的屏幕截图,支持显示推广图片/文字,新增运动、健康、主题和动漫4个分类。手势支持:新的SDK里面参加了一个GestureBuilder类,可以让开发者生成针对某个应用程序的手势库。支持CDMA网络.TXT-2-speech:Donut新包含了由SVOX开发的Pico语音引擎,支持了更多语言的发音,包括英语、法语、德语、意大利语等。快速搜索框:新参加了QuickSearchBox(也叫AndroidSearch),可直接搜索括联系人,音乐,浏览历史,书签等内容。全新的拍照界面:用户现在可以同一个界面中快速切换照相,摄像或画廊模式。Android开发团队表示新版相机程序启动速度快了39%,拍照间的延迟减少了28%。应用程序耗电查看:哪个软件耗多少电,一见了然,耗电量也会成为消费者选择软件的依据之一。支持VPN:可以连接到基于pre-sharedkey或证书的L2TP/IPSEC,以及标准的L2TP/PPTPVPN网络。其他:支持更多的屏幕分辨率,如WVGA,QVGA等。linux内核升级到。支持OpenCore2媒体引擎。新增面向视觉或听觉困难人群的易用性插件。Android2.0Eclair支持多个Google和Exchange账户更便捷的快速联系人菜单统一的电子邮件收件箱支持短信和彩信的搜索用户自定义短信自动删除功能改善相机的白平衡、微距、特效等功能两指扩张放大网页、支持HTML5支持蓝牙2.1更佳的图像硬件加速Androidv2.1–v2.22010年1月11日Android2.1SDK发布,在此之前一周Google第一步,搭配Android2.1系统的NexusOne已经正式发;支持动态壁纸效果,让不少用户初看到的时候眼前一亮,原来Android的桌面和操作体验效果也可以如此的绚丽。此外,Android2.1时代更多的可以说是BUG补丁的修补和完善。Android2.2的发布,具有重要的纪念意义,从这时起,Android正式开始完美支持页面Flash视频和图片,让用户的浏览体验效果提升了一个台阶。Android2.3Gingerbread和NexusS游戏支持能力提升界面简化,运行速度提升增强的电源管理和延长待机时间类似iOS效果的一键复制粘贴功能更快更直观的文字输入功能多媒体影音功能提升新增应用管理方式增加下载管理器原生支持VoIP功能拍照时可以选择前置摄像头或后置自带的拍照摄像头内置NFCReader应用功能Android3.0平板电脑诞生在刚刚结束的CES2011会展上,使用Android3.0平板电脑专用优化版系统的摩托罗拉XOOM正式诞生,同时也将Android版本推至3.0版,是Android开展史上极具历史意义的一次重大更新。Android特点1、开放性2、应用程序无界限3、应用程序是在平等的条件下创立的4、应用程序可以轻松的嵌入网络5、应用程序可以并行运行Android的优势源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用。采用了对有限内存、电池和CPU优化过的虚拟机Dalvik,Android的运行速度比想象的要快很多。运营商〔中国移动等〕的大力支持,产业链条的热捧。良好的盈利模式〔3/7开〕,产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。Android的源代码遵循ApacheV2软件许可,而不是通常的GPLv2许可。有利于商业开发。具有强大的Linux社区的支持。Android的缺乏由于采用了Java作为应用开发语言,目前可用的传统第三方应用还很少,但由于Android是一款完全开源的移动计算平台,相信第三方应用会很快的丰富起来。Google提供了一套Java核心包(J2SE5,J2SE6)的有限子集,尚不承诺遵守任何Java标准,可能会造成Java阵营的进一步分裂。现有应用完善度不太够,需要的开发工作量较大。基于QEMU开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。暂不具备PushMail和Office(DataViz、QuickOffice方案近期推出)功能,目前主要面向的是普通消费者用户,对商业用户支持尚弱。Android系统架构(SoftwareStack)Android系统架构

–LinuxKernel核心系统效劳基于LinuxKernel2.6MemoryandProcessManagementNetworkStackDriverModelSecurity在硬件和软件之间以及和其他层次之间提供一个抽象层AndroidS/WStack–LinuxKernel(Cont)PowerManagementinActionIftherearenoactivewakelocks,CPUwillbeturnedoff.Iftherearenopartialwakelocks,screenandkeyboardwillbeturnedoff.AndroidS/WStack-RuntimeCoreLibrariesProvidingmostofthefunctionalityavailableinthecorelibrariesoftheJavalanguageAPIsDataStructuresUtilitiesFileAccessNetworkAccessGraphicsEtcAndroidS/WStack-LibrariesIncludingasetofC/C++librariesusedbycomponentsoftheAndroidsystemExposedtodevelopersthroughtheAndroidapplicationframeworkAndroidS/WStack–Libraries(Cont)SurfaceManager(SurfaceFlinger)Providingsystem-widesurfacecomposer,handlingallsurfacerenderingtoframebufferdeviceOperationAndroidS/WStack–AppFrameworkEnablingandsimplifyingthereuseofcomponentsDevelopershavefullaccesstothesameframeworkAPIsusedbythecoreapplications.Usersareallowedtoreplacecomponents.agenda1、智能的开展2、Android操作系统介绍3、Android软件开发技术4、Android在中国Android软件开发技术Android平台综述:平台介绍、开发者社区开发环境:构建Android开发环境应该程序:应用程序结构典型应用:用户界面图形编程数据存取网络连接硬件访问获取Android资料的途径有时需要翻墙下载SDK等相关软件查看文档在线帮助开发社区建立Android开发环境1.准备安装JDK(version5or6required)Eclipse(version3.4or3.5,neededonlyifyouwantdevelopusingtheADTPlugin).2.下载安装SDKstarterpackageToinstalltheSDK,simplyunpackthestarterpackagetoasafelocationandthenaddthelocationtoyourPATH.3.为Eclipse安装ADT插件4.添加其它SDK组件UsetheAndroidSDKandAVDManager,includedintheSDKstarterpackage,toaddoneormoreAndroidplatformsandothercomponentstoyourSDK.SDKSetupDone!Android可视化环境配置JDK1.6下载Eclipse3.4下载AndroidSDK2.x下载安装JavaJDKJDK5orJDK6(JREaloneisnotsufficient)AndroidDevelopmentToolsplugin(optional)NotcompatiblewithGnuCompilerforJava(gcj)安装EclipseEclipse3.4(Ganymede)or3.5(Galileo)EclipseJDTplugin(includedinmostEclipseIDEpackages)SeveraltypesofEclipsepackagesareavailableforeachplatform.FordevelopingAndroidapplications,werecommendthatyouinstalloneofthesepackages:EclipseIDEforJavaEEDevelopersEclipseIDEforJavaDevelopersEclipseforRCP/Plug-inDevelopersEclipseClassic(versions3.5.1andhigher)Android的SDK版本Android2.1Platform(new!)Android1.6PlatformAndroid1.5PlatformOlderPlatformsAndroid2.0.1PlatformAndroid2.0PlatformAndroid1.1Platform操作系统WindowsXP(32-bit)orVista(32-or64-bit)or7MacOSX10.5.8orlater(x86only)Linux(testedonLinuxUbuntuHardyHeron)64-bitdistributionsmustbecapableofrunning32-bitapplications.Forinformationabouthowtoaddsupportfor32-bitapplications.硬件环境ComponenttypeApproximatesizeCommentsSDKTools50MB必须Androidplatform(each)150MB至少一个SDKAdd-on(each)100MB可选USBDriverforWindows10MB可选,但Windows必须Samples(perplatform)10MB可选Offlinedocumentation250MB可选不包括JAVA、Eclipse。安装AndroidSDK的安装与配置ADT的Eclipse插件的配置PC运行模拟器的配置SDK的安装与配置1翻开eclipse,选择Window->preferenceSDK的安装与配置2导入SDK的安装路径,点击确定SDK的安装与配置3配置环境变量,变量的值为安装SDK的路径的tools文件夹,注意变量值之间要用分号隔开。ADT的Eclipse插件的配置1

点击help选择更新软件ADT的Eclipse插件的配置2点击AddSite在Location里面键入:ADT的Eclipse插件的配置3安装,完成后重新启动EclipsePC运行模拟器的配置

1点击Source下面的图标,弹出如下对话框。PC运行模拟器的配置

2点击New按钮,按照以下图填好配置信息。PC运行模拟器的配置

3点击CreateAVD。选中配置好的模拟器,start运行,在弹出的对话框选中Launch即可。创立第一个Android工程--HelloAndroid创立一个Android工程创立第一个Android工程--HelloAndroid工程名称SDKAPI版本MinSDKVersion与选择的SDKAPILevel要一致创立第一个Android工程--HelloAndroidRUN创立第一个Android工程--HelloAndroid显示内容:HelloWorld,Hello!Android的工程目录结构定义该工程所有资源的索引文件工程的所有包及源文件包含了工程中的所有资源:程序图标(drawable),布局文件(layout),常量(values)等包含该工程所使用的Activity,Service,ReceiverAndroid模拟器AndroidEmulator:可模拟本、通话等功能内置的浏览器和GoogleMaps都可以联网可以使用键盘输入,可单击模拟器按键输入,可以使用鼠标单击、拖动屏幕进行操作。Android模拟器模拟器和真机的不同之处不支持呼叫和接听实际来电,但可以通过控制台模拟呼叫(呼入和呼出)。不支持USB连接。不支持相机/视频捕捉。不支持音频输入(捕捉),但支持输出(重放)。不支持扩展耳机。不能确定连接状态。不能确定电池电量水平和交流充电状态。不能确定SD卡的插入/弹出。不支持蓝牙。模拟器使用本卷须知遇到系统关于C盘空间缺乏之类的提示,是由于Android模拟器每次运行时会临时生成几个.tmp后缀的临时文件,一段时间后,其可能占用几G的磁盘空间。需要手工定期清理。用户界面文本框TextView列表ListView提示Toast编辑框EditText单项选择RadioGroup、RadioButton多项选择CheckBox下拉列表Spinner自动提示AutoCompleteTextView时间和日期DatePicker、TimePicker按钮Button菜单Menu对话框Dialog图片视图ImageView带图标的按钮ImageButton拖动效果Gallery切换图片ImageSwitcher网格视图GridView卷轴视图ScrollView进度条ProgressBar拖动条SeekBar状态栏提示Notification、NotificationManager对话框中的进度条ProgressDialog数据存取Android有四种方式:SharedPreference轻量级键-值方式存储,以XML文件方式保存。文件采用java.io.*库所提供有I/O接口,读写文件。SQLit数据库SQLite是轻量级嵌入式内置数据库。ContentProviderContentProvider可为数据封装,为多个应用共享。多媒体开发—OpenCoreOpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。比照Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种根本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。程序员可以通过OpenCore方便迅速地开发出想要的多媒体应用程序,如录音、播放、回放、视频会议、流媒体播放等。OpenCore的内容OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能PVPlayer和PVAuthor以SDK的形式提供给开发者,可以在这个SDK之上构建多种应用程序和效劳。在移动终端中常常使用的多媒体应用程序,例如媒体播放器、照相机、录像机、录音机等等。OpenCore框架图OpenCore框架解释OSCL:OperatingSystemCompatibilityLibrary(操作系统兼容库),包含了一些操作系统底层的操作,为了更好地在不同操作系统移植。包含了根本数据类型、配置、字符串工具、IO、错误处理、线程等内容,类似一个根底的C++库。PVMF:PacketVideoMultimediaFramework(PV多媒体框架),在框架内实现一个文件解析(parser)和组成(composer)、编解码的NODE,也可以继承其通用的接口,在用户层实现一些NODE。PVPlayerEngine:PVPlayer引擎。PVAuthorEngine:PVAuthor引擎。OpenCore目录解析以开源Android的代码为例,OpenCore的代码目录external/opencore/。这包含的子目录如下所示:android:这里面是一个上层的库,它基于PVPlayer和PVAuthor的SDK实现了一个为Android使用的Player和Author。baselibs:包含数据结构和线程平安等内容的底层库codecs_v2:这是一个内容较多的库,主要包含编解码的实现,以及一个OpenMAX的实现engines:包含PVPlayer和PVAuthor引擎的实现extern_libs_v2:包含了khronos的OpenMAX的头文件fileformats:文件格式的解析(parser)工具nodes:提供一些PVMF的NODE,主要是编解码和文件解析方面的。oscl:操作系统兼容库pvmi:输入输出控制的抽象接口protocols:主要是与网络相关的RTSP、RTP、HTTP等协议的相关内容pvcommon:pvcommon库文件的Android.mk文件,没有源文件。pvplayer:pvplayer库文件的Android.mk文件,没有源文件。pvauthor:pvauthor库文件的Android.mk文件,没有源文件。tools_v2:编译工具以及一些可注册的模块。OpenCore的编译库在Android的开源版本中编译出来的内容,OpenCore编译出来的各个库如下所示:libopencoreauthor.so:OpenCore的Author库libopencorecommon.so:OpenCore底层的公共库libopencoredownloadreg.so:下载注册库libopencoredownload.so:下载功能实现库libopencoremp4reg.so:MP4注册库libopencoremp4.so:MP4功能实现库libopencorenet_support.so:网络支持库libopencoreplayer.so:OpenCore的Player库libopencorertspreg.so:RTSP注册库libopencorertsp.so:RTSP功能实现库OpenCore的编译库的依赖关系2.MediaPlayerMediaPlayer类可以用来播放音频、视频和流媒体,MediaPlayer包含了Audio和Video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。AndroidMediaplayer生命周期状态转换图清晰的描述了MediaPlayer的各个状态,也列举了主要的方法的调用时序,每种方法只能在一些特定的状态下使用,如果使用时MediaPlayer的状态不正确那么会引发IllegalStateException异常。Android特色开发Android是一个面向应用程序开发的丰富平台,它不仅有许多具有吸引力的用户界面元素、数据管理和网络应用等出众的功能,而且还可以开发出一些有特色有创意的应用程序。这里将介绍吸引开发人员眼球的特色开发,主要包括:传感器系统〔Sensor〕、语音识别技术〔RecognizerIntent〕和GoogleMap。传感器系统〔Sensor〕在Android系统中,内置了很多传感器。例如:一部拥有一个非常实用的加速感应器。这样,这部就支持重力感应、方向判断等诸多功能,在局部软件或者游戏中就可以自动识别屏幕的横屏、竖屏方向,并通过横屏、竖屏这样的操作来改变屏幕显示布局。传感器种类Sensor.TYPE_ACCELEROMETER:加速度传感器Sensor.TYPE_GYROSCOPE:陀螺仪传感器。Sensor.TYPE_LIGHT:亮度传感器。Sensor.TYPE_MAGNETIC_FIELD:地磁传感器。Sensor.TYPE_ORIENTATION:方向传感器。Sensor.TYPE_PRESSURE:压力传感器。Sensor.TYPE_PROXIMITY:近程传感器。Sensor.TYPE_TEMPERATURE:温度传感器。方位传感器传感器需专门模拟器测试语音识别技术〔RecognizerIntent〕Android系统移动设备的语音识别技术是非常强大的,可以通过语音指令发送电子邮件、短信、拨打或获得驾驶导航信息等等。例如语音搜索功能,我们只需点击小话筒形状的按钮,Android就可以通过语音识别想要搜索的内容。我们在玩游戏时,也可以通过语音来进行控制操作。语音识别技术,最大限度改善了人机交互的便携性。如何进行语音识别?Android中主要通过RecogniazerIntent来实现语音识别,它主要包括一些常量来表示语音的模式。例如:ACTION_RECOGNIZE_SPEECH:开启语音活动ACTION_WEB_SEARCH:开启网络语音模式,以网页搜索显示EXTRA_LANGUAGE:设置一个语言库EXTRA_LANGUAGE_MODEL:语言识别模式EXTRA_PROMPT:提示用户可以开始语音了EXTRA_RESULTS:将字符串返回到一个ArrayList中LANGUAGE_MODEL_FREE_FORM:在一种语言模式上自由语音LANGUAGE_MODEL_WEB_SEARCH:使用语言模型在WEB上搜索RESULT_NO_MATCH:没有检测到语音错误RESULT_AUDIO_ERROR:音频上遇到错误Android与GoogleMapAndroid操作系统平台很容易跟Google其他应用如Google地图的整合。在Android应用中,如果能在其中参加Google地图,那么会为你的应用增添强大的功能,目前不少LBS应用(基于地理位置的应用)就是充分将移动跟地图结合起来。创立AnfroidGoogleMap应用在用GoogleMap之前,我们需要安装GoogleAndroidSDK,然后申请一个GoogleMapAPIKey进行开发。编写AndroidMap应用并不复杂,只需要继承MapActivity类就可以了。MapView这个类功能是从GoogleMap地图中获得数据并且展示地图。MapActivity的主要功能有: 1)管理Activity的生命周期 2)为MapView类建立和撤消相关的效劳。在继承了MapActivity类后,我们要实现其中的isRouteDisplayed方法,这个方法其实是用来表示我们是否显示一些路线的信息,这个通常用在地图的飞行模式时才使用,这里我们不提供任何信息仅是返回false即可。在我们的activity中,我们将引用到MapView,它是在界面xml中定义的。同时我们也用到setBuiltInZoomControls方法设置地图允许缩放模式。要注意的是,把获得的GoogleMap的APIKEY写到MapView控件中去。最后,记得在AndroidManifest.xml配置文件中,加上对Internet和Map的使用访问权限,其中由于GoogleMap的API是另外提供的API,因此也需要使用use-library标签进行说明agenda1、智能的开展

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论