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

搭建android开发环境 android studio

1、环境介绍


在进行安卓开发时,需要掌握java,需要安卓SDK,需要一款编辑器,还需要软件的测试环境(真机或虚拟机)。
早起开发安卓app,使用的是eclipse加安卓SDK,需要自行搭建。
目前开发安卓app,只需要安装AndroidStudio,可以直接通过AndroidStudio下载SDK
编写完的代码如何运行:

1、使用AndroidStudio自带的安卓虚拟机
2、使用网易mumu、夜神模拟器等虚拟机
3、使用真机,只要是安卓手机,开启usb调试,不需要root就可以使用

2、下载AndroidStudio


官方下载:
历史版本下载:https://developer.android.google.cn/studio/archive?hl=zh-cn
最新版本下载:https://developer.android.google.cn/studio

官方提供的使用教程:探索 Android Studio  |  Android Developers

3、项目构建工具介绍:Gradle和Maven都是Java项目的构建工具


语法:Gradle使用Groovy语言进行编写,而Maven使用XML。Groovy更加灵活易读,XML更加严谨易于重用。
性能:Gradle比Maven更加高效快速,因为它使用了增量构建模式,只会重新构建被更改的模块,而Maven则需要重新构建整个项目。
插件:Gradle的插件生态更加丰富和现代化,而Maven的插件相对较为传统。此外,Gradle的插件可以非常容易地编写和定制,而Maven的插件相对繁琐。
维护:Maven有比较成熟的工具链和文档支持,而Gradle则相对较新,可能需要更多的自学
Groovy介绍:Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码

4、配置AndroidStudio

  • 标准安装,自动选择sdk安装路径,custom是自定义安装,手动选择安装路径

  • SDK Folder:sdk目录,Windows用户安装时不能有空格和中文
  • sdk、adb、虚拟机设置,一定点击Accept

  • 等待下载完成即可

5、配置SDK

根据手机安卓版本进行选择

点击SDK Tools,安装一些其他工具

6、创建虚拟机

  • 选择要创建的虚拟手机型号

项目

├── .gradle                            #AndroidStudio 自动生成的文件,会自动修改它的,项目打包时也会删除;
├── .idea                              # AndroidStudio自动生成的文件,会自动修改它的,项目打包时也会删除;
├── app                                # 应用相关的东西都在里面,工作的核心目录 
│        ├── build                     # 编译的产物。某些情况下,可以手动把它整个删掉。
│        ├── libs                      # 依赖包可以放这里,比如一些jar文件。
│        ├── src                       # 代码在这。非常重要。
│        │        ├── main
│        │        │        ├── java     # 放Java代码的地方
│        │        │        ├── res 
│        │        │        │        ├── drawable  # 应用图标
│        │        │        │        ├── layout    # Android布局文件夹
│        │        │        │        ├── mipmap    # 适配不同分辨率的手机
│        │        │        │        ├── mipmap    # 桌面图标
│        │        │        │        └── values   # 颜色、样式、字符集配置文件夹
│        │        │        ├──AndroidManifest.xml#APP运行配置文件,用来配置权限:程序入口配置、应用程序主题、应用程序组件等
│        ├── .gitignore                          # 版本控制
│        ├── build.gradle                        # 非常重要,app的构建配置。俗称“app的gradle文件”。
│        └── proguard-rules.pro                  # 不管。这个是混淆配置。
├── gradle                                       # 它是一个构建起配置文件
├── .gitignore                                   # 整个工程的版本控制
├── build.gradle                                 # 很重要。项目级的配置。俗称“项目gradle文件”
├── gradle.properties                            # 全局的gradle配置文件
├── gradlew                                       # Linux/mac上执行gradle命令
├── gradlew.bat                                   # Windows上执行gradle命令
├── local.properties                              # 本地配置文件,一般不上传
└── settings.gradle                               # gralde的项目级配置
 

7、创建第一个Android工程

如果是用Java语言开发选择创建Empty Views Acitivty

语言可选JavaKotlin,根据自己熟悉的语言自行选择

8、下载Gradle插件

第一次创建工程会下载Gradle插件,如果出现下载超时,修改gradle-wrapper.properties文件中的distributionUrl值改成腾讯代理地址https://mirrors.cloud.tencent.com/gradle/

改完之后点击同步按钮重新下载gradle

相关文章:

搭建android开发环境 android studio

1、环境介绍 在进行安卓开发时,需要掌握java,需要安卓SDK,需要一款编辑器,还需要软件的测试环境(真机或虚拟机)。 早起开发安卓app,使用的是eclipse加安卓SDK,需要自行搭建。 目前开…...

