原创 寫了個MVP架構的電影搜索App

機緣巧合下花了一天多做了個DEMO以演示一定回顧和整理App開發的基本知識。   目的 涉及到App架構,網絡請求,UI展示,開源框架,單元測試的使用等知識面。   網絡上有很多公開的接口,以供調用。本人恰巧喜歡電影,選擇了OMDb的公開

原创 Preference組件探究之源碼解讀

上一篇文章的DEMO中我們只是使用PreferenceActivity#addPreferencesFromResource(),系統就將設置頁面展示出來了,至始至終我們沒有跟View直接接觸。父類到底幫我們做了什麼,如果我們要自己控制V

原创 Preference組件探究之使用說明

我們在編寫app的設置畫面的時候自然而然地會用到Android平臺提供的Preference相關組件。包括PreferenceActivity,PreferenceFragment,PreferenceCategory等。 這些組件的含義

原创 Preference組件探究之自定義Preference

上一篇文章中我們從源碼入手講解了Preference畫面展示的原理。這篇文章講述下官方提供的Preference組件是怎麼實現的,以及我們自己如何自定義Preference組件。 Preference UI分析 包括兩部分。首先是組件本身

原创 Preference組件探究之Base,Support及AndroidX對比

Android提供的Preference組件使得APP設置頁面的開發變得簡單。 除了上述幾篇文章討論的Base包的Preference組件外,Android還提供了更爲高效的Support包的Preference組件。 甚至於即將發佈的A

原创 JobService的使用介紹

JobService是Android L時候官方加入的組件。適用於需要特定條件下才執行後臺任務的場景。由系統統一管理和調度,在特定場景下使用JobService更加靈活和省心,相當於是Service的加強或者優化。我們來研究下JobSer

原创 JobService完結篇 JobService和Service的多角度對比

JobService的使用,特性和一些流程的源碼探究都講完了。 那我們回過頭來思考下這個在Android L時候加入的JobService和元老Service到底有何異同,各有什麼優勢? 在需要使用Ser

原创 Android 開源框架Logger的使用

日誌開源框架的話,Logger不可不談。簡單的調用就能得到清晰的Log輸出,對於日後調試和修改bug都是不錯的選擇。 ◆Logger的官方地址 https://github.com/orhanobut/logger ◆Logger的使

原创 JobService源碼探究之 Job自行Cancel後即使onStopJob返回true也不會被再啓動

上章節遺留的疑問二,本章將繼續探究緣由。疑問二 自行cancel了JobService後,onStopJob()即使返回true也不能被重新啓動? 照例直接上源碼。 cancel是IJobSchedule

原创 JobService源碼探究之 onStartJob()裏如何優雅地處理耗時邏輯?

首先我們要思考如下兩個問題。思考一 如果我們在onStartJob()裏處理耗時邏輯,導致onStartJob()沒有及時返回給JobSchedulerContext。 最終結果是怎麼樣? 是ANR?

原创 JobService源碼探究之 onStartJob()裏執行耗時邏輯導致Job可能被強制銷燬

在上篇《JobService源碼探究之 onStartJob()裏如何優雅地處理耗時邏輯?》裏我們留下了如下兩個疑問。 在本篇裏一一解答。疑問一 爲什麼onStartJob()直接執行耗時邏輯後,即便自己

原创 JobService源碼探究之 onStartJob()返回false立馬被destroy

上一章節講解了JobService的基本特性和使用方法,本章我們下面從源碼(Android OREO)層面探究以下幾個疑問。疑問一 onStartJob()返回false之後,Job幾乎立馬就被destory?疑問二 自行cancel了J

原创 ListView或GridView上添加能一起滾動的Button效果的解決思路

※思路Ⅰ.Button和ListView外層包上ScrollView※◆缺點: ①UI問題     Android官方不建議在ScrollView內嵌套ListView或GridView,因爲有如下Bug