Android Studio项目结构介绍

新建一个空的工程会出现以下界面:
在这里插入图片描述从上往下依次是:项目名称、包名、项目存储的位置、项目所用的语言、项目所用的Android的系统版本。

进入之后右侧可选择界面的展示结构:

如果选择Android则会出现下面的结构展示:MainActivity是工程的.java文件,res文件夹下存放的是资源文件,Gradle里面存放的是构建脚本。
在这里插入图片描述

当选择Project时会出现以下结构展示(以目录形式展示):这里的结构和项目存放的位置下的结构一样。
在这里插入图片描述然后点击Make Project:
在这里插入图片描述
.gradle和.idea是AndroidStudio自动生成的文件不用管(一般打包的话,也会将这两个文件夹删掉然后压缩发给别人),app文件(工作的核心目录)是项目的代码和资源都会在这个文件夹中,gradle是构建器,里面wrapper下面有gradle的版本和gradle-wrapper.jar其中gradle-wrapper.jar会自动识别看本地有没有对应的gradle版本,如果有的话它会自动构建,如果没有它会自动下载。gitignore是在版本控制的时候制定那些文件排除在版本控制之外,就是当代码上传到git上时,就可以在这里做一些版本控制的管理。buid.gradle这个文件是项目的全局gradle构建脚本一般是不用动的。gradle.properties这个文件gradle全局的配置文件。**gradlew(在linux和MAC系统使用)和gradlew.bat(是在windows系统中使用)**这两个是执行gradle命令的时候会用到这两个东西。local.properties是指定SDK的路径,一般不用去管,如果在使用过程中修改SDK的路径,那么这个地方就要修改一下。settings.gradle用来指定项目中所有引入的模块,比如新建的工程中的代码:

include ':app'  //这个是引入的模块
rootProject.name = "androidover"  //这个是项目名

external Libraries文件夹下包含第三方库和SDK,也就是项目依赖的库文件。

下面分析App文件里面的文件:
在这里插入图片描述
其中build文件是通过上面Make Project生成的文件,刚开始学并不用关心这个,压缩文件的时候一般也会把它删除减小压缩包的大小;libs是当程序中使用第三方架包的时候要把架包放到libs文件夹下去。生成的apk文件位置如下:
在这里插入图片描述App文件夹下的src文件:
在这里插入图片描述其中androidTest是用来编写安卓测试用例的暂时不用管,然后就是main文件夹下的java文件是存放java代码的,其中com.example.androidovers是包名。res文件夹是存放的大部分的资源文件,drawable文件夹下一般是用来存放图片的 ,layout文件夹下存放的是布局文件,mipmap文件是用来存放应用图标的,不同的后缀是对用着不同的屏幕适配。values文件夹下是用来存放颜色、字符串、样式、主题等。AndroidManifest.xml一般称它为清单文件,一般四大组件都要在这里进行注册,权限也是在这里处理,这个文件中的这行代码android:icon="@mipmap/ic_launcher" 是对app运行图标的设置,test文件用来单元测试的。.gitignore是在版本控制的时候制定那些文件排除在版本控制之外,就是当代码上传到git上时,就可以在这里做一些版本控制的管理。这个和上面提到的那个gitignore作用相似,就是App模块中是用来管理模块的,项目中的那个是用来管理整个工程的,buildgradle是App模块的构建脚本,一般要用到依赖的第三方库的时候要在这个文件下进行依赖,位置如图:
在这里插入图片描述
proguard-rules.pro就是指定项目代码的混淆规则,有些类是不能混淆的,就要在这里做一些处理。

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

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

相关文章

对于Ping的过程,你真的了解吗?

作者: 木木匠链接:https://juejin.im/post/5c15ec0f6fb9a049ec6af8b2一、概览对于ping命令,想必只要是程序员都知道吧?当我们检查网络情况的时候,最先使用的命令肯定是ping命令吧?一般我们用ping查看网络情…

Andropid自己定义组件-坐标具体解释

在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄非常清楚。 如今把整个总结一下。 事实上仅仅要把以下这张图看明确就没问题了。 涉及到的方法一共同拥有以下几个: view获取自身坐标:getLeft(),getTop(),get…

一阶段结束考核题(链表的嵌套使用)

链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。 场景:一个年级,相当链表A 该年级5个班,每个班5个人,相当于链表B1–B5 做一个学生成绩管理系统 学生成绩有语文 数学 英语 功能: 录入成…

RocketMQ带你快速入门

1. MQ介绍 ##1.1 为什么要用MQ 消息队列是一种“先进先出”的数据结构 转存失败重新上传取消 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、…

年过35岁的程序员都去哪了?一张图道尽老程序员们的花样出路

