用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业设计下载计算机毕业设计安卓Android毕业设计

基于Android的A/B测试系统智能SDK的设计与实现

联系方式:点击这里给我发消息QQ8191040
官方主页:www.biye114.com
图片预览: ;论坛转帖
插件情况:
售后服务:请联系客服QQ:8191040
一键分享拿折扣:
  • 好的评价 如果您觉得此软件好,就请您
      0%(0)
  • 差的评价 如果您觉得此软件差,就请您
      0%(0)

软件简介

 A/B 测试系统的主要的作用是,提供给开发者一种版本优化方案,该方案可以随机将开发应用的不同版本同时投放用户使用,并提供对用户行为的数据统计和分析,帮助开发者作出决策。其本质是互联网产品的抽样试验,是对时下热门的数据挖掘和数据分析概念的具体应用,在互联网日益普及和飞速发展的当下,随着数据的不断积累,人们发现大量数据的变化趋势受到一些因素的影响。具体而言,当应用的版本变化时,因素的改变即会带来用户行为数据的变化,A/B 测试系统以抽样试验提供数据变化的对比,从而帮助开发者判断版本变化的正确性。
本文讲述的是 A/B 测试系统中的 Android SDK 工具的开发流程,项目从需求分析、概要设计、详细设计、开发工作,到系统测试。SDK 以 Android 为平台开发,包括五个模块的功能:初始化模块,编辑模块,运行模块,数据收集模块和数据发送模块。初始化模块包括抽样版本和运行模式选择的功能,编辑模块包括显示抽样版本和与 Web 协同创建新版本的功能,运行模块完成 SDK 的用户行为监控功能,数据收集模块完成用户行为数据数据并存储到数据库的功能,数据发送模块包括同 Web 端建立数据通道和向 Web 端直接发送数据的功能。同时使用了 OKHttp,GSON,SQLite 数据库等第三方技术,各模块之间相对独立,具有良好的扩展性。
目前该部分已经与公司测试系统的其他部分良好对接,通过了大量的测试,正在积极产品化,不久就能正式上线并投入使用,发挥更大的价值。


关键词:A/B 测试;试验;目标;数据收集;


ABSTRACT

ABSTRACT:
The main role of A / B testing system is to provide developers with a version of the optimization program, which can be randomly different versions of application development while serving users, and provides user behavior data and statistical analysis to help developers decision-making. Its essence is sampling test of Internet products, is nowadays popular application-specific data mining and data analysis concepts, the growing popularity of the Internet and the rapid development of the moment, with the accumulation of data, it was found that the trend of large amounts of data by some influencing factors. Specifically, when the version of the application changes, the change factor, that will bring about changes in user behavior data, A / B test systems in order to provide comparative data sampling test changes to help developers make sure that the version change is correct.
This article is about the A / B test system development process the Android SDK tools, the project from requirements analysis, outline design, detailed design, development, to system testing. SDK develops for Android platform, including five functional modules: initialization module, editing module, running module, data collection module and data transmission module. Initialization module includes sample versions and operating mode selection function, editing module includes a display sample version and a Web collaboration to create a new version of the function, operation module to complete SDK user behavior monitoring, data collection module complete the functions of user behavior data collection and stores it in the database, data transmission module includes the establishment of a data channel with the Web client and functional data is sent directly to the Web side. Using both OKHttp, GSON, SQLite database and other third-party technologies, the SKD is relatively independent of each module and has good scalability.
At present the part has been with the company good docking the rest of the test system,
through a large number of tests, is actively prod, may soon be able to formally launched and put into use, to play a greater value.


KEYWORDS:A/B Test,Experiment,Goal,Data Collection


目 录

