Android開(kāi)發(fā)必讀:如何成為一名優(yōu)秀的Android開(kāi)發(fā)者_(dá)第1頁(yè)
Android開(kāi)發(fā)必讀:如何成為一名優(yōu)秀的Android開(kāi)發(fā)者_(dá)第2頁(yè)
Android開(kāi)發(fā)必讀:如何成為一名優(yōu)秀的Android開(kāi)發(fā)者_(dá)第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、android開(kāi)發(fā)必讀:如何成為一名優(yōu)秀的android開(kāi)發(fā)者.txt很多初入android或java開(kāi)發(fā)的新手對(duì)thread>looperhandler和message仍然比較迷惑, 衍生的有 handlerthread> java. util, concurrentx task、asynctask 由于目前市面上的書(shū)籍 等資料都沒(méi)有談到這些問(wèn)題,今天androidl23就這一問(wèn)題做更系統(tǒng)性的總結(jié).android開(kāi)發(fā)過(guò)程中為什么要線程能?我們創(chuàng)建的service、activity以及broadcast均是一個(gè)主線程處理,這里我們可以理 解為ui線程.但是在操作一些耗時(shí)操作時(shí),比如

2、i/o讀寫(xiě)的大文件讀寫(xiě),數(shù)據(jù)庫(kù)操作以及網(wǎng) 絡(luò)下載需耍很長(zhǎng)時(shí)間,為了不阻塞用戶界面,出現(xiàn)anr的響應(yīng)提示窗口,這個(gè)時(shí)候我們可以 考慮使用thread線程來(lái)解決.android屮使用thread線程會(huì)遇到哪些問(wèn)題?對(duì)于從事過(guò)j2me開(kāi)發(fā)的程序員來(lái)說(shuō)thread比較簡(jiǎn)單,直接匿名創(chuàng)建重寫(xiě)run方法,調(diào) 用start方法執(zhí)行即可.或者從runnable接口繼承,但對(duì)于android平臺(tái)來(lái)說(shuō)u1控件都沒(méi)有 設(shè)計(jì)成為線程安全類(lèi)型,所以需要引入一些同步的機(jī)制來(lái)使其刷新,這點(diǎn)google在設(shè)計(jì) android時(shí)倒是參考了下win32的消息處理機(jī)制.1. 對(duì)丁線程中的刷新一個(gè)view為基類(lèi)的界血,可以使用pos

3、tinval idate ()方法在線 程中來(lái)處理,其中還提供了一些重寫(xiě)方法比如postlnvalidatec int left, int top, int right, int bottom)來(lái)刷新一個(gè)矩形區(qū)域,以及延吋執(zhí)行,比如postlnval idatcdclayed (long delaymi 11 iseconds) 或 postlnval idatedelayed (iong delaymi 11 iseconds, int left, int top, int right, int bottom)方法,其中第一個(gè)參數(shù)為毫秒,如下:2. 當(dāng)然推薦的方法是通過(guò)一個(gè)handler來(lái)處

4、理這些,對(duì)以在一個(gè)線程的run方法中調(diào)用 handler對(duì)象的postmessage或sendmessage方法來(lái)實(shí)現(xiàn),android程序內(nèi)部維護(hù)著一個(gè)消 息隊(duì)列,會(huì)輪訓(xùn)處理這些,如果你是win32程序員可以很好理解這些消息處理,不過(guò)相對(duì)于 android來(lái)說(shuō)沒(méi)有提供pretranslatemessage這些干涉內(nèi)部的方法.3. looper又是什么呢?,其實(shí)android中每一個(gè)thread都跟著一個(gè)looper, looper 可以幫助thread維護(hù)一個(gè)消息隊(duì)列,昨天的問(wèn)題can't create handler inside thread錯(cuò) 誤一文中提到這一概念,但是loope

5、r和handler沒(méi)有什么關(guān)系,我們從開(kāi)源的代碼可以看 到androi d還提供了一個(gè)thread繼承類(lèi)handerthread nj'以幫助我們處理,在handl erthread 對(duì)象中nj以通過(guò)getlooper方法獲取一個(gè)looper對(duì)象控制句柄,我們可以將其這個(gè)looper 對(duì)彖映射到一個(gè)handler中去來(lái)實(shí)現(xiàn)一個(gè)線程同步機(jī)制,looper對(duì)彖的執(zhí)行需要初始化 looper, prepare方法就是昨天我們看到的問(wèn)題,同吋推出吋還要釋放資源,使用 looper, release 方法.4. message在android是什么呢?對(duì)于android中handler可以傳遞一