使用 Python -m build打包 Python 项目:详解过程与细节

使用 Python -m build 打包 Python 项目:详解过程与细节 Python 项目的打包是发布和分发软件的核心环节。本文将基于用户提供的 pyproject.toml 文件和项目目录结构,详细说明 Python -m build 命令的执行过程,并解答 是否会将 oe_eval 中的代…...

019-spring-基于aop的事务控制原理

1、事务配置&#xff1a; <tx:annotation-driven transaction-manager"transactionManager"/> transaction-manager 默认是找这个bean&#xff1a;transactionManager 2、从命名空间开始找到对应的解析配置如下&#xff1a; 对应的是这个 后续跟源码没有搞明…...

210.xxl-job定时任务:架构,可视化,GLUE模式,负载均衡,分片

目录 一、为什么要用xxl-job 二、xxl-job架构 三、启动调度中心 1.初始化数据库 2.编译源码 四、启动执行器 五、GLUE模式运行 六、负载均衡 七、分片 1.分片环境准备 2.分片实现 八、感谢支持 一、为什么要用xxl-job 以前我们用quartz实现定时任务,但是那是单机…...

LVS 负载均衡原理 | 配置示例

注&#xff1a;本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时&#xff0c;可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写&#xff0c;翻…...

堆内存易碎片化

堆内存容易碎片化主要是由于其内存分配和释放的特性以及管理方式的复杂性所导致的。以下是对堆内存容易碎片化的详细解释&#xff1a; 一、内存分配和释放的非连续性 堆内存的分配和释放并不是连续的&#xff0c;这意味着在多次分配和释放后&#xff0c;原本连续的内存空间可…...

Docker镜像瘦身:从1.43G到22.4MB

