android jump start: application development

Post on 05-Jan-2016

48 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Android Jump Start: Application Development. Marcus Chou. Smartphone?. Smartphone?. Smartphone?. Market trend. Close to 20% of U.S. smartphone owners spent $100 on apps in 2008           -- ABI Research Survey. Market trend (cont.). App Store. Smart phone of nowadays. Blonde??. - PowerPoint PPT Presentation

TRANSCRIPT

Android Jump Start: Application Development

Marcus Chou

Smartphone?

Smartphone?

Smartphone?

Market trend

 Close to 20% of U.S. smartphone owners spent $100 on apps in 2008          -- ABI Research Survey 

  

Market trend (cont.)

App Store

Smart phone of nowadays

Blonde??

Wallpaper of Android

Installed applications

Applications menu

Notification

Preference

Android Market

Android Market (cont.)

Prerequisites

 • Java programming skills • Android SDK

Java

 • Simple, Object Oriented, and familiar• Interface, Abstract, extends, implement    Reference:http://java.sun.com/docs/books/tutorial/

Android SDK

• Emulator• Tools• Document• Library• Sample code 

  Reference:http://code.google.com/android/documentation.html

Four building block...

• Activity• Broadcast Intent Receiver• Service• Content Provider

Activity

• A activity is usually a single screen in an application

• A user interface compsed of Views and respond to events

• A application may consist of many  activities

Activity (cont.) Resource

• Drawable• Layout• Values

Activity (cont.) UI Layout Design<TabHost>    <LinearLayout>        <LinearLayout>            <ImageView/>            <ScrollView>                <TextView/>            </ScrollView>        </LinearLayout>        <LinearLayout>            <TabWidget/>            <FrameLayout/>        </LinearLayout>    </LinearLayout></TabHost>

Activity (cont.)

public class About extends Activity{    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.about);                String about = this.getIntent().getExtras().getString("about");        TextView tv=(TextView)this.findViewById(R.id.about);        tv.setText(about);}}

Activity (cont.)

• Use "Intent" to activate the screen (Activity)  • The two most important parts of the intent

data structure are the action and the data to act upon.

Explicit Intents

Explicit Intents (cont.)

  

Intent intent = new Intent(ItemList.this,VideoPlayer.class);  intent.putExtra("file_path", selectedItem.getFilePath());

startActivity(intent);

Implicit Intents

        Uri uri = Uri.parse("http://tw.youtube.com/watch?v=S6o7rwrxt4g");                Intent intent = new Intent(Intent.ACTION_VIEW, uri);        try {          if (startActivity(intent)) {                      // success          }        } catch (ActivityNotFoundException ex) {          // fail        }

Broadcast Intent Receiver

 • Broadcast Receiver • Notification

Broadcast Receiver (cont.)

private void registerBroadcastListener(){        IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_TICK );        this.registerReceiver(this.mBlackdidiListener, filter);} private  class BlackdidiBroadcastListener extends  BroadcastReceiver {            public void onReceive(Context context, Intent intent) {                startActivity((new Intent(BlackdidiSample.this, About.class)).putExtra("about", "time tick"));            }} 

Broadcast Receiver (cont.)

Broadcast Receiver (cont.)<receiver android:name="com.blackdidi.comp.BootReceiver">   <intent-filter>       <action android:name="android.intent.action.BOOT_COMPLETED" />    </intent-filter> </receiver>        <receiver android:name="com.blackdidi.comp.ConnectivityReceiver">    <intent-filter>         <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />    </intent-filter> </receiver>

Notification (cont.)

public class BlackdidiSample extends Activity {    private NotificationManager mNM;    ...    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);        ...     }    ...}   

Notification (cont.)

private void showNotification() {    CharSequence text = getText(R.string.hello_notification);

    Notification notification = new      Notification(R.drawable.star_big_on, text,                System.currentTimeMillis());

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,( new Intent(this, About.class)).putExtra("about", "yoho, blackdidi"), 0);

        notification.setLatestEventInfo(this, getText(R.string.hello_notification),text, contentIntent);

        mNM.notify(R.string.app_name, notification);} 

Notification (cont.)

Service

  • A Service is code that is long-lived and runs

without a UI• Use Context.bindService() to connect to the

service

Service (cont.)

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      android:versionCode="1"      android:versionName="1.0.0" package="com.blackdidi.podcast">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <service android:name=".xml.ChannelService" />        <service android:name=".download.DownloadService" />....

Content Provider

A content provider is only required if you need to share data between multiple applications. 

 • Querying for Data• Modifying Data• Adding a Record• Deleting a Record

Content Provider (cont.)public class BlackdidiList extends ListActivity{   protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);             Cursor c = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null);        startManagingCursor(c);        ListAdapter adapter = new SimpleCursorAdapter(this,                android.R.layout.simple_list_item_2, c,                         new String[] {CallLog.Calls.NUMBER , CallLog.Calls.CACHED_NAME },                         new int[] { android.R.id.text1, android.R.id.text2 });        setListAdapter(adapter);    }}

Content Provider (cont.)

Security<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission><uses-permission android:name="android.permission.BATTERY_STATS"></uses-permission>

Security (cont.)

Reference

Android Developers Site    http://developer.android.com/

Android Developers Blog    http://developer.android.com/

Android Developers Group    http://groups.google.com/group/android-developers

Android Platform Discussion Grouphttp://groups.google.com/group/android-platform

top related