Begining Android Development

Preview:

DESCRIPTION

Presentasi Pengembangan Applikasi Android untuk pengguna Linux di OSCA (Open Source Community AKAKOM),Yogyakarta, 25 September 2011

Citation preview

Beginning AndroidDevelopment

Powered by:

Hayi Nukmane-Mail: hayi.nkm@gmail.com

Agenda

Introduction Android Architecture Application Development Demo

What is Android?

● What is Android??● Android Features.

– Application framework

– Dalvik virtual machine

– Integrated browser

– Optimized graphics

– SQLite

– Media support

– GSM Telephony (hardware dependent)

– Bluetooth, EDGE, 3G, and WiFi (hardware dependent)

– Camera, GPS, compass, and accelerometer (hardware dependent)

– Rich development environment

Agenda

Intro Android Architecture Application Development Demo

Android Architecture

Android Architecture

● Linux Kernel ● 2.6 -> core system

– Security,– memory management, – process management, – network stack, and – driver model.

Android Architecture

● Library– System C library (libc)– Media Libraries - based

on PacketVideo's OpenCORE;

– Surface Manager– LibWebCore– SGL– 3D libraries– FreeType - bitmap and

vector font rendering– SQLite

Android Architecture

● Android runtime– Dalvik VM– Not a Java VM

● register based

– one instance per application

– memory optimized– uses Linux to manage

memory and multi-threading

Android Architecture

● Application Framework● Service and System

– Views

– Content providers

– Resource manager

– Notification manager

– Activity manager

● All Java classes● Simplify the reuse of

components● Any application can publish

its capabilities and any other application may then make use of those capabilities

Android Architecture

● Applications● Core Applications

– email client, – SMS program, – calendar, – maps, – browser, – contacts, and others

● All applications are written using the Java programming language.

Agenda

Intro Android Architecture Application Development Demo

Development Environment

● Eclipse Based● Android SDK,

– http://developer.android.com/sdk/index.html● Android Development Tools (ADT) plugin for Eclipse

– http://developer.android.com/sdk/eclipse-adt.html● Emulator (AVD)

or● Target Devices

– USB Connection

Development Environment

● Netbean Based● Android SDK,

– http://developer.android.com/sdk/index.html● Android plugin for Netbeans

– http://kenai.com/projects/nbandroid/downloads/download/updatecenter/updates.xml

● Emulator (AVD)or

● Target Devices– USB Connection

Development Environment

● Command Line Based● Android SDK,

– http://developer.android.com/sdk/index.html● Ant + Bash + editor,● Emulator (AVD),

or● Target Devices

– USB Connection

Reference: http://developer.android.com/guide/developing/projects/projects-cmdline.html

Development Environment

● Web Based (App Inventor)● Android SDK,

– http://developer.android.com/sdk/index.html● Web Browser,

– http://www.appinventorbeta.com● Emulator (AVD),

or● Target Devices

– USB Connection

Programming Model

No single entry point – main()Run when needed.

Programming Model

● Activity– Executable unit– Has UI– 1 application can have

multiple Activity● Services

– Similar to Activity– No UI– Run in Background

● Content Providers– Makes application's data

available to other– Can be:

● File system,● Database (SQLite)● Other

– Targeted by: ContentResolver

● Broadcast Receiver– Respond to broadcast

messages.

● Application Components

Where is the Tools?

● android

● Dalvik Debug Monitor Server (ddms)

● dmtracedump

● Draw 9-patch

● Android Emulator (emulator)

● Hierarchy Viewer (hierarchyviewer)

● hprof-conv

● layoutopt

● mksdcard

● Monkey

● monkeyrunner

● ProGuard

● sqlite3

● traceview

● zipalign

Agenda

Intro Android Architecture Application Development Demo

Lets try to Develop.

How do I create some Project?

Which one? Eclipse Based,

or

Command Line

Android + Eclipse

Android + Bash (Ant)

Requirement:● Ant● Shell / Bash

atau

Create a Project.

Run in terminal:

$ android create project \

­­target <target> \

­­name <project name> \

­­path <path to project> \

­­activity <activity name> \

­­package <package name>

Example:

$ android create project \

­­target 7 \

­­name CobaAndroid \

­­path ./CobaAndroid \

­­activity CobaActivity \

­­package com.android.main

Project Structure

 └── CobaAndroidProject

      ├── AndroidManifest.xml

      ├── bin

      ├── build.properties

      ├── build.xml

      ├── default.properties

      ├── libs

      ├── local.properties

      ├── proguard.cfg

      ├── res

          │ ├── drawable­hdpi

              │ │ └── icon.png

          │ ├── ...

          │ ├── layout

              │ │ └── main.xml

          │ └── values

              │ └── strings.xml

      └── src

          └── com

              └── android

                  └── main

                      └── CobaAndroidActivity.java

Running it...

Just type:

$ emulator ­avd <avd_name> &

[wait a moment]

$ ant install

$ adb shell 'am start ­n <package.name>/.<ActivityName>'

Debugging it...

Run from terminal:

$ ddms

Deployment

● Debug● Target: Development

● Release● Target: Market● Unsigned● Signed (for Market)

Where I can learn it?

http://www.anddev.org

http://www.vogella.de/

http://stackoverflow.com/questions/tagged/android

And the last one....

What happen if:

SL4A

Questions?

Hayi Nukmane-Mail: hayi.nkm@gmail.com

FB: Baka Hayihttp://kumachi.wordpress.com