3. • Once created, the project
files contain various folders
and files about project
settings as well as your
Android Application
module.
4. • java/ : Source files for the module.
• manifests/ : Manifest files for the module
• res/ : Resource files for the module
5. Android manifest
• AndroidManifest.xml is one of the most important file in the Android
project structure.
• It contains information of the package, including components of the
application such as activities, services, broadcast receivers, content
providers etc.
It performs the following tasks:
• It is responsible to protect the application to access any protected parts by
providing the permissions
• It also declares the android api that the application is going to use
• It lists the instrumentation classes. The instrumentation classes provides
profiling and other informations. These information are removed just
before the application is published etc.
6.
7. java
• java
• The java folder contains the Java source code
files of the application organized into packages.
We can have more than one package in the
Android application. Its always a good practice to
break the source code of the application into
different packages based on its core functionality.
All the source files of the Activities, Services etc.
go into this folder.
9. res
• res
• Res folder is where all the external resources for the
application such as images, layout XML files, strings,
animations, audio files etc. are stored.
• Sub folders:
• Drawable: This folder contains the bitmap file to be used
in the program. There are different folders to store
drawables. They are drawable-ldpi, drawable-mdpi,
drawable-hdpi,drawable-xdpi etc. The folders are to provide
alternative image resources to specific screen
configurations. Ldpi, mdpi & hdpi stands for low density,
medium density & high density screens respectively. The
resources for each screen resolutions are stored in
respective folders and the android system will choose it
according to the pixel density of the devicein this folder
10.
11. • Layout: It contains XML files that define
the User Interface of the application
• Menu: XML files that define menus for the
application goes into this folder
• Mipmap: The mipmap folders is used for
placing the app icons only. Any other
drawable assets should be placed in the
relevant drawable folders as before.
• Values : XML files that define simple
values such as strings, arrays, integers,
dimensions, colors, styles etc. are placed
12. • Gradle Scripts
• Gradle scripts are used to automate tasks.For the
most part, Android Studio performs application
builds in the background without any intervention
from the developer. This build process is handled
using the Gradle system, an automated build
toolkit designed to allow the ways in which
projects are built to be configured and managed
through a set of build configuration files.It uses a
language called groovy.
Gradle script
13.
14. .idea
Eclipse uses project.properties file for project specific metadata. Here in
Android Studio, this .idea does the same thing. This means the project
specific metadata is stored by Android Studio.
Project Module(app)
This is the actual project folder where the application code resides. The
application folder has following sub directories
build : This has all the complete output of the make process i.e.
classes.dex, compiled classes and resources, etc.In the Android Studio
GUI, only a few folders are shown. The important part is that the R.java
is found here under build/generated/source/r/…/R.java
libs : This is a commonly seen folder in eclipse and android studio,
which optionally can hold the libraries or .jar files
src : The src folder can have both application code and android unit
test script. You will find two folders named “androidTest” and “main”
correspond to src folder. The main folder contains two subfolders java
and res. The java folder contains all the java codes and res contains
drawables, layouts etc.
gradle
This is where the gradle build systems jar wrapper is found. This jar is
how Android Studio communicates with gradle installed in
Windows/MAC.
15.
16. • External Libraries
• This is not actually a folder but a place where
Referenced Libraries and information on targeted
platform SDK are shown.
• What is R.java?
• Android R.java is an auto-generated file
by aapt (Android Asset Packaging Tool) that
contains resource IDs for all the resources of res/
directory.
On creating any component in the
activity_main.xml file, id for the corresponding
component is automatically created in this file.
This id can be used in the activity source file to
perform any action on the component.
17. • Android Compilers
• The compilers converts compiled .class
files to executable .dex files in the Dalvik
format for further execution in the Android
environment. Following are the two
important tools used:
• DEX
• Dalvik Virtual Machine is an Android Virtual
Machine optimized for mobile devices. It
optimizes the virtual machine for memory,
battery life and performance. The Dex compiler
converts the class files into the .dex file that run
on the Dalvik Virtual Machine. The Multiple class
files are converted into one dex file. Following
flow depicts compiling and packaging process
18. • The javac tool compiles the java source
file into the class file.
• The dx tool takes all the class files of the
application and generates a single .dex
file. It is a platform-specific tool.
• The Android Assets Packaging Tool (aapt)
handles the packaging process.
19. The ProGuard tool shrinks, optimizes, and obfuscates the 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.
Android ProGuard