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创建工程的一般过程,使用模拟器运行新建项目;讲解了项目的目录结构。
相关文章:

Android Studio开发(一) 构建项目
1、项目创建测试 1.1 前言 Android Studio 是由 Google 推出的官方集成开发环境(IDE),专门用于开发 Android 应用程序。 基于 IntelliJ IDEA: Android Studio 是基于 JetBrains 的 IntelliJ IDEA 开发的,提供了丰富的功能和插件…...

stm32flash模拟eeprom
stm32f103CB的flash是128k(起始地址是 0x08000000 到 0x0801FFFF) falsh的末地址是0x801FFFF,即倒数一页是0x801FBFF(1页按照1kB1024B来算) stm32f103参考手册stm32f103cb.pdf stm32的FLASH分为主存储块和信息块&…...
多模态MLLM都是怎么实现的(2)-DDPM
上一篇的链接:多模态MLLM都是怎么实现的(2) (qq.com) 上上篇的链接:多模态MLLM都是怎么实现的(1) (qq.com) 在第一篇我们简单介绍了一下多模态训练的原理,包括clip,第二篇正好Sora横空出世,也让我就Dit做了一下抛砖引玉,顺便讲了VAE和ViT的部分,上节课我说过, DiT…...

QT----写完的程序打包为APK在自己的手机上运行
目录 1、qt安装android组件2、打开qt配置Android 环境3、手机打开开发者模式,打开usb调试,连接电脑4、运行代码 1、qt安装android组件 qtcreater–工具-QTMaintenaceTool-startMaintenaceTool—登陆—添加或修改组件—找到android,安装 若是…...
Windows C++ SecurityImpersonation级别:线程临时采用另一个用户(客户端)的身份进行操作的能力
SecurityImpersonation 是 Windows 操作系统中安全模型的一个级别,用于描述一个线程临时采用另一个用户(客户端)的身份进行操作的能力。这是Windows安全性的一个核心概念,允许服务或进程在执行特定任务时拥有与请求该服务的用户相…...

重学SpringBoot3-yaml文件配置
重学SpringBoot3-yaml文件配置 引言YAML 基本语法YAML 数据类型YAML 对象YAML 数组复合结构标量引用 YAML 文件结构Spring Boot 中的 YAML 配置注意事项总结参考 引言 YAML(YAML Ain’t Markup Language)是一种常用于配置文件的数据序列化格式ÿ…...

【管理咨询宝藏资料33】某头部咨询公司组织效能提升模型方案
本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏资料33】某头部咨询公司组织效能提升模型方案 【关键词】战略规划、组织效能、管理咨询 【文件核心观点】 - 通过长期行业积累和市场洞察&#…...

特征值和特征向量及其在机器学习中的应用
特征值和特征向量是线性代数中的概念,用于分析和理解线性变换,特别是由方阵表示的线性变换。它们被用于许多不同的数学领域,包括机器学习和人工智能。 在机器学习中,特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…...
【Vue3】Ref 和 ShallowRef 的区别
这里写自定义目录标题 什么是 Ref什么是 ShallowRef区别对比示例代码 什么是 Ref Ref 是 Vue 3 中的一个新的基本响应式数据类型,它允许我们包装任意的 JavaScript 值,并且在数据变化时发出通知。Ref 提供了一个 .value 属性来访问其内部的值࿰…...

Linux - 进程概念
1、冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系; 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成: 输入单元:…...

H5小游戏,象棋
H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html PUBLIC "-//W3C/…...

LLM春招准备(1)
llm排序 GPT4V GPT-4V可以很好地理解直接绘制在图像上的视觉指示。它可以直接识别叠加在图像上的不同类型的视觉标记作为指针,例如圆形、方框和手绘(见下图)。虽然GPT-4V能够直接理解坐标,但相比于仅文本坐标,GPT-4V在…...
网络安全知识点总结
1、常见的网络攻击有哪些? 答:(1)口令攻击:也就是窃取用户的账户和密码,普通用户习惯于设置简单的密码,且多个系统用同一套密码,黑客可以使用字典攻击(常用密码库&#…...

服务完善的智能组网系统?
智能组网是现代信息技术的重要组成部分,它通过将各种设备和计算机连接起来,实现高效的数据传输和远程通信。在一个全球化、高度互联的时代背景下,智能组网已经成为了各行各业的必需品。传统的组网方案往往面临着许多问题和挑战。为了解决这些…...

VS2022如何添加行号?(VS2022不显示行号解决方法)
VS2022不显示行号解决方法 VS2022是非常好用的工具,很多同学在初学C/C的时候,都会安装,默认安装好VS2022后,写代码时,在编辑框的窗口左边就有显示行号,如下图所示: 但是有些同学安装好后&#…...

125.验证回文字符串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则&#…...
Spring Boot的启动流程(个人总结,仅供参考)
SpringBoot应用程序的启动流程主要包括初始化SpringApplication和运行SpringApplication两个过程。 1.初始化SpringApplication包括配置基本的环境变量、资源、构造器和监听器,初始化阶段的主要作用是为运行SpringApplication实例对象启动环境变量准备以及进行必要的…...

用BIO实现tomcat
一、前言 本课程的难度较高,需要将Servlet原理和IO课程全部学完。 二、当前项目使用方式 (1).自定义servlet 自定义servlet需要实现WebServlet并且实现name和urlMapping 重启进行访问 http://localhost:8090/myServlet (2).自定义html 重启进行访问 http://loc…...

JS逆向进阶篇【去哪儿旅行登录】【下篇-逆向Bella参数JS加密逻辑Python生成】
目录: 每篇前言:引子——本篇目的1、 代码混淆和还原(1)单独替换:(2)整个js文件替换: 2、算法入口分析3、 深入分析(0)整体分析:(1&am…...

【机器学习】生成对抗网络GAN
概述 生成对抗网络(Generative Adversarial Network,GAN)是一种深度学习模型架构,由生成器(Generator)和判别器(Discriminator)两部分组成,旨在通过对抗训练的方式生成逼…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...