目录
摘 要 I
Abstract II
第一章 绪论 3
1.1 会展经济 3
1.1.1 需求背景 3
1.1.2 面临的问题 3
1.2 移动互联网 4
1.2.1 移动互联网概述 4
1.2.2 将会展驶入移动互联网快车道 5
1.3 项目意义 5
1.4 系统概要介绍 6
第二章 基础技术介绍 7
2.1 百度云开发环境 7
2.1.1 百度应用引擎(BAE) 7
2.1.2 百度LBS云 7
2.1.3 百度个人云存储(PCS) 9
2.2 安卓(Android)系统简介 9
2.2.1 应用程序 10
2.2.2 应用程序框架 10
2.2.3 系统运行库 10
2.3 近场通讯技术(NFC) 11
2.4 会展导游系统架构概述和运行原理 12
2.5 小结 12
第三章 需求分析 14
3.1 用户需求分析 14
3.1.1 用例1 14
3.1.2 用例2 15
3.1.3 用例3 15
3.1.4 用例4 16
3.1.5 用例5 16
3.1.6 用例6 17
3.2 系统需求分析 17
3.2.1 系统界面运行流畅 17
3.2.2 第三方授权 17
3.3 小结 17
第四章 系统概要设计 18
4.1 系统前端设计 18
4.1.1 交互与原型设计 18
4.1.2 瀑布流布局 22
4.2 系统后端设计 22
4.2.1 系统模块设计 22
4.3 系统视图层设计 24
4.3.1 展会列表界面刷新流程 24
4.3.2 展会概要界面刷新流程 25
4.3.3 展品详情界面刷新流程 26
4.4 小结 26
第五章 系统详细设计与实现 27
5.1 视图层详细设计与实现 27
5.1.1 展会列表首页的详细设计与实现 27
5.1.2 展会详情页的详细设计与实现 28
5.1.3 展品详情页的详细设计与实现 29
5.2 逻辑层详细设计与实现 30
5.2.1 联系人模块详细设计与实现 30
5.3 关键问题及解决方案 32
5.3.1 瀑布流图片的设计与实现 32
5.3.2 资源加载任务的设计与实现 34
5.3.3 异步加载线程的设计与实现 34
5.4 小结 36
第六章 总结与展望 37
6.1 总结 37
6.2 展望 37
参考文献 38
致谢 39
第三章需求分析
3.1用户需求分析
本节主要介绍用户需求。从用户观展前、观展中、观展后几个场景,梳理分析用户的需求点。
3.1.1用例1
用户希望获得所在城市的展会信息。
当用户有参展的兴趣时,希望通过定位功能查找当地展馆举办的展会信息,并希望系统提供展会的相关内容作为决策的依据。比如说车展,用户可以看到最新或者是热门的车型,又或者是车模的照片,吸引用户决策去参加这个展会。
3.1.2用例2
用户希望在参展的过程中,能获得更多的展品的介绍,必要时能获取展品优惠券。
目前参展商的宣传方式仍以传单和现场讲解为主,大屏滚动播出宣传视频也作为一种宣传手段使用。可是这些方式存在天生的缺陷,传单所承载的内容不够详尽,而现场的讲解或宣传视频,让晚到的用户无法知晓到全部内容。
所以,用户希望可以获得更多的展品介绍,无论是文字、图片、视频或者是其他形式的附件。当用户看到某些展品的介绍后,如果产生了购买的兴趣,希望能够获得展品的优惠券,以便用户在购买时享受到优惠。
3.1.3用例3
用户希望将感兴趣的展品的电子介绍保存至百度云。
展品的详情介绍,包含了文字介绍,但都是概要式的说明,详情中还包含了更详尽内容的富文本附件,用户对展品感兴趣时,可以将附件保存至百度云,长久的保存起来,不易丢失。
这种保存附件的形式,解放了用户。用户不需要再担心在展会看中某一心仪的展品后,回家后就忘记其名称;或者是不再需要在逛展会的时候,拿着五花八门的传单介绍。

