当前位置: 首页 > news >正文

工具 | macOS 最简方式安装 adb 工具 | Mac

工具 | macOS 最简方式安装 adb 工具 | Mac

介绍

ADB(Android Debug Bridge)是 Android开发工具包(SDK)中的一项实用工具,用于与 Android 设备进行通信和调试。

在 macOS 操作系统上安装 ADB 环境可以帮助开发人员与 Android 设备进行交互并进行调试。

一般安装 adb 环境有三种方式

  • 通过 android sdk 安装,配置环境变量
  • 通过 homebrew 安装
  • 通过下载 platform-tools 源码包手动安装,配置环境变量

本章节主要介绍 homebrew 安装 adb 环境的方式

使用方法

  1. 安装 Homebrew 软件包管理工具(按需,已有可忽略)

推荐国内的一键安装脚本,该脚本会自动设置国内源:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)

备用脚本

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 安装 android-platform-tools
brew install android-platform-tools --cask

注意
homebrew 从 2.5.11 后,cask 就取消了,如有报错,请去除 --cask,开始新的结构以及对 macOS 10.13 high Sierra 不再支持,也有不少软件没有二进制,只能从源码编译。

  1. 检测是否正常安装
adb --version

如果需要查看安装的位置

brew info android-sdk --cask

FAQ

成功安装 adb 工具后,仍无法在终端上运行 adb 命令,可能是因为系统环境问题

这可能是由于系统环境变量配置问题引起的。为了解决这个问题,可以尝试手动配置环境变量。

编辑 bash 配置文件

sudo vim ~/.bash_profile

在文件的末尾添加以下行

export PATH=$PATH:~/Library/Android/sdk/platform-tools

注意
上面为参考路径,具体 sdk 路径以实际安装或配置路径为准

保存并退出编辑器,然后通过运行以下命令使配置文件生效

source ~/.bash_profile

再次尝试运行adb命令。如果一切正常,adb 应该能够在终端上正确执行。

如果因为网络原因导致安装失败,可尝试手动安装和配置 adb 环境

  1. 删除旧安装
rm -rf ~/.android-sdk-macosx/
  1. 手动下载 android-platform-tools
https://developer.android.com/studio/releases/platform-tools
  1. 解压文件到指定位置(下面是测试地址,具体解压位置以自己为准)
# 解压文件
unzip platform-tools-latest*.zip# 创建存放目录
mkdir ~/.android-sdk-macosx# 移动解压目录到指定目录
mv platform-tools/ ~/.android-sdk-macosx/platform-tools
  1. 配置环境变量,并生效
echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile
source ~/.bash_profile

注意
如果无法找到 .bash_profile 文件,可尝试查找 .zprofile
多检查配置路径是否存在或正确

  1. 检测是否成功安装
adb --version

总结

网络上有很多的安装教程,不过针对于小白用户,建议通过可视化工具或系统工具进行安装,因为这种方式比较简单,如果因为各种兼容等原因导致无法正常安装的话,再进行源码包的形式安装。

相关文章:

工具 | macOS 最简方式安装 adb 工具 | Mac

工具 | macOS 最简方式安装 adb 工具 | Mac 介绍 ADB(Android Debug Bridge)是 Android开发工具包(SDK)中的一项实用工具,用于与 Android 设备进行通信和调试。 在 macOS 操作系统上安装 ADB 环境可以帮助开发人员与…...

linux进阶(脚本编程/软件安装/进程进阶/系统相关)

