APP下载

基于Android的企业通信录的设计与实现*

2014-02-09陈俊龙沈奇威廖建新

电信工程技术与标准化 2014年8期
关键词:内存智能手机模块

陈俊龙,沈奇威,廖建新

(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876; 2 东信北邮信息技术有限公司,北京 100191)

基于Android的企业通信录的设计与实现*

陈俊龙1,2,沈奇威1,2,廖建新1,2

(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876; 2 东信北邮信息技术有限公司,北京 100191)

在移动互联网时代,以Android平台为核心的智能手机应用代表了移动增值业务未来的发展方向。本文介绍了一款旨在为企业及其员工提供方便、快捷、安全的企业通信社交手段的基于Android系统的企业通信录应用的设计与开发,详细阐述了应用的总体设计、模块分析和关键技术点。

Android;通信录;同步

随着智能手机的普及和移动互联网的迅速发展,智能手机已经成为人们生活和工作的必需品。而承载于智能手机的APP则代表了移动增值业务未来的发展方向[1]。

近年来,以苹果为代表的智能手机平台IOS和以Google为代表的智能手机平台Android得到了客户的普遍认同。其中,Android手机更以爆炸性的趋势占据高、中、低端市场[2],为移动运营商、手机制造商、软件开发商及客户提供了无限的发展空间,使市场上不断涌现出大量的基于Android平台的软件和增值服务。

伴随移动互联网浪潮,传统的基于PC端实现的企业通信录软件已经不能适应快捷有效沟通的要求。故由此功能需求出发,利用手机的便携、方便、随时随地拨打电话和访问网络的特性,开发了基于Android平台的企业通信录应用。企业通信录应用在数据存储上,将通信录保存在云端,做到了随时变化,随时更新;在交互设计上充分考虑了用户的使用习惯,将所有通信信息按企业组织架构进行组合,让用户可以快速查询、沟通,提高了通信效率;在资源整合上,添加了即时通信、个人通信录、企业综合门户,丰富了应用的功能。

1 总体设计及模块分析

1.1 总体设计

企业通信录意在为企业及其员工提供方便、快捷、安全的企业通信社交手段。通过企业通信录可以随时随地的更新员工通信信息、快速的查找员工联络方式、即时的消息沟通、方便的浏览企业门户、无缝的整合企业与个人通信录。

企业通信录总体结构如图1所示,主要由云交互模块、数据模块、功能模块和UI模块这四大模块组成。

(1) 云交互模块负责检查网络环境以及与服务器端进行数据的交互,包括用户的登录与注销、通信录数据信息的同步、个人资料的修改、访问企业私有云、即时通信信息的更新与发送。

(2) 数据模块包括应用中的SQLite数据库、Preference存储和文件存储。数据模块统一管理了应用中的数据处理及缓存。

(3)功能模块分为4个维度,分别是企业通信录、个人通信录、即时通信、企业门户。

(4) UI模块则是面向普通用户,在获取用户操作的基础上以友好、快捷、流畅、易用的方式将所需的信息流呈现在手机屏幕上。

图1 企业通信录总体设计图

1.2 模块分析

1.2.1 云交互模块

本模块主要是向数据模块和功能模块提供服务以及与服务器进行交互,包括数据请求子模块和数据解析子模块。

数据请求模块在具体实现中采用了HTTP(超文本传输协议)[3]。该协议是应用层协议,广泛应用于分布式协作超媒体信息系统,是一个客户端和服务器端请求和应答的标准,所有的WWW文件都必须遵守该标准。HTTP协议基于“请求-响应”模式的协议,一个客户机与服务器建立连接后,发送一个请求给服务器。服务器接到请求后,给予相应的响应信息。对应到数据请求模块则是通过GET和POST两种模式发起请求,服务器响应后将数据传送给客户端。