6、些內(nèi)容,通過(guò) bundle對(duì)彖川以封裝string、integer以及blob二進(jìn)制對(duì)彖,我們通過(guò)在線程中使用handler 対象的sendemptymessage或sendmessage方法來(lái)傳遞一個(gè)bundle対象到handl er處理器. 對(duì)于handler類(lèi)提供了重寫(xiě)方法handlemessage (message msg) 來(lái)判斷,通過(guò)msg. what來(lái) 區(qū)分每條信息.將bundle解包來(lái)實(shí)現(xiàn)handler類(lèi)更新u1線程中的內(nèi)容實(shí)現(xiàn)控件的刷新操作.相關(guān)的handler對(duì)象有關(guān)消息發(fā)送sendxxxx相關(guān)方法如下,同時(shí)還有postxxxx相關(guān)方法,這些和win32屮的道理基木一致,一

7、個(gè)為發(fā)送后直接返回,一個(gè)為處理后才返回:5. java. util, concurrent對(duì)象分析,對(duì)于過(guò)去從事java開(kāi)發(fā)的程序員不會(huì)對(duì) concurrent對(duì)象感到陌生吧,他是jdk 1. 5以后新增的重要特性作為掌上設(shè)備,我們不提倡 使用該類(lèi),考慮到android為我們己經(jīng)設(shè)計(jì)好的task機(jī)制,我們這里android開(kāi)發(fā)網(wǎng)對(duì)其不 做過(guò)多的贅述,相關(guān)原因參考下而的介紹:6. 在android中述提供了一種有別于線程的處理方式,就是tosk以及asynctask,從 開(kāi)源代碼中可以看到是針對(duì)concurrent的封裝,開(kāi)發(fā)人員對(duì)以方便的處理這些異步任務(wù),具 體的androidl23在以前的文

8、章中有詳細(xì)解釋?zhuān)梢允褂谜緝?nèi)搜索來(lái)了解更多.演講稿尊敬的老師們,同學(xué)們下午好:我是來(lái)自10級(jí)經(jīng)濟(jì)學(xué)(2)班的學(xué)習(xí)委,我叫張盼盼,很榮 幸有這次機(jī)會(huì)和大家一起交流擔(dān)任學(xué)習(xí)委員這一職務(wù)的經(jīng)驗(yàn)。轉(zhuǎn)眼間大學(xué)生活已經(jīng)過(guò)了一年多,在這一年多的吋間里,我 一直擔(dān)任著學(xué)習(xí)委員這一職務(wù)?;赝@一年多,自己走過(guò)的路,留下 的或深或淺的足跡,不僅充滿了歡愉,也充滿了淡淡的苦澀。一年多 的工作,讓我學(xué)到了很多很多,下面將自己的工作經(jīng)驗(yàn)和大家一起分 享。學(xué)習(xí)委員是班上的一個(gè)重要職位,在我當(dāng)初當(dāng)上它的時(shí) 候,我就在想一定不要辜負(fù)老師及同學(xué)們我的信任和支持,一定要把 工作做好。要認(rèn)真負(fù)責(zé),態(tài)度踏實(shí),要有一定的組織,領(lǐng)導(dǎo),執(zhí)

9、行能 力,并且做事情要公平,公正,公開(kāi),積極落實(shí)學(xué)校學(xué)院的具體工作。 作為一名合格的學(xué)習(xí)委員,要收集學(xué)生對(duì)老師的意見(jiàn)和老師的教學(xué)動(dòng) 態(tài)。在很多情況下,老師無(wú)法和那么多學(xué)生直接打交道,很多老師也 無(wú)暇顧及那么多的學(xué)生,特別是大家剛進(jìn)入大學(xué),很多人一時(shí)還不適 應(yīng)老師的教學(xué)模式。學(xué)習(xí)委員是老師與學(xué)生之間溝通的一個(gè)橋梁,學(xué) 習(xí)委員要及時(shí)地向老師提出同學(xué)們的建議和疑問(wèn),熟悉老師對(duì)學(xué)生的 基本要求。再次,學(xué)習(xí)委員在學(xué)習(xí)上要做好模范帶頭作用,要有優(yōu)異 的成績(jī),當(dāng)同學(xué)們向我提出問(wèn)題時(shí),基本上給同學(xué)一個(gè)正確的冋復(fù)??傊谝粚W(xué)年的工作之中,我懂得如何落實(shí)各項(xiàng)工作,如何 和班委有效地分工合作,如何和同學(xué)溝通交流并且提高大家的學(xué)習(xí)積 極性。當(dāng)然,我的工作還存在著很多不足之處。比日:有的時(shí)候得不 到同學(xué)們的響應(yīng),同學(xué)們不積極主動(dòng)支持我的工作;在收集同學(xué)們對(duì) 自己工作意見(jiàn)方面做得不夠,有些事情做錯(cuò)了,沒(méi)有周?chē)瑢W(xué)的提醒,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論