有人来,有人去。程序员何其多,想知道他们都去哪了吗?对于程序员的工作出路,小编有以下几点建议:20-27岁:技术积累阶段假设本科22岁毕业,那么工作的前5年对你来说是打基础的阶段。在这5年时间里面&#xff…

em,rem

em rem 相对单位: 也可用于设置padding line-height等em相对当前容器的默认字体设置比如,所有浏览器默认字体都是16px,body{ font-size:62.5%}以后即1em10px; 1.2em12px 在线转换tool: http://pxtoem.com/em(css2.0) rem(css3.0)rem相对于页根元素的字体大小,即 ht…

分布式、高并发、多线程,到底有什么区别?

当提起这三个词的时候,是不是很多人都认为分布式高并发多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候&#xf…

linux文件编程(open、write、read、creat、lseek函数)

文件编程内容比较多,如文件系统原理及访问机制文件在内核中的管理机制,什么是文件信息节点iNode、文件共享、文件权限、各种用户对其权限等等。以下主要记录如何用代码操作文件,实现文件的创建、打开、编辑等自动化执行。 文件描述符介绍、其…

记忆化搜索,FatMouse and Cheese

题目链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode1107 http://acm.hdu.edu.cn/showproblem.php?pid1078 1、从gird[0][0]出发&#xff0c;每次的方向搜索一下&#xff0c;每次步数搜索一下 for(i0; i<4; i) {for(j1; j<k; j){int tx…

九种跨域方式实现原理(完整版)

前言前后端数据交互经常会碰到请求跨域&#xff0c;什么是跨域&#xff0c;以及有哪几种跨域方式&#xff0c;这是本文要探讨的内容。一、什么是跨域&#xff1f;1.什么是同源策略及其限制内容&#xff1f;同源策略是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&a…

文件编程练习

自己实现linux CP指令 实现cp指令的思路&#xff1a; 打开要复制的原文件读原文件的内容到buf打开或者创建要粘贴的文件将buf里面的内容写到目标文件关闭两个文件 main 函数的标准原型&#xff1a; main 函数的标准原型应该是 int main(int argc, char *argv[]);argc 是命令…

java.lang.OutOfMemoryError: GC overhead limit exceeded

今天现场weblogic报java.lang.OutOfMemoryError: GC overhead limit exceeded&#xff0c;在metalink查了下&#xff0c;有明白解释&#xff0c;要设置一个JVM參数。只是因为当前weblogic内存设置为4G&#xff0c;所以设置參数的做法事实上并非解决这个问题之道。还是要分析web…

[翻译] Visual Studio 2019 RC版发布

今天&#xff0c;我们将分享 Visual Studio 2019 的发布候选版(RC 版) - 这是在 4 月 2 日的虚拟发布活动上正式发布之前的最后步骤之一。 您可以在 visualstudio.com/downloads 下载 RC 版。与往常一样&#xff0c;查看RC 版的发行说明以获取更多详细信息。发布候选版的说明在…

fread、fwrite、fopen函数的简单使用和open、read、write区别解析

这几个函数的区别&#xff1a;fread、fwrite、fopen和open、read、write区别解析 标准C库函数的简单使用 fopen函数原型&#xff1a; #include <stdio.h> FILE *fopen(const char *pathname, const char *mode);第一个参数是&#xff1a;要打开的文件路径 第二个参数是…

docker安装rocketmq你学会了吗

防火墙开通端口 9876 10911 9800 firewall-cmd --zonepublic --add-port9876/tcp --permanent firewall-cmd --zonepublic --add-port10911/tcp --permanent firewall-cmd --zonepublic --add-port9800/tcp --permanent firewall-cmd --reload 创建存储文件夹 mkdir -p /root…

程序员的编程能力与编程年龄

作者丨酷壳/陈皓&#xff0c; http://coolshell.cn/articles/10688.html程序员这个职业究竟可以干多少年&#xff0c;在中国这片神奇的土地上&#xff0c;很多人都说只能干到30岁&#xff0c;然后就需要转型&#xff0c;就像《程序员技术练级攻略》这篇文章很多人回复到这种玩…

Rocketmq集群架构图

集群架构图 集群特点

进程相关概念、C程序的空间分配

进程的定义&#xff1a; “进程”是操作系统的最基本、最重要的概念之一。但迄今为止对这一概念还没有一个确切的统一的描述。下面给出几种对进程的定义描述。 进程是程序的一次执行。进程是可以并行执行的计算。进程是一个程序与其使用的数据在处理机上顺序执行时发生的活动。…

(精)C#中TransactionScope的使用方法和原理

标签&#xff1a;.net transactionscope原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://cnn237111.blog.51cto.com/2359144/1271600在.net 1.1的时代&#xff0c;还没有TransactionScope…