mobappdev (fall 2013): android appdev infrastructure installation, android app anatomy, building,...
DESCRIPTION
TRANSCRIPT
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
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
What is What & What Installs Where (Most Likely)
www.vkedco.blogspot.comwww.vkedco.blogspot.com
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
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
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
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
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
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
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
Greeting & ToastingGingerbread (Android 2.3.X)
& Jelly Bean (Android 4.2)
download source HelloGingerbread, HelloJellyBean
www.vkedco.blogspot.comwww.vkedco.blogspot.com
Basic HelloAndroid App with a Toast
www.vkedco.blogspot.comwww.vkedco.blogspot.com
Hello to & Toast on Gingerbread
www.vkedco.blogspot.comwww.vkedco.blogspot.com
Hello to & Toast on Jelly Bean
www.vkedco.blogspot.comwww.vkedco.blogspot.com
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
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
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
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
Android App Development Process
www.vkedco.blogspot.comwww.vkedco.blogspot.com
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
Building & Signing Apps
Building Apps Signing Apps
www.vkedco.blogspot.comwww.vkedco.blogspot.com
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
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
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
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
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
Building, Running, & Signing Android Apps
www.vkedco.blogspot.comwww.vkedco.blogspot.com
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
Building & Signing Apps
Building Apps Signing Apps
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