### 新聞
1. [[圖]谷歌把電子寵物做成了Android 7.0的彩蛋:90后的回憶](http://www.cnbeta.com/articles/521399.htm)
2. [Android 7.0新功能:官方或第三方應用一目了然](http://www.cnbeta.com/articles/521397.htm)
### 教程
1. [理解Android存儲系統架構](http://gityuan.com/2016/07/17/android-io/)
本文主要介紹跟存儲相關的模塊MountService和Vold的整體流程與架構設計.MountService:Android Binder服務,運行在system_server進程,用于跟Vold進行消息通信,比如MountService向Vold發送掛載SD卡的命令,或者接收到來自Vold的外設熱插拔事件。Vold:全稱為Volume Daemon,用于管理外部存儲設備的Native守護進程,這是一個非常重要的守護進程,由NetlinkManager,VolumeManager,CommandListener這3部分組成。
2. [Android 著色器 Tint 研究](http://www.cnblogs.com/punkisnotdead/p/5139372.html)
Tint 這個東西 主要用來減少apk體積的,比如說我現在有一個textview,他的背景圖 有兩種,一種是當獲得焦點時顯示的a圖,另一種是 失去焦點時顯示的b圖。相信大家開發的時候 這種需求做過很多次了,我們一般都會發現 這種a圖和b圖 除了顏色不一樣,其他都是一樣的,但是我們做的時候呢,通常是找ui要了兩張圖。如果要適配分辨率的話 很有可能圖片會更多,而且在切換的時候 因為是重新加載一次bitmap 效率也會下降很多。所以谷歌就給了一套解決方案 這個就是tint了。他的目的就是當你發現有這種需求的時候,只需要 放一張圖 在apk里即可,當你需要改變背景圖的顏色的時候 就用Tint即可!
3. [PathMeasure之迷徑追蹤](http://blog.csdn.net/eclipsexys/article/details/51992473)
Path,不論是在自定義View還是動畫,都占有舉足輕重的地位。繪制Path,可以通過Android提供的API,或者是貝塞爾曲線、數學函數、圖形組合等等方式,而要獲取Path上每一個構成點的坐標,一般需要知道Path的函數方法,例如求解貝塞爾曲線上的點的De Casteljau算法,但對于一般的Path來說,是很難通過簡單的函數方法來進行計算的,那么,如何來定位任意一個給定Path的任意一個點的坐標呢?
4. [圖片之旅](http://blog.mrriddler.com/2016/07/20/%E5%9B%BE%E7%89%87%E4%B9%8B%E6%97%85/)
在開始圖片之旅之前,先來聊聊圖形學的一些基礎,這些在圖片處理的過程中或多或少都要接觸。1.像素點:計算機顯示的圖像是由像素點組成的,每個像素點有RGB三種顏色,這三種顏色按一定比例混合就可以得到實際的色值。圖片尺寸為640 x 480,代表圖片水平有640個像素點,垂直有480像素點。2.color depth、bit depth: 每個像素RGB若各用8位表示,bit depth就是8bit,那么這個像素就用24位表示,color depth就是24bit。一個像素color depth越深,像素表達的顏色和亮度的位數越多,文件就越大。
5. [React 移動 web 極致優化](http://t.cn/RtA6H66)
學習React的好處就是,學了一遍之后,能夠寫 web, node 直出,以及 native,能夠適應各種紛繁復雜的業務。需要輕量快捷的,直接可以用 Reactjs;需要提升首屏時間的,可以結合 React Server Render;需要更好的性能的,可以上React Native。但是,這其實暗示學習的曲線非常陡峭。單單是 Webpack+ React + Redux 就已夠一個入門者夠嗆,更何況還要兼顧直出和手機客戶端。不是一般人能 hold住所有端。
6. [Android 7.0對受信任的證書頒發機構做出變更](http://t.cn/RtweDOu)
在 Android Nougat (7.0) 中,我們更改了 Android 處理受信任證書頒發機構 (CA) 的方式,從而提供了更安全的系統默認設置,保障了應用流量安全。大多數應用和用戶不受這些變更的影響,也不需要采取任何行動。這些變更包括:1.安全而簡單的 API,用于信任自定義 CA。2.默認情況下,針對 API 級別 24 及以上版本而開發的應用不再信任用戶或管理員為安全連接添加的 CA。3.所有運行 Android Nougat 的設備均提供同一套標準化的系統 CA,而沒有任何設備特定的自定義 CA。
7. [貝塞爾曲線開發的藝術](http://www.jianshu.com/p/55c721887568)
在Android中,一般來說,開發者只考慮二階貝塞爾曲線和三階貝塞爾曲線,SDK也只提供了二階和三階的API調用。對于再高階的貝塞爾曲線,通常可以將曲線拆分成多個低階的貝塞爾曲線,也就是所謂的降階操作。下面將通過代碼來模擬二階和三階的貝塞爾曲線是如何繪制和控制的。
8. [Android打包提速實踐](http://www.jianshu.com/p/e456a5ac8613)
AS的代碼結構和eclipse完全不同,它為開發者提供了單工程多module的形式。但多建立一個module就需要多維護一個module。所以如果僅僅是為了方便寫代碼而建立一個module是不可取的,我強烈建議先做好項目結構的梳理再考慮是否需要建立module。
### 開源庫&項目
1. [jadb](https://github.com/vidstige/jadb)
ADB Client in pure Java.
2. [ixjava](https://github.com/akarnokd/ixjava)
Interactive Extensions for Java
3. [create-react-app](https://github.com/facebookincubator/create-react-app)
Create React apps with no build configuration.
4. [LogReport](https://github.com/wenmingvs/LogReport)
一個崩潰日志上傳框架,當App崩潰的時,把崩潰信息保存到本地的同時,自動給GitHub提交崩潰issue,你只需要幾句,就能完成所有配置
5. [CircularAnim](https://github.com/XunMengWinter/CircularAnim)
Android水波動畫幫助類,一行代碼實現View顯示/隱藏/startActivity特效。(對Android ViewAnimationUtils.createCircularReveal() 方法的封裝)
6. [PaperShredder](https://github.com/ldoublem/PaperShredder)
碎紙機動畫效果
7. [Tinker_imitator](https://github.com/zzz40500/Tinker_imitator)
微信熱更新方案實踐
8. [ScrollNumber](https://github.com/a-voyager/ScrollNumber)
一個 簡單、優雅、易用 的滾動數字控件!
9. [SubmitButton](https://github.com/SparkYuan/SubmitButton)
A cool and elegant Submit Button
10. [GiftCard](https://github.com/ldoublem/GiftCard)
A beautiful gift Cards for android
11. [Console](https://github.com/jraska/Console)
Android console implementation
12. [RingProgressBar](https://github.com/HotBitmapGG/RingProgressBar)
一個簡單實現的自定義圓環進度條,可使用于文件的上傳下載圖片加載等地方
13. [StereoView](https://github.com/ImmortalZ/StereoView)
3D立體無限旋轉滾動容器
14. [StatusBarCompat](https://github.com/niorgai/StatusBarCompat)
一個實現透明狀態欄的兼容庫,支持 Api 19 及其以上
15. [WaveSideBar](https://github.com/Solartisan/WaveSideBar)
一個快速跳躍分組的側邊欄控件
16. [MDAvatars](https://github.com/AlexLionne/MDAvatars)
The main goal is working with svg to make profile pictures.
17. [BottomNavigation](https://github.com/gwoodhouse/BottomNavigation)
Android Material Design "BottomNavigation" design pattern implementation
### 工具
1. [FontZip](https://github.com/forJrking/FontZip)
字體壓縮神器
2. [Marp](https://github.com/yhatt/marp)
一個 可以將 Markdown 格式直接生成PPT,編輯方便,兼容性好,還可以進行版本管理的工具
3. [Githug](http://www.jianshu.com/p/482b32716bbe)
一個命令行工具被設計來練習你的 Git 技能,它把平常可能遇到的一些場景都實例化,變成一個一個的關卡,一共有 55 個關卡,所以將他形象的形容為 Git 游戲
### 技術之外
1. [如何給一個App起名字?](http://www.woshipm.com/pd/377786.html)
選擇一個App的名字是一個排它性的決策,因為它只能有一個。而無論你最后用了哪一個,都意味著要放棄所有其他的選擇。也就是說,一個最終被選擇的好名字,它應該是有戰略的。
### 版權聲明
> 歡迎自由轉載-非商用-非衍生-保持署名 |?[Creative Commons BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/)
### 捐贈
> 如果你覺得Android開發技術周報對您有所幫助,請考慮對本周報捐贈支持。支持我把Android開發技術周報做的更好,幫助更多的人,金額隨意,您的捐贈將用于支付服務器和郵件推送服務的費用。[去捐贈](http://www.androidweekly.cn/donate/)
- 前言
- Android開發技術周報 Issue#90
- Android開發技術周報 Issue#89
- Android開發技術周報 Issue#88
- Android開發技術周報 Issue#87
- Android開發技術周報 Issue#86
- Android開發技術周報 Issue#85
- Android開發技術周報 Issue#84
- Android開發技術周報 Issue#83
- Android開發技術周報 Issue#82
- Android開發技術周報 Issue#81
- Android開發技術周報 Issue#80
- Android開發技術周報 Issue#79
- Android開發技術周報 Issue#78
- Android開發技術周報 Issue#77
- Android開發技術周報 Issue#76
- Android開發技術周報 Issue#75
- Android開發技術周報 Issue#74
- Android開發技術周報 Issue#73
- Android開發技術周報 Issue#72
- Android開發技術周報 Issue#71
- Android開發技術周報 Issue#70
- Android開發技術周報 Issue#69
- Android開發技術周報 Issue#68
- Android開發技術周報 Issue#67
- Android開發技術周報 Issue#66
- Android開發技術周報 Issue#65
- Android開發技術周報 Issue#64
- Android開發技術周報 Issue#63
- Android開發技術周報 Issue#62
- Android開發技術周報 Issue#61
- Android開發技術周報 Issue#60
- Android開發技術周報 Issue#59
- Android開發技術周報 Issue#58
- Android開發技術周報 Issue#57
- Android開發技術周報 Issue#56
- Android開發技術周報 Issue#55
- Android開發技術周報 Issue#54
- Android開發技術周報 Issue#53
- Android開發技術周報 Issue#52
- Android開發技術周報 Issue#51
- Android開發技術周報 Issue#50
- Android開發技術周報 Issue#49
- Android開發技術周報 Issue#48
- Android開發技術周報 Issue#47
- Android開發技術周報 Issue#46
- Android開發技術周報 Issue#45
- Android開發技術周報 Issue#44
- Android開發技術周報 Issue#43
- Android開發技術周報 Issue#42
- Android開發技術周報 Issue#41
- Android開發技術周報 Issue#40