原创 Android View深入學習(一),View的測量(Measure)過程

Android應用上面的View顯示出來都必須經過測量,佈局,和繪製這三個過程。我們知道PhoneWindow中的DecorView是界面最頂層的View,那麼,最先繪製的View肯定是DecorView。在ViewRootImp

原创 Android View深入學習(三),View的繪製(Draw)過程

View繪製最開始是從最頂層DecorView開始的,在ViewRootImpl中的performTraversals方法中,調用了 performDraw,開始對DecorView進行繪製: private void perf

原创 解析View中的MeasureSpec

MeasureSpec是View中的一個內部類,封裝了父View傳給子View的佈局需求: public static class MeasureSpec { private static final int M

原创 FaceBook開源圖片加載框架Fresco簡單介紹

一、Fresco簡介        Fresco是Facebook最新推出的一款用於Android應用中展示圖片的強大圖片庫,可以從網絡、本地存儲和本地資源中加載圖片。之前看大家在QQ羣和各個社區都在討論Fresco,都說性能非常好

原创 Android 的消息機制

一、消息機制的總結 1、Handler Handler對象是Message的接收者和處理者。用戶使用Handler對象把Message添加到消息隊列中;同時通過Handler的回調方法handleMessage()來對消息隊列中的

原创 深入學習Android異步任務-AsyncTask

一、AsyncTask的介紹與使用 AsyncTask可以讓程序進行異步工作,它在一個線程中執行某些操作,之後將結果返回給UI線程。使用AsyncTask類時,需要繼承AsyncTask類並實現doInBackground()回調

原创 MotionEvent 源碼學習

在View被觸摸時,會收到Framework傳來的MotionEvent實例,封裝了輸入事件種類,座標等信息,因此,要熟悉View事件的處理,首先要熟悉MotionEvent的一些常用方法和屬性。 輸入事件的種類 輸入事件的種類比

原创 Android View深入學習(二),View的佈局(Layout)過程

View佈局最開始是從DecorView開始的,在ViewRootImpl中的performTraversals方法中,調用了 performLayout(lp, desiredWindowWidth, desiredWindow

原创 ubuntu 14.04 kylin 編譯 android 5.0源碼

         因爲工作中經常用到Android源碼,同時,自己也想深入的學習一下Android Framework層的東西,於是,最近嘗試學習編譯源碼,過程真可謂十分艱辛.最後終於成功。於是,我想很有必要記錄過程中遇到的問題。 1、

原创 源碼分析Activity啓動的流程

一般我們知道,Activity啓動會依次調用Activity的onCreate,onStart,onResume方法,但是,我們心裏肯定會有疑問,爲什麼會調用這些方法?,Activity實例是怎樣獲取的?要解開這些疑問,就必須分析

原创 Git學習總結

1、git安裝的配置 git config --global user.name "your name" git config --global user.email "your email" 2、初始化git倉庫 git init

原创 解決Genymotion運行Android 5.0一直卡在開機界面

Genymotion運行Android 5.0模擬器一直卡在開機界面,如下圖: 解決方法:進BIOS,設置intel Virtualization Technology 爲enable就可以了

原创 Java線程總結

一、線程的創建 1、繼承Thread類,重寫run方法 優點:簡單。缺點、;已經繼承Thread類,不能再繼承其他的類,不能共享實例變量。 2、實現Runnable接口,重寫run方法。這種情況,多個線程可以共享Runnable實例變量。

原创 Android 事件分發實踐(一),解決ScrollView嵌套ListView滑動的問題

需要在ScrollView裏面嵌套一個ListView,讓ScrollView和它裏面的ListView都能滑動(ListView寬度沒有佔滿ScrollView),先貼上佈局代碼: <com.example.xujiang.vi

原创 Android 手勢識別--GestureDetector

如果要對一個View進行手勢監聽,比如,單擊,雙擊,滑動等,可以通過自定義View,重寫View 的onTouchEvent方法,定製自己想要監聽的手勢。不過,如果我們只是對一個普通的View監聽一些常用的手勢,大可不必選擇自定義