教育管理系统——android家长客户端
最近做了一個(gè)android的小項(xiàng)目,服務(wù)器端已經(jīng)搭建好了,使用了spring MVC作為后端技術(shù),發(fā)布了一系列web接口來(lái)接受客戶端提交的數(shù)據(jù)和返回客戶端請(qǐng)求的數(shù)據(jù),web端使用了ext js來(lái)作為前端技術(shù)。同時(shí)還需要一個(gè)android客戶端和ios客戶端,臨時(shí)先開(kāi)發(fā)了一個(gè)android客戶端,因?yàn)榉?wù)器端接口已經(jīng)寫好了,安卓端這邊只需要訪問(wèn)這些接口就可以獲取需要展示的數(shù)據(jù)和提交數(shù)據(jù)即可,開(kāi)發(fā)難度不大。因?yàn)闀r(shí)間比較緊迫,所以沒(méi)有做詳細(xì)的設(shè)計(jì),導(dǎo)致后來(lái)有很多其實(shí)比較冗余的代碼,其實(shí)可以通過(guò)良好的設(shè)計(jì)來(lái)減少代碼量,做好繼承就可以了,這一點(diǎn)是一個(gè)教訓(xùn),以后在進(jìn)行面向?qū)ο蟮拈_(kāi)發(fā)時(shí)需要注意。另外也沒(méi)有做緩存機(jī)制的設(shè)計(jì),也就是說(shuō)應(yīng)用所需的所有數(shù)據(jù)都是在用戶請(qǐng)求時(shí)去服務(wù)器端獲取的,本地不會(huì)保存數(shù)據(jù),這樣做減少了邏輯的復(fù)雜度,有利于開(kāi)發(fā)速度。但是以后需要緩沖機(jī)制的話改動(dòng)可能比較大。
下面簡(jiǎn)單描述一下這個(gè)應(yīng)用的邏輯流程,首先用戶必須要進(jìn)行登錄驗(yàn)證才可以進(jìn)入應(yīng)用,這樣做的目的是減少業(yè)務(wù)邏輯的復(fù)雜性。當(dāng)用戶驗(yàn)證成功進(jìn)入應(yīng)用后,會(huì)展現(xiàn)給用戶三個(gè)tab,分別是新聞通知tab,mytab,message tab,其中新聞通知是用來(lái)展示學(xué)校發(fā)布的各種新聞和通知,my tab是用來(lái)提供用戶查詢各種信息的地方,message是用來(lái)查看和發(fā)送站內(nèi)信給老師的地方。下面對(duì)這里面用到的各個(gè)組件或者機(jī)制進(jìn)行一下描述。
Thread與Handler:當(dāng)用戶進(jìn)行登錄驗(yàn)證或者其它需要連接網(wǎng)絡(luò)的操作時(shí),都需要使用thread,在thread中使用httpclient來(lái)進(jìn)行網(wǎng)絡(luò)連接,當(dāng)獲取到服務(wù)器傳輸來(lái)的數(shù)據(jù)并進(jìn)行處理后,網(wǎng)絡(luò)線程通過(guò)handler機(jī)制來(lái)與開(kāi)啟網(wǎng)絡(luò)線程的線程進(jìn)行數(shù)據(jù)同步的工作,handler一般是作為主線程中的對(duì)象傳遞給thread的,因此在handler中可以對(duì)主線程中的ui進(jìn)行處理等工作。在java中,一切都是對(duì)象,thread也是,thread中有一個(gè)run函數(shù)是線程開(kāi)始后所執(zhí)行的函數(shù),當(dāng)在主線程中new出一個(gè)thread后,需要調(diào)用start這個(gè)函數(shù)后線程才會(huì)執(zhí)行。
fragment:現(xiàn)在的應(yīng)用,ui越來(lái)越復(fù)雜,原來(lái)單純的在activity中構(gòu)建ui變得不太靈活,現(xiàn)在安卓中引入了fragment機(jī)制,一個(gè)activity中可以使用多個(gè)fragment來(lái)構(gòu)建ui界面,這樣在一個(gè)activity的生命周期中就可以方便的構(gòu)建復(fù)雜的ui界面而不需要切換activity。類似于activity中的oncreate方法,fragment中的oncreateview負(fù)責(zé)fragment初始化時(shí)的主要工作,此方法返回一個(gè)此fragment的view給activity,fragment也使用布局文件來(lái)初始化界面,使用inflater的inflate方法來(lái)初始化界面。
listview:本應(yīng)用中主要使用listview控件來(lái)展示數(shù)據(jù)信息,多個(gè)listitem來(lái)構(gòu)造一個(gè)listview,listitem界面可以使用布局文件來(lái)定義,同時(shí)listview有一個(gè)addheader方法,可以在listview頭部添加一個(gè)view來(lái)顯示在listview的頭部。同時(shí),listview可以實(shí)現(xiàn)onscrolllistener接口,來(lái)實(shí)現(xiàn)listview拖動(dòng)的效果。
adapter:適配器,類似于listview這樣的控件,需要適配器來(lái)填充數(shù)據(jù),適配器一般會(huì)和一個(gè)list數(shù)據(jù)結(jié)構(gòu)綁定,安卓系統(tǒng)會(huì)根據(jù)list的大小來(lái)構(gòu)建listitem的數(shù)目和內(nèi)容。
這里描述的四個(gè)控件都是安卓應(yīng)用中比較重要的四個(gè)控件,這里只是簡(jiǎn)單描述,具體的內(nèi)容比這里描述的更復(fù)雜,有時(shí)間的話再仔細(xì)描述一下這四個(gè)控件的具體用法。
?
轉(zhuǎn)載于:https://www.cnblogs.com/libs5510/p/4559238.html
總結(jié)
以上是生活随笔為你收集整理的教育管理系统——android家长客户端的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JNI中的内存管理(转)
- 下一篇: java信息管理系统总结_java实现科