原创 深入理解異步加載--Handler和Looper源碼解析(1)

這幾天由於比較空,仔細讀了下Handler,Looper,Message和MessageQueue的源代碼,再結合一些現有的資料(比如任玉剛的Android開發藝術探索),深入的理解了一下Android是如何進行線程切換,異步加載

原创 深入理解異步加載--Handler和Looper源碼解析(2)

上一章介紹了一些Handler類和Looper類,其實這些內容網上有一大把,我只不過是做了個筆記,便於以後回憶 在這章,會放出一點乾貨,講講別人沒講過的東西。 看看這個圖和我們的Handler,Looper和MessageQue

原创 RelativeLayout源碼解析

爲什麼學習 一直對RelativeLayout如何把xml中的屬性轉換成子view的真實座標比較感興趣,並且網上對RelativeLayout這部分資料比較少,希望將自己對RelativeLayout這部分源碼理解寫出來,跟大家分

原创 Android多線程斷點續傳下載

最近項目裏用到了斷點續傳下載,所以在博客裏做個記錄,便於以後回顧。 背景知識 依賴於Http/206響應 首先你需要知道文件大小以及遠程服務器是否支持HTTP 206請求.使用curl命令可以查看任意資源的HTTP頭,使用下面的c

原创 Http緩存機制

什麼是Http緩存 緩存緩存,就是把需要的東西存起來,不需要每次都去請求。主要目的減小服務器壓力,放到客戶端上來講,還利於節省流量,還能流暢的把UI顯示出來,提高了用戶體驗。對於Http緩存來講,主要的就是校驗緩存的有效性,也就是

原创 TextView源碼解析-----繪製過程

簡介 看段Android官方的簡介 Class Overview Displays text to the user and optionally allows them to edit it. A TextView is a c

原创 shadowsocks-android-java源碼分析

簡述 項目git地址:https://github.com/dawei101/shadowsocks-android-java 最近工作上需要用到代理,發現Socks5協議比較適合項目,就進行了一些研究,找到了一個不錯的開源項目shad

原创 Android程序猿帶你學python第5章--輸入與輸出(I/O)

導讀 在第0章就說過,程序無非就是輸入->邏輯->輸出。所以如何處理輸入和輸出就顯得非常重要,常見的輸入有控制檯輸入,函數接受參數輸入,常見的輸出有控制檯輸出,文件,數據庫等 常見的I/O處理 控制檯輸入輸出 >>pri

原创 Picasso源碼解析

前言 Picasso和OKHttp同屬大名鼎鼎的Square公司,是一款優秀的圖片處理框架。而一款圖片處理框架無外乎流的加載,內存和硬盤緩存等內容,學習這些優秀的圖片框架,可以增強我們對這方面的理解。 使用方法 //Pica

原创 Android程序猿帶你學python第4章--類

導讀 類對於Java同學來說無比熟悉,每個class都是一個類 類包括2個部分:屬性和方法 屬性是用來描述相同對象的靜態特徵 方法是用來描述相同對象的動態特徵 Python中的類 在python中定義一個

原创 Java集合詳解--什麼是Map

引言 在很久很久以前,講過Set的實現原理,講到Set就是Map的馬甲,那麼今天我們就來看看Map是如何實現的(本文都基於JDK1.8的版本) 什麼是Map Map和Collection有關的幾個map的關係圖 Ma

原创 Android程序猿帶你學python第3章--函數和方法

導讀 函數function —— A series of statements which returns some value to a caller. It can also be passed zero or more argu

原创 Android程序猿帶你學python第2章--邏輯控制

導讀 無論多複雜的業務,最後承載他們的邏輯都可以簡單的歸爲以下幾類: 算數運算符,比較運算符,邏輯運算符,條件控制,循環迭代。只要理清楚這幾類邏輯是如何表達的,那這門語言就可以清晰的呈現出來了 算數運算符 +,-,*,

原创 String,到底創建了多少個對象?

String,到底創建了多少個對象? String str=new String("aaa"); 這行代碼究竟創建了幾個String對象呢?答案是2個,而不是3個。由於new String(“aaa”)相當於”aaa”與一個就是創建出

原创 Android程序猿帶你學python第6章--異常處理

錯誤和異常對於java程序猿來說在熟悉不過了,try,catch用了飛起,在python中也沒什麼本質上的區別,只不過語法語意上有一些區別 在python中常見的異常有 BaseException 所有異常的基類 SystemExit