Android Application Structure
Contents
• Android project structure
• Build the first application
• Android application components
Android project structure
Android project structure
Contains your stub Activity file, which is stored at
src/your/package/ActivityName.java.
All other source code files go here as well.
Android project structure
Contains the Java files generated by ADT, such as
your R.java file and interfaces created from AIDL
files.
Android project structure
You can use it to store raw asset files. Files that you
save here are compiled into an .apk file as-is, and the
original filename is preserved.
Android project structure
Contains private libraries
Android project structure
Contains application resources, such as drawable
files, layout files, and string values
Android project structure
For XML files that are compiled into animation
objects
Android project structure
For bitmap files (PNG, JPEG, or GIF), 9-Patch image
files, and XML files that describe Drawable shapes or
a Drawable objects that contain multiple states
(normal, pressed, or focused)
Android project structure
XML files that are compiled into screen layouts (or
part of a screen)
Android project structure
For XML files that define application menus
Android project structure
For arbitrary raw asset files. Saving asset files here
instead of in the assets/ directory only differs in the
way that you access them.
Android project structure
For XML files that are compiled into many kinds of
resource
Android project structure
For miscellaneous XML files that configure
application components.
Android project structure
The control file that describes the nature of the
application and each of its components.
Android project structure
This file contains project settings, such as the build
target. This files is integral to the project, as such, it
should be maintained in a Source Revision Control
system. Do not edit the file manually.
Android project structure
This file defines how ProGuard optimizes and
obfuscates your code
Build the first application
Start Android Studio
Create a project inside Android Studio
Name your app
Pick activity template
• Choose templates for common
activities, such as maps or
navigation drawers.
• Pick Empty Activity or Basic
Activity for simple and custom
activities.
Name your activity
● Good practice:
○ Name main activity
MainActivity
○ Name layout
activity_main
● Use AppCompat
● Generating layout file is
convenient
Run your app
1. Run
2. Select virtual or
physical device
3. OK
Create a virtual device
Use emulators to test app on different versions of Android and form factors.
Tools > Android > AVD Manager
Configure virtual device
1. Choose hardware
2. Select Android version
3. Finalize
Run on a virtual device
Run on a physical device
1. Turn on Developer Options:
a. Settings > About phone
b. Tap Build number seven times
2. Turn on USB Debugging
a. Settings > Developer Options > USB
Debugging
3. Connect phone to computer with cable
Android Application Components
Activities – visual user interface focused on a single thing a
user can do
Services – no visual interface – they run in the background
Broadcast Receivers – receive and react to broadcast
announcements
Content Providers – allow data exchange between
applications
Activities
Basic component of most applications
Most applications have several activities that start each other as
needed
Each is implemented as a subclass of the base Activity class
Activities – The View
Each activity has a default window to draw in (although it may
prompt for dialogs or notifications)
The content of the window is a view or a group of views (derived
from View or View Group)
Example of views: buttons, text fields, scroll bars, menu items, check
boxes, etc.
View(Group) made visible via Activity.setContentView() method.
Services
Does not have a visual interface
Runs in the background indefinitely
Examples
Network Downloads
Playing Music
TCP/UDP Server
You can bind to an existing service and control its operation
Broadcast Receivers
Receive and react to broadcast announcements
Extend the BroadcastReceiver class
Examples of broadcasts:
Low battery, power connected, shutdown, time zone changed, etc.
Other applications can initiate broadcasts
Content Providers
Makes some of the application data available to other applications
It’s the only way to transfer data between applications in Android (no
shared files, shared memory, pipes, etc.)
Extends the ContentProvider class
Other applications use a ContentResolver object to access the data
provided via a ContentProvider object
Classwork
• Build and Run a Hello app
References
• https://google-developer-training.github.io/android-developer-funda
mentals-course-concepts-v2/