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…

RocketMQ带你快速入门

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

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

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

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

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

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

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

[翻译] Visual Studio 2019 RC版发布

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

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…

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

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

Rocketmq集群架构图

集群架构图 集群特点

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

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

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

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

一文搞定并发面试题

1、Object 的 wait()和notify() 方法下图为线程状态的图:Object 对象中的 wait()和notify()是用来实现实现等待 / 通知模式。其中等待状态和阻塞状态是不同的。等待状态的线程可以通过notify() 方法唤醒并继续执行,而阻塞状态的线程则是等待获取新的锁。…

阿里开源分布式事务seata带你入门

介绍 Seata 是阿里巴巴开源的分布式事务中间件,一种分布式事务解决方案,具有高性能和易于使用的微服务架构。 1:对业务无侵入:即减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入 2:高性能:减少分布式事务解决方案…

jquery.validate.unobtrusive的使用

应用 一、引入 <script src"Scripts/jquery-1.7.1.min.js"></script> <script src"Scripts/jquery.validate.js"></script> <script src"Scripts/jquery.validate.unobtrusive.js"></script> 二、1&#xf…

Linux操作系统六大优点

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

进程间通信IPC(一)(半双工管道和消息队列)

引言&#xff1a; 之前学习的进程之间交换信息的方法只能由fork或exec传送打开文件&#xff0c;或者文件系统。但是这种通讯方式有局限性&#xff0c;接下来将说明进程之间相互通信的其他技术——IPC(InterProcessCommunication)&#xff0c;过去UNIX系统IPC是各种进程间通信方…