Android user版通過(guò)adb_enable開(kāi)啟adb 調(diào)試 不提示對(duì)話(huà)框的流程分析
需求解讀
由于定制rom給用戶(hù)具體需求如下:
入工廠(chǎng)測(cè)試app自動(dòng)打開(kāi)adb調(diào)試模式,退出就關(guān)閉,防止客戶(hù)的用戶(hù)安裝其它應(yīng)用(直接通過(guò)改變Settings.Global.ADB_ENABLED字段) 打開(kāi)usbdebug不提示彈出框 禁止調(diào)試圖標(biāo)出現(xiàn)在通知狀態(tài)欄過(guò)程分析
通過(guò)字段關(guān)閉和開(kāi)啟usb調(diào)試模式
通過(guò)開(kāi)啟開(kāi)發(fā)者模式最終發(fā)現(xiàn)開(kāi)啟或者關(guān)閉是改變?nèi)缦伦侄?
Settings.Global.putInt(getContentResolver(),Settings.Global.ADB_ENABLED, 0);
打開(kāi)USBdebug不彈框流程
當(dāng)adb_enable為0時(shí)會(huì)關(guān)閉adb調(diào)試模式,為1是會(huì)有彈框提示點(diǎn)擊確認(rèn)時(shí)會(huì)默認(rèn)打開(kāi)usb調(diào)試模式;通過(guò)代碼查找發(fā)現(xiàn)在frameworksbaseservicesusbjavacomandroidserverusbUsbDeviceManager.java中監(jiān)聽(tīng)
發(fā)送消息handler消息
獲取消息,進(jìn)入如下方法
調(diào)取mDebuggingManager.setAdbEnabled(mAdbEnabled);目前就以ENABLED為例
收到消息創(chuàng)建線(xiàn)程:
監(jiān)聽(tīng)
發(fā)送handler消息,得到相應(yīng)的key
進(jìn)一步調(diào)取
啟動(dòng)對(duì)應(yīng)的activity,標(biāo)記為對(duì)應(yīng)的activity報(bào)名和類(lèi)名
修改frameworksbasepackagesSystemUIsrccomandroidsystemuiusbUsbDebuggingActivity.java屏蔽授權(quán)彈框
禁止通知狀態(tài)欄usb顯示
/device/rockchip/xxxx/system.prop 添加 字段persist.adb.notify=0實(shí)現(xiàn)完成
總結(jié)
到此這篇關(guān)于Android user版通過(guò)adb_enable開(kāi)啟adb 調(diào)試 不提示對(duì)話(huà)框的文章就介紹到這了,更多相關(guān)android 開(kāi)啟adb 調(diào)試內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP實(shí)現(xiàn)加法驗(yàn)證碼2. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享3. PHP循環(huán)與分支知識(shí)點(diǎn)梳理4. Spring注入Date類(lèi)型的三種方法總結(jié)5. ASP基礎(chǔ)知識(shí)Command對(duì)象講解6. PHP session反序列化漏洞超詳細(xì)講解7. ASP基礎(chǔ)入門(mén)第二篇(ASP基礎(chǔ)知識(shí))8. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)9. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享10. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))
