Android Tutorial PDF
Android Tutorial PDF
References
This tutorial is a brief overview of some major conceptsAndroid is much richer and more complex Developers Guide
http://developer.android.com/guide/index.html
API Reference
http://developer.android.com/reference/packages.html
Tools
Phone Eclipse ( http://www.eclipse.org/downloads/ )
Android Plugin (ADT)
Android SDK
Once installed open the SDK Manager Install the desired packages Create an Android Virtual Device (AVD)
SDK Manager
AVD
Click OK, then select Developer Tools, click Next Click Next and then Finish Afterwards, restart Eclipse Specify SDK location (next 3 slides)
Must do this every time start a new project in a new location (at least in Windows)
Project Components
src your source code gen auto-generated code (usually just R.java) Included libraries Resources
Drawables (like .png images) Layouts Values (like strings)
Manifest file
XML
Used to define some of the resources
Layouts (UI) Strings
Manifest file Shouldnt usually have to edit it directly, Eclipse can do that for you Preferred way of creating UIs
Separates the description of the layout from any actual code that controls it Can easily take a UI from one platform to another
R Class
Auto-generated: you shouldnt edit it Contains IDs of the project resources Enforces good software engineering Use findViewById and Resources object to get access to the resources
Ex. Button b = (Button)findViewById(R.id.button1) Ex. getResources().getString(R.string.hello));
Layouts (1)
Eclipse has a great UI creator
Generates the XML for you
Composed of View objects Can be specified for portrait and landscape mode
Use same file name, so can make completely different UIs for the orientations without modifying any code
Layouts (2)
Layouts (3)
Click Create to make layout modifications When in portrait mode can select Portrait to make a res sub folder for portrait layouts
Likewise for Landscape layouts while in landscape mode Will create folders titled layout-port and layout-land
Note: these port and land folders are examples of alternate layouts, see here for more info
http://developer.android.com/guide/topics/resources/providing-resources.html
Avoid errors by making sure components have the same id in both orientations, and that youve tested each orientation thoroughly
Layouts (4)
Strings
In res/values
strings.xml
Application wide available strings Promotes good software engineering UI components made in the UI editor should have text defined in strings.xml Strings are just one kind of Value there are many others
Need to specify Services and other components too Also important to define permissions and external libraries, like Google Maps API
Service
http://developer.android.com/guide/topics/fundamentals/services.html
Activities (1)
The basis of android applications A single Activity defines a single viewable screen
the actions, not the layout
Can have multiple per application Each is a separate entity They have a structured life cycle
Different events in their life happen either via the user touching buttons or programmatically
Activities (2)
Services (1)
Run in the background Can continue even if Activity that started it dies Should be used if something needs to be done while the user is not interacting with application
Otherwise, a thread is probably more applicable
Should create a new thread in the service to do work in, since the service runs in the main thread
Can be bound to an application In which case will terminate when all applications bound to it unbind Allows multiple applications to communicate with it via a common interface Needs to be declared in manifest file Like Activities, has a structured life cycle
Services (2)
USB Debugging
Should be enabled on phone to use developer features In the main apps screen select Settings -> Applications -> Development -> USB debugging (it needs to be checked)
adb.exe
Debugging
Instead of using traditional System.out.println, use the Log class Imported with android.util.Log Multiple types of output (debug, warning, error, ) Log.d(<tag>,<string>) Can be read using logcat. Print out the whole log, which auto-updates
adb logcat
Erase log
adb logcat c
Reference
http://developer.android.com/guide/developing/debugging/debugging-log.html
Screen Shots
Some say you need to root the phone that is not true One option: Android Screen Capture
http://www.mightypocket.com/2010/08/androidscreenshots-screen-capture-screen-cast/ Its slow, but fine for screenshots of applications whose screens arent changing fast Read their installation help, following the extra steps if need be (I had to copy adb.exe and some dll files, as they explain)
End goal is to add the following two lines to XML file, under the <manifest> and <application tags>, respectively
Under the <manifest> tag
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
All MapView elements in map applications need to have an API key associated with them
That key must be registered with the certificate used to sign the app
When releasing app, need to sign with a release certificate and get a new API Key
Use Keytool (comes with Java, in the bin directory with the other Java tools, should put that dir on system PATH) to get fingerprint
keytool -list v -alias androiddebugkey -keystore <path_to_debug_keystore> -storepass android -keypass android
If dont include v option, then will probably get only 1 fingerprint, and if its not MD5, then need v (Java 7 needs v)
Go to https://code.google. com/android/maps-api-signup.html , agree to terms and paste MD5 fingerprint, you will then be given an API Key
Acknowledgements
Android Developers Website Activity and Service life-cycle flow charts Tons of other Android info Google Maps API external library
http://code.google.com/android/add-ons/google-apis/maps-overview.html
MightyPocket
http://www.mightypocket.com/2010/08/android-screenshots-screen-capture-screen-cast/
http://www.anddev.org/google_driving_directions_-_mapview_overlayed-t826.html