MobAppDev (Fall 2014): Lecture 02: Android Installation; Android App Anatomy; Coding Lab; Building,...

Post on 27-Jun-2015

140 views 0 download

Tags:

Transcript of MobAppDev (Fall 2014): Lecture 02: Android Installation; Android App Anatomy; Coding Lab; Building,...

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