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

Android环境变量macOS环境变量配置

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、概览
    • macOS基础知识
  • 三、设置环境变量
    • 3.1 终端窗口和 shell 脚本中设置
      • Windows
      • macOS 和 Linux
        • 更新 shell 初始化脚本
        • 更新 PATH 环境变量
    • 3.2 常用变量
  • 四、 推荐阅读

在这里插入图片描述

一、导读

我们继续总结学习Android基础知识,温故知新。

今天我们讲讲Android环境变量的配置,这个还是比较简单的。

二、概览

很多工具都会读取ANDROID_HOME 变量来确定 Android SDK 安装目录,我们可以通过设置环境变量来配置 Android Studio 和命令行工具的行为,
将命令搜索路径环境变量设置为包含 ANDROID_HOME/tools、ANDROID_HOME/tools/bin 和 ANDROID_HOME/platform-tools。

macOS基础知识

  • macos中查看当前系统中所有的shell
cat /etc/shells
  • 当然,在macos中,我们也可以选择不同的shell,方法如下:
1、 选取苹果菜单  >“系统设置(偏好)”,然后点按“用户与群组”。
2、 在左侧的用户列表中,按住 Control 键点按你的用户名,然后选取“高级选项”
3、 从“登录 shell”菜单中选取一个 Shell,然后点按“好”以存储更改。

或者使用命令来修改

修改系统默认shell为zsh
chsh -s /bin/zsh

Mac 系统下的环境变量

  • Mac 系统下的环境变量-bash
  1. /etc/profile:全剧配置,所有用户登录时就会执行一次
  2. /etc/paths:类似于/etc/profile
  3. ~/.bash_profile:单用户个人配置,用户登录时执行一次,用户设置的环境变量执行 .bashrc。和 /etc/profile一样也需要重启后生效。不同的是 /etc/profile针对所有用户;~/.bash_profile针对当前单个用户
  4. ~/.bash_login:当每次登陆系统(退出bash shell)时,执行该文件
  5. ~/.profile:针对个人,读取的是个人的配置文件一系列操作「如果用户登录状态,读 .bash_profile文件、若.bash_profile不存在,则读.bash_login,如果前两者都不存在,最后才读~/.profile」
  6. ~/.bashrc:属于当前用户专有的 shell文件,当登陆或者打开一个 shell窗口时就会被读取,因此无需重启 shell窗口
  • Mac 系统下的环境变量-zsh
  1. /.zprofile:类似于/.bash_profile,登录时运行,并且允许 SSH
  2. ~/.zshrc:类似于 ~/.bashrc,针对的是每一个 “终端” shell 窗口

我们可以到系统文件夹下直接查看这些文件,这是隐藏的文件,按快捷键就显示出来了:

command+shift+.

如果发现没有上述圈红的两个文件,可以直接在 ~目录下创建

打开 配置文件,然后修改、保存退出(按 ESC 键,再输入 :wq 回车即可),环境变量之间需要用 冒号(:)隔开。

cd
vi .zshrcexport PATh=$PATH:要配置的软件环境路径按esc键
输入:wq 
按回车键

改完之后,直接 source .zshrc,让文件生效,也可重新打开一个命令行窗口

${PATH} 和 $PATH 区别

Window的比较简单好记,就不写了。

三、设置环境变量

3.1 终端窗口和 shell 脚本中设置

终端窗口中的变量设置仅在窗口打开时有效,这点要注意,下面我们列举一下常用的终端设置命令。

Windows

语法

set VARIABLE_NAME=<new-value>

例如:

set HTTP_PROXY=myserver:1981

macOS 和 Linux

设置环境变量的确切方法取决于使用的 shell,所以我们首先要知道我们用了哪种shell,可以通过命令来看,输入以下命令

echo $0

下面是不同shell的设置语法

  • Gnu Bash 或 Zsh 等 shell
export VARIABLE_NAME=<new-value>
  • 其他 shell(例如 TCSH)
setenv VARIABLE_NAME <new-value>
更新 shell 初始化脚本

为了避免每次都设置,我们可以将这些命令添加到 shell 初始化脚本中,以便在每次运行新的 shell 实例时设置变量
shell 初始化脚本的位置取决于正在使用的 shell。
Gnu Bash,脚本位置一般是 ~/.bash_profile。
Zsh,脚本位置一般是 ~/.zprofile。
TCSH,脚本位置一般是 ~/.cshrc

