##教程
1. [零開始的Android新項目3 - MVPVM in Action, 誰告訴你MVP和MVVM是互斥的](http://blog.zhaiyifan.cn/2016/03/16/android-new-project-from-0-p3/)
去年5月左右的時候,筆者在逛GitHub的時候,看到了一個MVP的項目,叫做mosby,仔細看了源碼和作者介紹的文章后,發現確實有點意思,雖然會需要多寫幾個類和方法,但是解決了activity/fragment過重的問題,通過V/P分離能夠幫助提高可維護性。時至去年年底,今年年初,MVP才逐漸被大家所知,也不時看到些文章介紹其概念和實踐。
2. [Android MotionEvent詳解](http://ztelur.github.io/2016/03/16/Android-MotionEvent%E8%AF%A6%E8%A7%A3/)?(By stelar)
我們都知道,每個觸摸事件都代表用戶在屏幕上的一個動作,而每個動作必定有其發生的位置。在MotionEvent中就有一系列與標觸摸事件發生位置相關的函數:1\. getX()和getY():由這兩個函數獲得的x,y值是相對的坐標值,相對于消費這個事件的視圖的左上點的坐標。2\. getRawX()和getRawY():有這兩個函數獲得的x,y值是絕對坐標,是相對于屏幕的。
3. [Android安全攻防戰,反編譯與混淆技術完全解析(下)](http://blog.csdn.net/guolin_blog/article/details/50451259)
在上一篇文章當中,我們學習了Android程序反編譯方面的知識,包括反編譯代碼、反編譯資源、以及重新打包等內容。通過這些內容我們也能看出來,其實我們的程序并沒有那么的安全。可能資源被反編譯影響還不是很大,重新打包又由于有簽名的保護導致很難被盜版,但代碼被反編譯就有可能會泄漏核心技術了,因此一款安全性高的程序最起碼要做到的一件事就是:對代碼進行混淆。
4. [那些年,我們一起點過的贊](http://t.cn/RGsqGst)
舉個例子,就用戶最多的微信、QQ來說,點贊也就是個心形和拇指的放大動畫(自己去體驗下),這里順便吐槽下網易的點贊,動畫做的不錯,雖然我手機小小不流暢,可是不能取消贊是怎么回事? 也許,現在你覺得無非就是個點贊效果,隨便做個點擊效果就好了,也許產品設計的人也是這樣覺得的,也許用戶根本就不在乎。
5. [Android Bitmap面面觀](http://t.cn/RGsibtl)
在日常開發中,可以說和Bitmap低頭不見抬頭見,基本上每個應用都會直接或間接的用到,而這里面又涉及到大量的相關知識。所以這里把Bitmap的常用知識做個梳理,限于經驗和能力,不做太深入的分析。
6. [Android 6.0 對于權限和標識符的更改](http://t.cn/RGFY6KD)
在 Marshmallow 中,權限請求已從安裝時改到運行時。 這是 SDK 23+ 的一項強制性改動,意味著它會影響所有以 Android 6.0 作為目標平臺的開發者和應用。無論如何,您的應用都需要更新,因此,您的挑戰在于審慎地進行更新。
7. [使用Clean Architecture模式開發Android應用的詳細教程](http://www.infoq.com/cn/articles/clean-architecture-model-to-develop-android-application)
隨著應用體積和代碼數量的膨脹,Android應用的架構越來越復雜,遺留代碼越來越多,接手開發、協作都變得越來越困難,有些人試圖用框架、規范來解決這個問題,但為什么不從一開始就從架構上著手呢?干凈架構就是一種很好的層級解耦、理清依賴的架構,作者在接觸干凈架構后就喜歡上了它,不僅在商業上成功應用,還撰文介紹、開源樣板代碼,簡直化身干凈架構布道師了,我們一起來看作者是如何向我們安利這一架構吧。
8. [極致的 Hybrid 混合式開發(去啊App Hybrid 實戰)](https://yq.aliyun.com/articles/43)
目測性能是可觀的。盡管H5包的離線化隔絕了弱網對秒出的干擾,設備本地 IO 耗時也是不能忽視的,算上zip的解壓縮,僅在設備本地 IO 完全一個 HTML(包含其攜帶的資源文件)也會達到秒級的耗時,在iphone5上也會有0.5秒左右的白屏時間。另外,HTML 本身的優化依然無法繞過,WebView 里 JS 的運行效率通常是 Mobile Browser 里的四分之一。
9. [Java 單例真的寫對了么?](http://www.race604.com/java-double-checked-singleton/)
單例模式是最簡單的設計模式,實現也非常“簡單”。一直以為我寫沒有問題,直到被 Coverity 打臉。Coverity 是靜態代碼分析工具,它會模擬其實際運行情況。例如這里,假設有兩個線程進入到這段代碼,其中紅色的部分是運行的步驟解析,開頭的標號表示其運行順序。
10. [如何精確地測量java對象的大小-底層instrument API](http://blog.csdn.net/xieyuooo/article/details/7068216)
關于java對象的大小測量,網上有很多例子,大多數是申請一個對象后開始做GC,后對比前后的大小,不過這樣,雖然說這樣測量對象的大小是可行的,不過未必是完全準確的,因為過程中包含對象本身的開銷,也許你運氣好,正好能碰上,差不多,不過這種測試往往顯得十分的笨重,因為要寫一堆代碼才能測試一點點東西,而且只能在本地測試玩玩,要真正測試實際的系統的對象大小這樣可就不行了,本文說說java一些比較偏底層的知識,如何測量對象大小,java其實也是有提供方法的。
11. [一種為 Apk 動態寫入信息的方案](http://t.cn/RGkwz7l)
Android 使用的 Apk 包的壓縮方式是 zip,與 zip 有相同的文件結構,在 zip 文件的末尾有一個 Central Directory Record 區域,其末尾包含一個 File comment 區域,可以存放一些數據,所以 File comment 是 zip 文件一部分,如果可以正確的修改這個部分,就可以在不破壞壓縮包、不用重新打包的的前提下快速的給 Apk 文件寫入自己想要的數據。
12. [Android自定義Lint實踐](http://tech.meituan.com/android_custom_lint.html)
Android Lint是Google提供給Android開發者的靜態代碼檢查工具。使用Lint對Android工程代碼進行掃描和檢查,可以發現代碼潛在的問題,提醒程序員及早修正。為保證代碼質量,美團在開發流程中加入了代碼檢查,如果代碼檢測到問題,則無法合并到正式分支中,這些檢查中就包括Lint。
13. [H5、React Native、Native應用對比分析](http://my.oschina.net/vczero/blog/597980?fromerr=s2CoLPvF)
2015年是React Native發展的一年,2016年必定是React Native蓬勃的一年!2016年React Native很可能成為最為成功的開源技術之一。為什么React Native這么火呢?那么React Native相比H5、Native又有哪些優勢呢?使用React Native的正確姿勢又是怎樣呢?
14. [Android適配到底有多坑?](http://t.cn/RGs6AXc)
由于安卓系統的開放性,OEM廠商和運營商都會對Android進行定制。于是安卓的大航海時代來了。Android設備五花八門,各種Android手機、平板、電視、手表層出不窮,Android電冰箱電飯鍋亂入…隨著設備、品牌、系統版本、屏幕、分辨率碎片化的不斷加深,兼容性測試一直在折磨著測試人員。統計,我們團隊中做過兼容性測試的男性有2/3在已經開始謝頂,每做6個月兼容性測試壽命就會縮短半年。
##開源庫&項目
1. [TriangleLabelView](https://github.com/shts/TriangleLabelView)
自定義三角標簽 View
2. [LuseenBottomNavigation](https://github.com/armcha/LuseenBottomNavigation)
Material Bottom Navigation 實現
3. [BottomNavigation](https://github.com/krpiotrek/BottomNavigation)
Material Bottom Navigation 實現
4. [LivingTabs](https://github.com/saiff35/LivingTabs)
仿 Youtube Gaming Tabs 滑動效果
5. [RxJavaSamples](https://github.com/rengwuxian/RxJavaSamples)
RxJava 和 Retrofit 結合使用的幾個最常見使用方式舉例
6. [JKeyboardPanelSwitch](https://github.com/Jacksgong/JKeyboardPanelSwitch)
Android鍵盤面板沖突 布局閃動處理方案
7. [cssdroid](https://github.com/manolovn/cssdroid)
一個可以把 CSS 文件轉換成 Android Style 的庫
8. [PhoneNumber](https://github.com/xdtianyu/PhoneNumber)?
一個獲取號碼歸屬地和其他信息(詐騙、騷擾等)的開源庫
9. [AndroidTabbedDialog](https://github.com/ashishbhandari/AndroidTabbedDialog)
支持左右滑動選項卡的 Dialog
10. [SuperNova-Emoji](https://github.com/hani-momanii/SuperNova-Emoji)
一個實現了可以渲染 Emoji 的庫
11. [BoomMenu](https://github.com/Nightonke/BoomMenu)
可以讓你的菜單按鈕瞬間爆炸的庫
12. [ArcProgressStackView](https://github.com/GIGAMOLE/ArcProgressStackView)
圓弧進度條
13. [AndRouter](https://github.com/campusappcn/AndRouter)
Android路由框架
14. [Android-SpinKit](https://github.com/ybq/Android-SpinKit)
各種 Loading 動畫效果
15. [ParallaxViewPager](https://github.com/ybq/ParallaxViewPager)
左右滑動時有視差的效果的 ViewPager
16. [AndroidKeyboardWatcher](https://github.com/AzimoLabs/AndroidKeyboardWatcher)
一個可以監控到軟鍵盤打開關閉的庫
17. [BlurLockView](https://github.com/Nightonke/BlurLockView)
毛玻璃效果的解鎖界面
18. [AnimatedEditText](https://github.com/alphamu/AnimatedEditText)
可以給 EditText 輸入文字時給輸入的文字添加各種動畫效果的庫
19. [Carouselview](https://github.com/sayyam/carouselview)
可以循環切換的 Banner View
20. [Spork-Android](https://github.com/SporkLibrary/Spork-Android)
一個注解庫
21. [android-snake-menu](https://github.com/xmuSistone/android-snake-menu)
模仿 Tumblr's 的菜單效果
22. [RoadRunner](https://github.com/glomadrian/RoadRunner)
可以使用 SVG 圖片制作 Loading 動畫的庫
23. [LyricView](https://github.com/markzhai/LyricView)
lrc 歌詞顯示控件
24. [MDPreference](https://github.com/XhinLiang/MDPreference)
Material Design 風格的 PreferenceFragment
25. [EasingInterpolator](https://github.com/MasayukiSuda/EasingInterpolator)
28 個與眾不同動畫插值器
##工具
1. [Coverity](http://www.coverity.com/)
靜態代碼分析工具,它會模擬代碼的實際運行情況
2. [macaca](https://github.com/alibaba/macaca)
一套完整的自動化測試解決方案
##視頻
1. [內容型App的客戶端架構之道](http://www.infoq.com/cn/presentations/content-type-app-client-architecture)
內容型App指的是以呈現內容內主要交互的應用,這樣類型的App很多,好的架構設計,可以使得內容型App的研發事半功倍。在豌豆莢我們積累了很久的經驗,構建一套基于呈現內容的應用框架,在這個框架上快速搭建出來了豌豆莢,和豌豆莢一覽、豌豆莢鎖屏(Snaplock)等應用。
2. [StrictMode for enforcing best practices at runtime](http://t.cn/RGDBAK9)
Android 開發者除了編譯時的 Lint 檢查,在運行時還有另外一種捕獲問題的手段——Strict Mode 。Strict Mode 工作在線程和虛擬機級別,除了用于檢查性能方面的問題,它還可用于檢查文件分享和網絡訪問。
##設計
1. [得到簡單設計方案的過程是復雜的](http://t.cn/RGs6Gz7)
前段時間有件“大事兒”, Facebook Reactions 終于面向全球用戶開放 了。之所以說這是件大事是因為這是一個核心體現在設計上的重要項 目,Facebook 的標志性操作 Like 體系從此將步入新的時代。
##技術之外
1. [如何才能找到自己熱愛的工作](http://t.cn/RGsiuCb)
根據德勤的調查,80% 的美國人工作是不開心的,找一份自己熱愛的工作的確不是一件容易的事。你對自己現在的工作滿意嗎?對你來說,真的有什么工作是非做不可的嗎?如何才能發現自己熱愛的工作是什么呢?
2. [Papi醬聯手羅輯思維廣告拍賣,有10件我想說的事 | 狗熊有話說](http://t.cn/RGDx7G7)
我相信一個很小的網絡事件的熱傳可能是出于偶然,但一個持續高密度出現的網絡事件,一定有著精心策劃和準備,當然也有認真和努力。
- 前言
- 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