AndroidStudio资源(res)目录重构改进

请注明出处:http://blog.csdn.net/qq_23179075/article/details/60776810

AndroidStudio资源(res)目录重构改进_第1张图片
timg.jpg

AndroidStudio从2013年5月16日,在谷歌I/O大会上发布到现在也快4年了。是基于IntelliJ IDEA开发的一款强大的Android应用开发工具。然而谷歌现在已经停止对EclipseADT的更新支持,所以AndroidStudio是谷歌推崇的唯一开发工具,也是现在绝大多数的公司所使用的工具。


下面我们来看看AndroidStudio中默认的项目结构目录

AndroidStudio资源(res)目录重构改进_第2张图片
Paste_Image.png

相信每一位 Android 开发者对于这样的项目目录都已经非常熟悉了,虽然 Android Studio 内置了文件搜索功能,但当项目文件数量快速增长,文件导航还是会变得非常麻烦。


看看这张图:

AndroidStudio资源(res)目录重构改进_第3张图片
Paste_Image.png

从上图看出当你应用中用到了大量的 layout, drawable, mipmap资源时,里面的文件多的不得了(我这里一个屏幕都显示不下了),这时你要找一个资源文件就麻烦了。你说可以用搜索,这么多文件我不信全部的文件的名字都记得(反正我记不到,哈哈)。这么多文件叫我去找?那是要疯啊啊啊!!!

俗话说:清晰的资源目录结构能节省你的时间,时间就是金钱。


我们在来看看这张图:

AndroidStudio资源(res)目录重构改进_第4张图片
Paste_Image.png

从上面的图中可以看出:以前的一个res文件变成了现在的三个

  • res-activity:可以存放Activity中的资源
  • res-fragment:可以存放fragment中的资源
  • res-public:存放一些公共的资源

这三个文件都有相同的目录,这个时候我们只需要将资源放在不同的文件下的对应文件即可。


问题是我们怎么将之前的res目录变成现在的三个的?

其实很简单,我只需要在项目Model下的build.gradle文件中加上下面的代码:

android {
    ...
    sourceSets {
        main {
            res.srcDirs = ['src/main/res-activity',
                           'src/main/res-fragment',
                           'src/main/res-public',
            ]
        }
    }
    ...
}

上面的代码很好理解,res.Dirs很明显的意思就是res文件夹的目录,后面是一个数组.数组里面就是你要定义的目录。之前默认是src/main/res,现在改成了数组中的三个目录。

定义好之后,builder一下项目,这时候你会发现项目中并没有定义的目录,因为我们需要手动的创建这些目录


废话不多说直接上图:

改进Res目录结构.gif

因为res文件定义在main目录下所以我只需要在main目录中创建上面定义好的res目录即可,这是系统就会自动识别为res目录。然后把我们基本的res目录结构拷贝过去就行了,是不是很简单,使用时跟以前一样;


这个时候我们切换到Android目录结构发现还是跟之前的一样,当我们的各个模块文件目录中有相同资源文件名时就会在在文件名后面显示一数字,提示有几个相同文件名;跟mipmap中的ic_launcher.png显示效果相同;


如果你有一个大型项目,也对于繁杂的资源文件目录感到头疼的话,不妨试试这样根据不同的界面或者模块来组织项目的资源目录,方便我们来管理。

你可能感兴趣的:(AndroidStudio资源(res)目录重构改进)