AndroidStudio的Iguana版的使用
1.AndroidStudio介绍
Android Studio 是用于开发 Android 应用的官方集成开发环境 (IDE)。Android Studio 基于 IntelliJ IDEA 强大的代码编辑器和开发者工具,还提供更多可提高 Android 应用构建效率的功能,例如:
- 基于 Gradle 的灵活构建系统
- 快速且功能丰富的模拟器
- 统一的环境(供您开发适用于所有 Android 设备的应用)
- 通过实时编辑功能实时更新模拟器和实体设备中的可组合项
- 代码模板和 GitHub 集成,可协助您打造常见的应用功能及导入示例代码
- 大量的测试工具和框架
- Lint 工具,能够找出性能、易用性和版本兼容性等方面的问题
- C++ 和 NDK 支持
- 内置对 Google Cloud Platform 的支持,可轻松集成 Google Cloud Messaging 和 App Engine
2.项目结构
Android Studio 中的项目包含为应用定义工作区的所有内容,包括源代码、资源、测试代码和 build 配置。
- manifests:包含
AndroidManifest.xml
文件。 - java:包含 Kotlin 和 Java 源代码文件,包括 JUnit 测试代码。
- res:包含所有非代码资源,例如界面字符串和位图图像。
2.1MainActivity.java和activity_main.xml
什么是MainActivity,就是一个Android的APP 如果它有Activity的话,那么最开始启动的那个Activity就是MainActivity。
每一个组件,包括Activity都必须要在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.Demo2"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>
MainActivity文件
package com.gaoting.demo2;import android.os.Bundle;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_main);ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);return insets;});}
}
activity_main.xml
Android程序的设计讲究逻辑和视图分离,因此是不推荐在活动中直接编写界面的,更加通用的一种做法是,在布局文件中编写界面,然后在活动中引人进来。可以看到,在onCreate()
方法的第二行调用了setContentView()方法, 就是这个方法给当前的活动引人了一个layout布局。
布局文件都是定义在res/layout 目录下的,展开layout目录,会看到activity_main.xml这个文件。
2.2R.txt文件
Android Studio 中 R.java 没了,转为 R.txt 文件。
原来是 AGP
在性能方面的优化,跳过 java
文件,直接生成 R
文件的字节码,虽然R.java
没有了,但 AGP
会输出 R.txt
供开发者使用。
查找 R.java(R.txt)
位置:
1、默认是没有 build
文件夹的,R.java(R.txt)
在 build
文件夹中。
2、创建项目之后,找到工具栏中的 Build
选项,先 clear
在 build
生成文件夹。
3.gradle-wrapper.properties配置解读
3.1环境变量GRADLE_USER_HOME
GRADLE_USER_HOME是Gradle构建工具的一个重要属性,用于设置Gradle用户目录的路径。该属性的默认值根据平台不同而不同,Windows平台默认为C:\Users\用户名\.gradle,Linux和Mac平台默认为~/ .gradle。可以通过设置该属性来指定Gradle用户目录的位置。
GRADLE_USER_HOME的作用
1、缓存依赖项:Gradle会在GRADLE_USER_HOME路径下存储缓存的依赖项。这样一来,在同一个项目或者不同项目中,相同的依赖项只需要下载一次,就可以进行共享,加快了构建的速度。
2、缓存元数据:Gradle还会将元数据(例如版本控制系统、依赖项解析结果等)存储在GRADLE_USER_HOME路径下的缓存目录中。这可以避免在构建过程中重复获取和解析元数据,提高了构建的效率。
3、存储插件:Gradle会自动下载并安装插件,并将其存储在gradleuserhome目录下的插件目录中。这可以避免在每个项目中都需要手动安装插件,方便了使用。
如下是文件AndroidManifest.xml的设置:
#Wed May 01 07:10:44 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
环境变量:GRADLE_USER_HOME
Gradle用户目录:
3.2distributionUrl
distributionUrl 决定了这个项目使用的gradle版本,也就是说不同的项目可以使用不同的gradle版本,这也就是为什么修改Gradle Home失败的原因。那么我们怎么知道gradle有哪些版本呢?Gradle下载地址:https://services.gradle.org/distributions/。为了加速可以使用国内Gradle镜像如腾讯软件:Index of /gradle/。
注:本文使用的是AndroidStudio 2023.2.1版本。
相关文章:

AndroidStudio的Iguana版的使用
1.AndroidStudio介绍 Android Studio 是用于开发 Android 应用的官方集成开发环境 (IDE)。Android Studio 基于 IntelliJ IDEA 强大的代码编辑器和开发者工具,还提供更多可提高 Android 应用构建效率的功能,例如: 基于 Gradle 的灵活构建系统…...