3.1.4用例4
用户在观展其间,希望能在饭点在展馆周边找到吃饭的地方。
展馆建筑面积比较大,一般坐落在城市的近郊,四周较为荒凉,而且因为展馆更注重自身的建设,所以周边的餐饮等配套设施,有所不足,比如说餐厅的地点距展台较远,或者较偏僻,位于地下层或者是在附近某栋建筑较多。而对于异地游客,陌生的环境对于他们而言,更难找到目的地。
所以,用户希望能够在饭点,在展馆周边找到餐厅。餐厅应能在几个维度作分类查找,比如说距离、品味、价格等。
3.1.5用例5
用户在观展其间,会认识不同的人。比如说销售代表会认识客户,用户在对某件展品产生购买意向时,也会认识某些销售代表;摄影师对在展会其间认识了一些影友;用户无意见也可能搭讪某位车模。当他们需要相互留联系方式时,希望能够快捷方便的交换联系方式信息,因为他们可能在赶车时才想起留联系方式,要求交换的方便更快捷。
3.1.6用例6
用户在看到某件有趣的产品或者是遇见某件趣事时,希望能通过微博与朋友们分享。
3.2系统需求分析
本节主要介绍系统需求,涉及第三方服务授权和系统性能等需求。
3.2.1系统界面运行流畅
系统向用户展示展会、展品的概况,需加载大量的图片,系统使用资源较多,应使用缓存、多线程技术绘制用户界面,保证界面的流畅性。
3.2.2第三方授权
系统引入的第三方服务,均需获得用户授权能可使用,引入的第三方服务包括百度云个人云存储(PCS)、新浪微博开放服务。百度云LBS云服务,需要应用申请权限用户无需授权。
3.3小结
系统的需求分析,充分基于用户在参展的前、中、后的活动进行,是一次合理的分析。它包括参展前的决策,本文转载自http://www.biyezuopin.vip/onews.asp?id=14557系统需提供富媒体信息供用户参考,帮助决策是否参展;参展中,使用近场识别技术方便用户识别展品、使用百度个人云存储服务持久化保存展品介绍。此外,还挖掘出用户在参展中有查找附近餐饮的需求和交换联系人信息的需求。

