原创 spring實戰(1)--裝配bean

一、自動配置 @Component:註解表明該類會作爲組件類,並告知Spring要爲這個類創建bean @ComponentScan:默認會掃描與配置類相同的包 @Autowired:自動裝配 二、java配置 @ContextC

原创 Dalvik虛擬機(1)--啓動過程

#Dalvik虛擬機(1)–啓動過程 參考老羅博客整理Dalvik虛擬機的啓動過程。如下:

原创 spring實戰(2)--高級裝配

一、profile 1、@Profile:應用在類級別上告訴Spring這個配置類中的bean只有在此profile激活時纔會創建。在Spring 3.1中,只能在類級別上使用@Profile註解。從Spring 3.2開始,你也

原创 XUtils 源碼分析(三)--數據庫操作模塊

一 數據庫創建 1.客戶端程序: DbUtils.DaoConfig config = new DbUtils.DaoConfig(context);        config.setDbName("user.db");

原创 Android MediaCodec使用介紹

編解碼器簡單概念 MediaCodec用來使用底層多媒體編解碼器。 寬泛講編解碼器處理輸入數據生成輸出數據,它的處理是異步的並且使用一系列輸入輸出buffer。簡單層面來說,你請求或者獲取空的輸入buffer,裝滿輸入之後發送

原创 Android系統zygote進程初始化及進程孵化

Android系統在開機時會經過如下流程(圖片來自網絡): 其中在step3時會由系統內核啓動第一個Init進程,該進程最重要的就是啓動Zygote,而我們的分析也由此開始。 Init進程啓動會執行init.rc腳本,這個

原创 Android invalidate()源碼分析

Android View源碼中的invalidate()在開發中經常使用,尤其是自定義控件,還有View的動畫基本都是直接調用該方法引起重繪。該方法會使View全部或者部分重繪,具體取決於傳入參數、View透明度、View是否在動

原创 Xposed框架學習

Xpsed是一個Android虛擬機劫持代碼注入框架,通過替換系統的app_process程序,在初始化zygote進程之前加載自身程序,注入系統三類重要函數,可以實現全局hook三個部分:zygote初始化,apk包加載,資源加

原创 Android Window理解(1)---三種Window類型

三種窗口類型 FrameWork定義了三種窗口類型,三種類型定義在WindowManager。 1.應用窗口,對應於一個Activity。加載Activity由AmS完成,創建一個應用窗口只能在Activity內部完成。 2.子

原创 Android View 繪製流程

Android View在進行繪製之前會先進行measure和layout,我們的分析從draw開始並假設上面兩步已經完成。View的繪製函數是在ViewRootImpl.java的performDraw()開始,以下就是簡單調用

原创 Android5.0以上使用MediaProjection截圖和錄屏

MediaProjection介紹 MediaProjection可以用來捕捉屏幕,具體來說可以截取當前屏幕和錄製屏幕視頻。MediaProjection由MediaProjectionManager來管理和獲取。 使用步驟 首先

原创 Android中的Context理解

一個Context意味着一個場景,一個場景就是用戶和操作系統交互的過程。 一、Context相關繼承關係 1.ContextImpl是真正的實現類,調用context所有的方法實現都是來自於此。 2.所有的Context的實現內

原创 XUtils 源碼分析(一)--網絡操作模塊

1.HttpUtils.java配置Http請求參數。 2.PriorityAsyncTask.java抽象類,執行線程池任務,將子類實現方法放在線程池中執行。 3.HttpHandler.java是PriorityAsyncTa

原创 Android Window理解(2)---應用窗口創建過程

應用窗口創建 一、創建Window對象 每個應用類窗口window都對應於一個Activity對象。創建應用類窗口都需要先去創建一個Activity。 AmS決定啓動Activity時會先通知客戶端進程,每個客戶端進程都對應於一個

原创 Art虛擬機(3)--初始化類流程

Art虛擬機(3)–初始化類流程 參考老羅博客整理Art虛擬機初始化類流程。如下: