Github-android-best-practices要點總結(jié)

項目地址:https://github.com/futurice/android-best-practices#build-system

  1. 使用Android Studio和Gradle
  2. 將簽名放在gradle.properties里面
  3. 使用靜態(tài)版本的依賴
    以求得運行穩(wěn)定 即在gradle-denpencies 依賴的版本號后不加上"+"
  4. 構(gòu)建多個版本
  • 在gradle中的buildTypes中增加不同的構(gòu)建類型,使用applicationSuffixversionNameSuffix可以生成多個版本在同一設(shè)備上運行
  • 創(chuàng)建src/[buildType]/res/設(shè)置不同的ic_launcher以區(qū)別不同版本
  1. 第三方庫
  2. Json:Jackson
  3. 網(wǎng)絡(luò)锌介,緩存和圖片加載
    • 網(wǎng)絡(luò)和圖片:volley 或者 Retrofit(網(wǎng)絡(luò)API)+Picasso(圖片)+OKhttp(網(wǎng)絡(luò)請求)
  4. RxJava

RxJava is a library for Reactive Programming, in other words, handling asynchronous events(處理異步事件)

  1. Retrolambda采用Lambda語法(特別適合當我們使用RxJava的時候,需要JDK8之前次啊能使用)

  2. 考慮dex的方法限制

Android apps, when packaged as a dex file, have a hard limitation of 65536 referenced methods

  1. Activities和Fragment
    現(xiàn)在關(guān)于Activity和Fragment是控制器還是UI之爭還沒有公認的定論。有以下三點建議
  • 不要使用內(nèi)部Fragment
  • 不要放過多的代碼在Activity
  • 不要濫用Android操作系統(tǒng)級別的API
  1. Java包架構(gòu)

├─ network
├─ models
├─ managers
├─ utils
├─ fragments
└─ views
├─ adapters
├─ actionbar
├─ widgets
└─ notifications```

  1. 資源文件
  2. 命名
  3. 構(gòu)建layout xml文件
* `android:id` 放在第一位
* `android:layout_****`放在前面
* `style`放在底部
  1. 使用**style **
    針對style文件越來越大髓需,可以將其分離如styles.xml, styles_home.xml, styles_item_details.xml, styles_forms.xml 不同的資源目錄在res/values中是任意的

  2. colors.xml就是一個調(diào)色板
    基本顏色以該顏色命名(個人理解:特殊顏色可以以十六進制數(shù)表示六荒,因為不好命名了)

  3. dimens.xml與colors.xml類似。
    spacing_****命名dp,以font_***命名sp

  4. strings.xml
    使用key類似命名空間來命名strings 且string值不能全是大寫(針對英文)

  5. 避免深層次的視圖 用<merge>減少視圖深度

  6. 意識到WebView的問題:

    • 加載網(wǎng)頁時不要處理HTML文件
    • WebView與ApplicationContext綁定避免內(nèi)存溢出他爸。
    • 避免使用WebView顯示簡單的Text和Button
  7. 測試框架

    1. Android Gradle發(fā)布了connectedAndroidTest
      咪橙,是JUnit的一個擴展夕膀,可以測試程序員創(chuàng)建的JUnit Test
    2. 使用** Robolectric**進行單元測試,而非UI測試
  8. 使用Robotium進行UI測試

  9. 模擬器使用genymotion

  10. 混淆參數(shù)

    1. 構(gòu)建類型 buildTypes { debug { minifyEnabled false } release { signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
  11. 默認混淆設(shè)置SDK_HOME/tools/proguard/proguard-android.txt美侦,自定義混淆參數(shù)my-project/app/proguard-rules.pro

  12. 當出現(xiàn)這兩個錯誤ClassNotFoundException或者NoSuchFieldException要不就是被移除要不就是被混淆了产舞。檢查
    app/build/outputs/proguard/release/usage.txtapp/build/outputs/proguard/release/mapping.txt看是否被移除和混淆

  13. 在每次添加庫的時候,需要及時進行make a release build

  14. DexGuard時Proguard同一個團隊開發(fā)的軟件菠剩, 優(yōu)化代碼易猫,分離dex文件從而解決65k方法限制的文件

  15. 數(shù)據(jù)存儲

  16. 當數(shù)據(jù)繁多且復(fù)雜或者同步數(shù)據(jù)時不要使用SharePreference

  17. ContentProviders
    Schematic可以提高效率,避免創(chuàng)建重復(fù)性的代碼具壮。

  18. Using an ORM(必須保證進行安全的前提下使用)

  19. 使用Stetho(由FaceBook開發(fā)的chrome桌面應(yīng)用程序准颓,監(jiān)視App特別好用特別是在網(wǎng)絡(luò)阻塞的時候哈蝇,還有監(jiān)視和編輯Sqlite和SharePreference),不過在發(fā)布版本中要剔除掉

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末攘已,一起剝皮案震驚了整個濱河市炮赦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贯被,老刑警劉巖眼五,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異彤灶,居然都是意外死亡看幼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門幌陕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诵姜,“玉大人,你說我怎么就攤上這事搏熄∨锼簦” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵心例,是天一觀的道長宵凌。 經(jīng)常有香客問我,道長止后,這世上最難降的妖魔是什么瞎惫? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮译株,結(jié)果婚禮上瓜喇,老公的妹妹穿的比我還像新娘。我一直安慰自己歉糜,他們只是感情好乘寒,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匪补,像睡著了一般伞辛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夯缺,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天始锚,我揣著相機與錄音,去河邊找鬼喳逛。 笑死,一個胖子當著我的面吹牛棵里,可吹牛的內(nèi)容都是我干的润文。 我是一名探鬼主播姐呐,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼典蝌!你這毒婦竟也來了曙砂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤骏掀,失蹤者是張志新(化名)和其女友劉穎鸠澈,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體截驮,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡笑陈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了葵袭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涵妥。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坡锡,靈堂內(nèi)的尸體忽然破棺而出蓬网,到底是詐尸還是另有隱情,我是刑警寧澤鹉勒,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布帆锋,位于F島的核電站,受9級特大地震影響禽额,放射性物質(zhì)發(fā)生泄漏锯厢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一绵疲、第九天 我趴在偏房一處隱蔽的房頂上張望哲鸳。 院中可真熱鬧,春花似錦盔憨、人聲如沸徙菠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婿奔。三九已至,卻和暖如春问慎,著一層夾襖步出監(jiān)牢的瞬間萍摊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工如叼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冰木,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像踊沸,于是被迫代替她去往敵國和親歇终。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

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