android development made easy - with sample project

37
Android Development Made Easy W I t h S a m p l e P r o j e c t by Joemarie Comeros Amparo

Upload: joemarie-amparo

Post on 10-May-2015

4.642 views

Category:

Education


2 download

DESCRIPTION

The information in this slide are from my discussion during the Android Training I conducted for CCA Java Class last October 02, 2012.

TRANSCRIPT

Page 1: Android Development Made Easy - With Sample Project

Android Development Made Easy W I t h S a m p l e P r o j e c t by Joemarie Comeros

Amparo

Page 2: Android Development Made Easy - With Sample Project

Outline: Overview on Android Installing ADT on Eclipse Explore Project Components Sample Project

Page 3: Android Development Made Easy - With Sample Project

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?

Page 4: Android Development Made Easy - With Sample Project

July 2005 - Google Inc. bought from Danger Inc

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

Page 5: Android Development Made Easy - With Sample Project

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

ANDROID VERSIONS

Page 6: Android Development Made Easy - With Sample Project

ANDROID VERSION MARKET SHARE

Note: When developing an application, consider the market share of the android version. The higher the market share, the higher number your target market is.

Page 7: Android Development Made Easy - With Sample Project

WHAT WILL YOU NEED?

•Computer running Windows, Linux, or Mac OS X

•Java SDK

•Google Android SDK

•Integrated Development Environment (IDE)

Note: Based on my development experience, ADT can run on at least Dual Core with at least 2GB RAM.

Page 8: Android Development Made Easy - With Sample Project

Please refer to: www.developershaven.net

INSTALLATION ON ECLIPSE

Page 9: Android Development Made Easy - With Sample Project

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

Page 10: Android Development Made Easy - With Sample Project

ACTIVITY CYCLE

Page 11: Android Development Made Easy - With Sample Project

INSIDE AN ACTIVITY

public class CCSActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }}

Page 12: Android Development Made Easy - With Sample Project

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

Page 13: Android Development Made Easy - With Sample Project

SERVICESCYCLE

Page 14: Android Development Made Easy - With Sample Project

PROJECT COMPONENTSSRC• 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

Page 15: Android Development Made Easy - With Sample Project

PROJECT COMPONENT ON ECLIPSE

Page 16: Android Development Made Easy - With Sample Project

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 resources Ex. Button b =

(Button)findViewById(R.id.button1) Ex. getResources().getString(R.string.hello));

R CLASS

Page 17: Android Development Made Easy - With Sample Project

R.JAVA CLASS

Page 18: Android Development Made Easy - With Sample Project

DRAWABLES

Page 19: Android Development Made Easy - With Sample Project

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

Page 20: Android Development Made Easy - With Sample Project

LAYOUTS - CONTINUATION

Page 21: Android Development Made Easy - With Sample Project

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 you’ve tested each orientation thoroughly

LAYOUTS - CONTINUATION

Page 22: Android Development Made Easy - With Sample Project

LAYOUTS - CONTINUATION

Page 23: Android Development Made Easy - With Sample Project

LAYOUT SAMPLE<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/tv_hello"/> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text“android:textAppearance="?android:attr/textAppearanceLarge"/>

</LinearLayout>

res/values/string.xml

Page 24: Android Development Made Easy - With Sample Project

MANIFEST FILE

Page 25: Android Development Made Easy - With Sample Project

INTENTS1. Lunching a new activity without expecting without expecting a result

2. Lunching a new activity and expecting a result when it finished.

CalledActivity.class

Page 26: Android Development Made Easy - With Sample Project

On Eclipse IDE. Go To File > New > Project > Android Project

See image at the side for the prompt that appear. Click next button.

SAMPLE PROJECT

Page 27: Android Development Made Easy - With Sample Project

SAMPLE PROJECT Select android version.

Tip: select the latest OS version available. You can add minimum and target SDK on your manifest file to support earlier android versions.

Page 28: Android Development Made Easy - With Sample Project

SAMPLE PROJECT Provide package name of

your project. Valid package name consist of two names separated by a period.

Page 29: Android Development Made Easy - With Sample Project

SAMPLE PROJECT Provide package name of

your project. Valid package name consist of two names separated by a period.

Optional: Change minimum SDK for the lowest android version your application will support.

Hit on finish

Page 30: Android Development Made Easy - With Sample Project

SAMPLE PROJECT - LAYOUT Under res/layout on your