数据解析模块采用当前较为流行的数据传输格式——JSON。JSON格式是一种轻量级的数据交换格式[4],载荷高、易于通过编码进行解析的特点使其非常适合移动互联网领域的数据传输。本模块通过良好的设计做到解析方法的通用,统一地对网络数据解析、封装、调用。

云交互模块和数据模块共同完成了企业通信录云同步的功能。

1.2.2 数据模块

数据模块负责对从云端获取的数据和本机数据进行本地持久化存储、更新、读取、删除,为功能模块和UI模块提供了支持。该模块主要使用了3种存储方式,即SQLite数据库、Preference存储和文件存储[5]。

(1) SQLite数据库。SQLite是遵守ACID的关系型数据库管理系统的一款轻型的数据库,具有轻量级、单一文件存储、跨平台、可移植的特性,非常适合嵌入式系统[6]。在Android中通过SQLite数据库引擎可以实现结构化数据的高效存储、读取。在本应用中,将云端通信录信息、本地通信录信息以及即时消息以加密形式存储在SQLite中,方便功能模块快捷地获取各项信息并展示给用户。

(2)Preference存储。Preference是Android平台提供的一种轻量级的数据存储方式,应用场景主要是数据比较少、单一的配置信息。它以“KEY-VALUE”对的方式将数据保存在一个XML配置文件中。相对于数据库存储而言,Preference 存储在操作上更加简洁。应用中对这种基础存储方式进行了封装,并优化了整体的代码架构,在基于“KEY-VALUE”对的数据存储过程之上,提供了更加便捷的同时存储多组“KEY-VALUE”对数据的方法。该存储方式主要应用于记录用户的设置选项、个人配置等小量、零散的、非结构化的数据。

(3)文件存储。相对于SQLite数据库和Preference存储这两种方式,文件存储(即I/O存储方法)更适用于文本文件、PDF文件、音视频文件和图片等数据,但是缺点是更新数据较为困难。应用中的图像信息由于数据较大,所以采用文件存储的方式进行缓存。应用中基于对流的文件读写进行封装,对上层提供简洁、具有通用性的文件读写接口。这样不仅可以节约开发成本,同时高效的缓存机制节约了用户的流量损耗,提高了加载时间,优化了用户体验。

1.2.3 功能模块

功能模块是应用的核心模块之一,包含了最主要的功能、相关的处理流程和处理逻辑。该模块从数据模块和云交互模块中获取相应的数据,再返回给UI模块呈现给用户。

1.2.3.1 企业通信录模块

该模块提供了企业员工通信录分部门浏览、查询、分享名片、共享位置、添加到本地通信录、发送短信、拨打电话等功能。

在企业通信录浏览页面,用户可以通过滑动、点击屏幕右侧字母栏快速定位到要找的员工;同时也可以通过向右滑动屏幕呼出企业组织结构目录,点击相应部门浏览;亦可以触摸屏幕上方的搜索栏,通过拼音、文字、电话号码等多种方式搜索相应的员工信息。屏幕顶部的功能按钮提供了批量发送短信、发送邮件、收藏、添加到本地通信录的便捷功能。

在员工通信录详情页面,用户可以浏览员工的手机号、邮件地址等信息,同时底部按钮提供了发送即时消息、发送名片、添加到本地通信录、共享位置、发送短信、拨打电话的快捷入口。

1.2.3.2 个人通信录模块

该模块提供了本地通信录分群组浏览、查询、分享名片、共享位置、发送短信、拨打电话等功能。

本地通信录浏览页面同企业员工通信录浏览页面一致,用户可以分群组来浏览联系信息、多种方式快速定位到被查找联系人的位置、多种搜索精确查找到相应的联系人以及其它便捷操作。

在本地联系人通信录详情页面,展示了联系人的详细信息。用户可以收藏、发送名片、共享位置、拨打电话、发送短信。

1.2.3.3 即时通信模块

即时通信模块为企业内部员工提供了除电话、短信、电子邮件之外的沟通方式,用户可以发送话音、文字、视频、图片、表情、位置等多种信息格式,后台服务器提供实时推送功能。该模块大大降低了员工之间的交流成本,同时将工作与生活进行分隔,增强了员工的工作效率。

1.2.3.4 企业综合门户模块

企业综合门户模块为员工提供了登录企业内部网站的快捷方式,例如员工福利查询、门禁考勤查询、会议室使用情况等。该模块的实现扩充了企业通信录的功能、丰富了企业通信录的使用场景、增加了用户使用的粘性、方便了用户访问内部网站。

1.2.4 UI模块

UI模块是与用户直接交互的部分,包括启动页面在内的整体页面风格采用蓝、灰色基调,总体框架采用底部Tab菜单栏、顶部Title栏、中间承载内容显示的结构。其中在企业通信录和个人本地通信录页面采用了基于滑动式菜单的UI框架[7],导航抽屉的隐藏可以使应用更加清爽、主要内容更加突出;导航抽屉的显示可以使用户较为方便地选择想要显示的视图。

2 关键技术点

2.1 数据同步机制

数据同步是本应用的基础、核心功能,安全、高效、完整的同步是带来良好的用户体验的保障。数据同步主要包括通信录信息的同步和账户信息的同步,涉及到文本信息和图片信息的同步。其中账户信息的同步保证了即时消息访问的安全性和准确性,同时也确保了后台服务器推送消息的准确性。

具体实现中,通信录信息的同步采用了时间戳机制,客户端在启动的过程中,首先访问服务器端,比较本地保存的时间戳和服务器端的时间戳,如果本地时间戳早于服务器端的,则进行更新;然后,服务器端通过扫描云端的数据库将变更的通信录信息以加密的Json格式返回给客户端,数据解析模块将解析后的通信录信息增量更新到本地数据库,同时启动后台线程同步员工头像图片。最后同步成功,更新本地时间戳。具体流程如图2所示。

图2 数据同步流程

2.2 图像缓存与加载机制

在Android里,程序内存被分为2部分:Native和Dalvik。Dalvik就是普通的Java使用内存,应用中创建的对象是在这里面分配的,对于内存的限制是Native+Dalvik不能超过最大限制。Android程序内存一般限制在16M。因此对于大量使用图片的应用,必须考虑到图片如何高效地缓存、加载,同时避免出现内存泄露。

在本应用中,采用了如图3所示的图片缓存机制。首先判断图片是否已经缓存在内存中,如果内存中没有,再去从SD card中读取,如果两者都没有则从网上采取异步的方式获取[8]。这些图片会消耗大量的内存,所以我们需要对这些缓存在内存中的图像进行统一的管理与处理,避免造成内存溢出。

在具体实现中使用了Softreference〈Bitmap〉软存储机制来对图片进行统一管理[9]。如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。通过使用Softreference可以防止应用中由于图像造成的内存泄露,同时增强了应用的健壮性。

图3 图像缓存机制

为了能给用户带来更好的体验,应用中对图片采用了延迟加载(Lazy Load)策略。延迟加载机制是为了避免一些无谓的性能开销而采用的加载策略,具体就是当在真正需要数据的时候,才真正执行数据加载操作。例如只有当用户停止滑动列表,头像等图片才会加载到屏幕上。

3 未来展望

本应用实现了基于后台的云通信录管理,即时更新员工手机通信录,在Wi-Fi条件下,静默更新数据;实现了用户个人群组定义及群短信发送;实现了基于智能手机的消息推送;实现了员工信息加密保存等。

但作为一款移动互联网时代的企业员工必备应用,未来还有更多扩展的功能。例如会议活动推送、群组通信、多层级的权限控制、针对不同企业的统一定制模块等。

4 结束语

移动、互联是网上时代的核心,而基于Android平台的程序开发设计,则是在这两个核心之上开发出实用、易用、好用的应用, 这具有广阔的发展前景。本文设计实现了基于Android的企业通信录应用,功能实用丰富、界面友好清新、操作简单,为Android企业级应用的开发提供了一定的参考价值。

