1. Trang chủ
  2. » Công Nghệ Thông Tin

An Introduction to Android for Developers ppt

49 274 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề An Introduction to Android for Developers
Chuyên ngành Android Development
Thể loại Tiểu luận
Định dạng
Số trang 49
Dung lượng 1,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

When Things Go Wrong @ Android is still early-release software @ Most problems fall within two areas @ Build Problems @ R class not updated or running old code @ Look at console and pr

Trang 1

AN INTRODUCTION TO ANDROID

FOR DEVELOPERS

Trang 3

Introduction Goals

@ Get you Started with Android Development

@ Get the Environment Set Up and Working

@ Create Some Demo Apps (Tutorials)

@ Demonstrate the Tools / Environment

@ Introduction to the Documentation

@ (Which is changing )

@ Build Enthusiasm (you can do it) Cousle

Trang 5

a PEERED et ~ £ eas an SE ai Be OS a — F1 tua ee ee | 6 2đ v7 0a ee ee „s ha a :

- l Se eile os “ ms ` Pay = ite Ề x

Trang 6

Not Covered

@ java Development Basics

@ Similarities to Other Environments

@ Parts that Aren't Ready

@ Syncing etc

@ Anything We Can't Get to in time!

@ Get you going, not teach you everything

Coovsle

Trang 8

@ Layouts

i

= | ae ate eee

Trang 9

@ Eclipse Plugin Builds into R.java

@ Efficient Resource Creation / Representation

@ Less Chance of Programatic Errors (Intellisense)

@ XML Declarative Faster to Develop

Coonle

Trang 10

Layout Basics

® Views

@ Basic Building Blocks

@ lextView, Edit Text, Button, ImageView,

Checkbox, Lists, etc

@ Layouts

@ FrameLayout : Each Child a Layer

@ LinearLayout : Single Row / Column

@ RelativeLayout : Relative to Parent / Other Views

@ lableLayout : Rows and Columns - HTML like

@ AbsoluteLayout : <x,y> Coords - Discouraged

@ Layouts can be Nested Govgle

Trang 11

Layout Parameters

@ Parameters Control Many Aspects

@ Some are More Common:

® <android:layout_width> and

<android:layout_height>

® ‘wrap content’, ’fill_ parent’, values

@ <android:layout_weight>

@ Relative amount of available space to use

@ Most are in the Docs

@ Class Reference documentation most useful

Coovsle

Trang 12

When Things Go Wrong

@ Android is still early-release software

@ Most problems fall within two areas

@ Build Problems

@ R class not updated or running old code

@ Look at console and problems pane

@ Clean Build

@ Communication breakdown to emulator

@ Code not deploying, errors, debugger failure

@ Use DDMS Reset ADB option

@ Or: quit eclipse and emulator, adb kill-server

Google

Trang 14

ANDROID

Trang 15

les

Trang 16

Intents & IntentFilters

® lntents: description of what you want done

® lntentFilter: what an Activity or

IntentReceiver can do

® Áctivities publish their lntentFilters in

AndroidManifest.xml

Coovgle

Trang 17

Intents & IntentFilters

® Forward navigation is accomplished by

resolving Intents

® Caller calls startActivity(intent)

(or startSubActivity )

@ System picks Activity whose IntentFilter

best matches intent

® New Activity is informed of the Intent

Coovgle

Trang 18

IntentReceivers

@ Respond to alarms and notifications

@ Including those originating externally

@ Will wake up your process if necessary

@ System can broadcast intents: data connection,

phone state changed, etc

@ Apps can invent and broadcast their own intents

Coovgle

Trang 19

IntentReceivers

IntentReceivers can (should) start Services for

lengthy tasks (e.g downloading new data)

IntentReceivers can put up UI notifications

Register IntentReceivers in AndroidManifest.xml

Can also attach IntentReceivers to other

objects so they can receive notifications

(Activities, Views, etc }

Coovgle

Trang 20

Services

@ Faceless classes that run in the background

® Music player, network download, etc

® Services run in your application’s process or

their own process

® Your code can bind to Services in your process

or another process

® Once bound, you communicate with Services

using a remotable interface defined in IDL

Coogle

Trang 21

ContentProviders

® Enable data sharing across applications

® Provide uniform APIs to:

® query data (returns a Cursor)

® delete, update, and insert rows

® Hide underlying implementation

e VVork across processes

Coogle

Trang 22

ContentProviders

® Àll content is represented by URIs

® Convenience methods mean clients don’t

need to know syntax

® ContentProviders own URIs based on

authority, e.g content://contacts/

@ ContentProviders are responsible for

mapping URIs they own to a MIME type

Coovgle

Trang 23

Quick Dial

Code Walkthrough

Eclipse Import + Code

Trang 24

' " 1 ee - 7 ` Fe ao ` ATs fine Hae ts M `

