Android Studio 安装配置教程(Windows最详细版)
目录
前言
Android Studio 下载
Android Studio 安装
Android Studio 使用
一、创建默认项目(Compose)
二、创建常规项目
三、使用ViewBinding
四、查看Gradle版本、SDK版本、JDK版本
① Gradle版本
② SDK版本
③ JDK版本
前言
Android开发不可或缺的一个开发工具,Android Studio,这个开发工具也是Google力推的,如果你还在使用Eclipse的话,那么可以考虑升级一下,在早期的Android Studio版本中并没有自带JDK,因此你会看到我们需要配置Java JDK的环境变量,才能够正常编译Android项目,而在新版本中,你就不需要这样做了,因为Android Studio中自带了一个JDK版本,目前来说是跟随版本来的,就拿最新的Android Studio来说,根据Gradle版本规定最低要求JDK 17。
那么对于需要安装Android Studio的开发者来说,你需不需要配置电脑的JDK环境变量呢?分情况,如果你只是做Android 开发的话,那么是不需要配置环境变量的,在一些特殊场合下才会用到相关的内容,而如果你还做Java开发的话那么你是需要配置环境变量的,请参考:Java环境变量配置,这个文章是根据JDK 1.8做的,如果你要使用JDK11、JDK17的话最好是再找找相关的配置文章,总体差别不大,配置方式都差不多,只不过JDK11、JDK17需要手动去配置jre的环境。
Android Studio 下载
Android Studio下载地址-谷歌中国,最新版本目前是Android Studio Iguana | 2023.2.1,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。

点击 Download Android Studio 进行下载,会出现一个弹窗告诉这个版本的一些信息。

不用管他,直接滑动到最后。

勾选上,点击按钮下载即可,下载好之后会在本地有一个exe安装程序,下面来安装。
Android Studio 安装
双击运行安装。

点击 Next 下一步。

点击 Next 下一步。

默认会给你装到C盘,这里我修改到了D盘(PS: 这里一定要改路径,否则随着你开发过程中,你的C盘空间会越来越小,这里我放的是D盘,只要不装在系统盘里,其他盘随意,不过也要有一定空间才行。),点击 Next 下一步。

点击 Next 下一步(PS:这里没有其他骚操作,不要乱来)

等待安装完成。

点击 Next 下一步。

点击Finish进行第一次运行了,如果你不是第一安装了,那么就是覆盖安装,也是一步到位,没啥好讲的。现在我们运行一下:

如果你选择上面那个就会在你电脑安装默认的配置,这里不导入配置,直接OK即可,然后你就会看到AS的启动图片:

不得不说比之前的要好看一些,然后会弹出。

就是让发送使用的信息给谷歌,发个锤子,点击“Don’t send”。

然后我们进入了欢迎页面,这个图片是告诉你,Android能做的事情有手机、穿戴设备、TV、车载,还有智能设备等,点击 Next 。

这个地方是说你没有SDK,让你设置代码,这里不设置,点击 Cancel。

Android Studio 默认会把你的SDK下载放在C盘,到时候你的C盘就炸了,谷歌太坏了,很多新手都会直接下一步,这里你需要选择Custom,切记切记,然后点击 Next 下一步。

之前我们选择自定义SDK的路径,在这里就需要自己设置路径了,如果你之前有下载过Sdk,而这次又将Sdk的目录选择为之前的目录,那么就会出现一些组件提示(installed),我选择在D盘下,改好之后就点击 Next 。

这里是给Android模拟器进行内存设置,推荐4G,这里直接Next。

这里是安装Android虚拟器管理驱动,点击Next即可。

接下来就是下载需要的一些SDK了,点击Next。

在下载前,需要你接受一些协议,你不会真去看这些协议的,除非你是想摸鱼,左侧的三项,每一项选中之后点击Accpet,接受协议,三项都通过之后,你会看到Finish按钮亮起,点击Finish。

这一步比较考验网络,通俗一点就是看命了,命硬的一步到位,命苦的喝杯咖啡以毒攻毒。如果你的网络不支持很有可能导致失败,那么你可能需要更换网络环境再进行重新安装尝试,这一点就很烦了,很多人都会遇到这个问题。运气好的网速好的情况下也就几分钟,不好几个小时都是有可能的。很明显,我的这个网速就不这么样,这个时候你就可以泡一杯咖啡,说到咖啡你有没有想到Java的图标呢?

终于组件下载完毕了,这里你看到有一项安装失败的,先不管他,点击Finish。现在我们已经安装好了Android Studio,下面就可以开始使用了。
Android Studio 使用