[1] 徐童, 廖建新. 移动互联网与移动智能网的互通研究[J]. 计算机工程与应用, 2005,20(1):9-12.

[2] 2013年Android市场占有率报告[EB/OL]. [2014-02-01]. http:// www.199it.com/archives/191276.html.

[3] Hypertext Transfer Protocol HTTP/1.1[EB/OL]. http://www.ietf.org/rfc/rfc2616.txt.

[4] Introducing JSON[EB/OL]. http://www.json.org/.

[5] 黄佳星, 王晶, 沈奇威. 基于Android的移动互联网应用框架方案[J]. 电信工程技术与标准化, 2012,25(8):77-80.

[6] Sqlite[EB/OL]. http://baike.baidu.com/view/19310.htm?fr=aladdin.

[7] Jeremy Feinstein.SlidingMenu[EB/OL]. https://github.com/jfeinstein10/ SlidingMenu.

[8] Displaying Bitmaps Efficiently[EB/OL]. https://developer.android.com/ training/displaying-bitmaps/index.html.

[9] 李宁. Android开发完全讲义(第2版)[M]. 中国水利水电出版.2012.

[10] 陈岑,沈奇威,廖建新. 基于Android的习惯培养应用的设计与实现[J]. 电信工程技术与标准化, 2013(9).

News

大联大诠鼎集团力推基于Spreadtrum的四核智能手机平台

8月5日,大联大控股宣布,其旗下诠鼎推出基于Spreadtrum (展讯) SC8830A多模TD-SCDMA和EDGE/GPRS/ GSM低成本的四核智能手机平台解决方案。

大联大诠鼎集团代理的Spreadtrum(展讯)SC8830A是一款高度集成的智能手机平台,集成多模WCDMA/HSPA/ HSPA+与GSM/GPRS/EDGE。SC8830A集成了四核的ARM Cortex-A7处理器,支持3D图形加速的ARM Mali MP4,包括蓝牙、GPS、Wi-Fi和FM的连接功能,从而降低了BOM成本。该芯片还支持13MP的摄像头、1080p视频,1080p全高清显示以及双卡双待功能,用户在进行通话的同时可以访问数据或者选择接收来自其它网络的电话。该模拟芯片集成了PMU、RTC电路、音频DAC/ADC、D类功率放大器、G类功率放大器和auxADC。该低成本平台是一款极具成本效益的解决方案,可使手机制造商将高性能的功能与实惠的终端价格合二为一。

Design and implementation of an enterprise address book software based on Android platform

CHEN Jun-long1,2, SHEN Qi-wei1,2, LIAO Jian-xin1,2
(1 Beijing University of Posts and Telecommunications Networking and Switching Technology, State Key Laboratory, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)

On the mobile internet era, smart phone applications based on the core of Android platform represents the future of development in the mobile value-added services. This paper introduced the design and development of an enterprise address book application under Android platform which is aimed to provide convenient, fast and secure enterprise social communication means, elaborated on the application of the general design, module analysis and the key technologies.

Android; address book; synchronous

TN929.5

A

1008-5599(2014)08-0077-05

2014-07-07

国家973计划项目(编号:2013CB329102);国家自然科学基金资助项目(No. 61372120, 61271019, 61101119, 61121001);长江学者和创新团队发展计划资助(编号:IRT1049);教育部科学技术研究重点(重大)项目资助(编号:MCM20130310);北京高等学校青年英才计划项目(编号:YETP0473)。

猜你喜欢

内存智能手机模块
智能手机是座矿
28通道收发处理模块设计
“选修3—3”模块的复习备考
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
假如我是一部智能手机
热门智能手机应用
内存搭配DDR4、DDR3L还是DDR3?
智能手机
集成水空中冷器的进气模块