Android Studio 安装及使用
🍓 简介:java系列技术分享(👉持续更新中…🔥)
🍓 初衷:一起学习、一起进步、坚持不懈
🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏
🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝🍓 更多文章请点击
文章目录
- 一、简介
- 二、下载安装
- 2.1 Android Studio安装
- 2.2 Gradle安装(可选)
- 三、创建工程
- 四、创建模拟器
- 五、App工程目录结构
- 六、编译配置文件build.gradle
- 七、运行配置文件AndroidManifest.xml
一、简介
Android Studio 是一个基于IntelliJ IDEA的集成开发环境,专门用于Android应用的开发。由Google推出,它提供了一系列强大的工具和功能,包括代码编辑器、调试器、虚拟设备模拟器、代码分析器等等。
Android Studio 提供了许多有用的功能,如基于 Gradle 的构建支持、Android 专属的重构和快速修复、提示工具以捕获性能、可用性、版本兼容性等问题、支持 ProGuard 和应用签名等。它还包含了一系列基于模板的向导,可以帮助开发者更轻松地生成常见的 Android 应用设计和组件。
总的来说,Android Studio 是一个非常强大且易用的 Android 应用开发工具,对于想要创建高质量 Android 应用的开发者来说是一个非常好的选择。
二、下载安装
2.1 Android Studio安装
下载地址:https://developer.android.google.cn/studio?hl=zh-cn
Android基于JAVA所以,需要有Java基础,也需要安装java的jdk环境,一路下一步后,会提示下载或默认下载SDK:软件开发工具包,可以将App源码编译为可执行的App应用


2.2 Gradle安装(可选)
在Android开发中,使用Gradle作为构建工具相对较为常见。Gradle提供了灵活性和强大的构建功能,使得开发者能够轻松定义和管理Android项目的构建过程。Android Studio,作为官方的Android集成开发环境(IDE),默认支持Gradle构建系统。
idea中默认支持Gradle工具,如果想使用本地的Gradle可以参考该文档 ----
参考文章1
参考文章2
三、创建工程


四、创建模拟器









