1、基于 Android 的电子市场 App 的设计与实现 王维 唐云凯 赵娟 咸阳师范学院计算机学院 摘 要: 笔者选用 Android 开发平台, 使用 MVVM 分层结构及 Android Studio 开发工具, 使用 Java 语言开发了电子市场 App。该 APP 由四大模块组成, 包括应用显示模块、应用详情模块、下载模块、其他模块。经过测试可以实现电子市场的基本功能, 方便用户的使用。关键词: Android; Java; 电子市场; 作者简介:王维 (1981-) , 女, 河北保定人, 硕士研究生, 讲师。研究方向:上下文感知计算、推荐系统、嵌入式系统。Design and Im
2、plementation of Electronic Market App based on AndroidWang Wei Tang Yunkai Zhao Juan School of Computer Science, Xianyang Normal University; Abstract: The author selects Android development platform, uses MVVM hierarchical structure and Android Studio development tools, and uses Java language to dev
3、elop the electronic market App. The APP consists of four modules, including application display module, application details module, download module, and other modules. After testing, the basic functions of the electronic market can be realized, which is convenient for users to use.Keyword: Android;
4、Java; electronic market; 1 引言近几年来, 智能手机行业飞速发展, 市场上主流的智能手机操作系统分为由Google 公司推出的 Android 智能手机操作系统、由 Apple 公司推出的 i OS 智能手机操作系统、由 Microsoft 公司推出的 Windows Phone 以及其他公司推出的智能手机操作系统1, 其中 Android 占据主导地位。但 Google 服务器无法为国内用户直接提供服务, 因此, 需要开发基于 Android 的电子市场为用户提供 App 应用, 满足客户对 App 应用的需求, 提供安全的下载渠道。2 需求分析及概要设计Andro
5、id 电子市场 App 为用户提供应用管理和下载服务, 划分为四个模块, 包括应用显示模块、应用详情模块、下载模块和其他模块。应用显示模块向用户展示应用列表, 通过搭建框架装载需要显示的界面, 应用显示又分为导航菜单、广告轮播和应用列表三个子模块。导航菜单负责显示当前所在界面的名称, 点击导航菜单可以切换显示页面的内容;广告轮播负责向用户循环展示图片内容;应用列表负责展示应用介绍信息并提供其中一个下载入口 (另一个在应用详情页面) 。应用详情模块负责向用户展示应用的详细信息, 同时提供另一个下载入口。下载模块负责下载的网络请求以及下载过程中状态的获取。其他模块负责向整个应用提供技术支持和优化用
6、户体验。功能模块划分如图 1所示。图 1 功能模块划分图 下载原图3 详细设计本系统以软件工程理论为指导, 按照面向对象的程序设计方法, 选用 Android开发平台, 使用 MVVM 的分层结构, 以 Android Studio 为开发工具, 使用 Java为开发语言, 开发了该电子市场 App。3.1 应用显示模块应用显示界面为主要展示界面, 设计思想和其他界面相似, 但如果每一个界面都创建一个 Activity 会产生代码冗杂, 无法体现 Android 及 Java 的封装性。在Android3.0 中引入了 Fragments, 能够在大屏幕设备 (如平板电脑) 上支持更加动态和灵
7、活的 UI 设计2, 通过将 Activity 的布局分散到 Fragment, 在运行时修改 Activity 的外观, 并由 Activity 管理的 Back Stack 保存那些变化。Fragment 的最大优点在于解决了屏幕适配的问题。本文也使用 Fragment 的设计方法来抽取代码。首页的界面是所有 Fragment 中最为复杂的, 如图 2 所示, 上面是应用标题Title, 左边是一个按钮, 可以打开侧边栏, 同时侧边栏也可以通过向右滑动打开;中部是导航菜单栏, 使用 Toolbar 实现;广告轮播条使用 Git Hub 上的Android Image Slider 实现,
8、可以避免 View Pager 嵌套使用带来的意想不到且无法修复的 Bug;选用可以复用的 Recycler View 显示应用列表条目。图 2 应用列表界面设计 下载原图3.2 应用详情模块应用详情页面的功能是展示应用详细信息, 比如安全信息、广告信息、应用截图、简介等。在用户点击安全检测最右边的向下箭头和应用简介的向下箭头时, 应有一个打开的动画, 使用 Value Animator 来实现动画效果, 步骤如下。(1) 调用 Value Animation 类中的 of Int (int.values) 、of Float (String property Name, float.valu
9、es) 等静态方法实例化 Value Animator 对象, 并设置目标属性的属性名、初始值与结束值等值。(2) 调用 add Update Listener (Animator Update Listener m Listener) 方法为 Value Animator 对象设置属性变化的监听器。(3) 创建自定义的 Interpolator, 调用 set Interpolator (Time Interpolator value) 为 Value Aniamtor 设置自定义的 Interpolator (可选, 不设置默认为缺省值) 。(4) 创建自定义的 Type Evaluato
10、r, 调用 set Evaluator (Type Evaluator value) 为 Value Animator 设置自定义的 Type Evaluator (可选, 不设置默认为缺省值) 。(5) 在 Animator Update Listener 中的实现方法为目标对象的属性设置计算好的属性值。(6) 设置动画的持续时间、是否重复及重复次数等属性。(7) 为 Value Animator 设置目标对象并开始执行动画。3.3 下载模块应用网络框架选择 Git Hub 上非常流行和受欢迎的网络框架 Ok Http。它是一个高效的 HTTP 库, 支持 SPDY, 共享同一个 Socke
11、t 来处理同一个服务器的所有请求。如果 SPDY 不可用, 则通过连接池来减少请求延时, 无缝支持 GZIP 来减少数据流量, 缓存响应数据来减少重复的网络请求。首先添加依赖, 有两种添加方式。在网络状态好的情况下直接通过 project structre 设置dependencies 即可, 网络条件不好的情况下就添加离线依赖直接导入 jar 包。添加完依赖后创建 Ok Http Client 对象, 创建请求对象, 发起请求即可使用。获取到的服务器数据利用 Google 官方提供的 Gson 解析数据, 然后展示在界面上。下载流程如下。应用信息展示:使用数据库记录应用信息状态、读取数据、展
12、示数据;下载管理:线程池管理 (下载线程, 等待队列) 、新应用下载、断点下载;安装和卸载:注册应用安装和卸载广播、安装管理 (保持信息进数据库, 更新应用状态和界面) 、卸载管理 (删除数据库记录, 删除已下载的 Apk 文件, 更新应用状态和界面) 。其中线程池管理部分的下载队列使用 Executors 创建固定大小的线程池, 控制执行线程的数量, 超出部分放到等待队列, 当执行完任务后, 需要检查一下等待队列。等待队列主要负责将任务添加到队列尾部, 从队列头部添加任务。4 测试4.1 下载功能测试该功能是本软件最核心的功能, 测试该功能是否能够正常下载指定的应用, 并且获取到下载的状态而
13、且要实时更新状态, 测试结果如图 3 所示。图 3 下载中的应用详情界面 下载原图4.2 软件稳定性测试Monkey 测试是非常简单也非常实用的测试方法, 它能在设置测试次数后自动在Android 模拟器或者真机上进行不停的点击测试3。Monkey 测试可以帮我们发现很难发现的点击事件产生的 Bug, 通过 Monkey 测试可以测试出系统的稳定性。使用 Monkey 测试 10 000 次, 应用程序经过优化不会出现崩溃或闪退等现象。该模块测试成功。4.3 版本兼容性测试由于 Android 内核版本的不同, 分辨率和屏幕适配等也是 Android 开发中易出现的问题4。将该软件分别安装到
14、Android 版本 4.0、5.0、6.0 和 7.0 进行测试, 经测试均能正常安装显示。5 结语电子市场是智能手机应用下载的平台, 它可以给用户提供手机应用下载的渠道。本文选用使用最为广泛的 Andriod 系统, 开发了电子市场 App, 整个应用由四大模块组成, 包括应用显示模块、应用详情模块、下载模块、其他模块, 可以实现电子市场的基本功能。本系统安装简单、使用方便, 为用户下载手机应用提供了极大的便利, 具有较大的应用价值。参考文献1陈璟, 陈平华, 李文亮.Android 内核分析J.现代计算机:专业版, 2009 (11) :112-115. 2王鸶楠.基于 Android 平台的应用商店客户端的设计与实现D.北京:北京交通大学, 2015. 3江威.Android 应用无源码调试技术研究D.成都:电子科技大学, 2014. 4刘敏.移动终端的 Android 移植与应用程序设计D.西安:西安电子科技大学, 2011.