原创 android內存管理(二)

匿名內存共享 匿名內存映射簡單介紹 Anonymous Shared Memory是Android特有的內存共享機制,它是基於linxus共享內存而改進的,它可以將指定的物理內存分別映射到各個進程自己的虛擬的地址空間中,從而便捷地實現進

原创 Handler,MessageQueue,Runnable與Looper

三者關係 Handler是處理消息或發送消息,MessageQueue存儲消息,Runnable安排執行任務,Looper循環MessageQueue消息隊列,並取出消息到給制定Handler處理。其三者具體關係如下: 每個Thread

原创 安卓智能指針

爲什麼要安卓智能指針 在安卓系統中,爲提高運行效率,其框架中間層很多是採用c++和c語言去實現的,在這實現過程,必定會應用不少地指針操作,同時c++和c不想Java那樣有垃圾自動回收功能,因此會使程序員在某些操作常常遇到一些如下的問題:

原创 android內存管理(三)

垃圾內存回收算法 在垃圾內存回收算法中,我們常見的垃圾回收算法有引用計數法(Reference Counting)、標註並清理(Mark and Sweep GC)、拷貝(Copying GC)和逐代回收(Generational GC)

原创 Android觸屏事件處理流程淺析

在android觸屏事件中,我們經常會碰到onclick(),onTouch(),onTouchEven()等方法,那誰會先執行,執行順序又是怎麼樣呢? View的觸屏事件處理 爲弄清除上面那些,首先從源碼入手,看看其整個觸屏事件分發的過

原创 HandlerThread類應用

通常AsyncTask和Handler都是爲異步更新UI而誕生的兩個類,只是AsyncTask是一個封裝後的後臺任務類,是方便大家簡單處理異步任務後更新UI的操作(如短時間異步任務操作),但它並不適合處理所有的後臺異步任務操作,它也存在一

原创 Binder機制(一)

binder的介紹: 由於不同的進程不可以直接互相訪問,所以需要一些機制來確保進程間能夠通信,在linxu中,有以下幾種: 1.管道(Pipe)及有名管道(named pipe):管道可用於具有親緣關係進程間的通信,有名管道克服了管道沒

原创 android內存管理(一)

虛擬內存 如果在程序被掛起或被換出前僅僅使用了一部分進程快,那麼爲該進程給內存中裝入太多的塊顯然會帶來巨大的浪費。而虛擬內存藉助磁盤和內存交換,僅僅裝入這小部分塊來更好地使用內存,然後,如果程序轉移到或訪問到不在內存中的某個快中的指令或數

原创 Weex之Android端的淺析(一)

基本介紹: 體驗了一下weex,發現weex語法還挺簡單,上手容易,發現自己沒什麼前端知識,也能極易上手,出於強烈好奇和業務預研的需要,分析了其Android端的Weex Sdk一些源碼. 先從WXSDKManager入手後,畫出其結構

原创 歸併排序

在歸併排序的迭代算法中,可以把輸入序列看成是個n個已排序序列,其中每個序列的長度爲1,將這些序列兩兩歸併就得到了 n/2個長度爲2的序列(如果n爲奇數,則有一個序列長度爲1),然後對這n/2這個序列進行兩兩歸併,依次類推,直到只剩下一個序

原创 AsyncTask源碼分析

AsyncTask的使用介紹: AsyncTask從Build.VERSION_CODES#HONEYCOMB 開始默認的執行方式是單個線程串行執行任務,而不是多個線程併發執行,如果要多個線程併發執行任務,可以調用executeOnExe