【正文】
)+ g e t V e r s i o n C o d e ( ) : D o u b l e+ s e t S t a r t ( )+ g e t S t a r t ( ) : D o u b l e+ s e t S u m m a r y ( )+ g e t S u m m a r y ( ) : S t r i n g+ s e t C o i n ( )+ g e t C o i n ( ) : I n t e g e r+ s e t A w a r d C o i n ( )+ g e t A w a r d C o i n ( ) : I n t e g e r+ s e t C a t e g o r y N a m e ( )+ g e t C a t e g o r y N a m e ( ) : S t r i n g+ s e t D o w n l o a d U r l ( )+ g e t D o w n l o a d U r l ( ) : S t r i n g+ s e t D o w n l o a d C o u n t ( )+ g e t D o w n l o a d C o u n t ( ) : S t r i n g+ s e t D o w n l o a d L e n g t h ( )+ g e t D o w n l o a d L e n g t h ( ) : I n t e g e r+ s e t D e t a i l U r l ( )+ g e t D e t a i l U r l ( ) : S t r i n g I D : L o n g t i t l e : S t r i n g i c o n : S t r i n g p a c k a g e N a m e : S t r i n g v e r s i o n C o d e : D o u b l e s t a r t : D o u b l e s u m m a r y : S t r i n g c o i n : I n t e g e r a w a r d C o i n : I n t e g e r c a t e g o r y N a m e : S t r i n g d o w n l o a d U r l : S t r i n g d o w n l o a d C o u n t : I n t e g e r d o w n l o a d L e n g t h : I n t e g e r d e t a i l U r l : S t r i n gG a m e+ s e t I D ( )+ g e t I D ( ) : L o n g+ s e t S t a r t ( )+ g e t S t a r t ( ) : D o u b l e+ s e t C o m m e n t ( )+ g e t C o m m e n t ( ) : S t r i n g+ s e t S u m b i t D a t e ( )+ g e t S u m b i t D a t e ( ) : S t r i n g I D : L o n g s t a r t : D o u b l e c o m m e n t : S t r i n g s u m b i t D a t e : D a t eC o m m e n t+ s e t I D ( )+ g e t I D ( ) : L o n g+ s e t T a g s ( )+ g e t T a g s ( ) : S t r i n g+ s e t C o v e r U r l ( )+ g e t C o v e r U r l ( ) : S t r i n g+ s e t A u t h o r ( )+ g e t A u t j o r ( ) : A u t h o r+ s e t C o m m e n t ( )+ g e t C o m m e n t ( ) : C o m m e n t I D : L o n g t a g s : S t r i n g c o v e r U r l : S t r i n g a u t h o r : A u t h o r c o m m e n t : C o m m e n tG a m e D e t a i l+ s e t I D ( )+ g e t I D ( ) : L o n g+ s e t N a m e ( )+ g e t N a m e ( ) : S t r i n g+ s e t S u m m a r y U r l ( )+ g e t S u m m a r y U r l ( ) : S t r i n g I D : L o n g n a m e : S t r i n g s u m m a r y U r l : S t r i n gA u t h o r圖 311 實(shí)體類圖 基于 Android 的手游應(yīng)用商店的 設(shè)計(jì)與實(shí)現(xiàn) 24 執(zhí)行概念 本系統(tǒng)時(shí)序圖如圖 312 所示: C l i e n t A c t i o n S e r v i c e D a o D B請(qǐng) 求數(shù) 據(jù) 處 理封 裝 數(shù) 據(jù)封 裝 數(shù) 據(jù) : 存 入 數(shù) 據(jù) 庫(kù)從 數(shù) 據(jù) 庫(kù) 讀 取 數(shù) 據(jù)返 回 數(shù) 據(jù) 結(jié) 果響 應(yīng)返 回 數(shù) 據(jù) 結(jié) 果 圖 312 時(shí)序圖 客戶端發(fā)送請(qǐng)求給服務(wù)器,服務(wù)器的后臺(tái) Action 負(fù)責(zé)處理數(shù)據(jù)。 Action 把結(jié)果返回給客戶端。 return map。 if (() == ) { (getApplicationContext(), )。 } } 用戶注冊(cè) 注冊(cè)界面如下: 基于 Android 的手游應(yīng)用商店的 設(shè)計(jì)與實(shí)現(xiàn) 29 圖 44 注冊(cè)界面 注冊(cè)代碼(主要部分): //先進(jìn)行字段判空等處理,然后向服務(wù)器發(fā)送注冊(cè)請(qǐng)求 ...判空處理 ... Override protected MapString, String getParams() throws AuthFailureError { MapString, String map = new HashMapString, String()。 return map。 if (() == ) { (getApplicationContext(), )。 finish()。 if (json != null) { if (!isNext) { //解析返回的 Json 數(shù)據(jù) BestGame game = (json)。 initDots(size)。 } // 下方 listview if (() != null) { nextPath = ().getNext()。 } } } else { // 下方 listview 加載 Package package1 = (json)。 (())。 游戲下載 手游下載截圖如圖 46 所示: 圖 46 手游下載管理界面 手游下載的主要代碼如下所示: //添加一個(gè)下載任務(wù) public void onClick(View v) { 基于 Android 的手游應(yīng)用商店的 設(shè)計(jì)與實(shí)現(xiàn) 34 ...一些判斷處理 ... (result, (()), // 如果目標(biāo)文件存在,接著未完成的部分繼續(xù)下載。 while (downloadInfo == null) { downloadInfo=(d()。 HttpHandlerFile handler = ((), target, autoResume, autoRename, new ManagerCallBack(downloadInfo, callback))。 int endPos = block * threadId 1。 StatFs stat = new StatFs(())。 // 內(nèi)存總大小 String DATE = (getActivity(), totalSize)。 int progress = (int) ((float) (totalSize availableSize) / totalSize * 100)。 Intent deleteIntent = new Intent()。 } 服務(wù)端 響應(yīng)客戶端登錄請(qǐng)求 //登錄請(qǐng)求的 Struts 配置 action name=login class=useraction method=login result type=json/result /action //Action 的處理 public void login() { ... String name = (String) (name)。 } catch (IOException e) { ... } } //將結(jié)果轉(zhuǎn)換為 Json 格式返回給客戶端 public static void toJson(HttpServletResponse response, Object data) throws IOException { PrintWriter out = null。 (result)。 if (!(name) amp。 if (user != null) { (STATE, )。 } //Dao 的處理 public User login(User user) { if (user != null) { try { //從數(shù)據(jù)庫(kù)查詢數(shù)據(jù) User _user = (User) (, user)。 } //SQL 語(yǔ)句的配置 select id=check parameterClass=user resultClass=user ![CDATA[ 基于 Android 的手游應(yīng)用商店的 設(shè)計(jì)與實(shí)現(xiàn) 40 select * from user where username=userName:VARCHAR2 and password=passWord:VARCHAR2 ]] /select 用戶信息 管理 用戶信息管理界面如圖 48 所示: 圖 48 用戶管理界面 用戶管理的主要代碼如下所示: //用戶 信息展示主要通過(guò) JavaScript 來(lái)查詢配置 $(function() { $(gridTable).jqGrid( { //用戶信息查詢接口 url : User/queryUser, datatype : json, mtype : post, autowidth : true, colNames:[39。 基于 Android 的手游應(yīng)用商店的 設(shè)計(jì)與實(shí)現(xiàn) 42 }, 新增。,...], colModel : [ { name : ID, index : ID, 基于 Android 的手游應(yīng)用商店的 設(shè)計(jì)與實(shí)現(xiàn) 41 label : ID, width : 15, sortable : true }, ... ], viewrecords : true, sortname : ID, rowNum : 5, rowList : [ 5, 10, 15, 20, 30 ], prmNames : { search : search }, jsonReader : { root : dataList, records : record, repeatitems : false }, pager : gridPager, caption : 員工信息列表 , hidegrid : false })。 } } catch (SQLException e) { ... retur