Android Studio开发(一) 构建项目

1、项目创建测试

1.1 前言

Android Studio 是由 Google 推出的官方集成开发环境(IDE),专门用于开发 Android 应用程序。

  • 基于 IntelliJ IDEA: Android Studio 是基于 JetBrains 的 IntelliJ IDEA 开发的,提供了丰富的功能和插件支持,使开发 Android 应用更加高效和便捷。

  • 功能丰富: Android Studio 提供了许多功能丰富的工具,如代码编辑器、调试器、布局编辑器、性能分析工具等,帮助开发者快速构建高质量的 Android 应用。

  • Gradle 构建系统: Android Studio 使用 Gradle 作为构建系统,使项目配置和构建更加灵活和可控,可以方便地管理依赖关系、资源文件等。

  • 模拟器和调试器: Android Studio 集成了 Android 模拟器和调试器,开发者可以方便地在模拟器或真机上调试和测试应用程序。

  • 布局编辑器: Android Studio 提供了强大的布局编辑器,支持可视化设计界面和 XML 布局文件的编辑,帮助开发者快速构建用户界面。

  • 版本控制: Android Studio 集成了版本控制系统,如 Git,使团队协作开发更加方便,可以轻松管理代码版本和协作开发。

1.2 新建项目

选择file-->New-->New Project进行项目创建,选用Empty Activity:

选择编程语言和兼容的最低安卓版本后点击finish即可:

创建完成后的项目如图所示:

1.3 运行项目

在如图所示的位置点击下拉选择Device Manager:

进行虚拟设备创建,首先选择设备的外观信息:

然后选择虚拟设备的Android版本,并进行下载:

最后选择设备名称和屏幕的放置形式:

点击运行按钮可以查看新建工程的运行效果:

展示运行界面:

2、项目文件介绍

新建项目的目录结构大致如下:

2.1 app目录

2.1.1 manifests

