表3。7 省级行政区表文献综述
字段名 数据类型 主键 允许为空 字段说明
ID varchar 是 否 ID
NAME varchar 否 名称
7)市级行政区表,用于存放市级行政区信息。
表3。8 市级行政区表
字段名 数据类型 主键 允许为空 字段说明
ID varchar 是 否 ID
PROVINCE_ID varchar 否 所属省ID
NAME varchar 否 名称
3。3。2 数据库表关联
数据库表之间关联信息如图3。5所示:
图3。5 数据库表关联
3。4 系统架构设计
此系统采用C/S架构,整个系统被分为客户端和服务端两部分,系统架构流程如图3。6所示:
图3。6 系统架构图
4 系统实现
4。1 系统常用技术点
4。1。1 客户端与服务器数据传输
Android与服务器常用的通信方式有HTTP通信方式和Socket通信方式,并且HTTP通信方式分为post和get两种方式。在Android SDK中可以通过多种方式来使用HTTP,例如HttpURLConnection、HttpClient等。
本系统中采用HttpClient来实现客户端与服务器之间的通信。首先创建HttpClient对象,然后创建请求方法实例,并指定请求URL,如果发送get请求则创建HttpGet对象,如果发送post请求则创建HttpPost对象,对于post请求可以调用setEntity(HttpEntity entiy)方法来设置请求参数。接下来调用HttpClient对象的execute(HttpUriRequest request)来发送请求,该方法将会返回一个HttpResponse。最后调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容[15]。
4。1。2 客户端与服务器在公网交换数据
由于使用的本地tomcat服务器,手机只有和服务器在同一网段内才能进行数据交换,这会造成非常糟糕的用户体验。如果要通过公网访问内网,则需要进行端口映射,因此可以借助第三方软件来实现端口映射。花生壳是一款域名映射软件,顾名思义,就是将IP地址与域名连接,通过域名访问本地计算机。具体操作步骤如下:
登录花生壳,点击添加映射,出现如图4。1所示界面。图中应用名称对应tomcat服务器上后台项目的名称,内网主机为服务器的IPv4地址,端口号为tomcat端口号,填写完成点击确定后即可看到对应的外网访问地址。成功之后就可以通过输入该地址加项目名称访问后台服务器了。
图4。1 花生壳映射配置
4。1。3 异步请求处理
Android4。0以上强制要求不能在主线程中访问网络,如需访问网络则要使用Thread+Handler或AsynTask。本系统在进行获取网络图片这样耗时操作时采用AsynTask异步加载图片,为减少用户数据流量消耗,提高软件流畅度,使用LruCache进行图片缓存处理,代码如下: