android development orientation for starters v2
DESCRIPTION
This slides contains overview of android development for beginners. I created this for the students of CCA CebuSpecial thanks to Larry Walters's presentation from which I also refer.TRANSCRIPT
Joemarie Comeros Amparo
Android Development Orientation for Starters
Android is an open mobile phone platform that was developed by Google and later by Open Handset Alliance. Google defines Android as a "software stack" for mobile phones.
Software stack is made up of operating system(the platform on which everything runs), the middleware (the programming that allows applications to talk to a network and to one another) and the applications (the actual programs that phone will run)
What is Android?
July 2005 - Google Inc. bought from Danger In
Open Handset Alliance was formed headed by Google which is composed of companies like Intel, T-Mobile, Spring Nextel and more.
In 2008, Android became available as an open source and ASOP(Android Open Source Project) is responsible for maintaining and development of android.
February 2009, the first android version was released, Android 1.1. for Mobile G1.
Brief History
Android OS Versions:
> Android 1.1
> Android 1.5 Cupcake
> Android 1.6 Donut
> Android 2.0/2.1 Eclair
> Android 2.2.x Froyo
> Android 2.3.x Gingerbread
> Android 3. x Honeycomb
> Android 4.0.x Ice Cream Sandwich
> Android 4.1 Jelly Bean
Brief History - continuation
Android Version Market Share
What will you need?
•Computer running Windows, Linux, or Mac OS X
•Java SDK
•Google Android SDK
•Integrated Development Environment (IDE)
Please refer to:
http://developershaven.blogspot.com
Installation
Android Development Tool
Android SDK and Virtual Device Manager
Android Emulator / Phone
Dalvik Debug Monitoring Service
SQLite3
…more
Application Components
Activity• Present a visual user interface for one focused endeavor the user can undertake• Example: a list of menu items users can choose from
Services• Run in the background for an indefinite period of time• Example: calculate and provide the result to activities that need it
Broadcast Receivers• Receive and react to broadcast announcements• Example: announcements that the time zone has changed
Content Providers• Store and retrieve data and make it accessible to all applications • Example: Android ships with a number of content providers for common
Intents• Hold the content of a message• Example: convey a request for an activity to present an image to the user or let the
user edit some text
Activities
Services
• Run in the backgroundo Can continue even if Activity that started it dieso Should be used if something needs to be done while the user
is not interacting with application Otherwise, a thread is probably more applicable
o 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 applicationo In which case will terminate when all applications bound to it
unbindo 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
Project Components
SRC• The project source code
GEN• Auto generated code• Example: R.java
Included libraries
Resources• Drawables• Layout• Values like strings
Manifest File• A must have xml file. Contains essential information about the
system to the android system
XML
• Used to define some of the resourceso Layouts (UI)o Strings
• Manifest file
• Shouldn’t usually have to edit it directly, Eclipse can do that for you
• Preferred way of creating UIso Separates the description of the layout from any
actual code that controls ito Can easily take a UI from one platform to another
R Class
• Auto-generated: you shouldn’t edit it
• Contains IDs of the project resources
• Enforces good software engineering
• Use findViewById and Resources object to get access to the resourceso Ex. Button b = (Button)findViewById(R.id.button1)o Ex. getResources().getString(R.string.hello));
Layouts
• Eclipse has a great UI creatoro Generates the XML for you
• Composed of View objects
• Can be specified for portrait and landscape modeo Use same file name, so can make completely
different UIs for the orientations without modifying any code
Layouts - continuation
Layouts - continuation
• Click ‘Create’ to make layout modifications
• When in portrait mode can select ‘Portrait’ to make a res sub folder for portrait layoutso Likewise for Landscape layouts while in landscape modeo Will create folders titled ‘layout-port’ and ‘layout-land’
• Note: these ‘port’ and ‘land’ folders are examples of ‘alternate layouts’, see here for more infoo 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 you’ve tested each orientation thoroughly
Layouts - continuation
Running in Eclipse
• Similar to launching a regular Java app, use the launch configurations
• Specify an Android Application and create a new one
• Specify activity to be run
• Can select a manual option, so each time program is run, you are asked whether you want to use the actual phone or the emulatoro Otherwise, it should be smart and use whichever
one is available
Please refer to :
http://developershaven.blogspot.com
Google Maps
Google Maps
Google Maps
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.google.android.maps.MapView android:id="@+id/mapview1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey=“Your API Key Here" /> </LinearLayout>
• Installation: http://developershaven.blogspot.com
• Google API: http://mfarhan133.wordpress.com/2010/10/01/generate-google-maps-api-key-for-android/
• Android Developer’s Website : http://developer.android.com/index.html
• Numerous Forums & other developer sites, including:o http://www.javacodegeeks.com/2011/02/android-google-maps-tutorial.htmlo http://efreedom.com/Question/1-6070968/Google-Maps-Api-Directionso http://stackoverflow.com o http://www.anddev.org/google_driving_directions_-_mapview_overlayed-t826.html
Resources & Acknowledgements
Joemarie Comeros Amparo
Android Developer
Skype/Ymail/Gmail : joemarieamparo
THANK YOU VERY MUCH!