中文摘要 I
ABSTRACT II
目 录 III
1引言 1
1.1项目背景和意义 1
1.1.1项目背景 1
1.1.2项目意义 1
1.2国内外研究现状 2
1.3笔者的主要工作 2
1.4论文的组织结构 3
1.5本章小结 3
2相关技术介绍 4
2.1ANDROID 概述 4
2.2OKHTTP 概述 4
2.3JSON 与 GSON 概述 4
2.4SOCKET 概述 5
2.5SQLITE 数据库 5
2.6本章小结 6
3系统需求分析 6
3.1功能性需求分析 6
3.1.1Android SDK 功能结构 6
3.1.2编辑模块 7
3.1.3数据收集模块 8
3.1.4数据发送模块 9
3.2非功能性需求分析 10
3.3本章小结 11
4系统概要设计 12
4.1整体架构设计 12
4.2功能模块运行设计 13
4.2.1编辑模块运行设计 13
4.2.2数据收集模块运行设计 14
4.2.3数据发送模块运行设计 14
4.3本章小结 15
5系统详细设计 16
5.1编辑模块的设计 16
5.2数据收集模块的设计 17
5.3数据发送模块的设计 18
5.3.1普通模式下的数据发送模块 18
5.3.2编辑模式下的数据发送模块 19
6系统实现 21
6.1编辑模块的实现 21
6.1.1普通模式下的编辑模块 21
6.1.2编辑模式下的编辑模块 23
6.2数据收集模块的实现 25
6.3数据发送模块的实现 29
6.3.1普通模式下的数据发送模块 29
6.3.2编辑模式下的数据发送模块 32
6.4本章小结 33
7系统测试 34
7.1功能性测试用例设计 34
7.2非功能性测试用例设计 36
7.3本章小结 37
8总结与展望 38
参考文献 39
致 谢 40
附 录 41

1引言

本章第一部分介绍了项目的背景与意义,之后通过分析了相似项目在国内外的发展情况,描述了项目研究在国内外发展的现状,同时分模块说明了本人在毕业设计中的主要工作,最后阐述了论文的组织结构。

1.1项目背景和意义

1.1.1项目背景

作为一种新出现的互联网优化方案[1],A/B 测试,本质上是被广泛应用于各个行业的对照实验,通过适当的实验设计和随机化的控制,构建科学的实验因果关系。在以前,互联网想要进行 A/B 测试往往需要较高的技术成本和资源成本,但随着技术的不断成熟,A/B 测试已经越来越成为互联网优化的常用方法。
在互联网行业中,当一个新项目即将推出时,选择何种式样更能够吸引使用者;当一个产品的新版本准备发布时,新的更新和优化是否一定比原来的好,长久以来这些问题并没有一个有效且花费低的验证方式。而 A/B 测试,作为一种科学的可视化方法,针对不同版本的变量控制,可以让开发者更好的分析和理解正在进行的项目,帮助其作出更加准确的判断。因而可以说,能够以较小的成本和代价,进行 A/B 测试是大多数开发者的共同需求,旨在开发一个简单易行的 A/B 测试系统的项目也就应运而生了。
Android 开发是互联网应用开发的主力军,一个高适配性的A/B 测试系统,就不可能忽略对 Android 平台的适配,而将 A/B 测试的各项功能在应用中实现,以嵌入 SDK结合 Web 端进行控制的方式实现,符合以较小成本和代价进行 A/B 测试的初衷,是一个很好的解决方案。

1.1.2项目意义

A/B 测试可以说是一种产生预测型结论的实验体系,我们可以称之为“先验”,与归纳性结论的试验体系,即“后验”有着本质的不同。A/B 测试的意义也就在于此。它通过以下的环节控制来保证实验结论的代表性,并确保这一结论可以推广到更大的范围。第一是实验设计的科学性,第二是随机化的控制方式,第三是具有代表性的抽样样本,第四是流量分割与小流量测试的测试方法[2]。


而选择以 SDK 的作为 Android 端的 A/B 测试系统的工具有以下考量:
首先,下载和引用的便利。将功能代码打包,提供下载,并且用明确的文字引导应用开发者使用,操作简单。
其次,不需要开发者了解内部的功能,只是提供接口供开发者引用,减少了使用新功能的繁琐过程,降低了开发的时间成本。
最后,可以使应用保持原本的开发结构,不需要做架构上的修改,降低执行 A/B 测试给项目开发带来的风险。

1.2国内外研究现状

