在整个Android开发的项目中,我们需要了解项目中那些文件或者文件夹呢?下面就跟大家一起探讨一下
一、项目结构解释
下面先引用一下前辈的链接,我觉得他写的很详细了
来自“果冻柠檬”先生的——Android Studio 项目目录结构
这里,我就不做一一解释了,如有疑问,欢迎与我一起探讨
第二部分才是今天的重头戏
二、我需要关注哪些文件或文件夹
既然我们要学习Android开发,那肯定就得知道哪些文件或文件夹是我们经常用到的,什么情况下会用到,下面我们就来一一分析
这里先截一张图

-
libs:该目录是让你存放一下第三方架包(第三方架包的意思是非自己开发的一种项目库,作用是让自己引用别人的这种库来达到自己的目的)的,后缀名一般为.jar -
com.chy.hellowworld:这是首次创建项目的时候同时创建的一个包路径,这里是盛放我们写代码的java文件(也可以放kotlin语音的文件),一般而言这个包路径(也称包名,以后均以包名称之)也是默认的应用ID(也称app的唯一标识,每款应用都有自己的唯一标识,再配合签名文件(后面会用到的,后面再讲签名文件),这样才能毕竟其他应用被覆盖安装,打个比方:如果微信和qq都是用同样的唯一标识,那么你的手机里面要么只有微信,要么只有qq),这个包名是在创建项目的时候才需要填写的,也可以在以后更改,不过不建议 在以后更改,因为一旦你更改这个包名,稍有不慎就会导致整个app都无法编译,所以建议是在前期就想好,一旦定下来就别再更改了 -
drawable和mipmap:如果使用过eclipse开发Android程序的小伙伴肯定知道,在那个版本的开发历程中,我们所有的图片文件都是放到对应的drawable文件中,因为那个时候还没有mipmap这些文件夹,好了,废话不多说,其实呢drawable和mipmap这两种文件夹的区别不大,它们两者都是可以放置图片资源的,只是drawable这个文件夹可以创建一些.xml(使用xml格式编写的一些图片资源)结尾的资源文件,mipmap这些文件夹则没有这个功能。
你们应该也留意到了drawable这些文件夹中有一个有-v24尾巴的,那这个尾巴的区别是什么意思呢?其实也很简单,没带尾巴的,是表明里面的所有资源文件,在SDK版本为24以下的都有效,就是在Android7.0以下都会有效的,那个带尾巴的就是代表,在SDK版本为24以上的才有效,所以,编写或者放置图片资源的时候就得注意放置的文件夹了,可能一个不留神就让你编写的程序找不到图片资源了。
可能你们也留意到了,那6个mipmap文件夹都有尾巴,那这些尾巴都是什么意思呢,下面来听我一一解释:“
mipmap-anydpi-v26”:这个文件夹是一个在SDK版本为26以上会对所在的资源文件进行机器自适应适配的,是在SDK 26以上的版本才会有效的喔,也就是Android8.0以上的手机才会有效的,在此版本以下的Android版本是无法使用的,以下这些文件夹就没有自适配功能,但是它们的尾巴就是为了尽可能的对不同分辨率的机器进行自适应:“
mipmap-hdpi”:这个文件夹对应的机器的分辨率为WVGA (屏幕分辨率480×800)和FWVGA (屏幕分辨率480×854)
“mipmap-mdpi”:这个文件夹对应的机器的分辨率为HVGA (屏幕分辨率320×480)
“mipmap-xhdpi”: 这个文件夹对应的机器的分辨率为720P(屏幕分辨率1280×720)
"mipmap-xxhdpi”:这个文件夹对应的机器的分辨率为1080p(屏幕分辨率1920×1080)
"mipmap-xxxdpi”: 这个文件夹对应的机器的分辨率为4K(屏幕分辨率3840×2160)当然,你还得在上图所示的
AndroidManifest.xml这个文件中开启自适应设置,如下图框框所示
看到这里,可能很多小伙伴就会有疑问了,不就是为了图片自适应机器而已吗?搞那么多文件夹干什么,代码做一下逻辑控制,或者对图片的命名做一点标识不就好了吗?搞那么多花样!其实,是因为Android系统开源的原因,很多开发商都去定做不同分辨率的机器来搭载Android系统来实现自己的商业目的,但是开发者又不知道有什么分辨率,如果不对上分辨率,有些app在手机上显示正常,但是到了平板上面就显得很小了,所以,谷歌为了统一一下这个尴尬的情况,就成立了这么多个文件夹了(这里纯属个人观点,仅作参考) -
layout:这个文件夹一般是用来盛放一下与2中所存放的继承activity类有关系的.xml文件,通俗点说,它就是一个视图,然后加载到对应的java文件中展示给用户看或者是为用户提供交互基础的一个文件。 -
values:一般情况下,这个文件夹只有如下图这三个文件

colors.xml:这个可扩展标记语言文件是跟颜色有关系的一个文件
strings.xml:这个可扩展标记语言文件是跟字符有字符的一个文件
styles.xml:这个可扩展标记语言文件是跟主题有主题的一个文件
那这三个文件存在有什么意义呢?用过智能手机的都知道,你启动的每一款App,里面都肯定会有涉及颜色和字符显示的,这三个文件就是用来存放你App中使用到的颜色、字符或主题资源的,有开发过Android程序的小伙伴可能就会问,为什么要把那些颜色、字符或者主题资源存放到这里呢,layout文件夹下的对应的xml文件不是可以直接编写这些资源吗?放到这里不就是画蛇添足吗?其实,这并非是画蛇添足,它的存在肯定是有意义的。
举个例子:你应客户要求开发了一个App,里面设置多个页面,然后在多个页面所对应的xml文件中写这些颜色或者字符资源,但是有没有想过后期维护的时间成本?你难道还要一个一个xml文件去找对应的地方来修改吗?如果客户说,这个地方没改到,你是不是又需要继续查找来修改?所以这三个文件的存在就是为了解决这个窘境,一处修改,多处生效,岂不美哉? -
build.gradle:这文件又是干什么用的呢?而且还存在两个,这个就得当心了,千万别搞蒙了,一个是存在于project文件夹中的,一个是存在app文件夹中的,它们都有自己的作用。
app文件夹中的build.gradle,一般都是长这个样子的

而project中的build.gradle一般是长这个样子的

上面两张图已经对默认的gradle模块做了详细的解答,如果你还想开发这两个文件的,建议学习一下跟groovy语言,因为这两个gradle文件都是基于这个语言生成的
好了,本节就到此结束了
Android项目结构详解
本文深入解析Android项目的文件和文件夹结构,重点介绍libs、com.chy.hellowworld、drawable、mipmap、layout、values和build.gradle等关键组件的作用及使用场景。
713

被折叠的 条评论
为什么被折叠?



