Android studio环境变量配置及其作用(JDK与SDK配置)
Posted Crayon Lin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio环境变量配置及其作用(JDK与SDK配置)相关的知识,希望对你有一定的参考价值。
文章目录
1、JDK与JRE配置
jre(java runtime environment) 运行java程序要用的Java运行环境
jdk:java开发人员要用的java开发环境,包括jre
1、JAVA_HOME | C:\\Environment\\JDK (自己JDK安装目录) | 作用:其他相关环境变量配置可以引用,更加方便简洁。 |
---|---|---|
2.Path | %JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin; | 作用:使系统可以找到并调用java.exe和javac.exe。 javac将源码编译成.class文件, 在调用java 命令让程序执行. |
3.classpath | .;%JAVA_HOME%\\lib;%JAVA_HOME%\\lib\\tools.jar(注意最前面有一点) | 作用:告诉java虚拟机所有的可执行文件.class都在哪。classpath告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。它的作用与import、package关键字有关,我们写的java源码中,当然会包含别人提供的工具类。 |
测试win+R输入cmd回车:输入java和Javac看是否有print
2、SDK环境变量配置
android_HOME | C:\\Environment\\android-sdk(自己安装sdk的路径) |
---|---|
Path | %ANDROID_HOME%\\tools;%ANDROID_HOME%\\platform-tools |
打开控制台,输入adb,出现下图
输入Android,出现下图
3、Android SDK 目录介绍
目录/文件 | 说明 |
---|---|
add-ons | 存放第三方公司为 Android 平台开发的附加功能系统 刚解压时,目录为空 |
platforms | 存放不同版本的 Android 系统 刚解压时,目录为空 |
tools | 存放着大量的 Android 开发,调试工具 |
AVD Manager.exe | 该程序是 AVD ( Android 虚拟设备 ) 管理器 |
SDK Manager.exe | 该程序时 Android SDK 管理工具 |
目录/文件 | 说明 |
---|---|
extra | 存放了 Google 提供的 USB 驱动, Intel 提供的硬件加速等附加工具包 |
build-tools | 存放了构建 Android 各个版本所需要的工具包 |
platform-tools | 存放了 Android 平台的相关工具 |
sources | 存放了 Android 的系统源码 |
system-images | 存放了不同 Android 平台针对不同的 CPU 构架的系统镜像 |
temp | 存放了 AVD 运行时创建的各种临时文件 |
4、Android SDK必须安装的文件
1. Tools目录(必须的工具)
Android SDK Tools(必须,只需下载一个版本,一般选最新版本):基础工具包,版本号带rc字样的是预览版。
Android SDK Platform-tools(必须,只需下载一个版本,一般选最新版本):从android2.3开始划出此目录,存放公用开发工具,比如adb、sqlite3等,被划分到了这里。
2.Android xxx(API xx)目录(可选的各平台开发工具):
Documentation for Android Sdk(可选):安卓开发者官网的一些离线文档,不过下载下来打开也很慢。
3.SDK Platform(必须)
对应平台的开发工具,需要在哪个版本的平台下开发就下载哪个。也就是平台 api 版本
4. Samples for SDK(可选)
此项在高版本tools中已不提供,需要在IDE里通过Import Sample引入,当然也可以下载离线版):内置的安卓示例程序,推荐安装。
5.Sources for Android SDK(可选)
安卓API的源代码,推荐安装。
6.Extras目录(可选的扩展):------了解即可
-
Android Support Libraries(需要,高版本tools中已不见了,应该是集成到了别的地方):在低版本平台实现高版本平台控件效果时提供支持。
-
Android Support Repository(需要):主要是方便在gradle中使用Android Support Libraries,因为Google并没有把这些库发布到maven center或者jcenter去,而是使用了Google自己的maven仓库。
-
Intel x86 Emulator Accelerator(HAXM installer)(可选,但非常需要,需要CPU支持虚拟化技术支持):windows平台的Intel x86模拟器加速工具,配合Intel x86 atom/atom_64 System Image使用可加快模拟器的运行速度(AMD同理)。注意 AMD的CPU开启这个最好关闭沙盒和虚拟环境
总结:
- SDK Tools 必须
- SDK Platform-tools 必须
- SDK Platform必须至少安装一个版本
- System Image建议安装
- Android Support建议安装
- SDK Samples建议安装
5、android studio主要文件和目录:
(1)settings.gradle: 每个Moudle 要在这里注册,可以打开该文件看一下就会明白;
(2)build.gradle:每个Project 的配置
(3)app:每个Module
(4)app/build.gradle:每个Module 配置文件,比如依赖的类库,SDK 版本
(5)app/src/:源码和资源文件都在这里;我们写的文件都在这里面。
(6)app/libs/:添加类库。
6、androidstudio是如何加载我们的gradle的?
1.Android Studio打开一个工程时,首先会读取gradle-wrapper.properties 文件,从而知道这个工程需要哪个版本的gradle ,然后就会去保存gradle的文件夹GRADLE_USER_HOME 去找看存不存在这个版本的gradle。 2.不存在则会去distributionUrl 去下载。
其中gradle-wrapper.properties的内容如下:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\\://services.gradle.org/distributions/gradle-6.5-bin.zip
distributionUrl
gradle的3种版本:
gradle-xx-all.zip是完整版,包含了各种二进制文件,源代码文件,和离线的文档。例如,https://services.gradle.org/distributions/gradle-6.5-all.zip
gradle-xx-bin.zip是二进制版,只包含了二进制文件(可执行文件),没有文档和源代码。例如,https://services.gradle.org/distributions/gradle-6.5-bin.zip
gradle-xx-src.zip是源码版,只包含了Gradle源代码,不能用来编译你的工程。例如,https://services.gradle.org/distributions/gradle-6.5-src.zip
如果只是为了编译,可以不用完整版,只需要二进制版即可,例如,gradle-6.5-bin.zip。
zipStoreBase和distributionBase
zipStoreBase和distributionBase有两种取值:GRADLE_USER_HOME和PROJECT。
其中,GRADLE_USER_HOME表示用户目录。 在windows下是%USERPROFILE%/.gradle,例如C:\\Users<user_name>.gradle\\。 在linux下是$HOME/.gradle,例如~/.gradle。
PROJECT表示工程的当前目录,即gradlew所在的目录。
Visual Studio中的环境变量(以Visual Studio 2013为例)
前言
本文总结了Visual Studio中常见的环境变量及其在组织解决方案、工程中的作用。
注:本文使用的是Visual Studio 2013,由于作者主要从事C/C++开发,所以是以Visual C++的工作环境配置来描述。
什么是vs的环境变量?
先看图吧,图中以美元符号$开头 + 一对括号,这样进行引用的就是我所谓的环境变量,
图中出现的几个环境变量含义如下:
环境变量名 | 含义 |
---|---|
$(SolutionDir) | 解决方案目录:即.sln文件所在路径 |
$(Configuration) | 当前的编译配置名称,比如Debug,或Release |
$(ProjectName) | 当前项目名称,图中即为Game |
在中文版的VS中,环境变量翻译为“宏”,为了避免与C/C++语言中的宏(Macro)搞混,我在本文中把它叫做“vs环境变量”,简称环境变量。
环境变量有什么用?
使用环境变量来组织工程目录
vs作为一个IDE,其天职在于帮开发者组织好工程,主要包括对工程中源文件、库文件的组织。(本质上是提供一个可视化的操作界面,让开发者方便的定义编译器和链接器的参数。)在使用vs来组织工程目录时候最常用到的两个目录是:
-
头文件包含目录 (对应于编译器命令的:-I 参数)
-
库文件搜索路径 (对应于编译器的:-l 参数)
vs中默认的头文件搜索路径是: 工程路径
– 即,.vcxproj
(不同版本的VC++后缀名称不同,如vs2010中后缀为.vcproj) 文件所在路径。比如如下的目录结构:
–Root/
----Test.vcxproj
----hello.cpp
----hello.h
----world.cpp
----world.h
----main.cpp
----/subdir
------sub.h
在Root目录包含了.vcxproj文件,所以Root就是工程路径
,在vs中,这个目录下面的.h文件可以直接使用include包含进来, 比如在main.cpp中我可以写:
#include "hello.h"
#include "world.h"
但是对于sub.h,我们就不能直接写#include "sub.h"
, 因为工程路径
下面不能搜索到这个文件,我要告诉编译器这个文件在哪里,通常有以下两种方法:
-
写成
#include "subdir/sub.h"
-
把subdir目录加入到头文件搜索路径
Google的C++编程风格鼓励第一种做法,好处是可以看到文件相对完整的路径,如果头文件搜索路径只有一个根目录,那么这个路径就是文件的相对于根目录的物理路径,方便定位文件。
如果你觉得这样写很麻烦,并且路径深度可能有多层,不同深度的路径下又通常包含大量的文件,那么就可以选择第二种做法,把每个子目录统统加入到搜索路径中,这样,就可以不用带着路径,直接#include "filename.h"
就可以了。具体在VS中要怎么合理的添加文件包含目录呢?由此,便引出了本节问题的答案:环境变量有什么用?用途之一就是用来编写头文件的搜索路径。
相信大家都知道如何在vs中添加一个头文件搜索路径这个常识,在此还是为初学者唠叨一下具体做法:工程属性 - 配置属性 - C/C++ - 常规 - 编辑右侧的"附加包含目录"取值即可。
具体如下图所示:
点击编辑之后,弹出如下图所示的编辑窗口:
在这里可以新建、删除包含路径、调整包含顺序。
点击新建按钮或者双击列表空白处即可添加一条包含路径,在编辑新添加的路径时,可以看到列表条目右侧有一个浏览按钮,
点击按钮可以从打开文件对话框里选择路径,点击确定后,会看到新添加的路径名。虽然通过浏览来定位文件夹比较容易,免去了自己编写,但是你会发现,通过浏览添加的路径是绝对路径。
如果你是项目的唯一开发者,并且仅仅使用这一台电脑来开发的话,那么使用绝对路径也没什么大问题。但是如果这个项目是个团队协作项目,或者你需要在好几台电脑之间切换,那么这个包含路径如果写绝对路径就不够灵活了,如果别人的路径配置或别的电脑的路径配置不同,那么要重新修改包含路径。
一个比较合理的编写包含路径的方法是: 使用相对路径。
相对谁呢? 相对项目根目录或者解决方案根目录。
为什么呢?因为不管别人的电脑有什么盘符、不管别人的项目放在何处,要包含的文件都可以通过项目所在位置来计算出来。
当然前提是,项目开发者们事先约定好被包含文件相对于项目根目录的位置。通常是放在项目根目录(或者解决方案根目录)的某个子目录里。
具体怎么做呢?这就需要用到本文的主题:环境变量了。刚才提到的两个相对目录所对应的环境变量如下表所示:
目录 | 对应的环境变量名称 |
---|---|
项目根目录 | $(ProjectDir) |
解决方案根目录 | $(SolutionDir) |
要解决刚才小例子中的问题,
–Root/
----Test.vcxproj
----hello.cpp
----hello.h
----world.cpp
----world.h
----main.cpp
----/subdir
------sub.h
注意到.vcxproj所在目录即项目根目录,也就是$(ProjectDir)的取值等于Root/。所以要把subdir放在包含目录里,可以新建这样一条包含路径:
$(ProjectDir)subdir
这样,在main.cpp里就可以直接写#include "sub.h"
了。不管项目被拷贝到哪里,都不用修改包含路径。
上面就是环境变量使用的一个小例子。使用环境变量来编写文件包含路径的好处是: 包含路径独立于工程所在的路径,无论工程被移动到哪里,都不需要重新修改包含路径,因为使用环境变量来编写的文件包含路径是一种相对路径。
其它vs环境变量
如何查看所有的环境变量值呢?
有好多个地方都可以查看,比如刚才在添加包含目录时候,弹出的窗口,注意其右下方,有个“宏”按钮
点击它就能看到所有的“宏” (即vs环境变量的值):
在上方的输入框可以进行过滤。
下面的表格给出了常用的环境变量的含义:
环境变量名 | 含义 |
---|---|
$(SolutionDir) | 解决方案目录:即.sln文件所在路径 |
$(ProjectDir) | 项目根目录:, 即.vcxproj文件所在路径 |
$(Configuration) | 当前的编译配置名称,比如Debug,或Release |
$(ProjectName) | 当前项目名称 |
$(SolutionName) | 解决方案名称 |
$(OutDir) | 项目输出文件目录 |
$(TargetDir) | 项目输出文件目录 |
$(TargetName) | 项目生成目标文件, 通常和$(ProjectName) 同名, 如Game |
$(TargetExt) | 项目生成文件后缀名,如.exe, .lib具体取决于工程设置 |
$(TargetFileName) | 项目输出文件名字。比如Game.exe, 等于 $(TargetName) + $(TargetExt) |
$(ProjectExt) | 工程文件后缀名,如.vcxproj |
在下一篇文章中,讲介绍如何合理使用这些环境变量来组织VC++工程。
进阶思考
- 如何定义、扩展VS的环境变量?
作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!
在这里也能看到这篇文章:github博客, CSDN博客, 欢迎访问
以上是关于Android studio环境变量配置及其作用(JDK与SDK配置)的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio中的环境变量(以Visual Studio 2013为例)
Visual Studio中的环境变量(以Visual Studio 2013为例)