ape n đt vo or ae’ Ses rar ie we ot) ee ae ".' l

lệ HÀ v4 : ` a & lv ` = _' ` ; ý y— 7 = as iis fai he a tt Ũ re ” Fr a ọ sứ: h :

Trang 25

Application Lifecycle

® ADplications run in their own processes

e Many Activities, Services, etc can run in

the same process

® Processes are started and stopped as

needed to run an applications components

® Processes killed to reclaim resources

Coovgle

Trang 26

Life Cycle

of an

Application

Trang 27

Activities

@ Designed to be reused and replaced

® Your application can invoke Activities

from another application

® Another application can invoke your

Activities

® Existing Activities can be replaced with a

new Activity that fulfills the same contract

Coovgle

Trang 28

Activity Liiecycle

® An Application can have Several Activities

e Activities can be started with

e startActivity() - Synchronous

® startSubActivity() - Asynchronous, with handler

callback

® Each Activity has its Own Life Cycle

e Messages can be Passed with Bundles

@ Like Services on a Bus

Coovgle

Trang 29

Bundles

® Similar in concept to a simple Map

Can put data into Bundle under a name

@ bundle.putString(“name’, <data object>)

Can also be retrieved by name

@ Dbundle.getString( name `

® Bundles used to pass messages/store state

® onFreeze() has outState bundle passed in

Data stored in outstate handed back to

onCreate as the icicle bundle

Google

Trang 30

Storage / Persistence

® Normally handled by ContentProvider

® Front end to File, DB, Online Service, etc

® SQL Lite is Available to Developers

@ Simple SQL DB

@ Can also access flat files

@ Online communication yet to be formalized

Coovgle

Trang 31

Note Fad Example

See the Tutorial in the SDK

Multi-stage exercise to illustrate

the basics

Edit Note

itle| A Note | Body

Written in our notepad demo

Confirm

2 2) 3

Trang 32

RESOURCES, PACKAGING AND

Trang 33

Resources

@ Added under the res/ folder

@ layout, drawable, anim, values, xml, raw

@ layout for declarative layout files

@ drawable/anim for bitmaps, transitions, etc

@ values includes strings, arrays, colors,

dimensions, styles and more

@ xml for general XML files available at runtime

@ raw for binary files (e.g sound)

@ Compiled into the apk

@ Read through API convenience methods

@ e.g XML access looks like a pull parser

Google

Trang 34

Assets

@ Similar to Resources, but

@ InputStream access to Assets

@ Placed under assets folder

@ Looks like a “root” folder to app

@ Read only access

yA , asa ` mi Ầ Ĩ a a re i 7 1 nf En ` er F : ` i? as _ *

ị va 4 | z ce : ST ` xi C2 ` "man re Hiện i ` Hệ, ees: bự» i= ae Be at

| > ra xế oF, ; Ba Na me về See eee oe seen

' ta BỒN: << ‘ TY os ` ⁄ ym ` ` a T lẻ.” 3 “ ` ies ‘ , 1 _ i | ‘ ss : - ae 7

xà aa a

ei

Au “Si fs

Trang 35

APK files

@ Android Packages

@ All class files and resources needed to run

@ Class files recoded to dex

@ Manifest defines activities and other facets

@ DEX

@ Dalvik Executable

@ More compressed form than bytecode

@ [hird party libs can be converted to dex

@ APK is the application

@ Install - put APK in data/app

@ Uninstall - remove APK

Coonle

Trang 36

Security

@ Unique Users for Apps

@ App completely sandboxed

@ Sharing only via ContentProviders, Activities,

IntentReceivers, Services, etc

@ Strong, linux-backed security

@ Access to Restricted Features

@ Must be declared in the Manifest

@ Still working on rest of security model

@ Some kind of trusted authority

@ Advanced users should have fine grained control

Coonle

Trang 38

© wl! 2) 4:24PM

@ Similar to the Java 2d API

@ Canvas passed in to graphics methods

@ Drawable Resources

@ Alpha channel available

@® Supports transformations (e.g Rotate, Scale)

@ Custom Graphical Components

@ Extend View

@ ©verride onÙDraw()

@ Override onMeasure() - setMeasuredDimension()

@ Other Optional Overrides: onKeyDown(),

onKeyUp(), onMotionEvent(), etc

Google

Trang 39

fw!) 4T] 3:04 PM

