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,一经查实,立即删除!

相关文章

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…

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

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

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

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

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、概述 双极结型晶体管是一种可用于开关或放大的半导体器件。 与半导体二极管不同,半导体二极管由两片半导体材料组成,形…

StarUML6.0.1使用

1. 简介 作为一个软件开发人员&#xff0c;平时免不了做一定的软件设计&#xff0c;标准做法就是采用UML来设计&#xff1a; 讨论功能流程时采用时序图、活动图来表达&#xff1b;做业务功能架构时采用组件图来表达&#xff1b;做系统部署架构时采用部署图来表达&#xff1b;做…

因implements Interface书写顺序导致的Dubbo翻车实录

今天迁移Dubbo的代码&#xff0c;突然有个Service死活都找不到。 调用端报错&#xff1a; No provider available for the service org.ccframe.subsys.core.service.ITenantSearchService from registry 127.0.0.1:2181 on the consumer 192.168.1.88 using the dubbo version…

HTTPS如何保证数据传输的安全性 以及CA签发证书验签

暴力输出&#xff1a; 越看会越深入&#xff0c;睡前难以想通&#xff0c;后深入研究。得之。 有问题 请留言。 ----------追求内心的富足与平和。日行一善。 亓苏姑娘

Ollama--本地大语言模型LLM运行专家

文章目录 1、问题提出2、解决方案3、Ollama介绍3.1、Ollama的核心功能3.2、Ollama的独特之处 4、Ollama安装与使用4.1、Ollama的安装 5、使用Docker6、模型库和自定义模型7、应用场景展望8、结语 1、问题提出 使用chatgpt之类的闭源大语言模型时&#xff0c;我们与ai沟通的数据…

I.MX6ULL_Linux_驱动篇(54)linux 块设备驱动

前面我们都是在学习字符设备驱动&#xff0c;本章我们来学习一下块设备驱动框架&#xff0c;块设备驱动是Linux 三大驱动类型之一。块设备驱动要远比字符设备驱动复杂得多&#xff0c;不同类型的存储设备又对应不同的驱动子系统&#xff0c;本章我们重点学习一下块设备相关驱动…

【控制台警告】npm WARN EBADENGINE Unsupported engine

今天用webpack下载几个loader依赖&#xff0c;爆出了三个警告&#xff0c;大概的意思就是本地安装的node和npm的版本不是很匹配&#xff1f; 我的解决思路是&#xff1a; 先检查node和npm版本 然后去官网查找版本的对应 靠&#xff0c;官网404 Node.js (nodejs.org) 就找到…