通过方法引用获取属性名的底层逻辑是什么?
很多小伙伴可能都用过 MyBatis-Plus,这里边我们构造 where 条件的时候,可以直接通过方法引用的方式去指定属性名: LambdaQueryWrapper<Book> qw new LambdaQueryWrapper<>(); qw.eq(Book::getId, 2); List<Book> list bo…...

自学错误合集--项目打包报错,运行报错持续更新中
java后端自学错误总结 一.项目打包报错2.项目打包之后运行报错 二.项目运行报错 一.项目打包报错 javac: �Ҳ����ļ�: E:\xx\xx\xx\docer-xx\src\main\java\xx\xx\xx\xx\xx\xx.java �ÿ…...

KUKA机器人故障报警信息处理(一)
1、KSS00276 机器人参数不等于机器人类型 ①登录专家模式 ②示教器操作:【菜单】—【显示】—【变量】—【单个】 ③名称输入:$ROBTRAFO[] 新值:TRAFONAME[] ④点击【设定值】。 2、电池报警: ①“充电电池警告-发现老化的蓄电池…...

数仓开发:DIM层数据处理
一、了解DIM层 这个就是数仓开发的分层架构 我们现在是在DIM层,从ods表中数据进行加工处理,导入到dwd层,但是记住我们依然是在DIM层,而非是上面的ODS和DWD层。 二、处理维度表数据 ①先确认hive的配置 -- 开启动态分区方案 -- …...

echars设置渐变颜色的方法
在我们日常的开发中,难免会遇到有需求,需要使用echars设置渐变的图表,如果我们需要设置给图表设置渐变颜色的话,我们只需要在 series 配置项中 添加相应的属性配置项即可。 方式一:colorStops type:‘lin…...

SpringBoot3项目打包和运行
六、SpringBoot3项目打包和运行 6.1 添加打包插件 在Spring Boot项目中添加spring-boot-maven-plugin插件是为了支持将项目打包成可执行的可运行jar包。如果不添加spring-boot-maven-plugin插件配置,使用常规的java -jar命令来运行打包后的Spring Boot项目是无法找…...

Spring Cloud Gateway的部署
不要将 Spring Cloud Gateway 部署到 Tomcat 可以将Spring Cloud Gateway打成jar包,并通过jar包部署,步骤: 1. 修改构建配置 确保你的pom.xml文件中的打包方式为jar。 <packaging>jar</packaging> 2 打包项目 mvn clean pack…...

算法提高之树的最长路径
算法提高之树的最长路径 核心思想:树形dp 枚举路径的中间节点用f1[i] 表示i的子树到i的最长距离,f2[i]表示次长距离最终答案就是max(f1[i]f2[i]) #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N …...

git/gerrit使用遇到的问题
Push时出现的多个问题及其解决 branch【...】not found 这个错误通常出现在 Git 命令中指定的分支名称中包含特殊字符或者语法错误时。需要确保指定的分支名称是正确的,并且没有任何不支持的字符。 例如,如果分支名称是 feature/branch,应该…...

机器学习第二天(监督学习,无监督学习,强化学习,混合学习)
1.是什么 基于数据寻找规律从而建立关系,进行升级,如果是以前的固定算式那就是符号学习了 2.基本框架 3.监督学习和无监督式学习: 监督学习:根据正确结果进行数据的训练; 在监督式学习中,训练数据包括输…...

Rust 解决循环引用
导航 循环引用一、现象二、解决 循环引用 循环引用出现的一个场景就是你指向我,我指向你,导致程序崩溃 解决方式可以通过弱指针,而Rust中的弱指针就是Weak 在Rc中,可以实现,对一个变量,持有多个不可变引…...

ICC2:如何解决pin density过高引起的绕线问题
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 为了追求极致的利用率,综合往往会使用大量的AOI/OAI等多pin cell,然而后端实现过程中,工具为了解决绕线难题,又会通过降低local density的方法实现反向奔赴,即便如此,绕线后仍会残留不少问题,…...

Buuctf-Misc题目练习
打开后是一个gif动图,可以使用stegsolve工具进行逐帧看。 File Format:文件格式 Data Extract:数据提取 Steregram Solve:立体试图 可以左右控制偏移 Frame Browser:帧浏览器 Image Combiner:拼图,图片拼接 所以可以知道我们要选这个Frame Browser …...

费马小定理详解
费马小定理 定义: 设 p 为素数,a 为整数,则 a p ≡ a ( m o d p ) a^p \equiv a\ (\mod p) ap≡a (modp) ,若 p ∤ a p \nmid a p∤a ,则 a p − 1 ≡ 1 ( m o d p ) a^{p-1} \equiv 1\ (\mod p) ap−1≡1 (modp)…...

PXE批量安装
系统装机的三种引导方式 u盘光盘网络装机 光盘: 1.类似于usb模式 2.刻录模式 系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从…...

