原创 Binder學習之旅(二)

前段時間用AIDL模板寫了一個簡單的進程間通信demo,並且也成功完成了進程間通信,今天就順着demo來看看模板文件做了些什麼事兒。 Service 回顧demo,用了兩個app來進行實驗,ServiceApp和ClientApp

原创 Binder學習之旅(一)

最近在看一些framework方面的東西,但是最後都繞不過binder,於是我再轉向去了解binder的知識,但是看得我一頭霧水。唉,仔細想想,我好想都沒有正兒八經的寫過跨進程通信的代碼,那麼,我就來手寫一個跨進程的demo玩玩,

原创 APP全局色彩飽和度修改

APP全局色彩飽和度修改 對以下兩篇鴻洋大神的博文進行了實踐,並記錄對應的問題。 App 黑白化實現探索,有一行代碼實現的方案嗎? App 黑白化實現探索2, 發現了一種更方便的方案,我被錘了! 第一篇 第一篇採用是比較常規的方法

原创 從Glide中學習WeakReference

    項目開發了三年多了,圖片加載庫用的是ImageLoader,這期間也遇到了很多特殊的需求,在ImageLoader源碼的基礎上不斷的修修改改,倒也能滿足。不過要想使用gif,imageloader就要藉助別的控件了,而且在處理超大

原创 從Glide中學習生命週期管理

    最近也看了許多介紹glide的文章,很多流程相關的源碼講解都很詳細,看完後也很有收穫,不過我想寫一點細節,對自己的日常開發有點啓發的東西,比如說今天的圖片加載的生命週期管理。     一般來說,圖片是顯示在Activity上的,當

原创 我應該標記一下的java同步知識

synchronized  synchronized使用起來非常的方便,但是方便不等於簡單,裏面涉及的知識點還是挺多的,這裏簡單記錄一點筆記。 首先記錄一下我所認識的鎖,任何對象在頭信息裏都有一個鎖標記,類也是特殊的對象(class對象)

原创 Activity啓動模式的那點事

要說Activity是Android四大組件最重要的一點也不爲過,因爲用戶最能直觀感受的也就是Activity。在講啓動模式之前有兩個概念要先理一理,Stack和Task。 Task Activity是顯示以及用戶直接進行交互的組件,我們

原创 一點一點啃RxJava(三#操作符#)

本文將分析RxJava2中常見的操作符。RxJava有許多操作符,提供了很多不同的功能,而最終的目的就是將上游的Observable轉換成不同的Observable對象實現不同的功能。舉幾個栗子:              操作符前後的對

原创 Android 開發繞不過的坑:你的 Bitmap 究竟佔多大內存?

0、寫在前面 本文涉及到屏幕密度的討論,這裏先要搞清楚 DisplayMetrics 的兩個變量,摘錄官方文檔的解釋: density:The logical density of the display. This is a sc

原创 ThreadLocal · 源碼解讀

        第一次知道ThreadLocal是在看Looper源碼的時候知道的,那時候只知道它的作用是讓數據在各個線程單獨保持一份,互不干擾,也一直沒有去研究它的具體實現。昨天下班前粗略地看了一遍,我心裏想的是“這玩意兒真的是太麻煩了

原创 Android廣播的源碼解析

最近打算把Android基礎的一些知識再深入一點,所以就打算從四大組件開始入手,廣播是經常使用的,但是也僅僅只停留在會用,卻不知其原理,就着這個機會把源碼給擼一遍吧。 public class MainActivity extends

原创 一點一點啃RxJava(四#背壓#)

        emmmm......本來我以爲Rxjava應該寫完了,但是仔細想想,還有一個比較重要的概念還沒有涉及到,那就是“背壓”。        一開始看RxJava的文檔時看到背壓這個概念的時候我是拒絕的,因爲,你不能說這是背壓

原创 TCP UDP、Socket

回過頭來看到自己寫的東西真是太糟糕了,剛開始的初衷是希望能夠寫一些有用的文章,不管是自己偶爾看看或者是別的朋友不經意間看到,都能或多或少有點收穫,可是現在看來,學藝也不精,理解也不深,就寫了很多沒用的東西,從頭看到尾滿滿的水分。。。學無止

原创 Android SQLite使用

數據庫是Android的一種數據存儲方式,但是SQLiteOpenHelper是抽象類,我們需要自己寫一個實現類來實現onCreate方法和onUpgrade方法,這兩個方法分別會在數據庫創建和更新的時候調用到。 getWritableD

原创 一點一點啃RxJava(二#線程調度#)

        用RxJava實現線程切換是非常方便的,而且線程切換也是RxJava最大的特點之一。        依舊是先上一段示例代碼和執行結果Observable .create(new Observ