MobAppDev Android Installation, Android App Anatomy, Coding Lab, Building, Running, & Signing Apps Vladimir Kulyukin Department of Computer Science Utah State University
Jun 27, 2015
MobAppDev
Android Installation, Android App Anatomy, Coding Lab, Building,
Running, & Signing Apps
Vladimir KulyukinDepartment of Computer Science
Utah State University
Outline● Android AppDev Infrastructure: What is What and What
Installs Where (Most Likely)● Android App Anatomy: Components of an Android
Application● Coding Lab● Building, Running, & Signing Android Apps
What is What &
What Installs Where
Android Root Directory on WindowsAfter you install Android on Windows, your Android root directory will, most likely, look as shown below
Android Root Directory on Linux
After you install Android on Linux, your Android root directory will, most likely, look as shown below
Android Root/add-ons● /add-ons - 3rd party releases of Android; add-ons may require
some licensing agreement (make sure you understand licensing before adopting an add-on)
● The most important sub-directories of an add-on are: /images – system image files for Android devices
(ramdisk.img) /libs – JAR files you need to include in your projects
(e.g., maps.jar) /samples – if present, contains sample projects with
source code (e.g., MapsDemo)
Android Root/platforms
● /platforms – specific platforms installed on your system (e.g., android-8, android-10, android-19, etc)
● Each platform directory will have, at least, the sub-directories: / data, / images, & / skins
/ data – various resources (e.g., fonts, icons, etc) / skins – looks of devices / templates - template XML and image files
Android Root/samples & /platform-tools● /samples – sample projects for specific platforms● /samples are a great way to learn Android development tricks
(many of them are not well documented: you build them, run them, & study the source, modify it, etc)
● /platform-tools are applications and libraries you need for Android development
aapt (Android Asset Packaging Tool) moved to /build-tools/ adb (Android Debug Bridge) aidl (Android Interface Definition Language compiler) moved
to /build-tools/
Android Root/sources● /sources – source code from various companies and
organizations (may not install in Windows) ● /tools are applications and libraries you need for running and
debugging Android apps emulator ddms (Dalvik Debug Monitor Server) hierarchyviewer (UI debugging and opitmization tool) sqlite3 (SQLite tool for inspecting SQLite databases)
Tool Access & Versions
● Android Plugins for Eclipse make most ADK tools available from within IDE
● If you are a command line developer, you may want to add / platform-tools and / tools to your PATH
● Android APIs tend to be backward compatible (modulo hardware restrictions) but some APIs do get depricated: you have to stay current on what is current on your target Android platform
Android App Anatomy
Greeting & ToastingGingerbread (Android 2.3.X)
& Jelly Bean (Android 4.2)
download source HelloGingerbread, HelloJellyBean
Hello to & Toast on Gingerbread
Hello to & Toast on Jelly Bean
Android App/AndroidManifest.xml
● AndroidManifest.xml is the glue that specifies & holds your app together (conceptually similar to Unix/Linux make files)
● Specifies your app's package, minimum & target SDK versions, your application and activities inside your application
Android App/gen
● /gen folder contains all auto-generated Java source
● You should not modify it● R.java is a very important
class that defines constants that you need to programmatically access various elements of your application
Android App/assets, /bin, /libs, /res
● /assets - arbitraty user created files or file hierarchies not available through R.java
● /bin - .dex (Dalvik byte code), .apk and drawables
● /libs JARs for required by the app● /res – XML and drawable resources
available through R.java
Android App/res
● /res folder contains XML resources and drawables of various resolutions required for your app
● /res/drawable-xxxx - drawables of various resolutions
● /res/layout - XML UI specs for activities● /res/menu – XML menu specs for activities● /res/values – XML definitions of string
constants and styles
Pushing/Pulling Files To/From Device
Open DDMS Perspective, Select Device in the left panel; click on 'Push File To Device' or 'Pull File From Device'
Coding Lab
Problem
Develop an Android application with a custom icon and a custom background. The main screen has one button that toasts a random quote from a list of quotes. The same quote also is written in the LogCat console.
Building, Running, & Signing Android Apps
Building & Running Apps● Eclipse ADT plugin builds your app incrementally as you make
changes to it (check Project | Build Automatically menu option)
● The .apk file is saved in the /bin folder● It is possible to develop in non-Eclipse environments: you can
use the generated build.xml Ant file in the project directory● The app must be signed (debug or release mode) to run on an
AVD or a device● Eclipse ADT automatically signs your app in debug mode
Building & Signing AppsBuilding Apps Signing Apps
Building & Running Steps
www.vkedco.blogspot.comwww.vkedco.blogspot.com
Building & Running Apps● Eclipse ADT plugin builds your app incrementally as you make
changes to it (check Project | Build Automatically menu option)
● The .apk file is saved in the /bin folder● It is possible to develop in non-Eclipse environments: you can
use the generated build.xml Ant file in the project directory● The app must be signed (debug or release mode) to run on an
AVD or a device● Eclipse ADT automatically signs your app in debug mode
www.vkedco.blogspot.comwww.vkedco.blogspot.com
References● developer.android.com● developer.android.com/tools/building/index.html● http://www.youtube.com/vkedco
www.vkedco.blogspot.comwww.vkedco.blogspot.com