更新 PATH 环境变量

我们还可以更新 PATH 环境变量,以包含工具位置

  • Gnu Bash 或 Zsh 等 shell
export ANDROID_HOME= ~/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
  • 其他 shell(例如 TCSH)
setenv ANDROID_HOME=~/Library/Android/sdk
setenv PATH=$PATH\:$ANDROID_HOME/tools\:$ANDROID_HOME/tools/bin\:$ANDROID_HOME/platform-tools

3.2 常用变量

  • ANDROID_HOME
    设置 SDK 安装目录的路径。设置后,该值通常不会更改,并且可以由同一台计算机上的多个用户共享。ANDROID_SDK_ROOT 也指向 SDK 安装目录,但已废弃。
    如果您继续使用它,Android Studio 和 Android Gradle 插件将检查旧变量和新变量是否一致。

  • ANDROID_USER_HOME
    为 Android SDK 中包含的工具设置用户偏好设置目录的路径。 默认为 $HOME/.android/。

  • STUDIO_JDK
    设置 Android Studio 在其中运行的 JDK 的位置。当您启动 Android Studio 时,它会依次检查 STUDIO_JDK、JDK_HOME 和 JAVA_HOME 环境变量。

  • ANDROID_AVD_HOME
    设置包含所有 AVD 特定文件的目录的路径,这些文件大多包含非常大的磁盘映像。默认位置是 $ANDROID_EMULATOR_HOME/avd/。如果默认位置的磁盘空间不足,您可能需要指定新位置。

  • HTTP_PROXY
    包含全局 HTTP 代理的 HTTP/HTTPS 代理设置。在主机和端口之间使用英文冒号 (😃 分隔符。例如 set HTTP_PROXY=myserver:1981。

这相当于在运行模拟器时从命令行指定 -http-proxy proxy 参数。

等等,还有其他的一些,可能平时用的不多,就没列出来。

四、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

ddd

相关文章:

Android环境变量macOS环境变量配置

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览macOS基础知识 三、设置环境变量3.1 终…...

设计模式(全23种)

1.前言 1.CUML类图 面向对象设计主要就是使用UML的类图&#xff0c;类图用于描述系统中所包含的类以及它们之间的相互关系&#xff0c;帮助人们简化对系统的理解&#xff0c;它是系统分析和设计阶段的重要产物&#xff0c;也是系统编码和测试的重要模型依据。下面基于C这门语…...

腾讯云轻量应用服务器“月流量”不够用怎么办?

腾讯云轻量应用服务器“月流量”不够用怎么办&#xff1f;超额部分支付流量费&#xff0c;价格为0.8元/GB。腾讯云轻量服务器月流量什么意思&#xff1f;月流量是指轻量服务器限制每月流量的意思&#xff0c;不能肆无忌惮地使用公网&#xff0c;流量超额需要另外支付流量费&…...

【esp32]VSCode-SPI控制OLED

根据Adafruit_GFX第三方库&#xff0c;其drawPixel方法由子类实现 代码&#xff1a;在OLED实现函数功能 先声明类 SPI库和Adafruit库、SSD1306 #include <Arduino.h> #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> …...

vue 的一些拦截

Vue.js 允许你在应用程序中进行路由和HTTP请求的拦截&#xff0c;以便在特定条件下执行操作或处理数据。以下是一些关于拦截的常见用例&#xff1a; 路由拦截&#xff1a; 你可以使用Vue Router来拦截路由导航。这通常用于权限控制&#xff0c;例如&#xff0c;当用户未登录时…...

iview表单提交验证特殊组件时需要注意的问题

使用iview的朋友们&#xff0c;对于表单验证肯定不陌生&#xff0c;通过validate来进行提交时的参数验证&#xff0c;一般来说&#xff0c;对于select或者input之列的表单组件&#xff0c;比较好判断&#xff0c; { required: true, message: ‘The name cannot be empty’, tr…...

OpenCV 画极线

from pylab import * import cv2from backend._gs_ import stereo_cameradef compute_epipole(F):""" 从基础矩阵 F 中计算右极点(可以使用 F.T 获得左极点)"""# 返回 F 的零空间(Fx0)U,S,V np.linalg.svd(F)e V[-1]return e/e[2]def plot_epi…...

Linux命令(109)之md5sum

