android-ndk開發(4): linux開發機有線連接android設備

android-ndk開發(4): linux開發機有線連接android設備

2025/05/05

1. 概要

linux 系統, 例如最常見的 ubuntu, 在通過 USB 線把 android 設備連接到開發機上時, 僅僅是 ”物理上的連接”。 這時候 adb 是無法識別到 android 設備的。 需要配置 udev 規則才能發現設備。

要想真的讓系統識別到 android 設備,

2. 添加 udev 規則的步驟

2.1 獲取 idVendor 和 idProduct 信息

在開發機上, 分別在插入、不插入手機usb線的情況下,執行 lsusb 命令來獲得 idVendor 和 idProduct。 例如:

? lsusb                                                           
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub    
Bus 001 Device 002: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub    

其中ID后的xxxx:yyyy分別是idVendor和idProduct,在udev規則文件中需要他倆。

2.2 添加udev規則

根據上一步查找的idVendor和idProduct,添入新建的規則文件中:

vim /etc/udev/rules.d/51-android.rules, 增加:

SUBSYSTEM=="usb", ATTR{idVendor}=="2717", ATTRS{idProduct}=="ff48", MODE="0666"

保存文件, 并授予賦予讀取權限:

chmod a+r /etc/udev/rules.d/51-android.rules

2.3 讓 udev 規則生效

可嘗試 sudo systemctl restart udev, 或重新插拔設備。 若確實長時間沒反應(1分鐘以上), 可考慮重啟主機。

通常很快就能查詢到設備 (adb devices).