3D Graphics

@ Optional Hardware Support

@ OpenGL ES |.0 (+ some |.| features)

@ Corresponds to OpenGL |.3 for desktop

loi ÂU

@® Extend View

@ Obtain handle to OpenGLContext

@ Obtain handle to GL object in onDraw()

Google

Trang 40

Location Based Services

@ Optional Hardware Support for GPS

@ But Cell ID supported on all devices

@ LocationProvider

@ Part of the android.location package

@ Use LocationManager to get location and bearing

Trang 41

@ MapView and MapActivity

@ MapActivity easier to use

@ MapView can be embedded in your app

@ MapView more flexible

@ Can surround with your own controls

@ And, can trigger events in your own activity

@ But, more involved API

@ Must be created in a MapActivity subclass

Google

Trang 42

Tn MMMMICH “^^

HIHI#£M v ‘

— = —

Media

@ Play back and Record media files

@ Audio, Picture and Video

@ CODECs still being decided

@ Access through Intents

@ Stream from a URL

@ Set MIME type to help decide action

@ Also, class level API

@ Embed playback (e.g sound effects)

@ Recording

Google

Trang 43

XMPP

@ Alternative to SMS for message passing

@ Can pass richer content, including bundles

@ Strings only at present

@ Can fire Intents

@ Server initiated aH

Py ` vs ie >, : › > ; š a M : ' i oie A lv và F 7 5 a ie

_ vn none : phe y4 ge : a a : oa, Pa F 7 "xỉ 1.6 F x id v TY „ : oe oe ` ae ee oe ye : ~_ 7 a <3 co oe h i | 7

ne ad Ú ai 7 .* ` Ty: as _ Bi a ` ag “hà, 2 rua, Sean oe eee x¬ ar, _ 2 th me ah vl , om ee „'.* K NV “ Sg 7 | SÁT kare Ce a F 4 sa đc TỶ gn - 7 oe aati “ali ee sis a ` Tre k ‘a pe lg be frat _ tá, “nh - „ch i, Nh on ee ee oe 2 = ` +4: ` my co chee dể» mn f ¿ "7` “<< a a es ree oa oy oy ` oe ` a "- x

Trang 44

Low-Level H/VW Access

@ APIs not yet available

@ VVill cover low-level hardware, e.g

cua at Tiến Rat ea PE CP ee eS Bs ee he bh OREa tare nhs ee ares, ee eT”, rte WM ee ee nr ee oY TRE ge EN OP VYY Thịt a

me F ar SA “ Ƒ ey x Pat i a - § 2Š PSG ` Ỷ i \ \ ris ja T "4 i † ` ' we ; picks - 5 ` i

1 » 7 - my và k i

Trang 46

Learning More

@ Sample Apps

@ Lunar Lander, Snake - 2d graphics, game

@ Notepad - ContentProvider, Painting override

@ SampleCode - Layouts, Services, Intents &

Receivers, much more

Trang 47

L)ocumentation

@ Currently Being Improved

@ Class Documentation Coverage

@ Including Layout Parameters

@ What's Included in the Class Libs?

Coovsle

Trang 48

Command Line Tools

@ ADB

@ adb shell - command line into emulator/device

@ Simple unix-like shell

@ Can delete apk files from data/app

@ adb install - add packages

@ Emulator

@ Many command line flags

@ Different resolution, options, etc

@ Other Commands

@ See documentation for aidl, aapt, etc

@ Don't have to use Eclipse Coole

Ngày đăng: 01/04/2014, 10:20