linux命令之md5sum 1.md5sum介绍 linux命令md5sum是用来计算和校验文件的MD5值。 另外&#xff1a; md5sum是用来校验文件内容&#xff0c;与文件名是否相同无关 md5sum校验文件时&#xff0c;逐位校验&#xff0c;如果文件越大&#xff0c;校验所需时间就越长 2.md5sum用…...

JavaEE入门介绍,HTTP协议介绍,常用状态码及含义,服务器介绍(软件服务器、云服务器)

一、JavaEE入门 JavaEE&#xff08;Java Enterprise Edition&#xff09;&#xff0c;Java企业版&#xff0c;是一个用于企业级web开发&#xff08;不需要使用控制台&#xff09;平台。最早由Sun公司定制并发布&#xff0c;后由Oracle负责维护。 JavaEE平台规范了在开发企业级w…...

FPGA时序分析与约束(7)——通过Tcl扩展SDC

一、概述 术语“Synopsys公司设计约束”&#xff08;又名SDC&#xff0c;Synopsys Design Constraints&#xff09;用于描述对时序、功率和面积的设计要求&#xff0c;是EDA工具中用于综合、STA和布局布线最常用的格式。本文介绍时序约束的历史概要和SDC的描述。 二、时序约束…...

C++面试——多线程详解

C11提供了语言层面上的多线程&#xff0c;包含在头文件<thread>中。它解决了跨平台的问题&#xff0c;提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。C11 新标准中引入了5个头文件来支持多线程编程&#xff0c;如下图所示&#xff1a; 多进程与多线程 多…...

matlab 布尔莎七参数坐标转换模型

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫自重,把自己当个人。 一、算法原理 算法原理与实现代码已在免费文章:布尔莎七参数坐标转换模型一文中给出,不想看付费文章直接跳转即可。 二、代码实现 clc; clear; close all; %% --...

Android---StartActivity启动过程

在手机桌面应用中点击某一个 icon 之后&#xff0c;最终是通过 startActivity 去打开某一个 Activity 页面。我们知道&#xff0c;Android 中的一个 APP 就相当于一个进程。所以&#xff0c;startActivity 操作中还需要判断&#xff0c;目标 Activity 的进程是否已经创建。如果…...

隐私计算python实现Paillier同态加密

1.基本概念 Paillier同态加密是一种公钥加密方案&#xff0c;具有同态加密的特性。它由Pascal Paillier于1999年提出。 Paillier同态加密基于数论问题&#xff0c;其安全性基于大整数分解问题和离散对数问题的困难性。该方案可以用于保护隐私数据&#xff0c;同时支持在加密状态…...

代码随想录打卡第五十五天|● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300.最长递增子序列 **题目&#xff1a;**给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0…...

C# 创建Oceanbase ODBC数据源 DSN

需要管理员权限打开VS&#xff0c;因为只有管理员权限可以修改注册表 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Odbc; using System.Diagnostics; using System.Drawing;…...

C++ 常用函数汇总#include<algorithm>(3万字总结)

文章目录 1. 排序(Sorting)1.1 sort(first, last):对指定范围内的元素进行升序排序1.2 stable_sort(first, last):在保持相等元素的相对顺序的情况下对指定范围内的元素进行排序1.3 partial_sort(first, middle, last):对范围内的元素进行部分排序,使得前部分是最小的,但…...

Google Archive Patch 基础应用代码记录

项目地址 Google Archive Patch 前置 <!-- 差量应用模块 --> <dependency><groupId>com.google.archivepatcher</groupId><artifactId>archive-patch-applier</artifactId><version>1.0.4</version><scope>test</…...

机器学习——代价敏感错误率与代价曲线

文章目录 代价敏感错误率实现代价曲线例子 代价敏感错误率 指在分类问题中&#xff0c;不同类别的错误分类所造成的代价不同。在某些应用场景下&#xff0c;不同类别的错误分类可能会产生不同的代价。例如&#xff0c;在医学诊断中&#xff0c;将疾病患者错误地分类为健康人可…...

如何利用 ChatGPT 提升编程技能

目录 前言代码命名与 ChatGPT设计模式与 ChatGPT代码重构与 ChatGPT代码优化与 ChatGPTChatGPT 的潜在挑战与限制成功案例分析最佳实践与注意事项结语 前言 编程是一项充满创造性和挑战的任务&#xff0c;但也是一个需要花费大量时间和精力的领域。在日益复杂的软件开发环境中…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...