而在国外,有一件相对较为成熟的公司——Optimizely,该公司的已经拥有了超过
7000 家的客户,累计 50 万次的试验从这些客户的项目中产生,并对项目顺利的进行起到了积极的影响,这使得 Optimizely 成为了国外数一数二的 A/B 测试平台。使用
Optimizely 时你只需要为你的程序添加一段简短的代码,就能够给你的 Web 应用、
Android 应用、Ios 应用创建 A/B 测试。该服务 2010 年 7 月份启动,至今已经有近 6年的不停运营,在这个过程中,该平台得到了不断的完善,并且增加了其他的功能,比如在其模块中整合了 Google Analytics 的功能,让用户能够使用 Google Analytics 进行分析。值得一提的是,一个相对成熟的外国公司,能够给我们的项目带来很多的借鉴。而在国内,受制于开发者对于这项服务的认可度还有待提高,目前还没有一家公司能够称得上在这个领域独树一帜,拥有相对成熟的 A/B 测试平台和系统。因此对于国内市场来说这是一个需求缺口,这也从侧面反映了这个项目的可行性。

1.3笔者的主要工作

A/B 测试系统主要包括两部分:实现 A/B 测试功能的 Web 平台。帮助应用适配 A/B测试平台的 SDK 工具。具体的 SDK 在 A/B 测试系统中的位置如图 1-1 所示。


Android SDK 的作用是对接 A/B 测试Web 平台与 Android 应用,帮助应用获取抽样和运行所需数据,帮助 Web 平台创建测试版本和进行数据收集。通过嵌入 SDK,开发者即可在 Web 平台上进行针对应用的 A/B 测试了。笔者参与了项目从需求分析、概要设计、详细设计、开发工作,到系统测试的工作流程,该项目包括:初始化模块,编辑模块,运行模块,数据收集模块和数据发送模块。笔者参与了以下模块的开发:
1.编辑模块,主要完成了抽样版本的显示和协助Web 平台创建新版本
2.数据收集模块,主要完成了针对用户行为的数据收集,并存储到数据库
3.数据发送模块,主要完成了与Web 平台建立 Socket 连接和发送用户行为数据到
Web 平台。

1.4论文的组织结构

本论文共分为八章,具体内容安排如下:
第一章介绍了项目的背景与意义,分析了项目的现状,说明了本人在毕业设计中的主要工作,阐述了论文的组织结构。
第二章介绍了毕业设计中用到的相关技术,包括 Android,OKHttp 传输,JSON 数据格式和 GSON 转换工具,Socket 通讯,SQLite 数据库。
第三章介绍了项目的功能性需求和非功能性需求。划分了系统的功能模块,并且进行了简要的介绍说明。
第四章介绍了系统的概要设计。着重阐述了系统整体的架构、各个功能模块的运行设计和数据结构设计的思路。
第五章介绍了系统的详细设计。主要包括编辑模块、数据收集模块、数据发送模块,由功能类图来具体的说明。
第六章介绍了系统的实现。主要对详细设计的模块结合关键代码进行实现的说明,并通过运行截图展示实现的最终效果。
第七章通过测试用例,介绍了对系统进行功能性测试和性能测试的过程,对测试结果进行了分析和说明。
第八章是总结与展望,说明了项目在未来的时间计划做出的改进,和对项目的发展前景的客观预测。

1.5本章小结

第一章介绍了项目的背景与意义,分析了项目的现状,说明了本人在毕业设计中的主要工作,阐述了论文的组织结构。


2相关技术介绍

2.1Android 概述

Android 是基于 Linux 内核的开源移动设备软件平台和操作系统,广泛使用于平板电脑和智能手机。它采用了软件堆层的架构,系统架构分为四层结构: 第一部分为以
Linux 核心的内核层,由 c 语言开发,只提供基本功能。第二部分为包含了虚拟机 Virtual
Machine 和函数库Library 的系统运行库层,由 C++开发。第三部分为应用程序框架层,包含各种可以重构的管理器[3]。第四部分为各种应用软件共同组成的应用程序层,包括了通讯程序,界面交互等,应用软件则由各公司自行开发,主要以 java 编写。但是,
Android 虽然使用Java 语言作为开发工具 ,但是在实际开发中发现,还是与Java SDK有一些不同的地方。Android 原生的SDK 引用了大部分的Java SDK,也有极少数的部分被 Android 抛弃。

