基于Android的废品回收系统的设计与实现

目 录
1 绪论 1
1.1 选题的目的及意义 1
1.2 研究现状 1
1.3 本系统要实现的基本目标和研究内容 2
2 开发环境介绍 3
2.1 JSP简介 3
2.2 MVC简介 3
2.3 Android系统的架构 4
2.3.1 应用程序 4
2.3.2 应用程序框架 4
2.3.3 系统运行库 5
2.3.4 Linux内核 6
2.4 安全权限机制 6
2.5 Android平台的搭建 6
2.5.1 JDK的安装 6
2.5.2 Eclipse安装 6
2.5.3 Android SDK的安装 6
2.5.4 ADT的安装 7
2.5.5 创建AVD 7
2.6 Mysql数据库介绍 8
3 需求分析 10
3.1 需求分析重要性 10
3.2 功能需求 10
3.3 性能需求 11
3.4 可行性分析 11
4 总体设计 13
4.1 总体设计重要性 13
4.2 系统架构图 13
4.3 系统用例图 14
4.4 系统流程图设计 15
5 系统详细设计实现 16
5.1 系统功能模块设计 16
5.2 系统数据库设计 16
5.3 后台登录详细设计 18
5.4 服务端详细功能设计 19
5.4.1 商品管理模块实现 19
5.4.2 回收管理模块实现 20
5.4.3 兑换管理模块实现 20
5.5 手机端界面设计 21
6 系统调试与测试 24
6.1 程序调试 24
6.2 一般程序的测试 24
6.2.1 登录测试 24
6.2.2 添加测试 24
6.2.3 查询测试 24
6.2.4 主页面的登录模块测试 25
第7章 总结 26
参考文献 27
致 谢 28
3.2 功能需求
废品回收平台系统充分采用互联网络B/S管理系统模式与Android移动应用客户端模式,通过网络,为废品回收提供了一个便捷的平台,该系统主要包括客户端和服务端两个部分,服务端使用了三层结构、JSP技术,以增加系统的先进性、扩充性及前瞻性,从而使系统更加的稳定,电脑端主要实现登录、商品管理、类别管理、回收管理、兑换管理、知识管理、用户管理等功能子模块。手机端主要实现登录注册、首页、我的订单、购物车、我的等功能模块。
3.3 性能需求
好的架构设计应该具有以下几点:第一点,良好的模块化。每个模块都定位明确,发送模块之间的耦合,内部模块来实现高聚合和合理的信息隐藏;其次,为了适应不断变化的功能要求,适应变化的技术。申请应保持独立于特定的技术来实现分离模块“变检疫”效应独立的模块和公共区域相关的模块,技术平台和相关模块;第三,良好的数据计划;第四,明确灵活的部署计划。
因为用户不仅要工作,用户还要求质量。如性能,易于使用,如软件质量的特性;功能大多数软件系统的质量低会不会成功。因此,在设计系统时要注意我们的对象时客户,不仅能够满足所创建的用户的功能需求,同时也实现了用户所期望的质量。
整体需求性能需求是用户友好的,时间不多了符合要求,安全和安全保证。在实际情况中,高的系统配置,网络带宽容易高精度的性能要求,我们最需要考虑了系统的安全性问题。
对于一个完整的系统要求如下:
(1)系统应建立一个友好的用户界面,就必须运行一个简单的,直观,灵活,也容易学习;教育系统是基于Android的用户能够轻松地学生和教师之间的联系的目标发展。如果复杂的操作,他们失去价值提升。
(2)当你输入一个用户名和密码的系统,你必须有自动识别功能,可帮助用户纠正他们的错误。
(3)首先确定登录系统的用户名和密码的正确性,然后到数据库的正确连接,将用户名和密码的第一响应可以被测试,如果没有用户名给予相应的提示;该系统必须有各个模块的转换功能接口必须有功能之间的相同的转换,而不需要用户返回到主屏幕和重选。该系统必须具有良好的安全性。
(4)系统可以扩展,易于维护。系统应充分考虑用户帐户可以信息管理和用户管理功能,具有一定的扩展能力。该系统的模块化要高,维护软件是方便的。

package com.ideabobo.Javascript;


import org.apache.cordova.CordovaActivity;
import org.json.JSONException;
import org.json.JSONObject;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;

import android.content.Context;
import android.util.Log;
import android.webkit.WebView;
import android.widget.Toast;

public class BaiduLocation {
	public Context ctx= null;
	public JSONObject json = new JSONObject();
	public  LocationClient mLocationClient = null;
	public BDLocationListener myListener = new MyLocationListener();
    private CordovaActivity mGap;
    public static boolean flag = false;
	public BaiduLocation(CordovaActivity mGap){
		this.mGap = mGap;
		ctx = mGap.getApplicationContext();
		mLocationClient = new LocationClient(ctx); // 声明LocationClient类
		mLocationClient.registerLocationListener(myListener); // 注册监听函数
		LocationClientOption option = new LocationClientOption();
		option.setLocationMode(LocationMode.Hight_Accuracy);// 设置定位模式
		option.setCoorType("bd09ll");// 返回的定位结果是百度经纬度,默认值gcj02
		option.setScanSpan(300000);// 设置发起定位请求的间隔时间为5000ms
		option.setIsNeedAddress(true);// 返回的定位结果包含地址信息
		option.setNeedDeviceDirect(true);// 返回的定位结果包含手机机头的方向
		mLocationClient.setLocOption(option);
		mLocationClient.start();
		
	}
	
	public String getLocation() {
		//Toast.makeText(ctx, "location", Toast.LENGTH_LONG).show();
		flag = true;
		if (mLocationClient != null && mLocationClient.isStarted()) {
			mLocationClient.requestLocation();
		} else {
			Log.d("LocSDK3", "locClient is null or not started");
		}
		return "phonegap";
	}
	
	public class MyLocationListener implements BDLocationListener {
		@Override
		public void onReceiveLocation(BDLocation location) {
			if (location == null)
				return;
			try {
				json.put("time", location.getTime());
				json.put("code", location.getLocType());
				json.put("latitude", location.getLatitude());
				json.put("longitude", location.getLongitude());

				if (location.getLocType() == BDLocation.TypeGpsLocation) {
					json.put("speed", location.getSpeed());
					json.put("satellite", location.getSatelliteNumber());
				} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
					json.put("addr", location.getAddrStr());
				}
				if(flag){
					mGap.sendJavascript("getPositionByBaidu('"+json.toString()+"')");
				}
				
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			 

			//Toast.makeText(ctx, json.toString()+"flag:"+flag, Toast.LENGTH_LONG).show();
		}

	}
	
	
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 11:18:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 11:18:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 11:18:01       78 阅读
  4. Python语言-面向对象

    2024-03-31 11:18:01       88 阅读

热门阅读

  1. 2952. 需要添加的硬币的最小数量

    2024-03-31 11:18:01       43 阅读
  2. springcloud第4季 远程调用openfegin的介绍4

    2024-03-31 11:18:01       35 阅读
  3. Hive窗口函数面试题(带答案版本)

    2024-03-31 11:18:01       27 阅读
  4. 什么是ORM

    2024-03-31 11:18:01       30 阅读
  5. 什么是 PostCSS

    2024-03-31 11:18:01       26 阅读
  6. ubuntu18.04安装qt

    2024-03-31 11:18:01       37 阅读
  7. 【python】pygame游戏框架

    2024-03-31 11:18:01       37 阅读