Android Training Nelson To PreInstall Components • Android SDK • http://code.google.co... • Java Standard Development Kit (JDK) version 5.0/6.0 (download) http://www.oracle.com... o If you already have installed JDK 5.0/6.0, you can skip this. • Eclipse Ganymede • http://eclipse.org/do... • Eclipse ADT Plugin • https://dl-ssl.google... What is Android • • • • • Android is not an operating system Android is build on top of Linux Kernel Android is not equivalent to Linux Kernel Android is an open source Android devices sales 160,000 per day Android and Java • Android does not use the standard JVM • Android own its own JVM(Dalvik) • Android Dalvik vs standard JVM o register-based vs stack-based o more efficient and compact implementation o different set of java libraries than standard java libraries Android FrameWork Stack Android Linux Kernel • • • • • Hardware abstraction layer Memory Management Process Management Networking ... Android Native Libraries • • • • • • • Bionic Surface Manager 2D and 3D grahics Media codecs SQLite WebKit ... Android Framework • • • • • • ActivityManager Content providers Resource manager Location Manager Notification Manager ... Android Application • Android applications o google maps o facebook o twitter o ... AndroidSDK • Tools • Docs • Platforms o Android XX Data Skins Images Samples • Add-ons o Google API Android Process and Thread • Linux process per application • One thread per process o UI Thread o manage Looper message Android Application Components • • • • Activity Service Broadcast receiver Content provider Android Activity • a single, focused thing that the user can do • takes care of creating a window for user • presentation to the user o full-screen windows o floating windows o embedding inside of another activity • lifecycle o void onCreate(Bundle savedInstanceState) o void onStart() o void onRestart() o void onResume() o void onPause() o void onStop() o void onDestroy() Android Service • to perform a longer-running operation while not interacting with the user • can be started and stopped • doesn't have UI • run by activities • implicit Service (binding service) • explicit Service (start service) • lifecycle o void onCreate() o void onStart(Intent intent) o void onDestroy() Android Content Provider • store and retrieve data and make it accessible to all applications • to share data across applications Android Broadcast Receiver • receive intents sent by sendBroadcast() • two type of broadcasts o Normal broadcast o Ordered broadcast Android Activity LifeCycle Android Intents • an abstract description of an operation to be performed o action o data • Explicit Intents (specified a component) • Implicit Intents Hello World Project • • • • • Projec Name Target Application Name Package name Min SDK version Hello World Project • • • • • src gen Android XX res assets Hello World Project Manifest file <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.teach.helloworld" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".helloworld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="4" /> </manifest> Hello World Project Layout file <?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" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> Hello World Project Helloworld.java package com.teach.helloworld; import android.app.Activity; import android.os.Bundle; public class helloworld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Hello World Project R.java package com.teach.helloworld; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; } }