移动应用开发技术森诺胜利第一部分移动开发平台介绍第二部分开发模式的区别及适用场景目录第三部分移动开发技术介绍第四部分移动应用架构及过程第五部分推荐工具及组件一、移动应用平台发展历程移动应用平台定义是一个平台,旨在为移动应用服务。平台给移动应用提供两个层面的服务,一是应用开发方面,为开发人员提供开发语言、开发框架、开发工具、开发规范和最佳实践。二是应用管理层面,管理应用的打包、上传、发布、推广和分配。依赖平台提供的服务,移动应用可以更有效的利用终端资源,能够加快从策划到应用上线的进度,能够有效提升应用的质量。操作系统SDK开发工具部署工具设计工具应用生态圈iosandroid一、移动开发平台介绍智能终端发展对应智能终端的发展历程,平台开发技术也经理如下几个时期:非智能机时期,私有SDK时期,WAP时期硬件层面:功能机,黑色屏,灰屏,短信,GSM通话,单片机为主的CPU软件层面:WAP、WML。WAP是协议,WML是标记语言OS:私有OS或者很简陋的OS,并没有统一的OS开发语言:C/C++开发情况:无SDK或者私有SDK,用于公司合作性质的SDK,没有独立的移动开发者或者公司智能机时期,开放SDK时期,WAP2.0时期硬件层面:智能机,彩屏,GPRS/X-CDMA,MP3,MP4,ARM的CPU,MTK的CPU开始进入并占主导软件层面:Symbian的SDK,J2ME,WAP2.0进入主流OS:出现Symbian这样的合作OS或者基于Linux的一些OS开发语言:C/C++,Java开发情况:SDK标准更加的开放。SYMBIAN开发成为主流一、移动开发平台介绍移动应用平台发展手机OS时期,更加强大的SDK,HTML(5)取代WML成为移动Web网页技术的主流技术硬件层面:OS手机,高分屏,3G+4GLTE,多核CPU+大功率显卡,大容易SD卡进入主流。触摸屏,视频,照相,语音,动力仪,GPS成为标配软件层面:WAP网站慢慢消失,HTML5取代WML成为移动网页开发的主流技术OS:Android,iOS成为主流,同时还有FireOS,Ubuntu进入开发语言:C/C++,Java,object-c,swift,javascript,etc.开发情况:SDK标准分成两大主要阵营ios与android,web手机开始初具规模。一、移动开发平台介绍移动应用平台发展IOSIOS:即iPhoneOS,苹果公司开发的移动操作系统,于2007年公布,最初的设计是作为iPhone的操作系统,由于它的成功,后续也应用在iPod、iPad、AppleTV等产品之上。IOS与MacOSX一样同属于类Unix的商业OS。2007.62007.102008.32010.22010.620112012.620132014-2016Iphoneos1首发SDK首发测试开发报首发系统重构,ipad搭载os改名IOSApp突破50万Ios6,200项功能Ios7,扁平化设计Ios8、9发展历程概述一、移动开发平台介绍IOSiOS的系统架构分为四个层次:核心操作系统层(CoreOSlayer)、核心服务层(CoreServiceslayer)、媒体层(Medialayer)和可触摸层(CocoaTouchlayer)。•CoreOS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。•CoreServices是核心服务层,可以通过它来访问iOS的一些服务。•Media是媒体层,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。•CocoaTouch是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。一、移动开发平台介绍IOS1.基于SDK能够开发运行在ipone、ipad、iwatch等设备上的应用。•开发工具xcode:App集成开发工具,性能稳定、功能强大。提供了代码编辑器、编译器、构建器等工具。•开发语言object-c、swift:object-c是面向对象的c语言,swift是苹果公司出的现代编程语言,几乎集成了现代流行开发语言(java、go、javascript等)的优点,与oc相比开发速度和体验更好。•设计工具Storyboard:xcode中集成了UI设计提供具,开发人员可以通过拖拽组件面板来构建应用,同时可以管理UI界面之间的传递关系。一、移动开发平台介绍IOS2.App的发布:发布应用的应用商店并管理版本。•打包上传:提供了App打包上传工具,根据开发者证书的不同提供了不同的打包方式。•证书管理:分为开发者证书和发布证书两种,开发者证书用于App过程中进行实机测试,发布证书用于把App发布到AppStore中。•App管理:应用发布后就可在AppStore中进行出售,平台自动统计下载情况,并进行收入分配,应用更新需要重新发布。一、移动开发平台介绍AndroidAndroid:2005年Google收购并注资Android,与84家同盟共同研发优化,随后以Apache许可授权开放了其源码,2008年10月发布第一款智能机,11年市场份额全球第一。Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。概述发展历程1.2003年10月,AndyRubin等人创建Android公司,并组建Android团队。2.2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。3.2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。Google以Apache免费开源许可证的授权方式,发布了Android的源代码。4.2008年9月,谷歌正式发布了Android1.0系统。5.2012年1月6日,谷歌AndroidMarket已有10万开发者推出超过40万活跃的应用。6.2013年11月1日,Android4.4正式发布。7.2014年10月15日,Android5.0正式发布.一、移动开发平台介绍AndroidAndroid的系统架构和其操作系统一样,采用了分层的架构,从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。系统架构一、移动开发平台介绍Android•应用程序:Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。•应用程序框架:开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块。•系统运行库:每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。•Linux内核:Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。一、移动开发平台介绍Android1.利用AndroidStudio开发App:Google提供了集成化开发工具androidstudio,该工具集代码编写、智能提示、可视化设计、一站式构建为一体,为开发人员提供良好开发体验。2.App能够安装绝大多数手机中:当前android系统的预装量已经是世界第一,得到了绝大多数手机厂商的支持,这意味着开发的App可以运行在上亿台的移动终端中。3.App可以兼容之前的android版本:androidsdk有向前兼容的特点,新的版本会持续兼容早期的版本,开发人员只需开发最新的版本(不使用新版本的api),就基本可以在早期的系统中运行。4.App可以发布在第三方应用市场中:android拥有众多的第三方应用市场,比如应用宝、91助手、百度手机助手等等,应用发布在这些平台中。一、移动开发平台介绍第二部分开发模式的区别及适用场景第二部分移动开发平台介绍目录第三部分移动开发技术介绍第四部分移动应用架构及过程第五部分推荐工具及组件16二、开发模式区别及适用场景开发模式当前主流的开发平台有ios、android、html5和windowsphone,开发模式有原生开发、html5开发和混合开发三种:①原生开发:原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)。原生应用程序看起来(外观)和运行起来(性能)是最佳的。②html5:HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。这种只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行。③混合:混合应用程序让开发人员可以把HTML5应用程序嵌入到一个细薄的原生容器里面,集原生应用程序和HTML5应用程序的优点(及缺点)于一体。17从兼容性和跨平台两个纬度进行技术优劣比较。二、开发模式区别及适用场景开发模式18二、开发模式区别及适用场景开发模式原生应用程序提供了最佳易用性、最佳特性以及最佳总体移动体验,以下这些是只能通过原生应用程序才能实现的功能:多点触控:双击、缩放及其他组合的用户界面(UI)手势。快速图形API:原生平台为你提供了显示最快速的图形。如果你显示只有寥寥几个元素的静态屏幕,这个功能可能不太重要,但如果你使用大量数据,需要快速刷新,这项功能却很重要。流畅动画:与快速图形API有关的是实现流畅动画的功能。这在动画、高度交互的报表或者转换照片和声音的计算密集型算法中显得尤为重要。内置部件:摄像头、地址簿、地理位置及设备的其他原生功能可以无缝地整合到移动应用程序中。另一个重要的内置部件是加密的存储装置,这方面稍后会有详细介绍。原生平台是人们耳熟能详的平台,所以如果你在这个熟悉的平台上添加人们期望的所有原生功能,也就拥有了一款使用起来完全更容易的应用程序。19二、开发模式区别及适用场景开发模式HTML5移动应用程序大致上来说就是个网页或一系列网页,旨在可以在尺寸极小的屏幕上打开。因此,HTML5应用程序与设备无关,可以用任何一种现代的移动浏览器来打开。重大局限性在于离线存储和安全,对企业移动应用程序来说更是如此。虽然你可以通过将文件缓存在设备上,貌似实现离线功能,但这根本不是一种很好的解决办法。HTML5已全然成为一种非常流行的构建移动应用程序的方式。现在市面上有多种UI框架,可以解决开发人员都不想再次面对的一些最复杂的问题。iScroll在模拟快速滚动方面做得非常出色。JQueryMobile和SenchaTouch提供了优雅精致的移动组件。20二、开发模式区别及适用场景开发模式混合开发集原生和HTML5两者的优点(及缺点),有两种部署方式:本地:你可以将HTML和JavaScript代码包装成移动应用程序二进制代码,采用类似原生应用程序结构的方式。在这种场景下,你使用RESTAPI,在设备和云端之间来回。服务器:另外,你可以从服务器来部署标准的Web应用程序(可采用可选的缓存机制,以提高性能),只要将容器用作UIWebview上面那层细薄的外壳。21开发平台原生开发html5混合开发优势①性能高、体验好②扩展性好、定制灵活③平台厂商主力推荐,互联网App首选④开源组件丰富,可选择性广①开