A project in Android Studio contains everything that is required by an app, from source code and assets, to test code and build configurations, to apk generation.
Application Module is a collection of source files and build settings. A android studio project can have one or application Module and one module may use another module as a dependency. Each module can be independently built, tested, and debugged.
Android app module provides a container for your app's source code, resource files, as well as app level settings such as the module-level build file and Android Manifest file. When you create a new project, the default module name is "app".
We can create a new module from File > New module. In the Create New Module window, Android Studio offers the following app modules:
A library module is the same as an app module, but when built, it creates a code archive file instead of an APK, so it can't be installed on a device.
In Android Studio we can create 2 type of library modules...
manifests: Contains the AndroidManifest.xml file.
java: Contains the Java source code files, separated by package names, including JUnit test code.
res: Contains all non-code resources, such as XML layouts, UI strings, and bitmap images, divided into corresponding sub-directories
|animator/||XML files that define property animations.|
|anim/||XML files that define tween animations. XML files that define tween animations.|
|color/||XML files that define a state list of colors.|
Bitmap files (.png, .9.png, .jpg, .gif) or XML files that are compiled into the following drawable resource subtypes:
|mipmap/||Drawable files for different launcher icon densities.|
|layout/||XML files that define a user interface layout.|
|menu/||XML files that define application menus, such as an Options Menu, Context Menu, or Sub Menu.|
|raw/||Arbitrary files to save in their raw form. To open these resources with a raw InputStream, call Resources.openRawResource() with the resource ID, which is R.raw.filename.|
XML files that contain simple values, such as strings, integers, and colors.
|xml/||Arbitrary XML files that can be read at runtime by calling Resources.getXML()|