五、App工程目录结构
该项目下面有两个分类:一个是app(代表app模块);另一个是Gradle Scripts。
app下面又有3个子目录,其功能说明如下:
- m a n i f e s t s \color{#0AF}{manifests} manifests 子目录,下面只有一个XML文件,
AndroidManifest.xml,它是App的运行配置文件。 - j a v a \color{#0AF}{java} java子目录,下面有3个com.example.myapp包,其中第一个包存放当前模块的Java源代码,后面两个包存放测试用的Java代码。
- r e s \color{#0AF}{res} res子目录,存放当前模块的资源文件。res下面又有4个子目录:
drawable目录存放图形描述文件与图片文件。layout目录存放App页面的布局文件。mipmap目录存放App的启动图标。values目录存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。
Gradle Scripts下面主要是工程的编译配置文件,主要有:
(1)build.gradle,该文件分为项目级与模块级两种,用于描述App工程的编译规则。
(2)proguard-rules.pro,该文件用于描述Java代码的混淆规则。
(3)gradle.properties,该文件用于配置编译工程的命令行参数,一般无须改动。
(4)settings.gradle,该文件配置了需要编译哪些模块。初始内容为include ‘:app’,表示只编译app模块。
(5)local.properties,项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。
六、编译配置文件build.gradle
新创建的App项目默认有两个build.gradle,
- 一个是Project
项目级别的build.gradle; - 另一个是Module
模块级别的build.gradle。

示例 : 通过注释熟悉 \color{#0AF}{示例: 通过注释熟悉} 示例:通过注释熟悉
项目级别
buildscript {
repositories {// 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件maven { url 'https://maven.aliyun.com/repository/jcenter' }maven { url 'https://maven.aliyun.com/repository/google'}maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}maven { url 'https://maven.aliyun.com/repository/public'}google()jcenter()
}dependencies {// 配置gradle插件版本,下面的版本号就是Android Studio的版本号classpath 'com.android.tools.build:gradle:4.1.0'}
}
模块级别
android {// 指定编译用的SDK版本号。比如30表示使用Android 11.0编译compileSdkVersion 30// 指定编译工具的版本号。这里的头两位数字必须与compileSdkVersion保持一致,具体的版本号可在sdk安装目录的“sdk\build-tools”下找到buildToolsVersion "30.0.3"defaultConfig {// 指定该模块的应用编号,也就是App的包名applicationId "com.example.chapter02"// 指定App适合运行的最小SDK版本号。比如19表示至少要在Android 4.4上运行minSdkVersion 19// 指定目标设备的SDK版本号。表示App最希望在哪个版本的Android上运行targetSdkVersion 30// 指定App的应用版本号versionCode 1// 指定App的应用版本名称versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-androidoptimize.txt'), 'proguard-rules.pro'}}
}
// 指定App编译的依赖信息
dependencies {// 指定引用jar包的路径implementation fileTree(dir: 'libs', include: ['*.jar'])// 指定编译Android的高版本支持库。如AppCompatActivity必须指定编译appcompat库//appcompat库各版本见https://mvnrepository.com/artifact/androidx.appcompat/appcompatimplementation 'androidx.appcompat:appcompat:1.2.0'// 指定单元测试编译用的junit版本号testImplementation 'junit:junit:4.13'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
七、运行配置文件AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><applicationandroid:allowBackup="true"android:dataExtractionRules="@xml/data_extraction_rules"android:fullBackupContent="@xml/backup_rules"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.Meta"tools:targetApi="31"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
可见AndroidManifest.xml的根节点为manifest,它的package属性指定了该App的包名。manifest下
面有个application节点,它的各属性说明如下:
android:allowBackup,是否允许应用备份。允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复。为true表示允许,为false则表示不允许。android:icon,指定App在手机屏幕上显示的图标android:label,指定App在手机屏幕上显示的名称android:roundIcon,指定App的圆角图标android:supportsRtl,是否支持阿拉伯语/波斯语这种从右往左的文字排列顺序。为true表示支持,为false则表示不支持。android:theme,指定App的显示风格。注意到application下面还有个activity节点,它是活动页面的注册声明,只有在AndroidManifest.xml中正确配置了activity节点,才能在运行时访问对应的活动页面。初始配置的MainActivity正是App的默认主页,之所以说该页面是App主页,是因为它的activity节点内部还配置了过滤信息
相关文章:
Android Studio 安装及使用
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...
计算机网络的OSI七层模型
目录 1、OSI七层模型是什么 1.1 物理层(Physical Layer) 1.2 数据链路层(Data Link Layer) 1.3 网络层(Network Layer) 1.4 传输层(Transport Layer) 1.5 会话层(S…...
如何一次性解压多个文件
第一步:多选压缩包 第二步:右键解压即可 一句话,单个怎么解压,多个就怎么解压,只不过先选中 参考:如何一次性解压多个文件...
类和对象学习笔记
类和对象 类的定义this指针类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载赋值运算符重载运算符重载const成员 取地址操作符重载const取地址操作符重载 初始化列表explicit关键字static成员匿名对象友元内部类拷贝对象时编译器的优化 类的定义 c类的定义形式…...
Linux程序之可变参数选项那些事!
一、linux应用程序如何接收参数? 1. argc、argv Linux应用程序执行时,我们往往通过命令行带入参数给程序,比如 ls /dev/ -l 其中参数 /dev/ 、-l都是作为参数传递给命令 ls 应用程序又是如何接收这些参数的? 通常应用程序都…...
【1day】泛微e-office OA系统user_page接口未授权访问漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...
Midjourney绘画提示词Prompt参考教程
Midjourney绘画提示词Prompt参考教程:无需魔法使用。 一、AI工具 SparkAi: SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常…...
Altium Designer学习笔记6
原理图库的制作,SMA元件的制作: 图形不是很重要,重要的是管脚的功能。 Design Item ID和Designator两个值是要注意的。 进行Place放置,切换到原理图工作区,测试下功能。 AD9851元件库制作: 不需要再新建原…...
【问题解决】Maven密码加密
普通的maven部署方式是把maven私服的账号密码以明文的方式配置在settings.xml文件中 <server><id>deploymentRepo</id><username>xxx</username><password>123</password></server> 这种方式的配置很容易被别人看到从而泄漏…...
vue3基于vite打包
大的js和css打包成:gzip npm install vite-plugin-compression 在vite.config.ts中配置: import viteCompression from vite-plugin-compressionplugins:[viteCompression({verbose:true,//控制台输出压缩结果disable:false,//开启还是禁用threshold:…...
前端使用JWT时无法获取Authorization请求头
是因为后端没有解决跨域问题: 补充下面的代码即可 response.setHeader("Access-Control-Expose-Headers", "Authorization");...
postman定义公共函数这样写,测试组长直呼牛逼!!!
postman定义公共函数 在postman中,如下面的代码: 1、返回元素是否与预期值一致 var assertEqual(name,actual,expected)>{tests[${name}:实际结果: ${actual} , 期望结果:${expected}]actualexpected…...
单元测试实战(六)其它
为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战(一)Controller 的测试 单元测试实战(二)Service 的测试 单元测试实战&am…...
jmeter 主从配置
配置 主从需要在同一子网。 可以修改从机的端口,主要是防火墙的原因,这样就可以在防火墙只配置一个端口,如果没有防火墙,可以不用配置 server_port1099 server.rmi.localport1099 centos防火墙开端口 sudo firewall-cmd --zonep…...
4
【任务 1】容器云平台搭建[5 分] 【题目 1】平台部署–部署容器云平台[1.5 分] 【题目 2】平台部署–部署 Istio 服务网格[0.5 分] 【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分] 【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分] 【题目 5】集群管理–备份 ET…...
C++ Day04 this指针,友元函数,重载
this指针 概念 谁调用 this 所在的函数 ,this 就存储谁的地址 特点 1, 在当前类的非静态成员函数中调用本类非静态成员时 , 默认有 this 关键字 2, 静态成员函数 , 没有 this 指针。 示例 #include <iostream> #include <cstring> using namespace std; class S…...
2023做车载测试真的可以远离内耗!转行车载月入20K!
2023年,车载测试正处于一个发展阶段,随着新能源汽车的蓬勃发展,电气化、智能化逐渐成为发展趋势。在汽车开发过程中,测试是非常重要的一个环节。现在软件越来越多地被应用到汽车上,对软件测试的需求也越来越多、越来越…...
LINUXZ
10.6.2 AT24C02 访问方法 设备地址 从芯片手册上可以知道,AT24C02 的设备地址跟它的 A2、A1、A0 引脚有关: 图 10.36 AT24C02 设备地址引脚配置 294 / 577 打开 I2C 模块的原理图: 开发板配套网盘资料\04_开发板原理图\ 04_Extend_modules\通…...
C#单例模式懒汉式与饿汉式
单例模式一般分为懒汉模式和饿汉模式,懒汉式单例在第一次引用时创建实例,不是在类加载时;饿汉式单例模式是一种在类加载时就创建实例的方式,因此也称为静态初始化。 单例模式实现的技巧时构造私有,向外提供静态实例。…...
小微初创企业,如何利用媒体宣传快速成长
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 对于小微初创企业来说,利用媒体宣传可以快速提升品牌知名度、扩大影响力,进而促进企业的成长。 1.确定宣传目标:是增加销售、提升品牌知名度、还是推…...
全球金融监管机构警告:私募信贷行业助推AI热潮存在风险
金融稳定委员会(FSB)发出警告,私募信贷行业在推动AI热潮中扮演的角色可能产生反噬效应,一旦市场出现大幅回调,将导致"相当规模"的损失。这份由全球金融监管机构发布的私募信贷专项报告显示,该机构…...
资源管理模块的实践开发日志
一、从图到代码上篇我把资源管理模块的设计思路理了一遍:全局单例、五个状态的帧状态机、用哈希做纹理弱引用。那会儿觉得自己想得挺明白的,真坐到电脑前开始写第一行 std::mutex 的时候才知道,想明白和写出来之间隔了起码十个坑。这篇记录的…...
Fish Shell技能管理框架:构建可复用命令行工具生态
1. 项目概述:一个为命令行注入灵魂的“技能商店”如果你是一个长期与终端(Terminal)或命令行界面(CLI)打交道的人,无论是开发者、运维工程师还是技术爱好者,你肯定有过这样的体验:每…...
深度学习如何将MRI扫描时间缩短4倍?揭秘FastMRI的革命性突破
深度学习如何将MRI扫描时间缩短4倍?揭秘FastMRI的革命性突破 【免费下载链接】fastMRI A large-scale dataset of both raw MRI measurements and clinical MRI images. 项目地址: https://gitcode.com/gh_mirrors/fa/fastMRI 想象一下,你正躺在M…...
AI回答太冗长?我设计了三段式流式显示让信息层次分明
我是张大鹏,做了十多年人工智能,带过不少项目。说实话,最难的不是让AI生成正确的答案,是让答案以正确的方式呈现给用户。最近Claude 3.7推出了extended thinking模式,OpenAI的o系列也在做类似的事情——让AI的推理过程…...
AI工具搭建自动化视频生成条件分支
先说说这个“AI工具搭建自动化视频生成条件分支”是个什么东西吧。其实很简单,就是让AI在生成视频的时候,不是从头到尾都按一个固定剧本走,而是根据不同的输入条件或者用户的选择,自动跳转到不同的视频片段或者内容模块。 举个例子…...
YOLOv9模型瘦身新思路:用CARAFE替换上采样层,参数量几乎不变,小目标检测效果却提升了
YOLOv9模型瘦身新思路:用CARAFE替换上采样层,参数量几乎不变,小目标检测效果却提升了 在目标检测领域,YOLO系列模型因其出色的速度和精度平衡而广受欢迎。然而,随着模型性能的不断提升,参数量和计算量也随之…...
手把手教你玩转富斯MC6接收机的RGB灯带:从WS2812B接线到遥控切换全攻略
手把手教你玩转富斯MC6接收机的RGB灯带:从WS2812B接线到遥控切换全攻略 当模型爱好者不再满足于基础功能时,个性化灯光系统便成为展现创意的绝佳载体。富斯MC6接收机内置的RGB灯带控制功能,将实用性与观赏性完美结合——既能作为飞行时的视觉…...
从统计建模到信号处理:Python误差函数erf/erfc的5个实战应用场景
从统计建模到信号处理:Python误差函数erf/erfc的5个实战应用场景 误差函数erf(x)及其补函数erfc(x)是数学工具箱中常被低估的利器。它们源于高斯积分,却在现代计算领域展现出惊人的跨界应用潜力。对于熟悉Python的中级开发者和研究者而言,掌握…...
Go语言看门狗守护进程:实现进程监控与自动重启的高可用方案
1. 项目概述:一个守护进程的诞生与使命最近在折腾一个需要长时间稳定运行的后台服务,最头疼的问题就是进程意外退出。手动重启?太原始。写个脚本定时检查?不够优雅,也容易有延迟。直到我在GitHub上看到了hrygo/opencla…...

