杨硕珩,白如博,门士尧,张一博,李孝忠
(天津科技大学计算机科学与信息工程学院,天津 300457)
Bmob后端云在Android即时通讯APP开发中的应用*
杨硕珩,白如博,门士尧,张一博,李孝忠
(天津科技大学计算机科学与信息工程学院,天津 300457)
在移动互联网时代,越来越多的开发者需要快速跟进用户需求,快速迭代产品的开发方式是传统开发方式难以满足的,本文使用后端云业务为APP提供后台支持,事实证明这种方法将大大减少开发成本,使得开发者能更加专注APP特有功能的开发。
Bmob;后端云平台;Android;即时通讯APP
在移动互联网时代,获取即时的资讯消息不再需要通过门户网站,不同功能的手机应用软件可以根据用户的偏好自行下载安装,从而将个性化的服务直观地呈现在用户面前。
随着越来越多的开发者选择开发APP[1],传统的开发方法暴露出存在流程复杂的问题。复杂的开发流程无法匹配开发者对产品迭代速度的需求,许多软件的开发涉及诸如数据库开发、服务后台开发、客户端开发等多个方面[2],其中大量重复且繁琐的工作不仅浪费了大量社会成本,也不利于个人开发者和创业团队快速跟进用户需求[3]。
本文以基于安卓平台的即时通讯手机APP开发为例,使用Bmob云平台作为后端云,搭建了产品功能类似于“微信”的即时通讯软件,该方法的使用省去了个人开发者在后台搭建方面的学习成本,也减少了创业公司的人力成本,使其可以专注于软件功能设计和界面优化,相信这种开发方式将成为未来APP开发的方向。
Bmob后端云是国内领先后端云服务提供商[4],该平台主要面向个人开发者和中小型创业团队,提供免费基础服务或收费的高级服务。Bmob后端云平台封装了手机应用开发中许多常见的需要服务器访问请求的功能,开发者可直接调用封装后的功能编写软件代码,并使用Bmob云服务器完成这些功能,Bmob后端云平台提供的主要功能服务如下[5]:
云数据库是Bmob后端云最早提供的服务之一,帮助使用者在线创建自定义的云数据库,并提供可视化的云端数据表界面。非常友好地帮助开发者快速搭建后台。
消息推送服务是伴随着云数据库业务提供给开发者的后台搭建服务,使开发者通过云端进行消息推送,避免针对不同手机设备的拦截开发推送功能,大大节省了开发成本。
用户系统服务是云数据库的应用之一,由Bmob封装了用户登录注册的所有方式,如邮箱注册,第三方应用授权等,使开发者不需要重复开发,这也是Bmob后端云不同于云服务器租赁企业的重要区别。
移动支付服务是Bmob面向需要实现在线支付功能的开发者提供的后台服务,Bmob封装了这类方法,开发者不再需要与第三方支付机构进行逐户谈判。移动支付服务与用户系统服务一样,是Bmob后端云为开发者代为提供的后台服务,这样的服务从根本上减少了开发者的工作量,降低了创业时的门槛。
即时通讯APP是一类典型的手机应用软件,一款完整的即时通讯APP的结构即符合常见的C-S架构[6],手机用户通过即时通讯客户端与其他用户联系,服务器则需要负责通讯信息的收集和转发等功能。在本文所介绍的即时通讯APP中,包含了创建个人账户,账户登录登出、添加通讯录好友,以及向好友发送图片、文字、语音信息等功能。即时通讯APP绝大部分功能的实现需要在服务器中进行操作,以下本文以其中三个功能为例,介绍了该APP使用Bmob后端云进行开发的工作。
多数手机应用软件需要提供登录注册功能,重复而繁琐的开发工作对小团队开发者设置了很大障碍,Bmob后端云提供一整套完备的用户登录注册功能,这套功能与Bmob云数据库完美的结合在一起。在实际开发过程中,开发者需要注册成为Bmob后端云用户,在安卓代码中加入Bmob提供的SDK,即可享受免费的基础服务,在云端创建的数据库可以自动接收来自用户的注册和登录信息,其维护工作也由云端完成。此外,Bmob后端云还提供了短信验证码服务和邮箱注册等功能,涵盖了所有主流注册登录方式,图1为本文介绍的APP的注册界面。
图1 APP注册界面
即时通讯APP开发的主要难度集中在消息推送方面[7],不同于传统网站论坛的消息推送处理,即时通讯APP需要实时监听推送信息,而非用户登录后再刷新消息,如果由中小团队开发这类功能,实时监听程序对系统资源的消耗将无法控制,通常受制于自身技术能力,中小团队开发的即时通讯APP很可能出现内存占用过高、流量消耗过快等情况,对用户体验造成伤害。Bmob后端云封装了一系列消息推送方法,发送方的消息上传、服务器的转发、接受者的监听皆由统一的技术完成,开发者只需根据官网提供的API介绍将不同的封装方法加入自己的代码中即可,其余过程不需要开发者参与,这种方式也体现了Bmob的设计初衷——使开发者更专注于软件界面和功能的设计。图2为本文APP的聊天界面。
图2 APP聊天界面
用户信息管理是软件常见的后台功能,也是重要的后台开发工作,Bmob后端云为此提供的一种云数据库服务,开发者可以轻松创建自定义的云数据库表,确认字段名,字段值类型等参数。通过网页登录的方式,Bmob后端云提供了可视化的后台服务,开发者可以查看后台信息。云数据库还与前文提到的注册登陆功能可实现无缝对接,仅需简单的配置,无需开发者参与开发。同时,Bmob云数据库也极其重视用户隐私,开发者不能查看用户的密码等关键信息。图3为可视化的Bmob云数据表。
图3 可视化的Bmob云数据表
从开发者角度来看,使用传统服务器需要付出专门的人力、场地和硬件成本,开发团队不仅需要开发服务端功能,还需要定时对服务端进行维护,除此之外,服务器的数据库文件的存储备份也需要考虑,这些工作无疑增加了许多成本。相比之下后端云平台在软件快速开发方面有着绝对的优势,开发者可以免费获得基础服务,获得企业级的服务也仅需付出很少的租用成本即可,对于个人和小型团队而言,这无疑是经济的选择。
从技术角度来看,后端云附带的封装技术降低了开发者的技术准入门槛,后台服务由云服务企业提供,相较于网络服务器租聘公司而言,更凸显了技术优势。虽然部署服务器的成本可由服务器租赁方式降低,但后台功能的封装技术却是传统服务器租赁公司未能提供的,这样的整合式服务使得开发者更倾向于选择Bmob后端云。
对于中小企业和个人开发者来说,Bmob后端云带来的成本降低是十分明显的,这类用户也更倾向于选择Bmob后端云,从Bmob官网列出的合作企业来看,许多中小型体量的互联网公司都选择了该服务。
对于大型公司而言,自行搭建数据平台几乎是其必然的选择,这一方面是由于大型公司拥有强大的人力财力,大型公司对其整个产业得到完全控制的需求大于对节约成本的考量;另一方面后端云服务公司亦无法提供大型公司需要的流量压力环境等指标,因此后端云服务商为大型企业提供服务的市场环境还需要更长的时间形成。
本文介绍了Bmob后端云为开发者提供的条件,开发者或学术人员都可以通过使用价格低廉的云服务达成以往难以达成的目标,通过介绍使用Bmob后端云开发的即时通讯APP,希望能对类似功能的APP开发提供借鉴。
[1] 韩基龙.试谈Android移动云应用的优势和发展趋势[J].电脑编程技巧与维护,2014(6):58-59.
[2] 李刚.疯狂Android讲义[M].北京:电子工业出版社,2015.
[3] 周冉,高玉竹.Bmob云平台在Android App开发中的应用[J].微型机与应用,2015,34(1):26-28.
[4] 徐宜生.Android群英传[M].北京:电子工业出版社,2016.
[5] 杜巍.Android App开发中Bmob云平台的运用[J].通讯世界,2016(3):220-221.
[6] 罗伟.基于Android平台的即时通讯系统的研究与实现[D].长沙:湖南师范大学,2009.
[7] 倪红军.基于Android平台的消息推送研究与实现[J].实验室研究与探索,2014,33(5):96-100.
ApplicationofBmobBackCloudinAndroidIMAPPDevelopment
Yang Shuoheng, Bai Rubo,Men Shiyao,Zhang Yibo, Li Xiaozhong
(CollegeofComputerSciencesandInformationEngineering,TianjinUniversityofScience&Technology,Tianjin300457,China)
In the age of the mobile internet, more and more developers need to follow up the user needs quickly, renew product in a fast iterative way is difficult to be satisfied by the traditional development methods. This article uses back cloud services for APP to provide background support, which is proved that this approach will greatly reduce the costs of development and make sure the developers to focus more on the development of specific features of APP.
Bmob; back cloud platform; Android; IM APP
2017-09-30
天津科技大学大学生创新创业训练计划(201610057007)
杨硕珩(1994- ),男,山西太原人,本科,专业方向:软件工程。
李孝忠(1962- ),男,山东人,指导老师,教授,博士,研究方向:智能信息处理。
1674- 4578(2017)06- 0059- 03
TP311.52
A