软件工程应用与实践复习笔记

企业级移动开发技术的概念,发展趋势

概念:

企业级移动开发技术就是针对企业的信息移动化,功能移动化,编写企业级的APP。它和传统的企业信息化一样,都是信息化管理的体现。不同的是,它突破了时间和地域的限制,员工可以利用装有企业级APP的移动终端(Android、iOS、WP等)随时随地收发邮件、审批报文、查阅咨询、处理订单等。相比传统企业信息化更加便捷、高效、贴近、及时。

发展趋势:

  • 移动互联网高速发展。移动互联网用户数量超过PC互联网用户数量。
  • 企业需求显著上升。教育、政府、金融、电信和流通等领域对移动应用的需求更大。
  • 拥有广阔的发展空间。目前我们已经迈入移动互联网2.0时代。

企业级移动市场机遇与挑战并存。广阔的市场前景向我们展现了一块巨大的蛋糕,但当前移动应用市场总体还处在启动阶段。

相比传统企业信息化的区别和联系

都是信息化管理的体现。利用信息化高效办公。

区别:

移动信息化突破时间、地点的限制,可以随时随地收发邮件、审批报文、查阅咨询、处理订单等。便捷、高效、贴近、及时。

企业移动开发的安全保障措施

  • 在产品设计和开发过程中就要考虑安全性,并进行安全性测试。
  • 对服务器进行监控和记录。
  • 测试服务器的安全性。
  • 使用访问控制、防火墙、入侵检测系统等防护措施提升安全性。
  • 设置蜜罐,将攻击者引向错误的方向。

移动开发的“推送”技术,及其实现细节

  • iOS系统的推送依靠一个系统常驻进程与Apple服务器通信。

    1. 应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS(Apple Push Notification Service)服务器。
    2. APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。
    3. 常驻进程把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

    特点:安全、快速、稳定、可靠、省电、更好的用户体验。

  • Android每个需要后台推送的应用有各自的单独后台进程,才能和各自的服务器通讯,交换数据。另外其实 Android 也有类似 APNS 的 GCM(Google Cloud Message),属于开发者可选,非强制。
    特点:费电、费流量、灵活性高

  • 微软为Window Phone提供的推送方案与iOS类似,也需要自己准备推送服务器。在Window Phone中有一个Push Client Service(PCS)。所有需要推送服务的应用程序都需要与Push Client Service通信。

SUP解决方案的概念、主要组成部分

Sybase Unwired Platform是 Sybase 新一代支持企业实现应用程序移动化的体系架构。它提供一系列全面的服务,帮助企业将适当的数据和业务流程移动化到任何移动设备上。Sybase Unwired Platform利用一个综合平台,将4GL工具和标准开发环境集成而支持的快速开发、异构设备部署和市场领先的设备管理技术结合起来,从而满足企业的所有移动应用需求。

SUP平台的基本组件为:

  • 数据服务,提供统一方式访问异构数据源,从结构化和非结构化数据一直延伸至预打包的应用。
  • 移动中间件服务,在多样化开发和部署环境中的企业数据和移动设备间架设起桥梁。
  • 消息服务,支持使用SMS/MMS服务进行提醒、消息传送和数据传输。
  • 设备服务,为开发和部署跨设备平台的应用提供统一接口。
  • 统一的4GL开发工具,为开发与企业数据源和流程有关联的移动应用提供一致、集成的环境。
  • 管理控制台,提供单一视图来管理、保护和部署移动数据应用与设备。
  • 数据服务,使企业实现了对SAP和Remedy即装即用的连接,以及全面支持与Web服务、数据库和定制应用集成的连接器架构
  • 全面支持JDBC/ODBC访问数据库
  • 支持文档(PDF、Word、Excel、PowerPoint)和二进制内容,例如Flash、图片、影像(所有的常见格式)、视频和音频(多媒体格式)

SUP解决方案的特点和优势

特点:

  • 快捷的安装、丰富的配置
  • 强大的管理平台
  • 高效的开发平台:Visual Studio,Eclipse
  • 一次设计,随处部署
  • 开箱即得的集成功能

优势:

  • 简化开发和部署过程-Sybase Unwired Platform包含一个4GL 工具环境,它极大简化了移动应用程序的开发。它与主流开发环境Eclipse集成,从而使开发者能够充分利用现有的工具和专业知识。它还为一系列的移动设备类型、型号和操作系统(包括Windows Mobile、Windows32(笔记本/平板电脑)和RIM BlackBerry)提供”一次设计、随处部署”的功能。
  • 简化后端的集成-Sybase Unwired Platform为不同的企业应用提供了”开箱即得”的集成功能,包括SAP和Remedy,或其他利用数据库或面向服务架构 (SOA) 的应用。
  • 简化管理和安全性-Sybase Unwired Platform与Sybase业界领先的设备管理和安全性解决方案完全整合,其提供单一的管理控制台,以便集中管理、保护和部署移动数据、应用程序与设备。

