2。1 方案选择
项目启动前,经过长期的比较思考,主要确定了两种方案:
一种是基于本机为服务器,用花生壳反向代理,再进行站点访问的解决方案。
另外一种是基于LeanCloud的后端一站式云服务的,Android端和Web端通过使用其提供的SDK访问云平台上部署的APP的数据库,进行数据库管理,然后显示在各个平台上的解决方案。
2。1。1 花生壳反向代理
花生壳是动态域名解析软件。
花生壳客户端向用户提供桌面式域名管理及动态域名解析服务。无需通过浏览器,便可直接通过其客户端使用所提供的各项服务,操作界面清晰简单。
使用花生壳反向代理,需有本机服务器的硬件设备支持、部署配置运行的技术手段支持、接口路由编写供外部调用的代码支持。
对于整体需求来说这并不简单、便捷。因而没有使用该解决方案。
2。1。2 LeanCloud云服务
市场上的云服务主要有环信、融云以及LeanCloud。对比环信、融云,LeanCloud 除了 即时通讯,还有统计分析、消息推送、数据存储等功能。大大方便了开发者的使用。
BaaS公司为移动应用开发者提供整合云后端的边界服务。
第一代云服务是AWS、微软云、SoftLayer等公有云,通过广泛部署云数据中心解决了开发和运维系统不需要管理服务器的问题。
LeanCloud是第二代云服务的先行者。对云计算资源进一步封装、简化与优化,提供开发、运维和服务的一站式云服务。帮助开发者摆脱后端开发负担以专注于产品创新,同时缩短开发周期、节省开发投入、快速进入市场。
LeanCloud平台提供数据库以及Web站点的使用,通过接入该平台,可方便地进行数据存储、展示。
对比了两种解决方案的优劣点,在同等的学习曲线下,LeanCloud云服务比用花生壳做反向代理的方法更具有优势。
2。2 工具选择
2。2。1 Android Studio简介
Android Studio是一个基于IDE的Android开发环境。使用Gradle和Maven进行对第三方开源包的引用,响应速度快,内存占用低。智能提示补全信息强大,提高了开发效率。UI编辑器自带了多设备的实时预览,方便开发者实时观察布局设计的效果。自带了GitHub、Git、SVN等流行的版本控制系统,有利于项目的持续集成及维护。
Android Studio是Google公司提供的基于Linux,Mac OS X,Windows的面向Android端开发工具。
投票系统使用Android Studio进行开发,在基于LeanCloud的后端一站式云服务的背景下,可以快速轻松地更新第三方开源包的版本,与各个开源库的提供商实现技术的同步。界面也比老牌的Eclipse优秀,具有更多的项目分类方式,方便用户进行针对性开发。项目结构清晰简捷。
2。2。2 Node。js简介
Node。js是一个JS运行环境。Node。js优化了特殊用例,提高了运行效率。
Node。js是一个基于谷歌JS运行时建立的平台, 可方便地搭建响应速度快、易于扩展的网络应用。
Node。js 使用事件驱动, 非阻塞I/O 模型,因此非常轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。
V8引擎使用了一些最新的编译技术提升用Javascript这类脚本语言代码运行速度,节省开发成本。
Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环”的架构,使得编写可扩展性高的服务器变得既容易又安全。
投票系统使用Node。js作为Web端的编程语言,拥有多个模块可轻松集成HTML的开发。投票系统使用Jade引擎作为Web页面的开发,Jade开发效率更高,语法精炼,模板有引用嵌套功能,还可以用JS来写控制流。使用NPM工具可轻松地部署到云服务器端,并且工具占用内存小但功能强大。文献综述