Docker镜像瘦身:从1.43G到22.4MB 背景1、创建项目2、构建第一个镜像3、修改基础镜像4、多级构建5、使用Nginx背景 在使用 Docker 时,镜像大小至关重要。我们从 create-react-app (https://reactjs.org/docs/create-a-new-react-app.html)获得的样板项目通常都超过 1.43 GB…...

Linux套接字通信学习

Linux套接字通信 代码源码&#xff1a;https://github.com/say-Hai/TcpSocketLearn/tree/CThreadSocket 在网络通信的时候, 程序猿需要负责的应用层数据的处理(最上层)&#xff0c;而底层的数据封装与解封装&#xff08;如TCP/IP协议栈的功能&#xff09;通常由操作系统、网络协…...

XIAO Esp32S3制作网络摄像头——音频获取

1、功能介绍 本文主要是基于XIAO Esp32S3(Sense)做的一款网络摄像头,主要包含以下功能 1 音频获取/保存 2 视频获取/视频保存 3 行人检测/火焰检测/行人追踪(告警) 4 指定区域 5 摄像头旋转 。。。 本文主要实现第一步,音频获取,后续会陆续实现后面的功能,敬请期…...

Docker搭建RocketMQ

Docker搭建RocketMQ 操作系统: CentOS 7 x64 版本号: CentOS Linux release 7.9.2009 (Core) IP地址: 192.168.157.130 Docker 信息: Client: Docker Engine - Community Version: 24.0.7 API version: 1.43 Go version: go1.20.10 Git commit: …...

Python 迭代器与生成器

Python 中的迭代器和生成器是处理集合元素的重要工具&#xff0c;它们在处理大量数据时特别有用&#xff0c;因为它们不需要一次性将所有数据加载到内存中。 迭代器&#xff08;Iterator&#xff09; 迭代器是一个实现了迭代器协议的对象&#xff0c;这意味着它有两个方法&am…...

细说STM32F407单片机通过IIC读写EEPROM 24C02

目录 一、操作说明 二、工程配置 1、时钟、DEBUG、GPIO、USART6、NVIC、Code Generator 2、 IIC2 &#xff08;1&#xff09;Master Features组&#xff0c;主设备参数 &#xff08;2&#xff09;Slave Features组&#xff0c;从设备参数 三、软件设计 1、KELED 2、E…...

Redis 深度解析:从入门到精通

引言 Redis 是一个开源的、高性能的键值存储系统&#xff0c;它支持多种数据结构&#xff0c;并且提供了丰富的功能和接口。作为内存数据库&#xff0c;Redis 以其快速的数据访问速度、灵活的数据模型以及持久化选项而闻名。本文将详细介绍 Redis 的核心概念、工作原理及其应用…...

6-pandas数据读取

前言 一、分组聚合 1.groupby使用&#xff1a; groupby() 是 pandas 库中用于对数据进行分组操作的一个非常重要的方法。 import pandas as pddata {城市: [北京, 上海, 广州, 北京, 上海, 广州],人口: [2154, 2424, 1303, 2154, 2424, 1303],年龄: [25, 30, 35, 25, 30, 3…...

omi friend实战记录

一、简介 omi friend是国外githab上开源的一个“AI硬件”的制作教程&#xff0c;它的形状是个三角形&#xff0c;属于项链佩戴这类的。可以接入llm进行对话&#xff0c;他有麦克风、扬声器&#xff0c;还有电池。外形好看&#xff0c;功能实用。还有专属的一系列app可以供方便…...

马原复习笔记

文章目录 前言导论物质实践人类社会资本主义社会主义共产主义后记 前言 一月二号下午四点多考试&#xff0c;很友好&#xff0c;不是早八&#xff0c;哈哈哈。之前豪言壮语和朋友说这次马原要全对&#xff0c;多做了几次测试之后&#xff0c;发现总有一些知识点是自己不知道的…...

VIM: Vision Mamba基于双向状态空间模型的高效视觉表示学习

这篇文章的主要内容可以概括如下&#xff1a; 背景与动机&#xff1a; 近年来&#xff0c;状态空间模型&#xff08;SSM&#xff09;在长序列建模中展现出巨大潜力&#xff0c;尤其是Mamba模型在硬件感知设计上的高效性。 然而&#xff0c;现有的SSM模型在处理视觉数据时面临…...

CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决

环境&#xff1a; Red Hat OpenShift Container Platform (RHOCP) 4 问题&#xff1a; Cluster Version Operator 不断发送警报&#xff0c;表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报&#xff1a; …...

libmodbus源码中重要的两个结构体讲解

文章目录 一、libmodbus重要数据结构讲解**1. 结构体 `_modbus`**定义成员解析小结**2. 结构体 `_modbus_backend`**定义成员解析小结**3. 两者关系和工作流程****关系****工作流程**一、libmodbus重要数据结构讲解 这两个结构体是 libmodbus 的核心,定义了 Modbus 通信上下文…...

PostgreSQL的一主两从集群搭建部署 (两同步)

一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2keep-postgres12-node3192.168.122.90备节点node3 二、安装数据库 源码包方式&#xff08;主&#xff09; 1、创建用户 [rootkeep-postgre…...

CPT203 Software Engineering 软件工程 Pt.5 软件测试(中英双语)

文章目录 8. 软件测试8.1 Testing&#xff08;测试&#xff09;8.1.1 A note of testing under the V & A framework8.1.2 The Basics8.1.3 The Goals8.1.4 The Stages 8.2 Developing testing&#xff08;开发测试&#xff09;8.2.1 Unit testing&#xff08;单元测试&…...

在 Blazor 和 ASP.NET Core 中使用依赖注入和Scoped 服务实现数据共享方法详解

依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09;是一种设计模式&#xff0c;用于将对象的依赖关系从对象内部解耦出来&#xff0c;由外部容器进行管理和提供。在 Blazor 和 ASP.NET Core 中&#xff0c;DI 是内置的核心功能&#xff0c;它通过服务生…...

【信号滤波 (下)】采样条件,多种滤波算法对比(Matlab/C++)

目录 一、信号采样条件采样定理ADC的SPS设置 二、常用滤波算法对比A.滑动平均滤波B.陷波滤波陷波滤波器简介FIR(有限脉冲响应)滤波器和IIR(无限脉冲响应)滤波器 基于IIR实现陷波滤波滤波原理讲解双二阶滤波器计算过程陷波滤波优势 在上一篇中&#xff0c;介绍了信号时域到频域的…...

将广播发送和接收端实现一遍,完成一个发送端发送信息,对应多个接收端接收信息实验。

1、将广播发送和接收端实现一遍&#xff0c;完成一个发送端发送信息&#xff0c;对应多个接收端接收信息实验。 接受端 #include<myhead.h> #define handel_err(res,val) if(val-1){perror(res);return-1;} int main(int argc, const char *argv[]) {int rfdsocket(AF_…...

Nginx 负载均衡详解

一、Nginx 简介 Nginx 是一个高性能的开源 Web 服务器和反向代理服务器&#xff0c;以其轻量级、高并发、低内存消耗等特点著称。Nginx 不仅适用于静态资源的快速分发&#xff0c;还广泛应用于负载均衡、反向代理等场景。通过Nginx&#xff0c;可以轻松地构建一个高效、可靠且…...

自动驾驶新纪元:城区NOA功能如何成为智能驾驶技术的分水岭

目录 一、NOA 的定义 二、NOA 的主要特点 导航集成 场景覆盖 智能决策 高级感知能力 驾驶员参与 三、NOA 的优势 四、NOA的衡量指标 定性评价指标 安全性评价指标定义 可靠性评价指标定义 舒适性评价指标定义 通行效率评价指标 定量评价指标 五、代表厂商的实测…...

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧&#xff0c;P帧&#xff0c;B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…...

【Ubuntu】Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)

