Android客户端开发流程图及案例.docx

上传人:b****8 文档编号:10853822 上传时间:2023-02-23 格式:DOCX 页数:19 大小:64.92KB
下载 相关 举报
Android客户端开发流程图及案例.docx_第1页
第1页 / 共19页
Android客户端开发流程图及案例.docx_第2页
第2页 / 共19页
Android客户端开发流程图及案例.docx_第3页
第3页 / 共19页
Android客户端开发流程图及案例.docx_第4页
第4页 / 共19页
Android客户端开发流程图及案例.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Android客户端开发流程图及案例.docx

《Android客户端开发流程图及案例.docx》由会员分享,可在线阅读,更多相关《Android客户端开发流程图及案例.docx(19页珍藏版)》请在冰豆网上搜索。

Android客户端开发流程图及案例.docx

Android客户端开发流程图及案例

Android客户端开发流程

项目流程图

项目阶段描述

项目需求分析阶段描述

输入:

《项目产品开发计划书》

《总体方案书》

输出:

《项目产品需求规格说明书》

《产品测试计划及裁减说明书》

项目设计施阶段

输入:

《项目产品需求规格说明书》

《产品测试计划及裁减说明书》

输出:

《产品概要设计说明书》

《系统测试方案》

《集成测试方案》

项目实施阶段

输入:

《项目产品需求规格说明书》

《产品概要设计说明书》

待更新的《系统测试方案》

待更新的《集成测试方案》

输出:

《产品详细设计说明书》

更新的《系统测试方案》

更新的《集成测试方案》

项目测试阶段

输入:

《项目产品需求规格说明书》

《产品详细设计说明书》

《系统测试方案》

《集成测试方案》

《产品单元测试记录》

输出:

《系统测试缺陷记录》

《产品单元测试报告》

《集成测试报告》

《系统测试报告》

项目验收阶段

输入:

《项目产品需求规格说明书》

《产品详细设计说明书》

《系统测试缺陷记录》

《产品单元测试报告》

《集成测试报告》

《系统测试报告》

输出:

《项目总结报告》

《项目中无法满足功能项说明书》

《维护方案》

本文介绍了如何使用Android搭建客户端,实现手机和服务器的交互。

让我们了解如何采用SSH框架,把服务器端的信息用JSON的形式发送到手机端。

AD:

笔者以前是学的JavaEE,由于项目需要要开发Android,所以临时补了一个多星期,主要是手机端和服务器端交互,双向开发的。

首先在服务器端,我采用的是SSH框架,struts2集合了JSON插件,服务器和客户端的信息交互采用的JSON来传输,由于在服务器端用了Struts2,所以我就用装了一个JSON插件。

这样,很轻易的就把服务器端的信息用JSON的形式发送到了手机端。

以下是代码:

首先,在服务器端搭建好SSH框架,具体细节就不在陈述。

struts.xml配置如下:

1. 

2. 

3.result 

4. 

5. 

6. 

7.     

8.     

9.    result 

10.     

11.     

手机端的代码如下:

首先,手机端有一个缓存类,主要用于缓存一些手机端需要访问的数据,这样的好处是可以达达节省手机和服务器的交互,用单例实现的:

1.packagecom.jclick.cache; 

2. 

3.importcom.jclick.bean.User; 

4. 

5.publicclassCache{ 

6. 

7.privateUserUser; 

8. 

9.privateCache(){ 

10. 

11.} 

12./**构造单例*/ 

13.privatestaticclassCacheHolder{ 

14.privatestaticfinalCacheINSTANCE=newCache(); 

15.} 

16.publicCachegetInstance(){ 

17.returnCacheHolder.INSTANCE; 

18.} 

19.publicUsergetUser(){ 

20.returnUser; 

21.} 

22.publicvoidsetUser(UserUser){ 

23.this.User=User; 

24.} 

25. 

26.} 

27. 

28.packagecom.jclick.cache; 

29. 

30.importcom.jclick.bean.User; 

31. 

32.publicclassCache{ 

33.     

34.    privateUserUser; 

35.     

36.    privateCache(){ 

37.         

38.    } 

39.    /**构造单例*/ 

40.    privatestaticclassCacheHolder{ 

41.        privatestaticfinalCacheINSTANCE=newCache(); 

42.    } 

43.    publicCachegetInstance(){ 

44.        returnCacheHolder.INSTANCE; 

45.    } 

46.    publicUsergetUser(){ 

47.        returnUser; 

48.    } 

49.    publicvoidsetUser(UserUser){ 

50.        this.User=User; 

51.    } 

52. 

53.} 