2.4 設備上的設定

  • 需要開啟USB調試(設置->…->開啟“開發者選項”,并且開啟”USB調試“和”USB安裝“

  • 需要選擇MTP連接(新版Android叫做“傳輸文件”)方式,否則可能遇到報錯:

adb: insufficient permissions for device: user in plugdev group; are your udev rules wrong?

參考: https://stackoverflow.com/questions/28704636/insufficient-permissions-for-device-in-android-studio-workspace-running-in-opens

3. 總結

本篇給出了 Linux 開發機上, 配置 udev 規則的步驟和注意事項, 從而讓后續通過 USB 線連接設備時, 能自動識別設備, 順暢的使用 adb 命令。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NOI 2025 大綱更新:算法競賽的新風向標

《NOI 2025 大綱更新:算法競賽的新風向標》 在信息學奧林匹克競賽(NOI)的賽場上,每一次大綱的更新都如同一場風暴的前奏,它預示著競賽知識體系的變革,也引領著選手們備戰的方向。2025 年的 NOI 大綱已經正…

Spring Boot 集成 Solr 的詳細步驟及示例

環境準備 安裝 Solr :從 Solr 官網(Welcome to Apache Solr - Apache Solr)下載并安裝最新版本,然后通過命令 bin/solr start 啟動 Solr 服務,使用 bin/solr create -c mycore 創建一個新的 Solr 核心。 安裝 JDK &am…

【自然語言處理與大模型】LlamaIndex的數據連接器和對話引擎

LlamaIndex 是領先的開發框架,專為結合大型語言模型(LLM)與個性化工作流打造高效的數據驅動型智能代理而設計。一般我們用它來做RAG檢索增強生成。 (1)RAG的介紹 大型語言模型(LLM)雖然在海量數…

【實戰教程】React Native項目集成Google ML Kit實現離線水表OCR識別

前言 在移動應用開發中,OCR(光學字符識別)技術廣泛應用于各類場景。本文將詳細介紹如何在React Native項目中集成Google ML Kit,實現離線水表數字識別功能。全程使用TypeScript,并針對React Native 0.74版本進行適配&a…

全球化電商平臺AWS云架構設計

業務需求&#xff1a; 支撐全球三大區域&#xff08;北美/歐洲/亞洲&#xff09;用戶訪問&#xff0c;延遲<100ms處理每秒50,000訂單的峰值流量混合云架構整合本地ERP系統全年可用性99.99%滿足GDPR和PCI DSS合規要求 以下是一個體現AWS專家能力的全球化電商平臺架構設計方…

jupyter notebook運行簡單程序

一. 使用 cmd 創建虛擬環境 1.創建虛擬環境 &#xff08;1&#xff09;創建新的虛擬環境&#xff08;本項目名設置為zhineng&#xff09;&#xff0c;并設置python版本 conda create -n zhineng python3.6 &#xff08;2&#xff09;查看python版本 python --version &am…

【計算機視覺】語義分割:MMSegmentation:OpenMMLab開源語義分割框架實戰指南

深度解析MMSegmentation&#xff1a;OpenMMLab開源語義分割框架實戰指南 技術架構與設計哲學系統架構概覽核心技術特性 環境配置與安裝指南硬件配置建議詳細安裝步驟環境驗證 實戰全流程解析1. 數據集準備2. 配置文件定制3. 模型訓練與優化4. 模型評估與推理 核心功能擴展1. 自…

計算機圖形學編程(使用OpenGL和C++)(第2版)學習筆記 01.環境搭建

計算機圖形學編程(使用OpenGL和C)(第2版) 這是我學習計算機圖形學編程(使用OpenGL和C)的筆記&#xff0c;主要記錄學習心得及一些學習過程中遇到的問題和解決方案。源代碼存放在github上。 參考資料&#xff1a; 原書資源(程序代碼、模型、紋理、貼圖及圖表)下載ShaderToy學習…

代碼隨想錄算法訓練營第三十二天

LeetCode/卡碼網題目: 518. 零錢兌換 II377. 組合總和 Ⅳ790. 多米諾和托米諾平鋪(每日一題)57. 爬樓梯&#xff08;第八期模擬筆試&#xff09; 其他: 今日總結 往期打卡 背包問題特點: 滾動數組背包遍歷順序 完全背包從小到大,即基于當前物品更新過的繼續更新01背包從大到…

第十六屆藍橋杯 2025 C/C++組 密密擺放

目錄 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; 思路&#xff1a; 思路詳解: 發個牢騷&#xff1a; 代碼&#xff1a; 代碼詳解&#xff1a; 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; P12337 [藍橋杯 2025 省 AB/Python B 第二…

分析rand()和srand()函數的功能

rand()和srand()函數原型&#xff1a; int rand(void) 返回一個范圍在 0 到 RAND_MAX 之間的偽隨機數。 void srand(unsigned int seed)用來給rand() 設置隨機數發生器&#xff0c;隨機數發生器輸出不同的數值&#xff0c;rand() 就會生成不同的隨機數 1)、在“D:\Keil_v5\AR…

debuginfo詳解

debuginfo 是 Linux 系統中存儲調試符號和源代碼信息的特殊軟件包&#xff0c;用于分析內核或用戶態程序的崩潰轉儲文件&#xff08;如 vmcore、coredump&#xff09;。它在調試復雜問題&#xff08;如內核崩潰、程序段錯誤&#xff09;時至關重要。以下是其核心作用、安裝方法…

Python 爬取微店商品列表接口(item_search)的實戰指南

在電商數據分析、市場調研或競品分析中&#xff0c;獲取商品列表信息是常見的需求。微店作為知名的電商平臺&#xff0c;提供了豐富的商品資源和相應的 API 接口。本文將詳細介紹如何使用 Python 爬蟲技術&#xff0c;通過微店的 item_search 接口根據關鍵詞搜索商品列表&#…

【bazel】bazel簡介及簡單使用

文章目錄 1. What is bazel?2. bazel的核心原理2.1 bazel的構建模型2.2 bazel的核心概念2.3 bazel的關鍵特性 3. bazel的使用3.1 劃分項目結構3.2 編寫BUILD文件3.3 bazel常用命令3.4 bazel依賴管理 參考內容 1. What is bazel? bazel是一個開源的構建工具&#xff0c;它基于…

【Mytais系列】Myatis的設計模式

目錄 設計模式 1. 工廠模式&#xff08;Factory Pattern&#xff09; 2. 建造者模式&#xff08;Builder Pattern&#xff09; 3. 動態代理模式&#xff08;Dynamic Proxy Pattern&#xff09; 4. 模板方法模式&#xff08;Template Method Pattern&#xff09; 5. 策略模…

【unity游戲開發入門到精通——UGUI】Mask組件實現UGUI遮罩

注意&#xff1a;考慮到UGUI的內容比較多&#xff0c;我將UGUI的內容分開&#xff0c;并全部整合放在【unity游戲開發——UGUI】專欄里&#xff0c;感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言如何實現UI遮罩1、Mask組件2、實例3、注意 專欄推薦完結 前言 Mask遮罩是…

Github2025-05-04php開源項目日報 Top10

根據Github Trendings的統計,今日(2025-05-04統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量PHP項目10Shell項目1Vue項目1Java項目1ASP項目1SecLists - 安全測試人員的伴侶 創建周期:4375 天開發語言:PHP協議類型:MIT LicenseStar數量…

MyBatis 一對多與多對一映射詳解教程

一、基礎概念與場景 一對多&#xff08;One-to-Many&#xff09; ? 定義&#xff1a;一個父對象包含多個子對象。 例如&#xff1a;一個商品&#xff08;Goods&#xff09;對應多個商品詳情&#xff08;GoodsDetail&#xff09; ? 實體類表現&#xff1a;父類中包含 List&l…

ChatGPT:重塑人工智能交互范式的破曉之作

2022年11月30日,總部位于舊金山的研究公司OpenAI正式發布了ChatGPT——一款以病毒式傳播速度席卷全球的AI聊天機器人。它不僅能像人類一樣生成內容、回答問題和解決問題,更在推出后的兩個月內吸引了超過1億月活躍用戶,刷新了消費級技術應用的最快采用率紀錄。這一里程碑事件…

在項目中如何對Map List等對象序列化及反序列化

我們知道&#xff0c;在自定義類中&#xff0c;若想完成序列化必須要實現Serializable接口。 那么在實現后如何進行序列化呢&#xff1f; 一.普通對象 序列化&#xff1a; 1.首先我們要定義一個 序列化所需要的工具類 ObjectMapper //定義序列化所需要的工具類 轉化機器…