2.2OKHttp 概述

Android 系统存在着 HttpURLConnection 和 HttpClient 两种 HTTP 通信类[4],而虽然 Google 在大部分 Android 的版本中都对使用 HttpURLConnection 进行了推崇,但是从实际的工作中来看,这个类比起 HttpClient 来,在易用性和功能方面都要弱势很多。
而 OkHttp,正是针对这个类的改进方案,从实践的验证中我们可以认为这是一个针对此类的比较成熟的解决方案, 甚至有传言称在安卓的 4.4 版本的源码中
HttpURLConnection 已经替换成 OkHttp 的实现方式了。所以我们更有理由相信 OkHttp的强大。
使用 OkHttp 的理由,是它提供了很多网络难题的解决方案,比如:会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个 IP 地址,当第一个 IP 连接失败的时候,OkHttp 会自动尝试下一个IP。OkHttp 还处理了代理服务器问题和SSL 握手失败问题。OKHttp 还提供了针对许多模块的接口,更加扩大了它的应用范围,使得开发者使用它时能够更加从容的应对各种情形。

2.3JSON 与 GSON 概述

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 它是
ECMAScript 拓展出的一个子模块。JSON 既作为一种彻底独立于语言之外的文本格式,又沿用了与 C 语言家族相似的语言习惯。这些特性是JSON 能够成为优秀的数据交换语


言的关键因素。这些特性既能简化编程人员的阅读和编写过程,同时也能让机器解析和生成变得更有效率[5]。
Gson 是由 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的一个 Java类库。可以将一个 JSON 字符串转成一个 Java 对象,或者将一个 Java 对象转成一个JSON字符串[6]。Gson 相比较于现存的其他 java JSON 类库,最大的不同就是 Gson 在需要序列化实体类的时候,不需要使用 annotation 来标识需要序列化的字段,却也可以通过对 annotation 的使用来配置需要序列化的字段,使得这一功能变得十分灵活。同时 Gson支持变换的 Java 对象可以任意的复杂,甚至包括了对于源码不可见的对象的转化。

2.4Socket 概述

Socket 用于描述 IP 地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在 Internet 上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
Android 与服务器的通信方式主要有两种,一是 Http 通信,一是 Socket 通信。两者的最大差异在于,http 连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而 Socket 通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。Socket 又称套接字,是一种抽象层,应用程序通过他来发送和接收数据,简单来说就是在程序内部提供了与外界通信的端口,即端口通信。通过建立 Socket 连接,可为通信双方的数据传输传提供通道。应用程序在使用
Socket 时,相当于将应用程序添加到了网络之中,使其可以与处于同一网络中其他的应用程序互相通信[7]。Socket 的主要特点有数据丢失率低,使用简单且易于移植。

2.5SQLite 数据库

SQLite 是一个嵌入式库并且实现了零配置、无服务端和事务功能的 SQL 数据库引擎。它在广泛领域内被使用,而且单线程读写性能与 MySQL 比肩,并且保证 ACID 性。
SQLite 的存储后端是采用Btree 实现,多个连接可以并发操作,但是同一时间只允许一个写着存在[8]。
SQLite 在硬盘上一个数据库一个文件,每个数据库文件头部保存有这个数据库的元信息,包括版本,大小,Btree 根节点位置等等。
SQLite 将一个数据库以Page 为单位进行管理和读写,每一个 Page 默认为 512 字节,


通常可以看做一个硬盘 sector 大小。

2.6本章小结

第二章介绍了此毕业设计中用到的相关技术的核心,包括 Android 语言,OKHttp传输工具,JSON 数据格式和 GSON 转换工具,Socket 通讯,SQLite 数据库。

下载地址

点击此处→注册会员上传设计赚钱
以上是大纲和介绍,如需要完整的资料请在线购买.

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 本站所有资料均已审核通过,内容原创保密,标准格式,质量保证
* 无需注册,点击在线购买后即可获取该套毕业设计(论文)完整
* 支付后请联系在线客服QQ:8191040发送资料
  • 官方微信