SUP的DMZ的作用、Relay Server的作用

DMZ,正式名称Demilitarized Zone,译名为“非军事区”,DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信息的公用服务器,比如Web、Mail、FTP等。这样来自外网的访问者可以访问DMZ中的服务,但不可能接触到存放在内网中的公司机密或私人信息等,即使DMZ中服务器受到破坏,也不会对内网中的机密信息造成影响。

Relay Server,中文名为“中继服务器”。它的作用像反向代理,允许设备通过开放的端口穿过防火墙与服务器通信。它运行在Microsoft IIS或Apache Web服务器上。

SUP MBO的基本概念和部署方式

MBO(Mobile Business Objects),移动业务对象。MBO通过SUP提供的自有类库和生成的代码封装了移动应用程序对本地和远程数据的访问,极大程度上简化了移动应用开发。

MBO可以通过直接部署项目(Deploy Project)或者通过生成项目的部署包(Create Mobile Deployment Package)来部署到SUP服务器上,为客户端应用提供服务端访问。

SUP的解决方案,相比较原生应用程序(APP)的方案,和HTML5方案,各有什么特点

SUP:一次开发,到处部署。它封装了对数据的访问和对象层。需要再针对每个平台边界界面部分代码。
原生:针对每个平台编写代码,工作量大。性能更佳。满足特定平台用户的需求和习惯。

HTML5:HTML5可以让你摆脱对平台的依赖,用户打开浏览器,直接就可以访问你的应用,而不需要经过各种Store的审核。实时更新。不能满足每个平台用户的习惯。尚不成熟。特定平台如果不经适配效果可能不佳。

Android的整体系统架构和组成部分

从低到高,分别是:

  • Linux Kernel:精简的Linux内核。还有Linux驱动。
  • Libraries(系统运行库):包括一些C/C++库,包括android运行时。
  • Application Framework:应用程序调用的API框架。包括资源管理器、通知管理器、活动管理器等。
  • Applications:包括核心应用程序,如短信、日历、浏览器、联系人等。

在Linux Kernel层上面其实还有一层硬件抽象层(HAL, Hardware Abstraction Layer)

Android系统层面的可定制部分,主要包括哪些内容

每一层都可以进行定制。从低到高,分别有:

  • Linux Kernel:定制驱动程序。
  • Libraries:定制核心库,如媒体库。
  • Framework:可以定制android运行时。如阿里云OS将Dalvik虚拟机换成了阿里云虚拟机。Android 4.4中可以将虚拟机换成ART。
  • Applications:大多数的定制都在这一层。替换原有应用程序,更换UI和启动器等。如MIUI。

Android的dalvik虚拟机具有什么特点

  1. 在编译时提前优化代码而不是等到运行时 。
  2. 虚拟机很小,占用的空间也小。
  3. 常量池已被修改为只使用32位的索引,以简化解释器 。
  4. 基于寄存器架构,比基于栈架构的java虚拟机执行效率更高。
  5. 针对ARM平台设计,移植性不如java虚拟机。
  6. 允许多个实例运行,也就是说每个App运行在一个虚拟机中。一个App崩溃不会影响到其他。

Dalvik虚拟机和java虚拟机的比较

  1. Dalvik VM和JVM 的第一个区别是 Dalvik VM是基于寄存器的架构(reg based),而JVM是栈机(stack based)。reg based VM的好处是可以做到更好的提前优化(ahead-of-time optimization)。另外reg based的VM执行起来更快,但是代价是更大的代码长度。
  2. 另外一个区别是Dalvik可以允许多个instance 运行,也就是说每一个Android 的App是独立跑在一个VM中.这样做的好处是一个App crash只会影响到自身的VM,不会影响到其他。 Dalvik的设计是每一个Dalvik的VM都是Linux下面的一个进程。那么这就需要高效的IPC。另外每一个VM是单独运行的好处还有可以动态active/deactive自己的VM而不会影响到其他VM
  3. stack based的VM不对host平台的reg数量做假设,有利于移植到不同的平台。而Dalvik则不关心这些,因为它本来就是为ARM这样的多reg平台设计的。JVM其核心目的,是为了构建一个真正跨OS平台,跨指令集的程序运行环境(VM)。DVM的目的是为了将android OS的本地资源和环境,以一种统一的界面提供给应用程序开发。严格来说,DVM不是真正的VM,它只是开发的时候提供了VM的环境,并不是在运行的时候提供真正的VM容器。

