Android Training

Post on 18-Feb-2016

26 views 0 download

description

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... If you already have installed JDK 5.0/6.0, you can skip this. Eclipse Ganymede • http://eclipse.org/do... - PowerPoint PPT Presentation

transcript

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-basedo more efficient and compact implementationo 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 applicationso google mapso facebook o twittero ...

AndroidSDK

• Tools• Docs• Platforms

o Android XX Data Skins Images Samples

• Add-onso Google API

Android Process and Thread

• Linux process per application• One thread per process

o UI Threado 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 windowso floating windowso embedding inside of another activity

• lifecycleo 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 broadcasto Ordered broadcast

Android Activity LifeCycle

Android Intents

• an abstract description of an operation to be performedo actiono 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;    }}