stm32f103c8t6最小系统板
STM32F103C8T6最小系统板是为基于ARM Cortex-M3内核的STM32F103C8T6微控制器设计的电路板,它包含了单片机正常运行所需的最基本组件。以下是构成STM32F103C8T6最小系统板的基本部分: 单片机芯片:STM32F103C8T6本身,它是一款32位微…...

QCefView 在 Linux 下的编译(更新)
在前面的文章《QT 应用程序中集成浏览器》中已经介绍过 QCefView 的构建。这几天发现 QCefView 代码进行了更新,构建方式也发生了一点点变化,所以在此更新一下 QCefView 的编译方法。 QCefView 其实包含了两个项目,一个就是 QCefView 项目本身,另外一个就是 CefViewCore。…...

无卤素产品是什么?有什么作用?
无卤素产品,即在生产过程中完全不使用卤素元素——氟、氯、溴、碘等——的产品。 卤素元素,虽然在电子设备、材料等领域应用广泛,却也可能潜藏危害。其阻燃剂,一旦在产品生命周期结束后释放,将对土壤和水体造成污染&a…...
esp32-cam 1. 出厂固件编译与测试
0. 环境 - ubuntu18 - esp32-cam - usb转ttl ch340 硬件连接 esp32-camch340板子U0RTXDU0TRXDGNDGND5V5V 1. 安装依赖 sudo apt-get install vim sudo apt install git sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial p…...

题目:线性代数
问题描述: 解题思路: 列相乘,然后行相加。 注意点:由于元素数据范围最大为1e6,两个元素相乘乘积最大为1e12,如果元素类型为int则在乘的过程中就会爆炸,所以需要开long long类型。 AC代码…...

docker学习笔记3:VmWare CentOS7安装与静态ip配置
文章目录 一、安装CentOS71、下载centos镜像2、安装二、设置静态ip三、xshell连接centos本专栏的docker环境是在centos7里安装,因此首先需要会安装centos虚拟机。 本篇博客介绍如何在vm虚拟机里安装centos7。 一、安装CentOS7 1、下载centos镜像 推荐清华源,下载如下版本 …...

leetcode 547.省份数量
思路:dfs 或者这道题用bfs也是可以的。 这道题有点迷惑性,这里的数组给的是无向图的数组,而并不是地图,这里需要着重注意一下。 而后,这里的状态数组st没必要是二维的,我们并不会去遍历所给的数组&#…...

Qt5 框架学习及应用 — 对象树
Qt 对象树 对象树概念Qt为什么使用对象树 ?将对象挂到对象树上 对象树概念 对象树:对于树的概念,相信许多学过数据结构的同学应该都不会陌生。在学习数据结构的时候我们所接触的什么二叉树、多叉树、哈夫曼树、AVL树、再到红黑树、B/B树………...

Ansible自动化运维工具---Playbook
一、playbook playbook是剧本的意思 通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。 playbook本身由以下各部分组成: Tasks: 任务,即调用模块完成的某操作Variables: 变量Templates: 模板Handlers: 处理器,当某条…...

什么是接口和类?Java中的集合框架有哪些主要接口和类?
Java中的集合框架有哪些主要接口和类? Java中的集合框架(Java Collections Framework)提供了一套丰富的接口和类,用于存储和操作对象的集合。以下是Java集合框架中的主要接口和类: 主要接口 Collection: 这…...

算法学习笔记(最短路——Bellman-Ford)
B e l l m a n — F o r d Bellman—Ford Bellman—Ford是一种单源最短路径算法,可以用于边权为负的图,但是只能用于小图。 大概过程: 枚举每一条边,更新可以更新的节点(起点到自己距离为 0 0 0,从地点开…...

try-catch-finally的省略与springboot
在 Java 中,try-catch 块是用于捕获和处理异常的结构,它可以帮助您在代码中处理可能发生的异常情况。在某些情况下,您可能希望省略 try-catch 块并将异常向上抛出,让调用者处理异常。这种情况通常适用于以下情况: 方法…...

容器Docker:轻量级虚拟化技术解析
引言 随着云计算和虚拟化技术的飞速发展,容器技术以其轻量级、高效、可移植的特性,逐渐成为了软件开发和部署的新宠。在众多容器技术中,Docker以其简单易用、功能强大的特点,赢得了广泛的关注和应用。本文将全面介绍Docker的基本概…...

windows 系统中cuda 12.1 环境安装
文章目录 1. 安装cuda 12.11.1 下载1.2 安装 cuda1.2.1 安装步骤1.2.2 环境变量安装1.3 安装cuDNN1.3.1 安装1.3.2 cuDNN配置验证2. anaconda 安装2.1 安装2.2 环境变量配置3. 报错解决1. 安装cuda 12.1 首先通过nvidia-smi 查看可以安装的CUDA最高版本...