原创 詳解Handler機制

Handler詳解 文中源碼基於API 28,且部分有刪減 Handler有什麼用? 爲什麼要用Handler? Android應用程序運行時會創建一個主線程就是我們常說的UI線程,而更新UI的操作只能在主線程進行.但是實際開

原创 Mac配置oh my zsh,並使用ITerm2

Mac配置oh my zsh,並使用ITerm2 先看看最終效果 第一步安裝on my zsh sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zs

原创 幾種導致內存泄漏的常見錯誤

幾種導致內存泄漏的常見錯誤 Broadcast Receiver等未進行unregister 例如:當你在Activity中register broadcast receiver,假如你沒有unregister the broad

原创 線程池ThreadPoolExecutor簡介

線程池ThreadPoolExecutor簡介 線程池的實現方式 java中實現線程池的類主要是ThreadPoolExecutor這個類 主要的構造方法有 來看一下最全的構造方法 public ThreadPoolExecu

原创 Flutter底部導航欄之BottomNavigationBar

實現的方式 ​ 因爲Flutter的widget分爲StatelessWidget和StatefulWidget.我們使用底部導航欄肯定是通過點擊底部的導航按鈕來實現頁面的更改,所以包含BottomNavigationBar的Widg

原创 Flutter佈局之Container

Container 簡介 ​ 官方給出的簡介,是一個結合了繪製(painting)、定位(positioning)以及尺寸(sizing)widget的widget。 佈局特點 如果沒有子節點、沒有設置width、height以及c

原创 git cherry-pick操作

定義 把一個commit從一個分支拿到另一個分支.相當於只merge一次commit 解決的實際問題 假如我在branch1分支上有一個commit,如何把它放到master分支上 或者是我在branch1有兩個commit,如何把

原创 git reset --hard --soft --mixed區別

使用方法 git --mixed/--hard/--soft 41e1d58739a5ab280b5b2dbde107c14aeeb0b6d2 git --soft 只是刪除某次提交,再次提交直接commit即可 git --m

原创 使用Messenger進行跨應用(進程)通訊

使用Messenger進行跨進程通訊 Messenger可以翻譯爲信使,使用它我們可以進行跨進程通訊.Messengers是一種輕量的IPC,通過構造方法可以輕鬆的看出它的底層是現實AIDL. public Messenger(Han

原创 AIDL進行進程間通訊

AIDL進行進程間通訊 AIDL是一個縮寫,全稱是Android Interface Definition Language,也就是Android接口定義語言 在上一篇 使用Messenger進行跨應用(進程)通訊中,使用Messen

原创 OkHttp源碼解析(二)之Interceptor

OkHttp中的Interceptors getResponseWithInterceptorChain() 繼續說getResponseWithInterceptorChain()方法 Response getResponseWit

原创 OkHttp源碼解析(一)

簡單使用 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.gith

原创 for循環,增強for循環與Iterator的比較

先看看他們的寫法 普通for循環 ArrayList<String> list = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { String x

原创 Collections.synchronizedList使用方法

ArrayList 衆所周知ArrayList是非線程安全的,在多線程的情況下,向list插入數據的時候,可能會造成數據丟失的情況.並且一個線程在遍歷List,另一個線程修改List,會報ConcurrentModificationE

原创 Android 利用Annotation Processing 編譯時通過註解自動生成代碼

Android 利用Annotation Processing 編譯時通過註解自動生成代碼 類似ButterKnife的框架,因爲時間有限只實現綁定View.主要是利用 Annotation Processing,編譯的過程中讀取註解