Ubuntu server 18.04 搭建Slurm并行计算环境&#xff08;包含NFS&#xff09; 一、Munge 认证模块 1.1、安装 munge 主节点和子节点都安装munge #安装 sudo apt update && sudo apt install munge libmunge-dev#设置开机启动 sudo systemctl enable munge sudo syste…...

WPF 绘制过顶点的圆滑曲线 (样条,贝塞尔)

在一个WPF项目中要用到样条曲线&#xff0c;必须过顶点&#xff0c;圆滑后还不能太走样&#xff0c;捣鼓一番&#xff0c;发现里面颇有玄机&#xff0c;于是把我多方抄来改造的方法发出来&#xff0c;方便新手&#xff1a; 如上图&#xff0c;看代码吧&#xff1a; ----------…...

Spring 的不同事务传播行为

目录 Spring 的不同事务传播行为 PROPAGATION_REQUIRES_NEW事务传播行为什么情况下会使用? 一、PROPAGATION_REQUIRES_NEW的含义 二、使用场景 三、注意事项 PROPAGATION_NESTED事务传播行为什么情况下会使用? 一、PROPAGATION_NESTED的含义 二、使用场景 三、嵌套事…...

PlantUML 时序图 基本例子

基本的例子 序列-> 用于绘制两个参与者之间的信息。参与者不必明确声明。 要有一个点状的箭头&#xff0c;就用--> 也可以用<- 和<-- 。这不会改变绘图&#xff0c;但可能提高可读性。注意&#xff0c;这只适用于顺序图&#xff0c;其他图的规则不同。 plantum…...

QILSTE H8-C414SY高亮黄光LED灯珠 发光二极管LED

在电子组件的复杂世界中&#xff0c;H8-C414SY型号的LED以其精确的技术参数和卓越的性能&#xff0c;成为了工程师和技术人员不可忽视的选择。本文将通过对这款高亮黄光LED的技术参数进行深入分析&#xff0c;增加文本的复杂性和突发性&#xff0c;以提供一份详尽的技术参考。 …...

git clone 和 conda 换源

文章目录 git clone 通过 sshconda 创建虚拟环境通过 env.yml 文件conda 换源 git clone 通过 ssh git clone ssh://用户名IP地址:/仓库名字.gitconda 创建虚拟环境通过 env.yml 文件 conda env create -f environment.ymlconda 换源 Step 1 生成 .bashrc 文件在家目录下。…...

Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(下)

在上一篇博客《Spring Boot 多数据源解决方案&#xff1a;dynamic-datasource-spring-boot-starter 的奥秘》介绍了dynamic-datasource-spring-boot-starter的自动配置类和配置属性类之后&#xff0c;本文继续来剖析多数据源是如何切换的&#xff0c;什么时候切换的。 前文中提…...

移动 APP 设计规范参考

一、界面设计规范 布局原则&#xff1a; 内容优先&#xff1a;以内容为核心进行布局&#xff0c;突出用户需要的信息&#xff0c;简化页面导航&#xff0c;提升屏幕空间利用率.一致性&#xff1a;保持界面元素风格一致&#xff0c;包括颜色、字体、图标等&#xff0c;使用户在…...

yolov6算法及其改进

yolov6算法及其改进 1、YOLOV6简介2、RepVGG重参思想3、YOLOv6架构改进3.1、Backbone方面3.2、SPP改进3.3、Neck改进3.4、Head改进 4、正负样本匹配与损失函数4.1、TaskAligned样本匹配4.2、VFL Loss分类损失函数4.3、SIOU损失函数4.4、DFL损失函数 1、YOLOV6简介 YOLOv6设计主…...

java自定义注解对枚举类型参数的校验

