Any Android project contains things such as application source code and
resource files. Some are generated for you by default, while others should be
created if required. Lets have a look at android eclipse project directory
structure:
src
User
specified java source code files will be available here.
gen
The gen directory in an
Android project contains auto generated files. You can see R.java inside this
folder which is a generated class ,
contains references to certain resources of the project. R.java is automatically
created by the Eclipse IDE and any manual changes are not necessary
res
Android
supports resources like images and certain XML configuration files, these can
be keep separate from the source code. All these resources should be placed inside
the res folder. This res folder will be having sub-folders to keep the
resources based on its type.
/res/values
Used
to define strings , colors, dimensions, styles and static arrays of strings or
integers. By convention each type is stored in a separate file, e.g. strings
are defined in the res/values/strings.xml file.
/res/values-v11 is the values of the API version 11, and /res/values-v14 is the values of the API version 14
/res/animator
This
folder contains animations in XML for the property animation API which allows
to animate arbitrary properties of objects over time
/res/layout
This
folder contains the layouts to be used in the application.A layout resource
defines the architecture for the UI in an Activity or a component of a
UI. These are resource directories in an application that provides
different layout designs for different screen sizes
/res/layout - layout for normal
screen size or default
/res/layout-small - layout for small
screen size
/res/layout-large - layout for large
screen size
/res/layout-xlarge -layout for
extra-large screen size
/res/layout-xlarge-land - layout for
extra-large in landscape orientation
/res/layout-sw600dp - layout for tablets
or layout for 7” tablets (600dp wide and bigger)
/res/layout-sw720dp - layout for 10”
tablets (720dp wide and bigger)
/res/layout-w600dp - layout for Multi-pane
(any screen with 600dp available width or more)
/res/menu
This
folder contains menu resources to be used in the application (Options Menu, Context
Menu, or submenu)
/res/raw
This
folder contains raw resources that can be looked up by their resource IDs.
These resources can be referenced from other resources all of the same way we
do with other resources.
/res/drawable
Drawable
folders are resource directories in an application that provides different l
bitmap drawables for medium, high, and extra high density screens.
/res/drawable-mdpi - bitmap for medium
density
/res/drawable-hdpi - bitmap for high
density
/res/drawable-xhdpi - bitmap for extra
high density
/res/drawable-nodpi - bitmap with no
pre-scaling
libs
External
library files will be placed in this folder. If you want to any external
library in your project place the library jar inside this folder and it will be
added to the classpath automatically.
assets
This
folder contains raw hierarchy of files and directories, with no other capabilities. It is just an unstructured
hierarchy of files, allowing you to put anything you want there and later retrieve as raw
byte streams.
byte streams.
bin
Bin
folder is the area used by the compiler to prepare the files to be finally
packaged to the application’s APK file. This includes
- Compiling your Java code into class files
- Putting your resources (including images) into a structure to be zipped into the APK
This
is the output directory of the build. This is where you can find the final .apk file and other
compiled resources.
AndroidManifest.xml
All
the android applications will have an AndroidManifest.xml file in the root
directory. This file will contain essential information about the application
to the Android system, information the system must have before it can run any
of the application's code. This control file describes the nature of the application and each of
its components
ic_launcher-web.png
This is an icon to be
used in Google play. Applications on Google Play require a high fidelity
version of the application icon. It is not used in your actual app or the launcher, so it is not packaged
in the APK.. The specifications for the high-resolution icon are:
32-bit
PNG with an alpha channel
512
x 512 pixels
Maximum
size of 1024KB
proguard-project.txt
Everything
in the proguard-project.txt file will be in
commented out state, because in general most people don't have any project
specific needs, just to run ProGuard
tool with standard settings.
The
ProGuard tool shrinks, optimizes, and obfuscates your code by removing unused
code and renaming classes, fields, and methods with semantically obscure names.
The result is a smaller sized .apk file that is more difficult to reverse engineer.
project.properties
project.properties
is the main project’s properties file containing information such as the build
platform target and the library dependencies has been renamed from
default.properties in older SDK versions. This file is integral to the project.
Thats all about Android eclipse project directory structure...
Thats all about Android eclipse project directory structure...