这里我们点击New Project,创建一个新的项目。

这里选中的是Empty Activity,在新版本的Android Studio中Empty Activity模板默认的就是Compose模板,如果你没有接触过,可以去了解一下,如果你希望创建Java或者Kotlin语言模板的项目,那么就选择Empty Views Activity,点击Next,这里我选择的是Empty Activity模板,Empty Views Activity模板后面会提到。
一、创建默认项目(Compose)

这里会默认创建一个Jetpack Compose项目,默认语言就是Kotlin,Compose和之前的XML布局的方式还是有很大区别,然后我们改了项目的名称,改了项目存放的路径,默认在C盘,我改到了D盘,而这里最低兼容SDK为API 24,对应Android7.0,这里有一个需要注意的地方那就是,Build configuration language,在之前的AS中已经可以使用Kotlin作为Gradle的语言了,只不过没有主推,而现在的这个默认选项的意思就是使用Kotlin作为Gradle的构建语言了,之前一直都是使用Groovy进行构建的,点击下拉框可以看到,如下图所示。

那么选择什么类型呢?我们分情况来看,分为如下三种情况,就以开发者自身来看。
小白开发者:建议你选择Groovy DSL,这样Gradle的语言就和之前你是用的AS一样,同时,如果你遇到相关的问题去网上搜索大部分资料也都是基于Groovy语言的,Kotlin语言的比较少,毕竟推出的时间不长。更何况如果你还有一些老项目的话,更加要选择Groovy,听人劝,吃饱饭。
专一开发者:这个不是说感情专一,而是对于AS编辑器只用一个版本,比如现在还有使用Android Studio3.5、4.1的,但是实际工作中需要他升级AS的版本,那么到这个版本时,如果对自己有信心并且有时间解决相关的问题,那么可以选择Kotlin,也可以选择Groovy。
老油条开发者:爱咋咋地。
如果你选择Kotlin DSL,点击Finish。

直接进入项目页面,并且你会看到底部在下载一些SDK文件,这个过程也需要你的网络条件比较好,否则轻则速度很慢,重则直接连接超时,你会看到一些报错的字样。

我这里比较顺利,如果不顺利的话,可能就是不断的提示你超时或者连接失败。 第一次创建项目,下载的内容会比较多,这里以gradle为主要内容,其他内容就是支持项目编译运行所需要的插件,组件等内容,而这个gradle如果网络不好就会直接停止下载,你可以切换网络环境继续下载,直到你的项目可以正常运行为止。 这段话很重要,评论区很多人都会遇到这个问题,问我怎么办,其实就是你当前的网络下载资源受限或者是很慢导致编译时候,这个时候你就手机开个热点,电脑连上然后Try Again就行了,另外也和手机卡的网络有关系,三大运营商都可以试试,一个人不可能集齐三个运营商,一堆人就很简单了。另外如果你这里更换了网络也不行,那么就只能尝试另一种方式了,那就是手动下载Gradle版本然后解压到指定目录下,你可以上网上去看看,我不推荐这种,但是你网络不给力,也只能这么操作了。真正的强者从不抱怨环境(手动狗头)
完成之后我们可以直接启动运行,你也可以使用快捷键Shift + F10,顺利的话你就运行成功了,否则你可能会出现下面的弹窗提示。

需要你安装HAXM,这个前面我们就已经是安装失败了,那么点击OK,然后继续下一步。

到这里为止你会发现还是不行,那么我们就需要检查一下自己的电脑有没有开启“Intel (VMX) Virtual Technology” (或者叫虚拟化技术),这个根据自己的电脑品牌去进行操作,那么换个方式,都需要进入BIOS里面,这里我就不多说了,自行百度解决。

开启VT之后,再打开AS运行项目,这次就会成功了。

已经运行到虚拟机上了,到这里创建Compose项目,就完成了。
二、创建常规项目
相信会Compose的还是少数,虽然Google官方在推这个组件,但是在国内,用的还是在少数,大部分人不会轻易去使用,尤其是在你不熟悉的时候,但是学习还是可以的,因此我们下面来创建常规的项目,常规的项目就分Java和Kotlin两种语言了,据我所知,目前很多学校里就是用Kotlin作为主要语言的,那么我们就来创建一个Kotlin语言的项目吧。
File → New → New Project,会出现一个弹窗。

这里我们选择Empty Views Activity,点击Next。

这里的项目就和我们之前Android Studio创建项目的方式一样了,语言你可以切换Java,Kotlin,这里就选择Kotlin,点击 Finish。