manifests:包含应用程序的清单文件(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:supportsRtl="true" // 支持RTL布局android:theme="@style/Theme.MyApplication" // 应用主题tools:targetApi="31"> // 工具:目标API版本为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>
2.1.2 java

包含Java代码文件,包括应用程序的源代码文件,按照包名结构组织。

2.1.3 res

包含资源文件:

  • drawable

    • 包含图形资源文件,如图片(.png、.jpg等)。
    • 可以按照不同分辨率(hdpi、mdpi、xhdpi等)存放不同版本的图片。
  • layout

    • 包含布局文件,定义应用程序的界面布局。
    • 使用XML文件编写,描述UI元素的位置、大小和交互方式。
  • values

    • 包含各种资源值文件,如字符串(strings.xml)、颜色(colors.xml)、尺寸(dimens.xml)等。
    • 可以在代码中引用这些值,实现资源的重用和统一管理。
  • mipmap

    • 包含应用程序图标资源文件。
    • 用于存放应用程序的图标,支持不同分辨率的图标。
  • xml

    • 用于存放应用程序的配置信息

2.2 gradle script

2.2.1 build.gradle (Project)

定义了整个项目的构建配置,包括项目的构建脚本依赖关系、全局配置等。

2.2.2 build.gradle (Module:app)

定义了当前模块(app模块)的构建配置,包括应用程序的依赖关系、版本信息等。

plugins {// 应用com.android.application插件,用于构建Android应用程序id 'com.android.application'
}android {// 定义应用程序的命名空间namespace 'com.example.myapplication'// 编译SDK的版本compileSdk 33defaultConfig {// 应用程序的包名applicationId "com.example.myapplication"// 最低支持的SDK版本minSdk 24// 目标SDK版本targetSdk 33// 版本号versionCode 1// 版本名称versionName "1.0"// 测试运行器testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {// 是否启用代码混淆minifyEnabled false// 混淆规则文件proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {// 源码和目标代码的兼容性sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}dependencies {// AppCompat库implementation 'androidx.appcompat:appcompat:1.4.1'// Material Design组件库implementation 'com.google.android.material:material:1.5.0'// ConstraintLayout库implementation 'androidx.constraintlayout:constraintlayout:2.1.3'// 单元测试库testImplementation 'junit:junit:4.13.2'// Android测试库androidTestImplementation 'androidx.test.ext:junit:1.1.3'// Espresso测试库androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
2.2.3 proguard-rules.pro

用于配置 ProGuard 的混淆规则,用于在构建 Release 版本时对代码进行混淆,以保护代码安全并减小 APK 大小。

2.2.4 gradle.properties

该文件用于存储Gradle构建脚本中使用的属性值。

2.2.5 gradle-wrapper.properties

Gradle包装器的配置文件,用于指定Gradle的版本等信息。

2.2.6 local.properties

存储本地环境相关的配置信息,通常包括 SDK 路径、密钥等。

2.2.7 settings.gradle

定义了项目的模块信息,包括模块的名称、路径等。

3、总结

本文讲解了Android Studio创建工程的一般过程,使用模拟器运行新建项目;讲解了项目的目录结构。

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

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

相关文章

Qt 通过pdfium将网络上的pdf显示为图片

前言 遇到个需求&#xff0c;就是在qt客户端显示服务器上的pdf文档&#xff0c;文档以base64格式返回给客户端。以下是实现方法&#xff1a; 1、在pro文件增加以下代码&#xff1a; INCLUDEPATH $$PWD/PDFiumSDK/include/publicDEPENDPATH $$PWD/PDFiumSDK/include/public…

Python 全栈系列232 再次搭建RabbitMQ

说明 最近想重新上RabbitMQ&#xff0c;主要目的还是为了分布式任务调度。在Kafka和RabbitMQ两者犹豫了一下&#xff0c;还是觉得RabbitMQ好一些。 在20年的时候有搞过一阵子的RabbitMQ,看了下当时的几篇文章&#xff0c;觉得其实想法一直没变过。 Python - 装机系列24 消息…

常用“树”数据结构

哈夫曼树 在许多应用中&#xff0c;树中结点常常被赋予一个表示某种意义的数值&#xff0c;称为该结点的权。从树的根到任意结点的路径长度(经过的边数)与该结点上权值的乘积&#xff0c;称为该结点的带权路径长度。树中所有叶结点的带权路径长度之和称为该树的带权路径长度&am…

出现身份验证错误,无法连接到本地安全机构 顺利解决这个问题希望能帮助大家

出现身份验证错误&#xff0c;无法连接到本地安全机构&#xff0c;远程计算机&#xff1a;XX&#xff0c;这可能是由于密码过期&#xff0c;如果密码已过期请更新密码。 我们可以在系统属性中对远程进行设置&#xff0c;以解决远程桌面无法连接到本地安全机构这一问题。 步骤…

倒计时34天

L2-1 堆宝塔 - B107 2023级选拔春季开学测重现 (pintia.cn) #include<bits/stdc.h> using namespace std; //#define int long long const int N2e56; const int inf0x3f3f3f3f; const double piacos(-1.0); vector<int>ve1,ve2; vector<vector<int> >…

企业出海WAS安全自动化解决方案

随着企业出海的日益激烈&#xff0c;安全风险正在成为企业日益关注的问题之一&#xff0c;九河云携手AWS带来了使用Amazon WAF 与 Amazon Shield 的 CloudFront安全自动化。Aws WAF是一种web应用防火墙&#xff0c;可帮助保护客户的web应用程序或api免遭常规web漏洞的攻击。Aws…

【R语言教程】

R语言简介&#xff1a; R 是一种自由、开源的编程语言&#xff0c;专门用于统计分析、数据挖掘、数据可视化以及整理和清洗数据。 R 的强大功能和丰富的扩展包使得它在全球统计学家、数据科学家甚至其它领域的研究员和技术人员中都非常受欢迎。 R语言环境&#xff1a; 要开始…

【Hadoop大数据技术】——Hadoop概述与搭建环境(学习笔记)

&#x1f4d6; 前言&#xff1a;随着大数据时代的到来&#xff0c;大数据已经在金融、交通、物流等各个行业领域得到广泛应用。而Hadoop就是一个用于处理海量数据的框架&#xff0c;它既可以为海量数据提供可靠的存储&#xff1b;也可以为海量数据提供高效的处理。 目录 &#…

【数据结构】用栈实现队列

前言&#xff1a;本节博客分享了用栈实现队列效果的思路以及代码&#xff0c;有需要借鉴即可。 1.题目及链接 LINK 2.思路分析 如果要用栈实现队列&#xff0c;我们直到栈是先入后出的一个效果&#xff0c;所以我们可以用两个栈&#xff0c;这样逆转两次数不就是入栈之前数组…

Scanner类的九大输入方法,三种输出方法

目录 输入方法 Scanner类的9大输入方法 输出方法 print println printf 例题实战 题目进阶 输入方法 最常见的输入输出方法 输入Scanner类 Scanner是Java5的新特征&#xff0c;在java.util包里&#xff0c;可以完成用户输入&#xff1a; 导入java.util包 构造Scanner对象&…

Linux环境下终端( 串口)接口应用

目录 概述 1 了解串口应用编程 1.1 认识 struct termios 结构体 1.1.1 认识c_iflag 1.1.2 认识c_oflag 1.1.3 认识 c_cflag 的配置参数 1.1.4 认识c_lflag 1.2 终端相关的函数库 2 编写串口应用接口 2.1 设置baud函数 2.2 设置停止位函数 2.3 设置奇偶校验函数 2.4…

SpringBoot约定大于配置

什么是约定大于配置 "约定大于配置"&#xff08;Convention Over Configuration&#xff09;是一种理念&#xff0c;旨在通过默认约定和规则来减少开发人员需要做的配置工作。在Spring Boot框架中&#xff0c;这一原则得到了充分应用&#xff0c;帮助开发者更快地构…

Blender和3ds Max哪个会是行业未来?

Blender和3ds Max都是很强大的三维建模和渲染软件&#xff0c;各有各的好处。选择哪个软件更好&#xff0c;要看你的需求、预算、技术水平以及行业趋势等因素。 Blender最大的优点是免费且开源&#xff0c;这对预算有限的个人和小团队来说很有吸引力。它有很多建模工具和功能&…

在电脑桌面打开任意应用程序的快捷键

首先为某个程序&#xff08;比如谷歌浏览器&#xff09;创建一个快捷方式&#xff0c; 其次右键快捷方式&#xff0c;找到属性一栏 单击快捷键三个字右边的方框&#xff08;里面有一个“无”&#xff09;&#xff0c;然后按下你所需要设置的快捷键

【强化学习的数学原理-赵世钰】课程笔记(七)时序差分方法

一.内容概述 第五节课蒙特卡洛&#xff08;Mento Carlo&#xff09;方法是全课程中第一次介绍 model-free 的方法&#xff0c;本节课的 Temporal-difference learning&#xff08;TD learning&#xff09;是我们要介绍的第二种 model-free 的方法。基于蒙特卡洛&#xff08;Me…

【数据结构高阶】并查集

目录 一、什么是并查集 二、并查集的原理 三、并查集的作用 四、并查集的代码实现 一、什么是并查集 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个 单元素集合&#xff0c;然后按一定的规律将归于同一组元…

【LeetCode每日一题】【BFS模版与例题】【二维数组】1293. 网格中的最短路径

BFS基本模版与案例可以参考&#xff1a; 【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点 【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 && 994 腐烂的橘子 思路&#xff1a; 特殊情况&#xff1a; 最短的路径是向下再向…

【电路笔记】-双极晶体管

双极晶体管 文章目录 双极晶体管1、概述2、双极晶体管结构3、双极晶体管配置3.1 共基极 (CB) 配置3.2 共发射极 (CE) 配置3.3 共集极 (CC) 配置4、总结1、概述 双极结型晶体管是一种可用于开关或放大的半导体器件。 与半导体二极管不同,半导体二极管由两片半导体材料组成,形…

【Java基础面试题2】

目录 前言 1.11 int和Integer有什么区别&#xff0c;二者在做运算时会得到什么结果&#xff1f; 1.12 说一说你对面向对象的理解 1.13 面向对象的三大特征是什么&#xff1f; 1.14 封装的目的是什么&#xff0c;为什么要有封装&#xff1f; 1.15 说一说你对多态的理解 1…

ElasticSearch|ES|架构介绍|原理浅析

架构介绍 节点 (Nodes): Elasticsearch 集群由多个节点组成&#xff0c;每个节点是一个独立运行的 Elasticsearch 实例。节点之间通过内部通信协议相互协作。 Master Node: 主节点负责管理集群范围的操作&#xff0c;例如创建或删除索引、分配和重新分配分片、维护集群状态等。…