/*** 这是首页* 顶部可浏览展览会图片* 下面可以对应信息* 能查看详情*/package com.scut.exguide.ui;import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.oauth.BaiduOAuth;
import com.baidu.oauth.BaiduOAuth.BaiduOAuthResponse;
import com.example.exguide.R;import com.scut.exguide.listener.MyLocationListener;
import com.scut.exguide.listener.WeiboOAuthListener;
import com.scut.exguide.mulithread.GetExhList;
import com.scut.exguide.mulithread.LoaderImageTask;
import com.scut.exguide.utility.AccessTokenKeeper;
import com.scut.exguide.utility.Constant;
import com.scut.exguide.utility.DBUtility;
import com.scut.exguide.utility.Location;
import com.scut.exguide.utility.MyActivity;
import com.scut.exguide.utility.TaskHandler;
import com.scut.exguide.utility.ToastShow;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.StrictMode;
import android.app.ActionBar;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.Toast;public class HomeActivity extends Activity implements MyActivity {// 菜单、VIEW等UIprivate ActionBar mActionBar;// 主页的actionbarprivate Menu mMenu;private ExhListView mExhListView;// 定位APIpublic LocationClient mLocationClient = null;public BDLocationListener myListener;public static Location myLocation;// 全局标识的地理位置public String myPoint = "当前位置为:";// 当前位置public LoaderImageTask LoaderImage1 = new LoaderImageTask();public LoaderImageTask LoaderImage2 = new LoaderImageTask();// PCS APIBaiduOAuth oauthClient = null;public static String mbOauth = null;// AcessTokenpublic Weibo mWeibio;public static Oauth2AccessToken mOauth2AccessToken;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// setContentView(R.layout.activity_home);ToastShow.setActivity(this);mExhListView = new ExhListView(this);setContentView(mExhListView.getView());SQLiteDatabase db  = openOrCreateDatabase(Constant.dbname, MODE_WORLD_WRITEABLE, null);DBUtility.setDb(db);DBUtility.CreateDB();LoaderImage1.start();LoaderImage2.start();if (Build.VERSION.SDK_INT >= 11) {StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());}initialLocService();intialActionbar();}/*** 初始化actionbar*/private void intialActionbar() {mActionBar = getActionBar();// mActionBar.setDisplayHomeAsUpEnabled(true);// mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.title_bg_trans));mActionBar.show();}/*** 初始化定位服务*/private void initialLocService() {mLocationClient = new LocationClient(getApplicationContext());myListener = new MyLocationListener(this);LocationClientOption option = new LocationClientOption();option.setAddrType("all");// 返回的定位结果包含地址信息option.setCoorType("bd09ll");// 返回的定位结果是百度经纬度,默认值gcj02option.disableCache(true);// 禁止启用缓存定位mLocationClient.setLocOption(option);mLocationClient.registerLocationListener(myListener);mLocationClient.start();if (mLocationClient != null && mLocationClient.isStarted())mLocationClient.requestLocation();elseLog.d("LocSDK3", "locClient is null or not started");// mLocationClient.}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.option, menu);mMenu = menu;mMenu.getItem(0).setTitle(myPoint);return true;}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();}/*** actionbar的菜单判断*/@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getOrder()) {case 1: {// 定位}break;case 2: {// 设置绑定PCSGotoPcsOAuth();}break;case 3: {// 设置绑定WeiobmWeibio = Weibo.getInstance(Constant.APP_KEY,Constant.REDIRECT_URL, Constant.SCOPE);mWeibio.anthorize(HomeActivity.this, new WeiboOAuthListener(mOauth2AccessToken));AccessTokenKeeper.keepAccessToken(getApplicationContext(), mOauth2AccessToken);}break;case 4: {finish();}break;}return super.onOptionsItemSelected(item);}public Handler mhandler = new Handler() {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubswitch (msg.what) {case Constant.SetLoaction: {myLocation = (Location) msg.obj;String l = myPoint + myLocation.City;mMenu.getItem(0).setTitle(l);GetExhList asyGet = new GetExhList(mExhListView);String city = String.copyValueOf(myLocation.City.toCharArray(),0, myLocation.City.length() - 1);String path = Constant.RequestExhlistUrl + "/city/" + city;asyGet.execute(path);}break;case Constant.UpdateUI: {TaskHandler task = (TaskHandler) msg.obj;Bitmap bp = LoaderImageTask.PicsMap.get(task.getPath());// ImageView iv = (ImageView) LoaderImageTask.ViewsMap.get(task// .getPath());task.Update(bp);// iv.setImageBitmap(bp);Log.d("TEST", "设置");}break;}super.handleMessage(msg);}};public String getTag() {// TODO Auto-generated method stubreturn null;}public void GotoPcsOAuth() {BaiduOAuth oauthClient = new BaiduOAuth();oauthClient.startOAuth(this, Constant.mbApiKey, new String[] { "basic","netdisk" }, new BaiduOAuth.OAuthListener() {@Overridepublic void onException(String msg) {Toast.makeText(getApplicationContext(), "Login failed " + msg,Toast.LENGTH_SHORT).show();}@Overridepublic void onComplete(BaiduOAuthResponse response) {if (null != response) {mbOauth = response.getAccessToken();Toast.makeText(getApplicationContext(),"Token: " + mbOauth + "    User name:"+ response.getUserName(),Toast.LENGTH_SHORT).show();}}@Overridepublic void onCancel() {Toast.makeText(getApplicationContext(), "Login cancelled",Toast.LENGTH_SHORT).show();}});}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubLoaderImageTask.Toggle();mLocationClient.stop();super.onDestroy();}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubswitch (event.getKeyCode()) {case KeyEvent.KEYCODE_BACK: {}}return false;}@Overridepublic void Update(Object... param) {// TODO Auto-generated method stubMessage msg = new Message();msg.what = Constant.UpdateUI;msg.obj = param[0];mhandler.sendMessage(msg);}
}













