TimeBook
  • Introduction
  • 1.前言
    • 前言
    • 鸣谢
  • 2.环境篇
    • 工具部署和使用
      • 团队协作工具
        • Confluence
      • 开发工具
        • Docker
          • 镜像导入导出
          • 安装
        • Docker Compose
      • 持续集成工具
        • Gerrit
        • Sonarqube
          • 分析参数设定
          • Prerequisite
          • 服务端设置
        • Ubuntu Ci Deploy
          • ubuntu使用docker部署jenkins+sonarqube
        • 持续集成部署
      • 文本编辑工具
        • Gitbook相关注意事项
        • Markdown快速入门
      • 版本控制
        • Git
          • 1.基础
            • Git基础(一)
            • Git基础(二)
            • Git基础(三)
            • Git基础(四)
            • Git基础(五)
          • 2.命令详解
            • 命令速查
          • 3.进阶技巧
            • git技巧
      • 自动化测试工具
        • Appium
          • capability参数配置
          • 安装
          • 简介
      • 项目管理工具
        • Jira
    • 开发环境配置
      • 通用
        • Homebrew安装与使用
        • Git服务器添加SSH Key
        • koroFileHeader使用
        • nodejs与npm的安装
        • npm更换国内源
        • pip使用相关
        • PostgreSQL安装与使用
        • proxychain安装与使用
        • shell配置环境变量
        • snapd安装与使用
        • terminal走代理
    • 快捷键速查
      • shell常用快捷键
  • 3.语言篇
    • C
      • 代码规范
      • 语言技巧
    • Cpp
      • 代码规范
      • 基础知识
        • 理解C++中的左值和右值
      • 语言技巧
        • 并发编程
          • 简单的线程池实现
    • Golang
      • 代码规范
        • 避免使用转义字符串
        • 避免参数语义不明确
        • 嵌套式结构体
        • 函数的分组与顺序
        • 函数命名
        • 声明一致性
        • 导入别名
        • 使用字段名初始化结构体
        • 本地变量声明
        • map初始化
        • nil用法
        • 包命名
        • 命名Printf样式的函数
        • 减少嵌套
        • 缩小变量作用域
        • struct引用初始化
        • 测试表声明
        • 顶层变量声明
        • 不必要的else
      • 环境配置
        • 代码检查格式化工具
          • Go Fmt
          • Goimports
          • Golint
          • Go Vet
        • go mod详解
        • golang安装
        • Golang开发环境
        • Troubleshooting
      • 语言技巧
        • 如何分包
    • Java
      • 代码规范
      • 语言技巧
        • 注解编程
        • 动态代理
    • Js
      • 语言技巧
        • Rollup
    • Kotlin
      • 基础知识
        • 写给开发者Kotlin指引(一)
        • 写给开发者Kotlin指引(二)
    • Python
      • 语言技巧
        • Best Practice Of Python S Project Structure
  • 4.规范篇
    • Git message规范
  • 5.技术篇
    • Android技术
      • Hook
        • EdXposed例子
        • Android 10 上安装Magisk和EdXposed
      • Tinker
        • 1.Tinker及其使用
      • 准备
        • ADB连接设备步骤及注意事项
        • adb连接设备
        • aosp编译
      • 基础
        • Binder接口调用的鉴权方法
        • Make 及 Android 编译系统介绍
        • 使用Content Provider为其他应用提供数据
      • 源码阅读
        • Framework源码分析 Looper Handler
        • Framework源码分析 启动流程 ServiceManager的初始化
        • Framework源码分析 启动流程 Zygote启动SystemServer
    • JS Bridge
      • JSBridge初探
    • Kernel技术
      • kallsyms子系统
    • Test技术
      • 软件测试
        • jnekin+sonar 部署 问题总结
        • 性能测试基础
        • 软件测试的背景
        • 测试基础
        • 测试人员的核心竞争力
    • 操作系统原理
      • 处理器如何实现原子操作
Powered by GitBook
On this page
  • 一、连接步骤
  • 1.1 安装adb
  • 1.2 确认连接设备
  • 1.3 拷贝51-android.rules文件
  • 1.4 重启USB服务
  • 1.5 重启adb服务
  • 1.6 添加权限
  • 二、注意事项

Was this helpful?

  1. 5.技术篇
  2. Android技术
  3. 准备

ADB连接设备步骤及注意事项

Previous准备Nextadb连接设备

Last updated 4 years ago

Was this helpful?

一、连接步骤

1.1 安装adb

可以通过apt-get安装adb

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb

或者下载 ,Platform Tools 中包含了 adb、fastboot 等常用的命令行工具,下载之后把相应路径加到 PATH 中去即可。

将android设备连接至电脑,执行adb shell会提示“error: device not found”

1.2 确认连接设备

将android设备连接至电脑,通过lsusb查看usb设备,如下Google部分对应的就是android设备

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 027: ID 1f3a:1002 Google Inc.
Bus 002 Device 003: ID 046d:c077 Logitech, Inc.

1.3 拷贝51-android.rules文件

将以下链接中的51-android.rules文件(任选其一)拷贝到/etc/udev/rules.d/下

1.4 重启USB服务

$ sudo chmod a+rx /etc/udev/rules.d/70-android.rules
$ sudo service udev restart

1.5 重启adb服务

$ adb kill-server
$ sudo adb start-server
$ adb devices
List of devices attached
815105148800601fe42 device

adb devices有设备说明adb安装成功

1.6 添加权限

正常情况下, 第5步后应该可以正常连接设备. 如果没有成功连接, 需要检查权限文件.

sudo vim /etc/udev/rules.d/51-android.rules

加入以下内容,注意其中的1f3a和1002对应的就是lsusb得到的id:

SUBSYSTEM=="usb", ATTR{idVendor}=="1f3a", ATTR{idProduct}=="1002",MODE="0666"

备注: 在 /etc/udev/rules.d/下, 可能已经存在51-android.rules. 只需要在后面追加上面的内容即可.

添加成功后, 重复第4步和第5步.

二、注意事项

  1. 请注意打开手机的开发者选项, 允许USB调试.

  2. 发现adb shell经常重启

    原因: shell中使用的adb,一般是/usr/bin/adb, 可以通过adb verison查看版本号. 每份 Android 源码在 out/host/linux-x86/bin/adb 也有一个 adb. Android Studio使用的adb目录为 Sdk目录/platform-tools/adb. 重启原因是三者版本不一致, 重启不影响 adb 使用. 保持一直使用同一个版本的 adb 可以避免这个问题.

  3. 设备的serial number记录在 /sys/class/android_usb/android0/iSerial 文件中,我们可以通过修改该文件的值来修改设备的serial number。注意修改后需要重新连接手机。

  4. 如果在完成文档中写到的所有操作之后,adb devices仍然无法得到已连接的设备信息,可以尝试将lsusb得到的id写到~/.android/adb_usb.ini文件中,之后重复第4~5步。

SDK Platform Tools
snowdream/51-android
M0Rf30/android-udev-rules