文章
全面介紹下ContentProvider,從ContentProvider在框架中所充當的角色,到ContentResolver的使用,到URI的概念,再到數據共享的方法和權限管理,一步步的讓大家對ContentProvider有個全面的認識。
Android常見問題總結(一) Android常見問題總結(二) Android常見問題總結(三)
總結了一些Android開發過程中的常見問題。
介紹為什么蘑菇街支付金融這邊會采用單元測試的實踐。
Android 單元測試: 首先,從是什么開始
Android單元測試(二):再來談談為什么
Android單元測試(三):JUnit單元測試框架的使用
Android單元測試(四):Mock以及Mockito的使用
單元測試是為了測試某一個代碼單元而寫的測試代碼。但是什么叫“一個代碼單元”呢?是一個模塊、還是一個類、還是一個方法(函數)呢?不同的人、不同的語言,都有不同的理解。一般的定義,尤其是是在OOP領域,是一個類的一個方法。在此,我們也這樣理解:單元測試,是為了測試某一個類的某一個方法能否正常工作,而寫的測試代碼。
Google在3月份推出了一個項目,用來介紹Android MVP架構的各種組合,可以認為是官方在這方面的最佳實踐。令人稱道的是除了MVP本身之外,這些工程配備了極其完善的單元測試用例,學習價值極高。本文著重針對todo-mvp的單元測試進行解讀。
我們都知道 移動開發是困難的。移動用戶期望即時響應,而且還有在不同的線程間來回切換的需求。除了主線程,你還要做網絡連接,同時你還需要在后臺處理其他的各種不同的事情。最重要的是,你不能阻塞 UI 線程。RxJava 是解決這類問題的好方法,因為他能夠使得線程間的切換比較容易。
為了理解 RxJava,我在腦海里舉了不僅僅一個例子。例如我嘗試觀察動物園籠子的動物,嘗試觀察河流里的魚,也嘗試去觀察蝙蝠俠里的犯罪(額,這不是現實生活中的,但不失為一個很好的例子)。但我還是認為工廠流水線是最好的例子。
近日Google開源了一個基于觀察者模式的項目Agera:Reactive Programming for Android。還是菜鳥的我剛看完RxJava就發現Google開源了一個"類似"的項目自然得學習一下。本來結合自己的理解簡單介紹一下Agera的基本概念和原理以便更好的使用Agera。
前幾天看到同事里有一個界面絢麗的應用,覺得有點意思,就讓他把APK發給我,我想反編譯看看里面的代碼。結果,這哥們在手機里找了好一陣子,最后給我說:手機沒有root,找不到APK文件在哪里。我再讓他試試其他機子,結果都差不多:要不然找起來很麻煩,要不然根本都找不到。這時,測試的妹子說:手機QQ有這個功能。我打開手機QQ一看,果然有,平時都沒有注意到啊。
今天我要實現的一個換膚方案是基于github上的這個開源框架Android-Skin-Loader。這個框架的換膚機制是使用動態加載的機制去加載皮膚包里面的內容,無需Acitvity重啟即可實現皮膚的實時更換,皮膚包是可以與原安裝包相分離的,需要自己定做(這個皮膚包其實也就是一個普通的Android項目,只是只有資源文件沒有類文件而已),這樣做的好處就是可以在線提供皮膚包供用戶去下載,也可以大大的減少安裝包的體積,同時也很好的實現了插件化。
當下各種閱讀類APP(如各種瀏覽器,某日頭條等)都會有夜間模式,也順應了大家的睡前必須玩一下手機的作息習慣。關于夜間模式的實現,有很多種方法。這篇日志學習一下最簡單的實現方式,通過setTheme(int resid)方法實現主題切換來實現夜間模式,這也是Android官方推薦的方法。
庫&代碼
Material design的BottomNavigationbar的開源實現
Depth-LIB-Android - 酷炫的Android特效
本站原創,轉載時保留以下信息:
本文轉自:深度開源(open-open.com)
原文標題:Android開發周刊 第四期
原文地址:http://www.open-open.com/lib/view/open1462322947666.html