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会通过降低内存…...
4月底就要交论文,现在开始降AI率来得及吗?完整应急方案
4月底就要交论文,现在开始降AI率来得及吗?完整应急方案 今天是4月1日。 如果你的论文要在4月底提交,现在翻出来一查,AI率50%,或者知网标红一片——你可能已经开始冒冷汗了。 先别慌。来得及,但要马上开始&a…...
别再混淆了!一文讲透NvDecoder里ulNumDecodeSurfaces和ulNumOutputSurfaces到底怎么用
深入解析NvDecoder:解码缓存与输出缓存的本质区别与实战配置 在视频处理领域,NVIDIA的硬件解码器(NVDEC)因其出色的性能和高效的资源利用率而广受开发者青睐。然而,对于许多中高级开发者来说,NvDecoder中ul…...
英特尔 BOT 优化 Geekbench 6:性能提升背后的争议与影响
【导语:英特尔的二进制优化工具(BOT)引发关注,它能修改可执行文件指令序列提升性能,但仅与少数应用配合。研究人员对其在 Geekbench 6 上的表现进行测试,结果引发对基准测试公平性的思考。】启动开销&#…...
Qwen3-14B快速上手教程:命令行推理+参数详解(temperature/max_length)
Qwen3-14B快速上手教程:命令行推理参数详解(temperature/max_length) 1. 镜像概述与环境准备 Qwen3-14B是通义千问推出的大语言模型,本教程将指导您快速上手使用专为RTX 4090D 24GB显存优化的私有部署镜像。这个镜像已经预装了所…...
Python通达信数据接口实战指南:开源量化工具配置与优化全解析
Python通达信数据接口实战指南:开源量化工具配置与优化全解析 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个高效实用的Python通达信数据接口库,为量化投资和…...
Omni-Vision Sanctuary 网络协议分析辅助:可视化网络数据包与流量模式识别
Omni-Vision Sanctuary 网络协议分析辅助:可视化网络数据包与流量模式识别 1. 网络数据可视化的新思路 网络工程师每天面对海量的数据包和流量日志,传统的分析工具往往需要依赖复杂的命令行操作和专业图表解读。而Omni-Vision Sanctuary模型为我们提供…...
LeetCode26. 删除有序数组中的重复项 27. 移除元素 35. 搜索插入位置 数组,双指针 二分查找
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k。去重后…...
新手必看:详解cursor注册手机号填写步骤与前端实现
新手必看:详解cursor注册手机号填写步骤与前端实现 最近在帮几个编程新手朋友解决cursor注册时遇到的手机号填写问题,发现很多细节容易被忽略。于是我用InsCode(快马)平台快速搭建了一个演示项目,把整个过程拆解成可视化的步骤,顺…...
EPWM模块影子寄存器的加载机制与应用场景解析
1. EPWM模块影子寄存器基础概念 第一次接触EPWM模块的影子寄存器时,我也被这个"影子"的概念绕晕了。后来在实际项目中调试电机控制才发现,这个机制简直是PWM波形控制的"安全气囊"。简单来说,影子寄存器就是活动寄存器的&…...
JienDa聊PHP:ThinkPHP 8.0 企业级API开发与性能调优实战
1. ThinkPHP 8.0企业级API开发基础 ThinkPHP 8.0作为现代化PHP框架的代表,在企业级API开发领域展现出强大的优势。我最近刚用TP8完成了一个日活50万的电商平台API重构,实测下来性能提升非常明显。相比传统开发方式,TP8的API开发流程更加规范…...