目录 1.前提准备条件 1.1 pom.xml文件依赖: 1.2 枚举类&#xff1a; 1.3 controller接口&#xff1a; 1.4 实体参数&#xff1a; 1.5 knife4j的配置 2.实现要求 3.实现步骤 3.1 自定义注解类&#xff1a; 3.2 使用注解&#xff1a; 3.3 添加注解校验类&#xff1a; …...

K8S-LLM:用自然语言轻松操作 Kubernetes

在 Kubernetes (K8s) 的日常管理中&#xff0c;复杂的命令行操作常常让开发者感到头疼。无论是部署应用、管理资源还是调试问题&#xff0c;都需要记住大量的命令和参数。Kubernetes 作为容器编排的行业标准&#xff0c;其强大的功能伴随着陡峭的学习曲线和复杂的命令行操作。这…...

【GO基础学习】gin的使用

文章目录 模版使用流程参数传递路由分组数据解析和绑定gin中间件 模版使用流程 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则&#xff0c;执行的函数// gin.Context&#x…...

【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】

文章目录 PCIe Message 与 MSIPCIe Message 和 MSI 的作用与关系MSI 的配置与寄存器MSI 和 ARM GIC 的关系示例&#xff1a;MSI 在 ARM GIC 的实际应用总结 PCIe Message 与 MSI 本文将介绍 PCIe message 的作用以及message 与 MSI 的关系&#xff0c;再介绍 MSI 如何配置以及…...

sklearn_pandas.DataFrameMapper的用法

文章目录 介绍主要作用基本用法示例对不同列应用不同的转换器对多列应用相同的转换器输出为 Pandas DataFrame 注意事项转换器的适用性&#xff1a;输出格式&#xff1a;与 scikit-learn 的兼容性&#xff1a; 介绍 DataFrameMapper 是 sklearn-pandas 库中的一个工具&#xf…...

【2024年-7月-27日-开源社区openEuler实践记录】剖析 elease - management:优化软件发布流程的开源方案

开篇介绍 大家好&#xff0c;我是 fzr123&#xff0c;在软件开发流程管控领域探索许久&#xff0c;今天要给大家详细说说release - management这个极具价值的开源项目。在软件开发的生命周期里&#xff0c;发布管理至关重要&#xff0c;它关乎着软件能否稳定、高效且按时交付&…...

CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)

文章目录 1.Introduction1.1 What software engineering is and why it is important&#xff08;什么是软件工程&#xff0c;为什么它很重要&#xff09;1.1 We can’t run the modern world without software&#xff08;我们的世界离不开软件&#xff09;1.1.1 What is Soft…...

Mysql数据库Redo日志和Undo日志的理解

数据库redo日志和undo日志 1、redo日志1.1 redo日志的作用1.1.1 不使用redo日志的问题1.1.2 使用redo日志的好处 1.2 redo日志刷盘策略 2、undo日志2.1 undo日志的作用2.2 undo日志的简要生成过程 1、redo日志 事务的4大特性&#xff08;ACID&#xff09;&#xff1a;原子性、…...

大厂高频总线协议面试题及参考答案(几百家面试题挑选最高频精华)

目录 请介绍一下 SPI 总线协议及其工作原理,包括 SPI 有哪四种模式以及四根线的电气特性是什么? SPI 通信的波特率是多少,时钟来源是什么?SPI 的帧长度和数据格式是怎样的? 请简述 IIC 协议及其工作原理,包括 IIC 协议最多能挂载多少个从设备? IIC 总线上挂不同的设备…...

使用策略模式时的一个生效问题

策略模式的替换场景&#xff1a; 1&#xff1a;产品有默认策略A,B,项目扩展策略C&#xff0c;此为正常扩展。 2&#xff1a;产品有默认策略A,B,项目需要改写策略B&#xff0c;此为项目替换默认策略。 3&#xff1a;产品有默认策略A,B,项目扩展策略C&#xff0c;产品需要反向扩展…...

活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动&#xff0c;了解 Azure 如何为将工作负载…...

关于 PCB线路板细节锣槽问题 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/144783817 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

机器学习特征选择

一、特征选择概述 在实际的数据集中&#xff0c;往往包含了大量的特征&#xff0c;但并非所有特征都对我们要预测的目标变量&#xff08;如分类任务中的类别标签&#xff0c;回归任务中的数值目标&#xff09;有积极作用。有些特征可能携带的信息量极少&#xff0c;甚至会引入…...

第R5周:天气预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 任务说明&#xff1a;该数据集提供了来自澳大利亚许多地点的大约 10 年的每日天气观测数据。你需要做的是根据这些数据对RainTomorrow进行一个预测&#xff0c…...