这里也会下载一堆插件,同样需要网络比较好的情况,我大概花了31分钟,下载完成之后我们直接运行看看。

很顺利,我们又运行成功了,这是Kotlin的项目,Kotlin项目的开发你需要掌握Kotlin语言,不然很多的特性你都看不懂,学会了就用起来很爽,下面我们来使用ViewBinding,这是Google官方推出的一个Jetpack 组件,下面我将会分别在Kotlin语言和Java语言中使用,至于Compose中是不需要这个组件的,因为Compose项目中没有xml,注意。
三、使用ViewBinding
在使用ViewBinding之前,我们先了解它是用来干什么的,一句话概括就是可以让你不用再写findViewById(),因为常规的Android项目都是代码和布局XML构成页面,我们在页面上去完成自己的业务需求逻辑,业务功能,而代码中使用XML中的控件,首先要给控件Id,其次要实例化,通过findViewById()来完成,这个步骤在XML中控件很多的时候就尤为繁琐,因此Google推出ViewBinding来解决这一问题,如果你想知道ViewBinding是怎么实现的,可以留言,下面我们来讲述怎么使用ViewBinding。

打开app模块的build.gradle,然后添加如下代码:
Groovy版本:
buildFeatures {viewBinding true}
Kotlin版本:
buildFeatures {viewBinding = true}
然后右上角会出现Sync Now,点击一下就会下载相应的资源,如上图所示,现在我们就是相当于打开了ViewBinding的开关,然后我们使用它,在activity_main.xml中为TextView写一个id。

然后回到MainActivity中使用。

这里的使用也很简单,如果你了解Kotlin语法的话,首先是创建一个binding变量,类型是ActivityMainBinding,这是一个编译时生成的类,它源于你的activity_main.xml,就是将你的xml进行驼峰名称再加上Binding后缀,如果你的布局是item_device.xml,那么生成的类就是ItemDeviceBinding,这样你应该好理解了,参考上图的写法即可,下面我们再用一张图来说明Java项目中的ViewBinding的用法。

配置开关和为控件增加Id都是一样的,只是语法上有区别,如上图所示。
四、查看Gradle版本、SDK版本、JDK版本
一个项目能否正常编译取决于我们的Gradle、SDK以及JDK,不同版本之间是由不同的配置关系的,这对于你来说是否有些复杂呢?不过不用担心,当你可以正常安装Android Studio并且能够正常运行时,你的这三个配置就是可以的,属于默认搭配,你只管写代码就好了。
然而,世事无常,也许有时候项目的开发者不是自己,那么别人的项目你想要运行,有两个选择,第一:配置项目所需要的Gradle和SDK,第二:更改项目的Gradle和SDK满足当前环境。
① Gradle版本
Gradle再细分就是Gradle版本和Gradle插件版本,两者之间是有关联的,你可以参考Android Gradle 插件版本说明,下面我们先看Gradle版本,如下图所示查看:

Gradle插件版本,如下图所示查看:

怎么查看就怎么修改,修改后记得要Sync Now点击一下。
② SDK版本
SDK版本就是当前项目所编译的版本,下面我们查看一下当前项目的配置Android版本,如下图所示:

这里compileSdk 33表示编译版本为API 33,对应的是Android13.0版本,minSdk 24表示最低编译版本为API 24,对应Android 7.0版本,换句话来说,你的项目可以在Android7.0到Android13.0这个区间的的Android设备上运行,当然也包括7.0和13.0,targetSdk 33表示当前SDK版本为API 33,当你的项目低于或者高于这个环境的时候你就需要配置相关的SDK了,在哪里配置呢?顶部导航栏点击 File → Settings... 如下图所示:

这里我们可以看到当前下载Android 13.0的SDK,还能看到其他的Android版本,也可以看到Android版本所对应的API版本,这里我们看到的是简略信息,你可以勾选右下方的Show Package Details,就能查看详情信息了,当我们下载其他版本的SDK时,勾选上,要下载的目标版本SDK,此时弹窗右下角底部的Apply按钮就可以点击了,点击之后就会下载相关的SDK,然后你就可以切换其他的API版本了。
③ JDK版本
JDK版本如下图所示:

这里就很简单了,默认的是JDK 17,这里就关系到你的项目能否正常运行,点击下拉框就可以看到这个JDK的版本信息了,或者你添加自己本地的JDK也行。
相关文章:
Android Studio 安装配置教程(Windows最详细版)
目录 前言 Android Studio 下载 Android Studio 安装 Android Studio 使用 一、创建默认项目(Compose) 二、创建常规项目 三、使用ViewBinding 四、查看Gradle版本、SDK版本、JDK版本 ① Gradle版本 ② SDK版本 ③ JDK版本 前言 Android开发…...
Cesium绘制可编辑线
Cesium 第一章 绘制可编辑线 Screen-2024-09-17-202059的副本 文章目录 Cesium一、绘制线二、编辑线三、使用 一、绘制线 1、方法 //场景相机控制viewer.scene.screenSpaceCameraController.enableRotate false; //cesium相机控制 绘制和编辑时 禁止转动场景// 鼠标样式修改…...
【算法】差分思想:强大的算法技巧
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
微软开源项目 Detours 详细介绍与使用实例分享
目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C++软件异常排查从入门到精通系列教程…...
Numba基础
1. Numba 基础 1.1 什么是 Numba? Numba 是一个 JIT 编译器,用于加速数值计算。它通过即时编译技术,将 Python 代码在运行时编译为机器代码,极大地提升执行速度,特别适合循环和矩阵操作等密集型计算。 2. Numba 基本…...
[JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入
一,初识File类及其常用方法 File类是java.io包下代表与平台无关的文件和目录,程序中操作文件和目录,都可以通过File类来完成。 通过这个File对象,可以进行一系列与文件相关的操作,比如判断文件是否存在,获…...
oracle停止当前运行的JOB或kill会话
在Oracle中,可以使用DBA_SCHEDULER_JOBS视图来查找当前正在运行的作业(job),并使用DBMS_SCHEDULER.STOP_JOB过程来停止它们 SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE STATE RUNNING; SELECT * FROM DBA_SCHEDULE…...
SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
介绍 在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟 一旦MO宕机,内存中的消息会丢失内存空间有限,当消费者故障或处理过慢时,会导致消息积压,引发MQ阻塞 在消息队列运行的过程中…...
CLIP论文中关键信息记录
由于clip论文过长,一直无法完整的阅读该论文,故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的(提出背景、训练数据、设计模式、训练超参数、prompt的作用),clip的能力(clip的模型版本、clip…...
sshj使用代理连接服务器
之前我是用jsch连接服务器的,但是没办法使用私钥连接,搜了一下似乎是不支持新版的SSH-rsa,并且jsch很久没更新了,java - "com.jcraft.jsch.JSchException: Auth fail" with working passwords - Stack Overflow 没办法…...
【Leetcode:1184. 公交站间的距离 + 模拟】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
VRRP 笔记
一、概念: vrrp:Virtual Router Redundancy Protocol 虚拟路由冗余协议,当网关发生故障时,进行主备切换,保证业务连续性 把多台物理机的网关虚拟成一台Virtual Router,称为 VRID VIP:虚拟IP VM…...
【洛谷】P3743 小鸟的设备 的题解
【洛谷】P3743 小鸟的设备 的题解 题目传送门 题解 水一道二分 qaq 刚开始考虑的是动态规划,但是动态规划并不能维护题目所要求的东西。所以我们将思路转向另一种求最值问题的方法:二分答案。 首先,如果一个设备在 t t t 的时间内消耗的…...
算法面经手撕系列(2)--手撕BatchNormlization
BatchNormlization BatchNormlization的编码流程: init阶段初始化 C i n C_in Cin大小的scale向量和shift向量,同时初始化相同大小的滑动均值向量和滑动标准差向量;forward时沿着非channel维度计算均值、有偏方差依据得到均值和有偏方差进…...
mysql-搭建主从复制
文章目录 1、准备主服务器2、准备从服务器3、主库配置3.1、创建MySQL主服务器配置文件: 4、从库配置5、搭建主从&测试5.1、使用命令行登录MySQL主服务器5.2、主机中查询master状态:5.3、从机中查询slave状态:5.4、主机中创建slave用户&am…...
MiniMaxi-共创智能新体验新手入门
新手快速入门 注册指南 个人用户 直接注册即可。 企业团队 主账号:注册时填写的姓名与手机号将成为企业账号的管理员。子账号:在用户中心创建,数量不限。 主账号与子账号权益 相同权益:子账号享有与主账号相同的使用权益和速…...
Docker torchserve 部署模型流程
1.拉取官方镜像 地址: https://hub.docker.com/r/pytorch/torchserve/tags docker pull pytorch/torchserve:0.7.1-gpu2. docker启动指令 CPU docker run --rm -it -d -p 8380:8080 -p 8381:8081 --name torch-server -v /path/model-server/extra-files:/home/model-serve…...
mybatis开启日志
步骤很详细,直接上教程 配置文件的文件格式可能有所不同,这里列举两种 配置方法 一. application.properties(默认 # 配置mybatis的日志信息 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl二. application.y…...
MobaXterm : Network error: Connection refused(连接被拒绝)
具体报错如下如所示: 首先进行问题排查 ① 检查SSH服务是否运行 sudo service ssh status ② 检查SSH服务是否已启动(启用返回 enable) sudo systemctl is-enabled ssh ③ 查看所有的端口 sudo netstat -tulnp ④ 查看SSH使用的22号端口有…...
电脑的主板,内存条插多少合适?
首先,不是插满4条内存就是最好的。 内存条插得多,确实可以扩充容量,提升性能。但是有些低端的主板配低端CPU,插满4条内存,稳定性下降。这里的稳定性包括供电,单独的内存供电容量等。此时CPU会通过降低内存…...
ARM指令追踪技术及TRCVICTLR寄存器详解
1. ARM指令追踪技术概述在嵌入式系统开发和调试过程中,指令追踪(Instruction Trace)是一项至关重要的技术。它通过硬件机制记录处理器的执行流程,为开发者提供程序运行的完整轨迹。ARM架构从v7开始引入嵌入式跟踪宏单元࿰…...
告别虚拟机卡顿:在Windows 11的WSL2里搞定Lichee Nano交叉编译环境
告别虚拟机卡顿:在Windows 11的WSL2里搞定Lichee Nano交叉编译环境 对于嵌入式开发者来说,配置开发环境往往是个令人头疼的问题。传统虚拟机方案虽然能提供完整的Linux体验,但资源占用高、启动慢、与宿主系统交互不便等问题一直困扰着开发者。…...
别再用SonarQube凑数了!DeepSeek原生圈复杂度引擎的6大颠覆性能力(含GitHub私有部署密钥)
更多请点击: https://kaifayun.com 第一章:DeepSeek圈复杂度分析的底层原理与范式革命 DeepSeek圈复杂度分析并非传统McCabe度量的简单复刻,而是基于控制流图(CFG)动态重构与语义感知路径裁剪的双重机制构建的新范式。…...
神经网络与深度学习 第3周课程总结
深度学习视觉应用课程总结 一、常用计算机视觉数据集数据集名称发布方/年份规模图像规格类别数主要用途核心特点MNIST美国国家标准与技术研究院60k训练10k测试2828灰度图10类(0-9手写数字)入门级图像分类最经典的手写数字识别基准数据集Fashion-MNISTZalando(2017)60k训练10k测…...
账务台账数据
银行里说的 “账务台账数据”,本质就是按会计规则把每笔业务逐笔、分户、分科目记下来的完整明细流水 余额 辅助信息,核心是 “可逐笔追溯、可对账、可审计” 的一套明细数据。下面用通俗、具体的方式拆开说:一、银行 “账务台账” 到底是什…...
3分钟解锁网易云音乐NCM文件:ncmdumpGUI小白也能懂的完整教程
3分钟解锁网易云音乐NCM文件:ncmdumpGUI小白也能懂的完整教程 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经下载了网易云音乐的歌曲&a…...
WarcraftHelper终极指南:深度解析魔兽争霸III现代化兼容性解决方案
WarcraftHelper终极指南:深度解析魔兽争霸III现代化兼容性解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专…...
通过curl命令快速测试Taotoken大模型API的连通性与返回格式
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken大模型API的连通性与返回格式 在集成大模型能力到应用时,开发者通常需要一种快速、轻量的…...
Unity/Unreal开发者必看:用手机和陀螺仪实验,5分钟搞懂万向节死锁(附避坑指南)
Unity/Unreal开发者实战指南:用手机陀螺仪5分钟破解万向节死锁当你调试第一人称视角时,角色突然卡在墙面无法转动;当无人机模型在俯冲90度时失控乱转——这些很可能都是万向节死锁(Gimbal Lock)在作祟。作为实时3D开发中最恼人的数学陷阱之一…...
AWS DevOps Agent 完全指南
AWS DevOps Agent 是 AWS 推出的前沿 AI 运维代理,自主调查和解决事件、持续预防故障、提升系统可靠性。本文档覆盖从原理到实战的全生命周期管理。 一、定位与价值 一句话定义 AWS DevOps Agent = AI 驱动的 SRE 队友,724 自主调查告警、定位根因、生成修复方案、预防未来…...
