不是闲的蛋疼,来做驱动半年了bluedroid的代码还没怎么看过,婶婶的感觉到蛋疼,今天抽空看起来。
从哪看起,必须从按下蓝牙开关开始,今天尝试从setting里面的蓝牙开关看起,失败了,毕竟不是做java的,惭(mei)愧(shi)。
条件反射搜一下有没有bluetooth.c这么弱智的命名方式,一搜果然有,里面竟然还有个enable,哦耶。
先把我找到的调用关系列在下面,一目了然。
enable();//@external/bluetooth/btif/bluetooth.c |---btif_enable_bluetooth();//@external/bluetooth/btif/btif_core.c |---bte_main_enable();//@external/bluetooth/bluedroid/main/bte_main.c |---GKI_create_task(btu_task);//GKI--General Kernel Interface |---bte_hci_enable();//@external/bluetooth/bluedroid/main/bte_main.c | |---hci.init();//@external/bl...th/bl...id/hci/src/bt_hci_bdroid.c | | |---init_vnd_if(bdaddr);//@external/bl...th/bl...id/hci/src/bt_hw.c | |---hci.set_power(ON);//@ex...al/bl...th/bl...id/hci/src/bt_hci_bdroid.c |---GKI_run(0);//@external/bl...th/bl...id/gki/ulinux/gki_ulinux.c |---bte_snoop_create_task();//HCI log
(如需转载或引用此文章请标明作者和出处,未经同意禁止用于任何商业用途)

本文详细解析了Android系统中蓝牙开关启动的过程,从用户界面的蓝牙开关操作开始,逐步深入到内核层的代码实现,包括bluedroid框架中的关键函数调用与任务创建过程。
3012

被折叠的 条评论
为什么被折叠?