接着开始书写手机端的协议,用户向服务器发送请求,同时服务器反馈给手机端信息的:

1.packagecom.jclick.protocol; 

2. 

3.importjava.io.BufferedReader; 

4.importjava.io.InputStreamReader; 

5.importjava.util.ArrayList; 

6.importjava.util.List; 

7. 

8.importorg.apache.http.HttpResponse; 

9.importorg.apache.http.NameValuePair; 

10.importorg.apache.http.client.HttpClient; 

11.importorg.apache.http.client.entity.UrlEncodedFormEntity; 

12.importorg.apache.http.client.methods.HttpPost; 

13.importorg.apache.http.impl.client.DefaultHttpClient; 

14.importorg.apache.http.message.BasicNameValuePair; 

15.importorg.json.JSONException; 

16.importorg.json.JSONObject; 

17. 

18.publicclassBaseProtocol{ 

19.privateStringBuildersb=newStringBuilder(); 

20. 

21.privateHttpClienthttpClient; 

22.privateHttpPosthttpRequest; 

23.privateHttpResponseresponse; 

24. 

25.privateListnameValuePair=newArrayList(); 

26. 

27.BaseProtocol(){ 

28.httpClient=newDefaultHttpClient(); 

29.} 

30. 

31./** 

32.*向服务器端发送请求 

33.* 

34.*@paramurl 

35.*@throwsException 

36.*/ 

37.protectedvoidpack(Stringurl)throwsException{ 

38.httpClient=newDefaultHttpClient(); 

39.httpRequest=newHttpPost(url); 

40. 

41.httpRequest.setEntity(newUrlEncodedFormEntity(nameValuePair)); 

42.response=httpClient.execute(httpRequest); 

43.} 

44. 

45./** 

46.*得到返回数据 

47.* 

48.*@paramurl 

49.*@return 

50.*@throwsException 

51.*/ 

52.protectedvoidparse()throwsException{ 

53.//TODO状态处理500200 

54.if(response.getStatusLine().getStatusCode()==200){ 

55. 

56.BufferedReaderbufferedReader2=newBufferedReader( 

57.newInputStreamReader(response.getEntity().getContent())); 

58.for(Strings=bufferedReader2.readLine();s!

=null;s=bufferedReader2 

59..readLine()){ 

60.sb.append(s); 

61.} 

62.} 

63.} 

64. 

65./** 

66.*向服务器发送信息 

67.* 

68.*@paramkey 

69.*@paramvalue 

70.*/ 

71.publicvoidaddNameValuePair(Stringkey,Stringvalue){ 

72.nameValuePair.add(newBasicNameValuePair(key,value)); 

73.} 

74. 

75./** 

76.*返回JSONObject对象数据模型 

77.* 

78.*@return 

79.*@throwsJSONException 

80.*/ 

81.publicJSONObjectgetJSON()throwsJSONException{ 

82.returnnewJSONObject(sb.toString()); 

83.} 

84. 

85.} 

86. 

87.packagecom.jclick.protocol; 

88. 

89.importjava.io.BufferedReader; 

90.importjava.io.InputStreamReader; 

91.importjava.util.ArrayList; 

92.importjava.util.List; 

93. 

94.importorg.apache.http.HttpResponse; 

95.importorg.apache.http.NameValuePair; 

96.importorg.apache.http.client.HttpClient; 

97.importorg.apache.http.client.entity.UrlEncodedFormEntity; 

98.importorg.apache.http.client.methods.HttpPost; 

99.importorg.apache.http.impl.client.DefaultHttpClient; 

100.importorg.apache.http.message.BasicNameValuePair; 

101.importorg.json.JSONException; 

102.importorg.json.JSONObject; 

103. 

