原创 藍牙設備按鍵是如何傳遞給Framework的

藍牙按鍵是如何上傳給Framework層的 主要流程是藍牙controller接收到slaver消息之後傳遞給host,然後host將按鍵信息寫入到/dev/input路徑下的一個節點中。之前分析過input按鍵的傳遞流程,此處的

原创 藍牙基本概念以及Android中藍牙enable/discover流程分析

藍牙基本概念 兩種藍牙技術:Basic Rate (BR)和Low Energy(LE) 這兩種技術是不能互通的,也就是不能相互兼容。如果要確保和所有的藍牙設備互通,只能同時實現這兩種技術。 BR Basic Rage是正宗的藍牙

原创 InputManagerService分析(2)

這篇文章補充了之前文章中沒有的view初始化的流程分析。本文詳細的分析了input event是通過何種方式傳遞到activity以及從驅動中讀取到event後,jni是如何對按鍵進行上報的過程。通過本文的分析,能夠基本上了解按鍵

原创 Android Vold學習筆記

原创 Android Log原理分析

在android開發的過程中,需要查看log信息來幫助分析。那麼知曉log的原理就是比較重要的了。 Framework 中的Log Framework中的Log比較簡單,主要就是封裝接口,在接口中調用println_native函

原创 Android Activity 接收按鍵原理分析(1)

之所以Activity能夠接收到來自底層的Keyevent是因爲在顯示時創建了一個InputChannel。當底層有按鍵事件時就會通過這個InputChannel傳遞上來。 View的初始化 在啓動一個activity時將會調用V

原创 Android Activity 接收按鍵原理分析(2)

按鍵傳遞過程 接收按鍵的傳遞流程 EventHub用來讀取驅動中的event。InputReader負責將EventHub中的消息讀取出來,之後InputDispatcher將event發送出來。 具體代碼如下 InputRead

原创 Android Input keycode &scanCode

鍵值對接 涉及到的文件: frameworks/native/include/input/KeycodeLabels.h external/kernel-headers/original/linux/input.h ScanCod

原创 Android.mk轉換Android.bp方法

1.整體編譯SourceCode。會在out/soong/host/linux-x86/bin/中生成androidmk 文件。利用這個bin文件能夠將Android.mk文件轉換成Android.bp文件。 例如,想要添加一個第三方

原创 Android 9.0 cmds

之前Android中的cmd都是bin文件,例如svc/settings等。這些命令的源碼都是存放在android/framework/base/cmds目錄下。在android 9.0中也是在這個位置,但是實現方式進行了改動。下面就

原创 Android6.0&9.0 Wifi

在介紹Android9.0中wifi的架構之前,先介紹一下Android Treble項目。 Android系統架構 1.應用框架。 應用框架最常被應用開發者使用。作爲硬件開發者,您應該非常瞭解開發者 API,因爲很多此類 API

原创 本地Android代碼庫的搭建

在android系統開發的過程中,source code是由git來做代碼管理的。在android source code中有很多的git倉庫,如果單個去管理的話會比較麻煩。這就引入了repo。repo是用python寫的一個腳本,用

原创 wpa_cli工具的使用方法及分析

wpa_cli 的使用方法 在Android中有wpa_cli工具能夠直接可wpa_supplicant通訊。能夠查看一些wifi的信息。 使用方法:wpa_cli -i wlan0 -p /data/misc/wifi/socket

原创 Wpa_supplicant啓動流程草圖

之前關於Wifi啓動流程中有提到Wpa_supplicant的啓動方式。究竟supplicant啓動過程是如何的,supplicant是如何與client端,與netlink是如何進行交互的呢。 首先看一下官方關於supplicant