原创 Input系統之鍵值映射

一. 概述 android系統的輸入事件來源在linux內核提供的/dev/input的設備節點下, 當該設備下及誒點有數據刻度時,將數據獨處並進行一系列的翻譯和加工,然後在所有的窗口中尋找合適的接受者,並派發給它; 輸入系統總體流程如下(

原创 線程池的C實現

一. 概述 相信大家一直有聽過線程池, 但是不一定都知道這到底是個什麼東西,是如何實現的; 1.1 爲什麼要使用線程池? 因爲線程的創建和銷燬開銷較大, 在單位時間內處理大量任務時再創建線程進行處理時間來不及. 可以控制線程數目, 保證不

原创 Binder機制情景分析之native層淺析

一. 概述 淺析下android的native層binder的實現,基於android源碼5.1,參考mediaService的代碼; 1.1 問題 因爲前兩篇我們用c寫過binder的實例,實現了service和client端,也分析了驅

原创 Binder機制情景分析之transaction_stack

一. 概述 這裏以註冊服務爲例,當led_control_service請求註冊服務時是通過handle找到的ServiceManager,但是ServiceManager是如何找到led_control_service進行回覆的呢? 答:

原创 Binder機制情景分析之深入驅動

一. 概述 看過上篇C服務應用篇內容你肯定已經瞭解binder的一個使用過程,但是肯定還會有很多疑問: service註冊服務是怎麼和ServiceManager聯繫上的? client是怎麼根據服務名找到的service進程? clie

原创 Binder機制情景分析之linux環境適配

binder安裝 一. 環境 - 運行環境:linux4.1.15 - 開發板爲天嵌imx6ul 二. 內核修改 2.1 打開內核配置菜單 make menuconfig 2.2 修改配置 配置驅動 轉到Device Drivers-

原创 Binder機制情景分析之C服務應用

一. 概述 這裏只講下binder的實現原理,不牽扯到android的java層是如何調用; 涉及到的會有ServiceManager,led_control_server和test_client的代碼,這些都是用c寫的.其中led_co

原创 Handler機制情景分析

一. 概述 在整個Android的源碼世界裏,有兩大利劍,其一是Binder IPC機制,,另一個便是消息機制(由Handler/Looper/MessageQueue等構成的). Android有大量的消息驅動方式來進行交互,比如And