104.publicclassBaseProtocol{ 

105.    privateStringBuildersb=newStringBuilder(); 

106. 

107.    privateHttpClienthttpClient; 

108.    privateHttpPosthttpRequest; 

109.    privateHttpResponseresponse; 

110. 

111.    privateListnameValuePair=newArrayList(); 

112. 

113.    BaseProtocol(){ 

114.        httpClient=newDefaultHttpClient(); 

115.    } 

116. 

117.    /** 

118.    *向服务器端发送请求 

119.    * 

120.    *@paramurl 

121.    *@throwsException 

122.    */ 

123.    protectedvoidpack(Stringurl)throwsException{ 

124.        httpClient=newDefaultHttpClient(); 

125.        httpRequest=newHttpPost(url); 

126. 

127.        httpRequest.setEntity(newUrlEncodedFormEntity(nameValuePair)); 

128.        response=httpClient.execute(httpRequest); 

129.    } 

130. 

131.    /** 

132.    *得到返回数据 

133.    * 

134.    *@paramurl 

135.    *@return 

136.    *@throwsException 

137.    */ 

138.    protectedvoidparse()throwsException{ 

139.        //TODO状态处理500200 

140.        if(response.getStatusLine().getStatusCode()==200){ 

141. 

142.            BufferedReaderbufferedReader2=newBufferedReader( 

143.                    newInputStreamReader(response.getEntity().getContent())); 

144.            for(Strings=bufferedReader2.readLine();s!

=null;s=bufferedReader2 

145.                    .readLine()){ 

146.                sb.append(s); 

147.            } 

148.        } 

149.    } 

150. 

151.    /** 

152.    *向服务器发送信息 

153.    * 

154.    *@paramkey 

155.    *@paramvalue 

156.    */ 

157.    publicvoidaddNameValuePair(Stringkey,Stringvalue){ 

158.        nameValuePair.add(newBasicNameValuePair(key,value)); 

159.    } 

160. 

161.    /** 

162.    *返回JSONObject对象数据模型 

163.    * 

164.    *@return 

165.    *@throwsJSONException 

166.    */ 

167.    publicJSONObjectgetJSON()throwsJSONException{ 

168.        returnnewJSONObject(sb.toString()); 

169.    } 

170. 

171.} 

接着是登陆协议,在这里我只是模拟登陆使用的一个类,仅供大家参考:

1.packagecom.jclick.protocol; 

2. 

3.importorg.json.JSONObject; 

4. 

5.importcom.jclick.bean.User; 

6. 

7.publicclassLoginProtocolextendsBaseProtocol{ 

8. 

9.privatefinalstaticStringURL="http:

//localhost:

8080/test/login"; 

10. 

11.publicbooleancheckLogin(Userusr){ 

12.try{ 

13.pack(URL); 

14.parse(); 

15.JSONObjectobj=this.getJSON(); 

16.if(obj.getString("result").equals("failed")){ 

17.returnfalse; 

18.}else{ 

19.returntrue; 

20.} 

21.}catch(Exceptione){ 

22.e.printStackTrace(); 

23.returnfalse; 

24.} 

25.} 

26. 

27.} 

28. 

29.packagecom.jclick.protocol; 

30. 

31.importorg.json.JSONObject; 

32. 

33.importcom.jclick.bean.User; 

34. 

35.publicclassLoginProtocolextendsBaseProtocol{ 

36.     

37.    privatefinalstaticStringURL="http:

//localhost:

8080/test/login"; 

38.     

39.    publicbooleancheckLogin(Userusr){ 

40.        try{ 

41.            pack(URL); 

42.            parse(); 

43.            JSONObjectobj=this.getJSON(); 

44.            if(obj.getString("result").equals("failed")){ 

45.                returnfalse; 

46.            }else{ 

47.                returntrue; 

48.            } 

49.        }catch(Exceptione){ 

50.            e.printStackTrace(); 

51.            returnfalse; 

52.        } 

53.    } 

54. 

55.} 

然后是User实体类,主要用于保存用户信息:

 

1.packagecom.jclick.bean; 

2. 

3.publicclassUser{ 

4.privateStringusername; 

5.privateStringpassword; 

6.publicStringgetUsername(){ 

7.returnusername; 

8.} 

9.publicvoidsetUsername(Stringusername){ 

10.this.username=username; 

11.} 

12.publicStringgetPassword(){ 

13.returnpassword; 

14.} 

15.publicvoidsetPassword(Stringpassword){ 

16.this.password=password; 

17.} 

18. 

19.} 

20. 

21.packagecom.jclick.bean; 

22. 

23.publicclassUser{ 

24.    privateStringusername; 

25.    privateStringpassword; 

26.    publicStringgetUsername(){ 

27.        returnusername; 

28.    } 

29.    publicvoidsetUsername(Stringusername){ 

30.        this.username=username; 

31.    } 

32.    publicStringgetPassword(){ 

33.        returnpassword; 

34.    } 

35.    publicvoidsetPassword(Stringpassword

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1