你用google瀏覽器打開(kāi)你的android幫助文檔(android-sdk-windows/docs/resources/index.html)

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東源免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
瀏覽器上方會(huì)有提示問(wèn)你要不要翻譯。你選擇簡(jiǎn)體中文就OK了。
官方文檔地址:
Android Architecture推薦使用MVVM架構(gòu):
其中,文檔中特別提到了:
簡(jiǎn)單來(lái)說(shuō), 并不是 說(shuō)MVVM就是最好的結(jié)構(gòu),而是好的架構(gòu)必須滿(mǎn)足以下兩點(diǎn):
個(gè)人理解只是換了種說(shuō)法,實(shí)質(zhì)上和之前的MVC、MVP架構(gòu)一樣,最終目標(biāo)還是為了滿(mǎn)足 程序設(shè)計(jì)六大原則 。一個(gè)好的結(jié)構(gòu)設(shè)計(jì),必然是 低耦合、高內(nèi)聚、易于測(cè)試和維護(hù) 的。不管是MVC,MVP還是MVVM,其目標(biāo)都是一致的。
開(kāi)發(fā)的時(shí)候也就看看接口文檔,但接口文檔都是公司內(nèi)部而且都是中文的。
如果要查詢(xún)Android的方法之類(lèi)的,百度都有中文文檔。
有的時(shí)候下載其他人代碼來(lái)用,那沒(méi)準(zhǔn)就是英文的了,只能借助百度翻譯吧,不過(guò)現(xiàn)在主流框架都有中文文檔和使用介紹的,英文不好并不影響開(kāi)發(fā)。
內(nèi)存泄漏:
舉例:
請(qǐng)注意以下的例子是虛構(gòu)的
內(nèi)存抖動(dòng)
源自Android文檔中的 Memory churn 一詞,中文翻譯為內(nèi)存抖動(dòng)。
指快速頻繁的創(chuàng)建對(duì)象從而產(chǎn)生的性能問(wèn)題。
引用Android文檔原文:
Java內(nèi)存泄漏的根本原因是 長(zhǎng)生命周期 的對(duì)象持有 短生命周期 對(duì)象的引用就很可能發(fā)生內(nèi)存泄漏。
盡管短生命周期對(duì)象已經(jīng)不再需要,但因?yàn)殚L(zhǎng)生命周期依舊持有它的引用,故不能被回收而導(dǎo)致內(nèi)存泄漏。
靜態(tài)集合類(lèi)引起的內(nèi)存泄漏
如果僅僅釋放引用本身(tO = null), ArrayList 依然在引用該對(duì)象,GC無(wú)法回收。
監(jiān)聽(tīng)器
在Java應(yīng)用中,通常會(huì)用到很多監(jiān)聽(tīng)器,一般通過(guò) addXXXXListener() 實(shí)現(xiàn)。但釋放對(duì)象時(shí)通常會(huì)忘記刪除監(jiān)聽(tīng)器,從而增加內(nèi)存泄漏的風(fēng)險(xiǎn)。
各種連接
如數(shù)據(jù)庫(kù)連接、網(wǎng)絡(luò)連接(Socket)和I/O連接。忘記顯式調(diào)用 close() 方法引起的內(nèi)存泄漏。
內(nèi)部類(lèi)和外部模塊的引用
內(nèi)部類(lèi)的引用是很容易被遺忘的一種,一旦沒(méi)有釋放可能會(huì)導(dǎo)致一系列后續(xù)對(duì)象無(wú)法釋放。此外還要小心外部模塊不經(jīng)意的引用,內(nèi)部類(lèi)是否提供相應(yīng)的操作去除外部引用。
單例模式
由于單例的靜態(tài)特性,使其生命周期與應(yīng)用的生命周期一樣長(zhǎng),一旦使用不恰當(dāng)極易造成內(nèi)存泄漏。如果單利持有外部引用,需要注意提供釋放方式,否則當(dāng)外部對(duì)象無(wú)法被正常回收時(shí),會(huì)進(jìn)而導(dǎo)致內(nèi)存泄漏。
集合類(lèi)泄漏
如集合的使用范圍超過(guò)邏輯代碼的范圍,需要格外注意刪除機(jī)制是否完善可靠。比如由靜態(tài)屬性 static 指向的集合。
單利泄漏
以下為簡(jiǎn)單邏輯代碼,只為舉例說(shuō)明內(nèi)存泄漏問(wèn)題,不保證單利模式的可靠性。
AppManager 創(chuàng)建時(shí)需要傳入一個(gè) Context ,這個(gè) Context 的生命周期長(zhǎng)短至關(guān)重要。
1. 如果傳入的是 Application 的 Context ,因?yàn)?Application 的生命周期等同于應(yīng)用的生命周期,所以沒(méi)有任何問(wèn)題。
2. 如果傳入的是 Activity 的 Context ,則需要考慮這個(gè) Activity 是否在整個(gè)生命周期都不會(huì)被回收了,如果不是,則會(huì)造成內(nèi)存泄漏。
非靜態(tài)內(nèi)部類(lèi)創(chuàng)建靜態(tài)實(shí)例造成的內(nèi)存泄漏
應(yīng)該將該內(nèi)部類(lèi)單獨(dú)封裝為一個(gè)單例來(lái)使用。
匿名內(nèi)部類(lèi)/異步線(xiàn)程
Runnable都使用了匿名內(nèi)部類(lèi),將持有MyActivity的引用。如果任務(wù)在Activity銷(xiāo)毀前未完成,將導(dǎo)致Activity的內(nèi)存無(wú)法被回收,從而造成內(nèi)存泄漏。
解決方法:將Runnable獨(dú)立出來(lái)或使用靜態(tài)內(nèi)部類(lèi),可以避免因持有外部對(duì)象導(dǎo)致的內(nèi)存泄漏。
Handler造成的內(nèi)存泄漏
Handler屬于TLS(Thread Local Storage)變量,生命周期與Activity是不一致的,容易導(dǎo)致持有的對(duì)象無(wú)法正確被釋放
當(dāng)Android應(yīng)用程序啟動(dòng)時(shí),該應(yīng)用程序的主線(xiàn)程會(huì)自動(dòng)創(chuàng)建一個(gè)Looper對(duì)象和與之關(guān)聯(lián)的MessageQueue。
當(dāng)主線(xiàn)程中實(shí)例化一個(gè)Handler對(duì)象后,它就會(huì)自動(dòng)與主線(xiàn)程Looper的MessageQueue關(guān)聯(lián)起來(lái)。所有發(fā)送到MessageQueue的Messag都會(huì)持有Handler的引用,所以L(fǎng)ooper會(huì)據(jù)此回調(diào)Handle的handleMessage()方法來(lái)處理消息。只要MessageQueue中有未處理的Message,Looper就會(huì)不斷的從中取出并交給Handler處理。
另外,主線(xiàn)程的Looper對(duì)象會(huì)伴隨該應(yīng)用程序的整個(gè)生命周期。
在Java中,非靜態(tài)內(nèi)部類(lèi)和匿名類(lèi)內(nèi)部類(lèi)都會(huì)潛在持有它們所屬的外部類(lèi)的引用,但是靜態(tài)內(nèi)部類(lèi)卻不會(huì)。
當(dāng)該 Activity 被 finish() 掉時(shí),延遲執(zhí)行任務(wù)的 Message 還會(huì)繼續(xù)存在于主線(xiàn)程中,它持有該 Activity 的 Handler 引用,所以此時(shí) finish() 掉的 Activity 就不會(huì)被回收了從而造成內(nèi)存泄漏(因 Handler 為非靜態(tài)內(nèi)部類(lèi),它會(huì)持有外部類(lèi)的引用,在這里就是指 SampleActivity)。
避免不必要的靜態(tài)成員變量
對(duì)于BroadcastReceiver、ContentObserver、File、Cursor、Stream、Bitmap等資源的使用,應(yīng)在Activity銷(xiāo)毀前及時(shí)關(guān)閉或注銷(xiāo)。
不使用WebView對(duì)象時(shí),應(yīng)調(diào)用`destroy()`方法銷(xiāo)毀。
文章標(biāo)題:android中文文檔,Android中文
本文來(lái)源:http://chinadenli.net/article6/dsgeoig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、、網(wǎng)站策劃、網(wǎng)站改版、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)