改进 Android 项目的资源目录

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

改进 Android 项目的资源目录_第1张图片

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

当你应用的某些界面用到了大量的 layout, drawable, dimension 资源时,为这些界面单独的创建资源文件夹就变得很有意义了。

改进 Android 项目的资源目录_第2张图片

可以从图中看到我们有 res-main 和 res-screen 两个资源文件夹:

  • res-main 中包含的是在多个界面上使用的公共资源。
  • res-screen 中包含特定界面的资源文件夹。 比如:about, chat, event details, event list, home, login...
改进 Android 项目的资源目录_第3张图片

那么怎么声明这分离出来的 res-screen 呢?在应用 module 的 build.gradle 里这样来声明:

sourceSets {
    main {
        res.srcDirs = [
                'src/main/res-main',
                'src/main/res-screen/about',
                'src/main/res-screen/chat',
                'src/main/res-screen/event-detail',
                'src/main/res-screen/event-list',
                'src/main/res-screen/home',
                'src/main/res-screen/login',
        ]
    }
}

如果觉得一行行直接列出来太麻烦的话,可以选择这样写:

sourceSets {
    main {
        file('src/main/res-screen')
                .listFiles()
                .each { res.srcDirs += it.path }
    }
}

如果你有一个大型项目,也对于繁杂的资源文件目录感到头疼的话,不妨试试这样根据不同的界面来组织项目的资源目录。: )

原文:Android Project Structure — alternative way

日报延伸阅读

  • Android & Java 8

欢迎关注

  • 知乎专栏「极光日报」,每天为 Makers 导读三篇优质英文文章。
  • 网易云电台「极光日报**」,上下班路上为你读报。

你可能感兴趣的:(改进 Android 项目的资源目录)