project explorer. Open main.xml. Create a layout like this:

In main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" >

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button1" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2" />

<Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 3" />

</LinearLayout>

<EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" >

<requestFocus /> </EditText>

</LinearLayout>

Page 31: Android Development Made Easy - With Sample Project

SAMPLE PROJECT - VALUES Under res/values on your

project explorer. Open strings.xml.

<?xml version="1.0" encoding="utf-8"?><resources>

<string name="hello">Hello World, SampleProjectActivity!</string> <string name="app_name">SampleProject</string> <string name="button1">Button 1 Clicked.</string>

</resources>

NOTE: string with name button1 is being referenced by Button 1 android:text property. See main.xml in your layout.

Page 32: Android Development Made Easy - With Sample Project

SAMPLE PROJECT - SOURCE Under SRC on your project

explorer. Open SampleProjectActivity.java. Change code to this:

See comments for better understand.

import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class SampleProjectActivity extends Activity implements OnClickListener{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Toast.makeText(this, "Hello.", Toast.LENGTH_LONG).show(); //referencing components in our layout as set in setContentView, - main.xml //findViewById is used hence we components in our layout will be called //through their ids as set in android:id properties. See main.xml in your layout. Button btn1 = (Button)findViewById(R.id.button1); //one way in handling click event btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Toast is a prompt that will notify user of what has happened in the application //but not requiring user an action. Toast.makeText(getApplication(), "Button 1 Clicked", Toast.LENGTH_LONG).show(); } }); Button btn2 = (Button)findViewById(R.id.button2); Button btn3 = (Button)findViewById(R.id.button3); //Other way of handling event inside an activity btn2.setOnClickListener(this); btn3.setOnClickListener(this); }

@Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.button2: EditText editText = (EditText)findViewById(R.id.editText1); editText.setText("Button 2 Clicked!"); break; case R.id.button3: // Intent with out waiting for result. // This is creating a new view and passing the new controll to the next view. Intent intent = new Intent(this, NextActivity.class); startActivity(intent); break; } }}

Page 33: Android Development Made Easy - With Sample Project

SAMPLE PROJECT - SOURCE Create NextActivity.java Right click SRC folder >

New > Class. Change code to this:

import android.app.Activity;import android.os.Bundle;import android.widget.Button;import android.widget.TextView;

public class NextActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // you can have a new layout. but for this example // we will be reusing the main.xml as our layout. // we will just manipulate the text to inform user that //a new activity has been created. setContentView(R.layout.main); // setTitle - change the title of the next view setTitle("Next Activity"); //setting page title TextView pageTitle = (TextView)findViewById(R.id.pagetitle); pageTitle.setText("Hello, You are now in the Next Activity Class."); Button btn1 = (Button)findViewById(R.id.button1); btn1.setText("Option 1"); Button btn2 = (Button)findViewById(R.id.button2); btn2.setText("Option 2"); Button btn3 = (Button)findViewById(R.id.button3); btn3.setText("Option 3"); }

}

Page 34: Android Development Made Easy - With Sample Project

SAMPLE PROJECT – MANIFEST FILE

Open Manifest.xml in your project explorer.

Register NextActivity class to your project.

Your new manifest file must look like the code at the side.

Save all the changes

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sample" android:versionCode="1" android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".SampleBradActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NextActivity" android:label="@string/app_name" /> </application>

</manifest>

Page 35: Android Development Made Easy - With Sample Project

SAMPLE PROJECT – RUN YOUR ANDROID APPLICATION Right click your project name in your project explorer >

RUN AS > ANDROID APPLICATION. Emulator will boot up. Wait until home screen is shown. Your application will be displayed on the screen. You can now enjoy the application.

Congratulations!!!

Page 36: Android Development Made Easy - With Sample Project

Installation: http://developershaven.net

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:

http://www.javacodegeeks.com/2011/02/android-google-maps-tutorial.html http://efreedom.com/Question/1-6070968/Google-Maps-Api-Directions http://stackoverflow.com http://www.anddev.org/google_driving_directions_-_mapview_overlayed-t826.html

RESOURCES & ACKNOWLEDGEMENTS

Page 37: Android Development Made Easy - With Sample Project

Joemarie Comeros Amparoabout.me/joemarieamparo

Skype/Ymail/Gmail : joemarieamparo

Facebook: [email protected]

THANK YOU VERY MUCH!