本文当描述手机终端软件org.studio.crusoe.mobile.android总体设计方向和体系结构。
基于浏览器内核的客户端软件开发。
《Android 2.2 官方开发文档》
《Android 开发教程》
目前手机终端作为手持移动设备,正在颠覆原有的仅仅支持语音通话的功能,越来越强大的的智能手机硬件和软件平台的推出,大大的提升了手机的用途。手机开始作为智能终端,利用3G网络接入应用平台,为用户提供强大的在线支持。目前的各项应用主要立足于通用软件、游戏等功能,与此同时电子商务、企业信息化系统、核心业务系统对于手机终端软件的需求也日趋强烈。
企业的各项应用的特点是:应用复杂、数据量大、需求变更快,并不适合C/S的软件体系结构,这也就是多数企业信息化PC系统都是基于B/S架构的原因。但是,同时由于需要发挥手机终端的可移动、使用场景丰富的特点,信息系统必须能够使用系统硬件对业务进行支持,而这是传统的web应用所不具备的。
针对上述的系统要求,需要此客户端运行在在移动设备上,支撑服务端的web应用,同时支持web应用的本地硬件调用,并且提供良好的可扩展性。
目前主流的软件平台有Android、iOS、 Symbian、Windows Mobile,4个主要的基础平台。谁优谁劣不做过多的分析,毕竟目前这4个平台都是终端运用广泛的手机平台,但是开发的速度和入手难度是目前需要考虑的一个重要因素。Android平台开发是基于类Java平台进行开发的,语法上是和Java一致,只是编译上不完全遵循Java的规范。iOS开发语言是Objective-C。Windows Mobile是基于Visual Stuido开发平台的。Symbian作为我个人并不太看好,没有做太多的研究。
这样分析下来很明显了,作为一个Java开发出身的技术人员,Android的开发入门难度是最低的,可以使用熟悉的语言(Java)、熟悉的开发工具(Eclipse)进行系统开发,无疑会大大提高开发效率。同时iOS作为现在高端手机的操作系统,可以在第二阶段考虑支持。Windows Mobile的Visual Studio平台,之前也是做过很久的C#.NET,也不会太难入门,但是微软的组件都有一个特点,一般需要微软的技术支持,不然可用的资料太少,效率不高。
在Android平台下,由于Chrome浏览器的内核有Webkit组件,所以技术方向是比较明确的,利用Chrome浏览器的Webkit组件和Android平台SDK提供的API,完成web页面调用客户端功能组件,进而调用硬件设备,完成包括:拨叫电话、短信、照相、后台网络请求等系统功能。满足对手机平台硬件组建的功能使用。同时,也可以通过其他软件开放的Activity和Intent入口来完成对第三方软件的调用。
?
组件名称
组件功能
System
提供客户端软件基本的功能,主页面、系统菜单、主页面回调处理
Browser Core
提供基于Chrome的浏览器核心,用于解析Web页面,http页面请求重载
GUI
提供客户端除主页面外的其他页面,如拍摄照片预览页面
Resource
资源文件,包括:UI描述文件、配置文件、图片、字符常量等
Js Ext Framework
提供对于html页面js的扩展支持,提供友好的UI页面,和对于手机组件的功能调用。包括照相机扩展、电话功能扩展等
HTTP Component
提供客户端后台的http网络请求的调用。用于进行页面外的网络交互。
SQL Lite
提供客户端的数据库的支持。可以存储轻量级缓存数据。
?
?