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版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/675205.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5 V7.0 - rknn模型的验证 输出精度(P)、召回率(R)、mAP50、mAP50-95

1.简介 RKNN官方没有提供YOLOv5模型的验证工具&#xff0c;而YOLOv5自带的验证工具只能验证pytorch、ONNX等常见格式的模型性能&#xff0c;无法运行rknn格式。考虑到YOLOv5模型转换为rknn会有一定的精度损失&#xff0c;但是需要具体数值才能进行评估&#xff0c;所以需要一个…

荷香堪筑梦,鸳鸯和月寻。(变相BFS搜索)

本题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目&#xff1a; 样例&#xff1a; 输入 3 4 2 .... ***. ..a. 输出 yes 思路&#xff1a; 根据题意&#xff0c;这里 1 s 可以移动多次&#xff0c;我们将每次可以移动避开雪的的位置存储起来&#xff0c;判断当…

线程池

文章目录 普通线程池自定义线程池 普通线程池 //创建线程池&#xff0c;不指定上限 ExecutorService pool1 Executors.newCachedThreadPool(); //创建线程池&#xff0c;指定上限 ExecutorService pool1 Executors.newFixedThreadPool(5); --------------------------------…

【Linux】文件内容相关的命令,补充:管道符

1、查看文件内容 &#xff08;1-1&#xff09;查看文件内容&#xff1a;cat&#xff0c;tac&#xff0c;head&#xff0c;tail 查看文件内容cat 文件名查看文件内容并显示行号cat -n 文件名倒着查看文件内容&#xff08;从最后一行开始&#xff09;tac 文件名查看文件前10行…

Day1| Java基础 | 1 面向对象特性

Day1 | Java基础 | 1 面向对象特性 基础补充版Java中的开闭原则面向对象继承实现继承this和super关键字修饰符Object类和转型子父类初始化顺序 多态一个简单应用在构造方法中调用多态方法多态与向下转型 问题回答版面向对象面向对象的三大特性是什么&#xff1f;多态特性你是怎…

Vscode 实现代码跳转功能

随笔 目录 1. 安装Python 2. 安装Pylance 3. 选择解释器 1. 安装Python 2. 安装Pylance 3. 选择解释器 到此即可实现跳转功能

k8s部署skywalking(helm)

官方文档 官方文档说明&#xff1a;Backend setup | Apache SkyWalking官方helm源码&#xff1a;apache/skywalking-helm官方下载&#xff08;包括agent、apm&#xff09;:Downloads | Apache SkyWalking 部署 根据官方helm提示&#xff0c;选择你自己部署的方式&#xff0c…

Adobe-Premiere-CEP 扩展 入门-视频剪辑-去气口插件-Silence Remover

短视频&#xff0c;这两年比较火&#xff0c;不要再问为什么用Premiere&#xff0c;非常难用&#xff0c;为什么不用某影&#xff0c;某些国内软件非常接地气简单&#xff0c;又例如某音资深的视频短编辑就很好用了。。。 Premiere二次开发调试难&#xff0c;不如自己搞个cons…

无线通信基础

这里写目录标题 通信概述什么是无线通信无线通信电磁波 通信概述 什么是无线通信 无线通信 : 是指利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式 无线通信的关键技术包括调制技术、解调技术、信道编码技术、信号处理技术、天线技术等。这些技术的不断…

Qt :信号与槽

信号与槽 信号介绍connect 函数使用connect 函数传参问题 定义槽&#xff08;solt&#xff09;函数方法一方法二 定义信号关键字 signals、emit 定义带参数的信号和槽参数个数不一致问题断开信号和槽的连接 disconnect lambda 表达式 信号介绍 Qt 中&#xff0c;信号会涉及三个…

Java 框架安全:Spring 漏洞序列.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一个用于构建企业级应用程序的开源框架。它提供了一种全面的编程和配置模型&#xff0c;可以简化应用程序的开发过程。Spring 框架的核心特性包括依赖注入&#xff08;Dependency Injection&#xff09;、面向切面编程&#xff08;Aspect-Or…

QT--2

Qt界面设计 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口相关设置this->resize(680,520);this->setFixedSize(680,520);this->setWindowTitle("Tim");this->setWindowFla…