您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第01讲 移动应用开发概论
Android课程讲义课程结构•第一次课:概论•Android历史、系统架构、平台介绍、特点、应用领域等。•第二次课:环境安装•第三次课:Helloworld•Android应用程序结构及程序生命周期。•第四次课:用户界面•Android布局、控件、界面事件处理等。•第五次课:后台服务–Service的创建、调用,service与activity之间通信,线程的使用。•第六次课:数据存储•Android常用的四种数据存储方式。•第七次课:网络•HTTP、UDP/TCP访问网络。•第八次课:硬件与媒体•传感器、相机、音频和视频、动画•第九次课:位置服务与Google地图的使用•第十次课:Android驱动开发获取Android资料的途径•–有时需要翻墙•–下载SDK等相关软件–查看文档–在线帮助–开发社区1、平台概述开放手机联盟•开放手机联盟,OpenHandsetAlliance:美国Google公司于2007年11月5日宣布组建的一个全球性联盟组织。•联盟将会支持Google发布的Android手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动系统。•开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员数量已经达到了79家。开放手机联盟创始成员•Aplix、Ascender、Audience、Broadcom、中国移动、eBay、Esmertec、谷歌、宏达电、英特尔、KDDI、LivingImage、LG、Marvell、摩托罗拉、NMS、NTTDoCoMo、Nuance、Nvidia、PacketVideo、高通、三星、SiRF、SkyPop、SonicNetwork、SprintNextel、Synaptics、TAT、意大利电信、西班牙电信、德州仪器、T-Mobile和WindRiver。GooglePhoneOHA与Android•OHA是一个软硬件开发者组织,包括Google,NTTDoCoMo,SprintNextel,andHTC…•目标:–加速智能移动设备的发展–提供用户更多更好更便宜的服务•由OHA开发的Android™,是第一个完整的、开放的、免费的智能移动开发平台。Android•Android是为移动设备开发的软件栈,包括了操作系统、中间件和重要的应用软件。•Android运行在Linux内核上,开发应用程序使用的是Java编程语言。•AndroidSDK提供多种应用开发所必要的工具与API。特色•应用框架可以重复使用,其组件也可以更换。•Dalvik虚拟机针对移动设备进行了优化。•优化的图形能力支持2D、3D图形(OpenGLES1.0)。•集成了基于开源WebKit引掣的浏览器。•SQLite作为结构化数据存储。特色•多媒体支持多种音频、视频和图像格式。•支持GSM电话(依赖于硬件)•支持Bluetooth,3G和WiFi(依赖于硬件)•支持照相机、GPS、指南针和加速度仪等传感器硬件。•丰富的开发环境。包括模拟器、调试工具、内存运行检测,以及为EclipseIDE所写的插件。Android的优势•源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用。•采用了对有限内存、电池和CPU优化过的虚拟机Dalvik,Android的运行速度比想象的要快很多。•运营商(中国移动等)的大力支持,产业链条的热捧。Android的优势•良好的盈利模式(3/7开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。•Android的源代码遵循ApacheV2软件许可,而不是通常的GPLv2许可。有利于商业开发。•具有强大的Linux社区的支持。Android的不足•由于采用了Java作为应用开发语言,目前可用的传统第三方应用还很少,但由于Android是一款完全开源的移动计算平台,相信第三方应用会很快的丰富起来。•Google提供了一套Java核心包(J2SE5,J2SE6)的有限子集,尚不承诺遵守Java任何Java规范,可能会造成Java阵营的进一步分裂。Android的不足•现有应用完善度不太够,需要的开发工作量较大。•基于QEMU开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。•暂不具备PushMail和Office(DataViz、QuickOffice计划近期推出)功能,目前主要面向的是普通消费者用户,对商业用户支持尚弱。系统环境•AndroidSDK所支持的操作系统:–WindowsXP(32位)、或Vista(32或64位)–MacOSX10.5.8版本及以上(只支持x86)–Linux(已在LinuxUbuntuHardyHeron版本上测试。也支持64位,但要安装包“ia32-libs”,以支持32位应用程序的运行)Android的系统架构LinuxKernel•Android基于Linux2.6内核,但不是Linux•内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等。•并不包括全部的Linux。Android内核•Linux内核位于硬件和软件堆之间的抽象层–核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。–内核扮演的是硬件层和系统其它层次之间的一个抽象层的概念。–操作系统的初始化和编程接口和标准的Linux系统是有所不同的。Libraries•BionicLibc•FunctionLibraries•NativeServers•HardwareAbstractionLibrariesLibrariesC/C++库:被各种Android组件使用,通过应用程序框架,开发者可以使用其功能。包括:•媒体库:MPEG4H.264MP3JPGPNG.....•WebKit/LibWebCore:Web浏览引擎•SQLite关系数据库引擎•2D,3D图形库、引擎FunctionLibraries•WebKit–基于开源WebKit的浏览器–支持CSS、Javascript、DOM、Ajax•多媒体框架–基于PacketVideoOpenCORE平台–支持标准音频、视频•SQLite–轻型数据库,支持多种平台NativeServers-Surface•为多种应用提供2D、3D表面设计NativeServers-Audio•音频处理HardwareAbstractionLibs•硬件虚拟层•UserspaceC/C++librarylayer•硬件接口驱动•使Android平台逻辑与硬件接口分离AndoidRuntime•应用开发语言:Java•Dalvik虚拟机–指令:DalvikExcutable•Java标准库–把java代码编译为Dalvik可执行文件(dexformat)运行环境•核心库提供的Java功能Dalvik虚拟机依赖于Linux内核,•可同时运行多个Dalvik虚拟机,•每一个Android应用程序在它自己的DalvikVM实例中运行VM执行优化的Dalvik可执行文件(.dex)–Dx-工具把编译过的Java文件转换为dex文件DalvikVirtualMachine•Androidcustomimplementationvirtualmachine–Providesapplicationportabilityandruntimeconsistency–Runsoptimizedfileformat(.dex)andDalvikbytecode–Java.class/.jarfilesconvertedto.dexatbuildtime•Designedforembeddedenvironment–Supportsmultiplevirtualmachineprocessesperdevice–HighlyCPU-optimizedbytecodeinterpreter–EfficientlyUsingruntimememory•CoreLibraries–CoreAPIsforJavalanguageprovideapowerful,yetsimpleandfamiliardevelopmentplatformDVMvsJVM•DVM–Google–Dalvikexcutable•JVM–Sun–JavabytecodeApplicationsFramework•Activitymanager–管理运行应用程序•ContentProvider–在各应用之间共享数据•ResourceManager–管理非代码资源•NotificationManager–显示用户提示和状态栏•ViewsSystem–可扩展显示,可构建UIApplicationFramework•供核心应用使用,例如联系人,电子邮件,电话等•充分访问所有核心应用框架API•简化组件的重用Applications•核心应用,包括电子邮件客户端、SMS程序、日历、地图、浏览器、通讯录和其他应用程序。•所有应用程序都是用Java编程语言写开发环境•JDK•IDE–Eclipse•Eclipseplug-in-ADT•SoftwareDevelopmentKit(SDK)•AndroidEmulator•Debuger参考文献•••杨丰盛著《Android应用开发揭秘》机械工业出版社•王向辉等著《Android应用程序开发》清华大学出版社Thankyou!
本文标题:第01讲 移动应用开发概论
链接地址:https://www.777doc.com/doc-4012054 .html