Android漫漫長路上的一些心得

在碌碌的踩坑填坑之后,總要學(xué)會聰明一些不是,一定要記得不要一個坑里掉進兩次,一定要勇于突破自己的慣性在優(yōu)秀的人身上發(fā)現(xiàn)優(yōu)點學(xué)習(xí)優(yōu)點,結(jié)果不一定好但是嘗試了才知道

真理和道理很多非常多吠勘,難的不是去發(fā)現(xiàn)真理,是在茫茫規(guī)則中找平衡彤灶。

  • 不要輕易的去** 粗暴的 **解決問題看幼,挖的坑多了遲早要還的

  • 開發(fā)的測試機盡量用中低端機器,要在開發(fā)層面就做好兼容低端機的打算

  • 要有查看GPU呈現(xiàn)模式分析的習(xí)慣幌陕,不然丟幀等現(xiàn)象堆到一起的時候很難優(yōu)化

  • 在使用任何第三方框架的時候诵姜,請確認:
    1.這個框架是否足夠成熟,是否有足夠的人踩了足夠的坑
    2.是否對程序的性能會有影響(謹(jǐn)慎使用注入框架)
    2.你要功能只是這個框架的多少?

  • SharedPreferences是線程間安全的棚唆,但是是進程間不安全的暇赤,針對不同數(shù)據(jù)存儲的需求選用不同方式,不要一味的只會使用數(shù)據(jù)庫保存數(shù)據(jù),面向?qū)γ娲鎯?shù)據(jù)真的很方便ObjectSharePreference

  • 如果需要使用Context宵凌,區(qū)分清楚Application鞋囊、Activity、Context瞎惫、Service分別都能做什么事情!對于Application溜腐,Service,Activity三者的Context的應(yīng)用場景如下:


    其中: NO1表示 Application 和 Service 可以啟動一個 Activity瓜喇,不過需要創(chuàng)建一個新的 task 任務(wù)隊列挺益。而對于 Dialog 而言,只有在 Activity 中才能創(chuàng)建

  • 當(dāng)前Activity的onPause方法執(zhí)行結(jié)束后才會執(zhí)行下一個Activity的onCreate方法乘寒,所以在onPause方法中不適合做耗時較長的工作望众,這會影響到頁面之間的跳轉(zhuǎn)效率(記得時刻關(guān)注程序的性能在哪被消耗了)

  • 一些公共類使用單例可以讓代碼很大程度解耦,但是不要養(yǎng)成動不動就使用單例粗暴的解決問題(注意對象引用伞辛,注意內(nèi)存泄露)

  • RxJava 可能是 AsyncTasks 以及其它并發(fā)業(yè)務(wù)的最佳替代者

  • Retrofit可能是當(dāng)前最佳的網(wǎng)絡(luò)框架解決方案(反正我現(xiàn)在是這么覺得的)

  • 謹(jǐn)慎使用 Lambda來簡(裝)化(逼)你的代碼烂翰,真的可讀性不是很好啊(當(dāng)然相當(dāng)熟悉多人協(xié)作的情況下,Lambda優(yōu)勢還是很明顯的)

  • 使用事件總線(如:EventBus)能夠很好解耦你的代碼蚤氏,但是事件亂飛的情況很難跟蹤代碼流程甘耿!

  • Application中盡量少做事,你真的很清楚Application的生命周期么竿滨?
    and 不要在Android的Application對象中緩存數(shù)據(jù)!

  • 謹(jǐn)慎使用AnimationDrawable或者Gif圖片棵里,對內(nèi)存壓力很大的(當(dāng)然除非你對你的內(nèi)存把控很自信),那么問題來了:為什么官方?jīng)]有提供相關(guān)的Gif的API調(diào)用姐呐?

  • 很多項目是按照Class的類別分類的,但是當(dāng)項目越來越大典蝌,有沒有發(fā)現(xiàn)包的結(jié)構(gòu)十分混亂曙砂,當(dāng)找一個固定類的代價越來越大?@See:包名按照功能來骏掀,而不是按分層來;

  • Handler屬于 TLS(Thread Local Storage) 變量, 生命周期和 Activity 是不一致的鸠澈。因此這種實現(xiàn)方式一般很難保證跟 View 或者 Activity 的生命周期保持一致,故很容易導(dǎo)致無法正確釋放截驮。推薦使用靜態(tài)內(nèi)部類 + WeakReference 這種方式笑陈。每次使用前注意判空。
    記錄一下JAVA對象的幾種引用類型(Strong reference, SoftReference, WeakReference, PhatomReference)

    JAVA對象的幾種引用類型

  • 使用AsyncTask的同學(xué)請注意了葵袭,Anroid中不同API版本的AsyncTask實現(xiàn)不一樣涵妥,對執(zhí)行任務(wù)的策略是不一樣的,@See:調(diào)用AsyncTask的excute方法不能立即執(zhí)行程序的原因分析及改善方案 So,這里就推薦使用RxJava了坡锡,雖然學(xué)習(xí)成本有些大

  • 欲善其事必利其器
    你是真的會用studio么蓬网?當(dāng)然我也不是特別會用╮(╯_╰)╭,推薦幾個我覺得好的

  • Android studio lint(代碼規(guī)范窒所,代碼檢查),

  • GsonFormat(根據(jù)Json生產(chǎn)java bean帆锋,和服務(wù)器交互不要太快),

  • simpleUMLCE(第三方的IDE插件吵取,能夠直接生成類圖,很推薦)
    感覺這里可以說的太多锯厢,以后補充*

  • 如果你的現(xiàn)有項目是Eclipse工程那么皮官,Eclipse轉(zhuǎn)Android Studio的過程中有必要弄明白的一些問題,你需要了解多一些AS的相關(guān)知識

  • 使用 依賴注入 讓你的app更模塊化实辑,從而更易于測試捺氢;
    (dagger2感覺還是很牛逼畢竟是Google出品,但是別問我我也沒用過徙菠,我只用過簡單的Butterknife)

  • 開始考慮用SVG來替代PNG (記得最早SVG出來時淘寶就用的SVG動畫做的啟動頁面讯沈,那效果飛起來了,但是現(xiàn)在好像好沒有直接把圖片轉(zhuǎn)換成SVG的工具(⊙_⊙))

  • 針對不同網(wǎng)絡(luò)連接情況婿奔,制定不同的網(wǎng)絡(luò)策略缺狠,例如:移動連接的時候顯示小圖,Wifi的時候顯示大圖萍摊,Wifi的時候下載緩存更多東西挤茄。

  • 時刻關(guān)注大公司在做什么事情,Google就不用說了冰木,這篇文章很有意思國內(nèi)Top500Android應(yīng)用分析報告穷劈,可以獲取的信息量有點大,在這就不班門弄斧了

  • 使用套路開發(fā)你的應(yīng)用踊沸,不管是MVP歇终、MVVM,T-MVP,Clean,持續(xù)去維護它逼龟,去思考去更新它评凝,慢慢的就走上了通往大牛的路上!此記共勉腺律!

  • 節(jié)制的使用Service奕短,如果應(yīng)用程序需要使用Service來執(zhí)行后臺任務(wù)的話,只有當(dāng)任務(wù)正在執(zhí)行的時候才應(yīng)該讓Service運行起來匀钧。當(dāng)啟動一個Service時翎碑,系統(tǒng)會傾向于將這個Service所依賴的進程進行保留,系統(tǒng)可以在LRUcache當(dāng)中緩存的進程數(shù)量也會減少之斯,導(dǎo)致切換程序的時候耗費更多性能日杈。

  • Android中Touch事件傳遞


    Touch事件傳遞
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子达椰,更是在濱河造成了極大的恐慌翰蠢,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啰劲,死亡現(xiàn)場離奇詭異梁沧,居然都是意外死亡,警方通過查閱死者的電腦和手機蝇裤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門廷支,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人栓辜,你說我怎么就攤上這事恋拍。” “怎么了藕甩?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵施敢,是天一觀的道長。 經(jīng)常有香客問我狭莱,道長僵娃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任腋妙,我火速辦了婚禮默怨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘骤素。我一直安慰自己匙睹,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布济竹。 她就那樣靜靜地躺著痕檬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪送浊。 梳的紋絲不亂的頭發(fā)上谆棺,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音罕袋,去河邊找鬼。 笑死碍岔,一個胖子當(dāng)著我的面吹牛浴讯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔼啦,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼榆纽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奈籽,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤饥侵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后衣屏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躏升,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年狼忱,在試婚紗的時候發(fā)現(xiàn)自己被綠了膨疏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钻弄,死狀恐怖佃却,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窘俺,我是刑警寧澤饲帅,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站瘤泪,受9級特大地震影響灶泵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜均芽,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一丘逸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掀宋,春花似錦深纲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至镣奋,卻和暖如春币呵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侨颈。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工余赢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哈垢。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓妻柒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親耘分。 傳聞我的和親對象是個殘疾皇子举塔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容