MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building,...

34
MobAppDev Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps Vladimir Kulyukin Department of Computer Science Utah State University www.vkedco.blogspot.com www.vkedco.blogspot.com

description

 

Transcript of MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building,...

Page 1: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

MobAppDev

Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Vladimir KulyukinDepartment of Computer Science

Utah State University

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 2: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Outline

● Android AppDev Infrastructure: What is What and What Installs Where (Most Likely)

● Android App Anatomy: Components of an Android Application

● Building, Running, & Signing Android Apps

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 3: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

What is What & What Installs Where (Most Likely)

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 4: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android Root Directory

After you install Android, your Android root directory (e.g., E:/Android/android-sdks) will likely look as follows (your particular installation may look somewhat different)

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 5: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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– /libs – JAR files you need to include in your projects– /skins – available looks for Android devices– /samples – if present, contains sample projects with

source code

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 6: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android Root/platforms

● /platforms – specific platforms installed on your system (e.g., android-8, android-10, 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– /images – file system images

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 7: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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) – adb (Android Debug Bridge)– aidl (Android Interface Definition Language compiler)

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 8: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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) – adb (Android Debug Bridge)– aidl (Android Interface Definition Language compiler)

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 9: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android Root/sources● /sources – source code from various companies and organizations ● /tools are applications and libraries you need for running and

debugging Android apps– emulator – ddms (Dalvik Debug Monitor Server)– apkbuilder (APK stands for Android Package File; APK is a

file format for Android application distribution; it is actually - ZIP)

– hierarchyviewer (UI debugging and opitmization tool)

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 10: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Tool Access & Versions

● Android Plugins for Eclipse make most tools available from within IDE

● If you are a command line developer, think of adding /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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 11: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android App Anatomy

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 12: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Greeting & ToastingGingerbread (Android 2.3.X)

& Jelly Bean (Android 4.2)

download source HelloGingerbread, HelloJellyBean

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 13: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Basic HelloAndroid App with a Toast

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 14: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Hello to & Toast on Gingerbread

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 15: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Hello to & Toast on Jelly Bean

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 16: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 17: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 18: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 19: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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'

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 20: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android App Development Process

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 21: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Building & Running Steps

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 22: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing 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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 23: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Building & Signing Apps

Building Apps Signing Apps

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 24: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android App Anatomy

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 25: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 26: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Android App/src

● /src folder contains all your Java source code (packages & classes)

● Initial Activity class with two methods onCreate() and onCreateOptionsMenu() is auto-generated

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 27: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 28: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 29: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 30: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Building, Running, & Signing Android Apps

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 31: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Building & Running Steps

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 32: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing 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

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 33: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

Building & Signing Apps

Building Apps Signing Apps

www.vkedco.blogspot.comwww.vkedco.blogspot.com

Page 34: MobAppDev (Fall 2013): Android AppDev Infrastructure Installation, Android App Anatomy, Building, Running, & Signing Apps

References● developer.android.com● developer.android.com/tools/building/index.html● http://www.youtube.com/vkedco

www.vkedco.blogspot.comwww.vkedco.blogspot.com