Android Jump Start: Application Development
description
Transcript of Android Jump Start: Application Development
![Page 1: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/1.jpg)
Android Jump Start: Application Development
Marcus Chou
![Page 2: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/2.jpg)
Smartphone?
![Page 3: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/3.jpg)
Smartphone?
![Page 4: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/4.jpg)
Smartphone?
![Page 5: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/5.jpg)
Market trend
Close to 20% of U.S. smartphone owners spent $100 on apps in 2008 -- ABI Research Survey
![Page 6: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/6.jpg)
Market trend (cont.)
![Page 7: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/7.jpg)
App Store
![Page 8: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/8.jpg)
Smart phone of nowadays
Blonde??
![Page 9: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/9.jpg)
Wallpaper of Android
![Page 10: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/10.jpg)
Installed applications
![Page 11: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/11.jpg)
Applications menu
![Page 12: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/12.jpg)
Notification
![Page 13: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/13.jpg)
Preference
![Page 14: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/14.jpg)
Android Market
![Page 15: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/15.jpg)
Android Market (cont.)
![Page 16: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/16.jpg)
Prerequisites
• Java programming skills • Android SDK
![Page 17: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/17.jpg)
Java
• Simple, Object Oriented, and familiar• Interface, Abstract, extends, implement Reference:http://java.sun.com/docs/books/tutorial/
![Page 18: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/18.jpg)
Android SDK
• Emulator• Tools• Document• Library• Sample code
Reference:http://code.google.com/android/documentation.html
![Page 19: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/19.jpg)
Four building block...
• Activity• Broadcast Intent Receiver• Service• Content Provider
![Page 20: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/20.jpg)
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
![Page 21: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/21.jpg)
Activity (cont.) Resource
• Drawable• Layout• Values
![Page 22: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/22.jpg)
Activity (cont.) UI Layout Design<TabHost> <LinearLayout> <LinearLayout> <ImageView/> <ScrollView> <TextView/> </ScrollView> </LinearLayout> <LinearLayout> <TabWidget/> <FrameLayout/> </LinearLayout> </LinearLayout></TabHost>
![Page 23: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/23.jpg)
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);}}
![Page 24: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/24.jpg)
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.
![Page 25: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/25.jpg)
Explicit Intents
![Page 26: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/26.jpg)
Explicit Intents (cont.)
Intent intent = new Intent(ItemList.this,VideoPlayer.class); intent.putExtra("file_path", selectedItem.getFilePath());
startActivity(intent);
![Page 27: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/27.jpg)
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 }
![Page 28: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/28.jpg)
Broadcast Intent Receiver
• Broadcast Receiver • Notification
![Page 29: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/29.jpg)
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")); }}
![Page 30: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/30.jpg)
Broadcast Receiver (cont.)
![Page 31: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/31.jpg)
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>
![Page 32: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/32.jpg)
Notification (cont.)
public class BlackdidiSample extends Activity { private NotificationManager mNM; ... public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); ... } ...}
![Page 33: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/33.jpg)
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);}
![Page 34: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/34.jpg)
Notification (cont.)
![Page 35: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/35.jpg)
Service
• A Service is code that is long-lived and runs
without a UI• Use Context.bindService() to connect to the
service
![Page 36: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/36.jpg)
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" />....
![Page 37: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/37.jpg)
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
![Page 38: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/38.jpg)
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); }}
![Page 39: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/39.jpg)
Content Provider (cont.)
![Page 40: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/40.jpg)
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>
![Page 41: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/41.jpg)
Security (cont.)
![Page 42: Android Jump Start: Application Development](https://reader036.fdocuments.us/reader036/viewer/2022062422/56813aab550346895da2a63a/html5/thumbnails/42.jpg)
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