一般市第二种,以bash进程执行 shelle脚本编程 env环境变量 set查看所有变量 read设置变量值 echo用于控制台输出 类似java中的sout declear/typeset声明类型 范例 test用于测试表达式 if/else case while for 函数 脚本示例 软件安装及进阶 fork函数(复制一个进程(开启一个进…...

谷歌云:下一代开发者和企业解决方案的强力竞争者

自从2018年Oracle前研发总裁Thomas Kurian加入谷歌云(Google Cloud)并出任谷歌云CEO以来,业界对于谷歌云的发展就十分好奇。而谷歌云的前任CEO Diane Greene曾是VMware的创始人之一,那么两任企业级技术和解决方案出身的CEO&#x…...

任务分配问题(回溯法)

算法设计 问题描述 有n(n≥1)个任务需要分配给n个人执行,每个任务只能分配给一个人,每个人只能执行一个任务。 第i个人执行第j个任务的成本是c[i][j](1≤i,j≤n)。求出总成本最小的分配方案 …...

华为OD 字符串消除(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...

索引背后的数据结构——B+树

为什么要使用B树? 可以进行数据查询的数据结构有二叉搜索树、哈希表等。对于前者来说,树的高度越高,进行查询比较的时候访问磁盘的次数就越多。而后者只有在数据等于key值的时候才能进行查询,不能进行模糊匹配。所以出现了B树来解…...

面试用-常用注解

Configuration 注意由ConfigurationClassPostProcessor来处理ConfigurationClassPostProcessor执行这个后置处理 ConfigurationClassParser.parse执行这个方法里面会解析很多注解。1、Component 对于Component也是一样递归调用parse方法,一层层解析…...

【c++】跟webrtc学std array 4: H264PacketBuffer 包缓存

H264PacketBuffer m98代码:H264PacketBuffer 类似于PacketBuffer ,但仅用于H264// The H264PacketBuffer does the same job as the PacketBuffer but for H264 // only. To make it fit in with surronding code the PacketBuffer input/output // classes are used. 因此,…...

Nodejs Web数据库应用演示实例

Nodejs Web应用基础演示实例 Web数据库应用 一、服务器端 var express require(express); var app express(); var mysql require(mysql);//设置静态资源目录public app.use(express.static(__dirname /public));//创建mysql数据库访问连接(数据库主机地址&a…...

Vue 中setup的特性

特性四&#xff1a;父传子组件传参【defineProps】&#xff1a; 父组件&#xff08;传递数据&#xff09;&#xff1a;利用自定义属性传递数据。 <template><h3>我是父组件</h3><hr /><Child :name"info.name" :age"info.age"…...

Peter算法小课堂—正整数拆分

大家可能会想&#xff1a;正整数拆分谁不会啊&#xff0c;2年级就会了&#xff0c;为啥要学啊 例题 正整数拆分有好几种&#xff0c;这里我们列举两种讲。 关系 我们看着第一幅图&#xff0c;头向左转90&#xff0c;记住你看到的图&#xff0c;再来看第二幅图&#xff0c;你…...

EDUSRC--简单打穿某985之旅

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…...

vue2升级到vue2.7

vue2升级到vue2.7 小小的改进,大大的提升 只需要简单修改,开发体验得到大大提升. 为什么要升级Vue2.7 不能拒绝的理由: 组合式 API(解决mixins问题:命名冲突,隐式依赖)单文件组件内的 <script setup>语法模板表达式中支持 ESNext 语法(可选链:?.、空值合并:??)单文…...

【django2.0之Rest_Framework框架一】rest_framework序列器介绍

Django RestFramework(简称DRF) 提供了序列化器Serialzier的定义&#xff0c;可以帮助我们简化序列化与反序列化的过程&#xff0c;不仅如此&#xff0c;还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文…...

Mock 测试详解:什么是 Mock 测试

Mock测试 什么是 Mock &#xff1f; Mock 的意思就是&#xff0c;当你很难拿到源数据时&#xff0c;你可以使用某些手段&#xff0c;去获取到跟源数据相似的假数据&#xff0c;拿着这些假数据&#xff0c;前端可以先行开发&#xff0c;而不需要等待后端给了数据后再开发。 Mo…...

Android端自定义铃声

随着移动应用竞争进入红海时代&#xff0c;如何在APP推送中别出心裁显得尤为重要。例如对自己的APP推送赋予独特的推送铃声&#xff0c;能够给用户更加理想的使用体验。 1、个性化提醒铃声有助于当收到特定类型的消息时&#xff0c;用户能够立刻识别出来。 2、不同的推送铃声…...

docker mysql 5.7

1.docker 安装mysql 5.7 docker pull mysql:5.72.配置容器MySQL数据、配置、日志挂载宿主机目录 # 宿主机创建数据存放目录映射到容器 mkdir -p /usr/local/docker_data/mysql/data# 宿主机创建配置文件目录映射到容器 mkdir -p /usr/local/docker_data/mysql/conf #(需要在…...

MySQL中如何进行分库分表的设计和实现?

分库分表是一种常用的数据库扩展方式&#xff0c;可以提高数据库的并发处理能力和扩展性&#xff0c;下面是分库分表的设计和实现的一般步骤&#xff1a; 数据库选择&#xff1a;选择合适的数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;如MySQL&#xff0c;支持分库…...

linux 安装谷歌浏览器和对应的驱动

创建文件install-google-chrome.sh #! /bin/bash# Copyright 2017-present: Intoli, LLC # Source: https://intoli.com/blog/installing-google-chrome-on-centos/ # # Redistribution and use in source and binary forms, with or without # modification, are permitted p…...

FPGA的通用FIFO设计verilog,1024*8bit仿真,源码和视频

名称&#xff1a;FIFO存储器设计1024*8bit 软件&#xff1a;Quartus 语言&#xff1a;Verilog 本代码为FIFO通用代码&#xff0c;其他深度和位宽可简单修改以下参数得到 reg [7:0] ram [1023:0];//RAM。深度1024&#xff0c;宽度8 代码功能&#xff1a; 设计一个基于FPGA…...

如何快速掌握OpenCore配置:OCAT完整图形化配置指南

如何快速掌握OpenCore配置&#xff1a;OCAT完整图形化配置指南 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore&#xff08;OCAT&#xff09; 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools OpenCore Auxiliary …...

DeepSeek V4 正式发布:1.6万亿参数、百万上下文,开源大模型进入新阶段

DeepSeek V4 正式发布&#xff1a;1.6万亿参数、百万上下文&#xff0c;开源大模型进入新阶段 2026年4月24日&#xff0c;深度求索&#xff08;DeepSeek&#xff09;正式发布了新一代旗舰模型 DeepSeek-V4&#xff0c;并同步开源模型权重。这是距 V3 发布484天之后的一次重大版…...

Steam成就管理器如何实现安全可靠的成就管理?

Steam成就管理器如何实现安全可靠的成就管理&#xff1f; 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager Steam Achievement Manager&#xff08;简称SAM&…...

学习自律养成系统小程序|基于java+小程序的学习自律养成小程序设计与实现(源码+数据库+文档)

学习自律养成小程序 目录 基于java小程序的学习自律养成小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&…...

Navicat重置工具:Mac用户的终极试用期延长解决方案

Navicat重置工具&#xff1a;Mac用户的终极试用期延长解决方案 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac Navicat作为Ma…...

NI-DAQmx计数器频率测量全攻略:从低频到高频,三种方法怎么选不踩坑?

NI-DAQmx计数器频率测量实战指南&#xff1a;方法选型与精度优化策略 在工业自动化、实验室研究和设备监测领域&#xff0c;频率测量是信号分析的基础操作。面对从几赫兹到数兆赫兹的不同信号源&#xff0c;如何选择合适的测量方法并规避常见误差&#xff0c;直接决定了数据的可…...

告别迷茫:一文读懂IMX991的SLVS接口与Microsemi FPGA解码实战要点

IMX991 SLVS接口与Microsemi FPGA解码实战指南 引言 在短波红外(SWIR)成像领域&#xff0c;索尼IMX991传感器凭借其0.4-1.7μm的宽波段响应和全局快门特性&#xff0c;已成为工业检测、光谱分析和安防监控等应用的首选。然而&#xff0c;许多工程师在将这款高性能传感器与FPGA平…...

Dev Containers 安全性优化终极路线图:基于NIST SP 800-190A的7层防御体系,含OCI镜像扫描+运行时策略引擎集成实录

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Dev Containers 安全性优化的顶层认知与威胁建模 Dev Containers 本质是将开发环境封装在容器中运行&#xff0c;但其默认配置常隐含高风险面&#xff1a;宿主机权限泄露、网络暴露、镜像供应链污染及调…...

MAI-UI:专为AI应用设计的React组件库,简化大模型对话界面开发

1. 项目概述&#xff1a;一个面向大模型应用的开源UI框架最近在折腾大模型应用开发的朋友&#xff0c;估计都遇到过类似的烦恼&#xff1a;模型接口调通了&#xff0c;业务逻辑也写好了&#xff0c;但一到构建用户界面&#xff08;UI&#xff09;这一步&#xff0c;就感觉特别费…...

Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包

一、前言 前面我们已经学过&#xff1a; Spring AOP 从原理到实战 Spring AOP 进阶&#xff1a;日志、TraceId、权限、限流 这一篇继续升级。 这篇的目标不是单独讲某个注解&#xff0c;而是把项目中常见的基础能力做成一套可复制的工程模板&#xff1a; 统一返回 Result 业务…...