Android驱动开发特有的机制有哪些

  1. 在Android内核源代码工程中编写硬件驱动程序。
  2. 在Android系统中增加C可执行程序来访问硬件驱动程序。
  3. 在Android硬件抽象层增加接口模块访问硬件驱动程序。
  4. 在Android系统中编写JNI方法在应用程序框架层提供Java接口访问硬件。
  5. 在Android系统的应用程序框架层增加硬件服务接口。
  6. 在Android系统中编写APP通过应用程序框架层访问硬件服务。

WP的特点和优势

特点:

  • WP使用Metro动态磁贴界面。与其他移动操作系统不同的是,Metro界面强调的是信息本身,而不是冗余的界面元素。
  • 使用与Windows 8相同的内核。
  • 可以使用C、C++、C#进行开发。
  • 集成了Office办公套装。
  • 使用“应用商店”管理应用。
  • 自带的人脉功能集成各种社交账号和同步功能。

优势:

  • 系统UI先进,展示信息。与Win8界面相似,更容易上手。
  • 易于移植,PC上的应用和游戏可以较容易移植到移动平台。
  • 强大的办公功能。
  • 强大的人脉功能。
  • 拥有应用商店,购买应用更加方便和安全。

iOS开发相比较Android开发的特点

参考链接:http://www.csdn.net/article/2013-11-17/2817531

比较项目 语言 开发工具 开发平台 适配工作量 发布平台 主要盈利模式
iOS Objective C XCode Mac OS X 只需要为几款设备适配 App Store 应用付费
Android Java Eclipse等 跨平台 需要为多种设备适配 多个发布平台,包括Google Play 广告

使用Objective-C语言开发。开发平台单一,发布平台单一,盈利模式清晰。应用适配工作量小。

iOS的多点触控的实现要点

UIResponder (负责UI事件处理) 类中提供了四个方法处理多点触控:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

event 为触控动作引发的UI事件,只有发生了UI事件UIResponder的相应处理方法才会被调用。传递给上述方法的UI事件都是“touch”类型的,它关联了一系列UITouch对象来代表发生该事件时所有处于各种状态(began, moved, ended, cancelled )下的触控动作。
touches 同样是一系列 UITouch 对象的集合(NSSet),不过它只包含处于特定状态的触控动作。比方说调用touchesBegan 时传递的就是所有处在 began 状态(phase)的UITouch对象。

可以通过获取touches参数中的对象来确定当前有多少根手指触摸,touches中的每个对象都是一个UITouch事件,表示一个手指正在触摸屏幕。倘若该触摸是一系列轻击的一部分,则还可以通过询问任何UITouch对象来查询相关的属性。

HTML5的发展历程和趋势

发展历程:

  • 2004年,提出构想
  • 2008年,发布第一份草案
  • 2012年,推广阶段
  • 2020年,最终测试
  • 2022年,正式发布

趋势:

  • 各大浏览器厂商纷纷加入HTML5阵营
  • 使用HTML5开发的游戏和网页应用也越来越多
  • 越来越多的人使用HTML5进行跨平台应用开发
  • HTML5标准尚未统一,仍然有很大的发展空间
  • 对浏览器厂商也是一个挑战,不能很好支持的浏览器会被市场淘汰

HTML5的主要组成部分,相比较HTML4的增删

  1. 语义

    语义化的标签,HTML5 引入了新的 HTML 元素,通过使用这些元素,开发者可以更细致的描述文档结构,让文档更加易读,搜索引擎也能更好的理解页面中各部分间的关系,我们也可以搜索到更快,更准确的信息。
  2. 离线存储

    基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache,以及本地存储功能。Indexed DB(html5本地存储最重要的技术之一)和API说明文档。
  3. 设备通用

    从Geolocation功能的API文档公开以来,HTML5为网页应用开发者们提供了更多功能上的优化选择,带来了更多体验功能的优势。HTML5提供了前所未有的数据与应用接入开放接口。使外部应用可以直接与浏览器内部的数据直接相连,例如视频影音可直接与microphones及摄像头相联。
  4. 连接

    更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能。
  5. 多媒体

    支持网页端的Audio、Video等多媒体功能, 与网站自带的APPS,摄像头,影音功能相得益彰。
  6. 三维、图形与特效

    基于SVG、Canvas、WebGL及CSS3的3D功能,用户会惊叹于在浏览器中,所呈现的惊人视觉效果。
  7. 性能与集成

    没有用户会永远等待你的Loading——HTML5会通过XMLHttpRequest2等技术,帮助您的Web应用和网站在多样化的环境中更快速的工作。
  8. CSS3

    在不牺牲性能和语义结构的前提下,CSS3中提供了更多的风格和更强的效果。此外,较之以前的Web排版,Web的开放字体格式(WOFF)也提供了更高的灵活性和控制性。

你可能感兴趣的:(软件工程)