《Android經驗分享》週刊第10期

世鋒日上發表於2017-03-13

《Android經驗分享》收錄國內外最近一週熱門的技術部落格以及優秀的類庫,星期一傍晚將準時更新給大家

微信公眾號:Android經驗分享
QQ討論群:386067289

本文已授權微信公眾號:Android經驗分享,在微信公眾號平臺原創首發。

熱點新聞
1.谷歌為Play商店推全新廣告模式:遊戲試玩
在近期舉辦的GDC2017(遊戲開發者大會)上,谷歌公佈了一項Google Play商店的新功能——Playables,這個新功能實際上是一種全新的廣告模式:使用者在看中一個遊戲之前,可以先玩一下該遊戲的“精簡版“,然後再決定是否購買。

2.1月中國智慧手機市場:蘋果iPhone微增,小米大跌
資料研究機構賽諾釋出了2017年1月中國智慧手機市場報告,其中OPPO和vivo再次成為贏家,銷售量分別增長12.9%和13.7%,奪得冠亞軍的頭銜。此外,iPhone的銷售量也微增1.8%,排名第三,而且其銷售額達到269億元,佔據整體市場29.4%的份額,目前佔時無人能撼動。

熱門部落格
1.Android架構那些事之第三方庫的隔離
我們在開發的過程中會不可避免的引用一些第三方庫,比如網路請求庫、圖片載入庫等等。就拿圖片載入庫來說,程式中不會只有一個地方來引用到此庫,可能有N個類會用到此庫來顯示圖片。這種情況下,就可以通過一箇中間層來引用“第三方圖片載入庫”。這樣做的好處是不管第三方圖片載入庫換成Picasso還是Glide,只需改變中間層,其他的一行程式碼都不需要改動。閱讀文章,瞭解詳細方案。

2.Android LayoutInflater原始碼解析
大家對LayoutInflater一定不陌生,LayoutInflater是一個用於將xml佈局檔案載入為View或者ViewGroup物件的工具,我們可以稱之為佈局載入器。在Fragment的onCreateView方法、ListView Adapter的getView方法等許多地方都可以見到它的身影。本文詳細介紹了LayoutInflater的用法以及載入佈局的工作原理。

3.Android 元件化之通訊(多模組,多程式)
之前寫過一篇Android元件化開發實踐,元件化最直接的表現形式就是工程中包含了多個業務Module,程式碼要解耦,但是業務間要解耦幾乎是不可能的,於是就要涉及到業務間的通訊,表現在程式碼上就是Module間通訊。

4.高效編寫微信小程式
微信小程式是一個工程,就和蓋房子一樣,打好了地基,才能保證後續工程師建立在可靠牢固的基礎上。

5.常見排序的java實現
包括插入排序(二分插入排序)、希爾排序、快速排序(三數中值快排)、氣泡排序、選擇排序、堆排序、歸併排序、基數排序、計數排序、桶排序、睡眠排序

6.Android 系統中,那些能大幅提高工作效率的 API 彙總(持續更新中...)
“條條大路通羅馬。”工作中,實現某個需求的方式往往不是唯一的,這些不同實現方式不僅表現在程式碼質量上,還影響著我們的工作效率。就像,在 Android 系統中,總有那麼一些鮮為人知的 API 能夠減少我們很多零碎的工作量。於是,就想憑著一些經驗,整理一些常用的,找個地方歸納總結,也供日後翻閱。

7.Android開發時,那些相見恨晚的工具或網站!
在實際Android開發過程確實會有很多相見恨晚的工具或網站出現,下面是我自己的一些分享。

8.最全面的 Material Design 學習資料
Material Design 是以後 Android 的主流設計風格,現在已經越來越多的APP遵循 Material Design 的設計規範來進 行開發,是每個 Android 開發者必學的基礎技術。

9.細細品讀!深入淺出,官方文件看ConstraintLayout
ConstraintLayout是一個Support庫,意味著向前相容,它可以相容至API 9,也就是Android 2.3,鑑於現在市場上手機基本都是2.3及以上的,所以如果不是特殊情況,開發者可以不用考慮版本問題。

10.Android 7.0應用冷啟動流程分析
所謂冷啟動就是啟動應用時,後臺沒有該應用的程式,此時系統會建立一個程式分配給它(AMS通過Socket和Zygote通訊,Zygote通過forkAndSpecialize()方法向Linux核心申請新程式),之後會建立和初始化Application,然後通過反射執行ActivityThread中的main方法。本文結合原始碼,詳細分析了應用冷啟動的過程。

受歡迎的類庫
1.RefreshLayout
專案特點 支援 RecycView、Listview、ScrollView、各種佈局控制元件實現下拉重新整理和上拉載入; 該專案的設計結構和整體業務邏輯清晰,各細節功能點的處理考慮全面; 對專案的整體開發步驟以及所有晦澀難懂的點,都有詳細註釋,非常適合中高階工程師學習並進行二次開發

2.AppUpdate
Android 檢測更新庫

3.Android-Router
高效能,靈活,簡單易用的輕量級 Android 元件化協議框架,用來解決複雜工程的互相依賴,解耦出的單個模組有利於獨立開發和維護。

4.HtmlCompat
Compatibility library for Android's Html class.

5.FadingTextView
A textview that changes its content automatically every few seconds

6.MarkdownView
Android library to display markdown text.

7.materialChipView
Material Chip view. Can be used as tags for categories, contacts or creating text clouds

8.dexknife-wj
Android Studio 下的 apk 加固外掛,支援簽名校驗和 dex 加密

9.LeonEasyPermissions
android6.0+許可權請求工具類的簡單封裝

10.ShortcutBadger
An Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers.

完整專案
1.ListenerMusicPlayer
一款優雅的遵循 Material Design 的開源音樂播放器,UI參考 騰訊輕聽 音樂播放器,使用 Lastfm Api 與 酷狗歌詞Api。專案架構採用 mvp-clean,基於 Retrofit2 + Dagger2 + Rxjava + RxBus + Glide。
技術要點:

  • 遵循 Material Design 規範,介面清新,互動優雅。
  • 基於 MVP-CLEAN + Retrofit2 + Dagger2 + Rxjava + Glide
  • 功能模組: 我的歌曲、我的歌單、資料夾、我喜歡、最近播放、最- 近新增、播放排行、本地搜尋等。
  • 支援顯示歌詞及快取
  • 支援耳機線控播放,耳機拔出自動暫停
  • 動態重新整理媒體庫,及時獲知媒體檔案變更
  • 日夜間模式切換,支援動態換膚

效果預覽圖:

《Android經驗分享》週刊第10期

週刊外話
1.阿里聚安全 2016 年報
《阿里聚安全2016年報》釋出,本報告重點聚焦在2016年阿里聚安全所關注的移動安全及資料風控上呈現出來的安全風險,在移動安全方面重點分析了病毒、仿冒、漏洞三部分,幫助使用者瞭解業務安全端安全方面應該注意的風險,之後會描述阿里聚安全在業務安全防控方面做的一些努力和觀點,幫助企業在建設網際網路業務安全時,考慮安全策略和防護應該往哪部分傾斜。 

更多精彩文章請關注微信公眾號"Android經驗分享":這裡將長期為您分享Android高手經驗、中外開源專案、原始碼解析、框架設計和Android好文推薦!

《Android經驗分享》週刊第10期
掃一掃加我哦

相關文章