基于移动平台的会展导游系统APP设计与实现相关推荐

  1. 基于Android的app公交查询论文,基于Android平台的公交查询系统的设计与实现.doc

    摘要:本系统是在Android开发平台上,基于百度地图API实现的.解决的问题是随着城市的不断扩增,所导致的盐城市公交信息不能有效分享的情况.现在人们出行时的选择越来越多,但是公交仍然是大部分市民的首 ...

  2. 基于android 短信评价系统设计,基于 android平台的教学评价系统的设计与实现─ !bv.pdf...

    第 卷 第 期 新乡学院学报 年 月 31 2 2014 2 Vol.31 JournalofXinxian Universit No.2 g y Feb.2014 基于Android平台的教学评价系 ...

  3. 基于Android的记账APP论文,基于Android平台的手机记账系统的设计与实现

    摘要: 在经济社会中,"理财"一词对于人们来说已不再陌生.人们的生活收入稳步上升,用于工作,住房,休闲娱乐的财务支出增多,做好详细的收支计划,将有利于对个人,家庭的经济收入,支出状 ...

  4. android流量监控软件设计与实现,基于android平台的流量监控系统的设计与实现

    摘要: 为了解决流量超额使用,恶意流量吸费的非法插件以及软件恶意联网的问题,帮助用户安全放心使用手机,本文设计并实现了一款基于Android平台的流量监控系统. 本文以Android系统为平台,分别从 ...

  5. 基于 Android 平台的手机订餐系统的设计与实现

    1. 国内外有关的研究动态 随着计算机. 互联网和移动终端及其应用的快速发展, 不断的改变着人们的工作方式. 交流方式. 学习方式以及生活的各个方面, 尤其是电子商务的突飞猛进, 例如支付宝. 余额宝 ...

  6. 基于android平台的旅游系统,基于Android平台的智能导游系统设计方案

    图3 智能导游系统应用功能模块设计 3. 1 游客信息管理模块 游客信息管理模块负责对团队游客的信息进行管理,支持数据存储.查询.修改等功能,以随时记录游客信息,方便对旅游团队进行管理. Androi ...

  7. android显示温湿度设计与实现,基于Android平台蝴蝶兰大棚温湿度测控系统的设计与实现...

    摘要: 随着物联网技术在农业设施智能化控制方面的广泛应用,温室大棚环境因子的监测与设施的控制也得到了长足的进步.从经济效益角度来说,专业化人才需求的不断增加与劳动力成本的不断提高之间的矛盾,从农业产业 ...

  8. 基于uniapp+springboot声纹考勤系统app设计

    程序技术: Springboot + Uniapp + Mysql 本考勤系统项目前端采用基于跨平台的Uniapp设计,开发工具采用Hbuilder,可以实现一次开发多端发布.这个考勤系统不同于传统的 ...

  9. 基于Android平台的手机安全助手的设计与实现

    1.研究(设计)目的意义及国内外研究状况和应用前景(附参考文献): (一)选题的目的和意义 Android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从此踏上了飞 ...

最新文章

  1. 我们是如何陷入贫穷与忙碌的?
  2. Python字典的排序方法,你用对了吗
  3. Android WebView和JavaScript交互
  4. ASP.NET MVC 4 视图页去哪里儿
  5. JasperReport报表设计总结
  6. android将彩图转为黑白_Android逆向反编译代码注入APK过程思路分析
  7. 如何开启QtCreator的代码自动补全功能
  8. VS Code 下载/导入 Python 库
  9. ooffice为保护计算机,office已检测到此文件存在问题编辑此文件可能会损害您的计算机!...
  10. 正态分布中的半正定矩阵(协方差矩阵)
  11. WBADMIN 命令手册
  12. 【阿里云镜像】使用阿里云Docker CE 镜像安装Docker
  13. App自动化界面操作_按键模拟(模拟键盘信号)、driver.keyevent(keycode)
  14. 高防IP有什么优势?
  15. SQL 如何查询时竖着的数据横着显示
  16. 手写由链表设计的简易队列
  17. 蓝桥杯:约数个数(C++)
  18. Kafka实时流数据经Storm至Hdfs
  19. 《CLR via C#》读书笔记---10属性
  20. 傻瓜式操作实现华为手机与其他品牌电脑实现NFC一碰传

热门文章

  1. 邮件服务器4---postfix的主配置文件
  2. C语言中的for语句
  3. 甘露糖-聚乙二醇-CY5 Cy5-PEG-mannose
  4. 2019年9月22日vivo笔试编程题第二题java实现
  5. 动态内存的申请和非动态内存的申请_非深户孩子在深圳上学,这些条件要达标,不然都不够资格申请学位...
  6. 计算机网络机房管理制度,计算机网络机房安全运维管理制度
  7. 漫步最优化十一——局部极小与极大的充分必要条件(上)
  8. 关于电商业务场景设计的一些想法
  9. vs2017初学c++环境配置及使用教程
  10. win10 vc++6.0 2019下载实测有效