揭秘Android Studio项目目录结构

I don’t know if this is because of the Gradle Build System (I’d wager it is), but I’ll tell you what I’ve understood so far.Update 1:29/7/13 The IntelliJ’s Project structure (shown at the end) is for IntelliJ with the android plugin. The Android Studio, however, has a project structure divided like so:

Update 2:07/04/14

Structure: Projects and Modules

moduleinAndroid Studiois like aprojectinEclipse

projectinAndroid Studiois like aworkspaceinEclipse

From(Android Studio is based on Intellij IDEA) :

Whatever you do in IntelliJ IDEA, you do that in the context of a project. A project is an organizational unit that represents a complete software solution.

Your finished product may be decomposed into a series of discrete, isolated modules, but it’s a project definition that brings them together and ties them into a greater whole.

For Android, it means one project per app, and one module per library and per test app.

There are multiple issues if you try to build multiple apps within the same project. It’s possible, but if you try (like I did), you will see that almost everything is designed to work with a single app per project.

For example, there is an option to "rebuild the project", which makes no sense with multiple apps, many other project settings would be useless, and the built-in VCS system isn’t great when you have multiple repositories.

Structure: Folder Structure

Top Level Folders1. Main Project

This would be entireproject context(Eclipse Land:Like your workspace but limited to what’s relevant to your project). Ex:HelloWorldProjectif the name of the application you gave wasHelloWorld

2. .idea

This where project specific metadata is stored by Android Studio (AS). (Eclipse Land:project.propertiesfile)

3. Project Module

This is the actual project. ex:HelloWorldif your application name you gave was HelloWorld

4. gradle

This is where the gradle build system’s jar wrapper i.e. this jar is how AS communicates with gradle installed in Windows (the OS in my case).

5. External Libraries

This is not actually a folder but a place where Referenced Libraries (Eclipse Land:Referenced Libraries) are shown. Here’s where the Targeted Platform is shown etc.

[Side note:This where many of us in Eclipse Land used to delete the referenced libraries and Fix Project Properties to fix reference errors, remember?]

Project Folder in Detail

This is number #3 in the above list. Has the following sub dirs

1. build

This has all the complete output of themakeprocess i.e. classes.dex, compiled classes and resources, etc.

In the Android Studio GUI, only a few folders are shown. The important part is thatyour R.java is found hereunderbuild/source/<flavor>/r/<build type(optional)>/<package>/R.java

2. libs

This is the standard libs folder that you see ineclipse landtoo

3. src

Here, you only see thejavaandresfolder which correspond to thesrcfolder andresfolder inEclipse Land. This is much welcomed simplification IMHO.

Note on Modules:

Modules are likeEclipse Landprojects. Here the idea is that you have one application project (Module #3 in the list above) and several library projects(as separate Modules under the global project folder (#1 in the above list)) which the application project depends on. How these library projects can be re-used in other applications, I still haven’t found out.

[Side note:The whole re-organization has some benefits like simplifications in src folder, but so many complications. The complications are mainly dueVERY VERYthin documentation on this new project layout.]

The New Build System

User Guide for the new Build System

I’ll probably update this section once I myself get it.

Compare this withIntellij’s Project Structureif that helps:

The .idea (1)folder contains a number of subfolders, mainly with internal IntelliJ IDEA information.

The src (2)folder contains the MyActivity.java(3) file source codethat implements the functionality of your application. The file belongs to the com.example package.

The res (4)folder contains various visual resources.

The layout/main.xml file (5)defines the appearance of the application constituted of resources of various types.

世界没有永久的冬天;不要讨厌麻烦,

揭秘Android Studio项目目录结构

相关文章:

你感兴趣的文章:

标签云: