an introduction to android

35
CS241001 Android Lab 2009.11.24

Upload: peterbuck

Post on 17-Jan-2015

4.328 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: An introduction to Android

CS241001

Android Lab

2009.11.24

Page 2: An introduction to Android

• Background• What is Android– Features– Android Architecture

• Linux kernel• Native Libraries• Android Runtime• Application Framework• Applications

• Software Development Kit (SDK)

Page 3: An introduction to Android

Wikipedia :An embedded system is a computer system

designed to perform one or a few dedicated functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts.

Embedded systems are controlled by a main processing core that is typically either a microcontroller or a digital signal processor (DSP).

Page 4: An introduction to Android
Page 5: An introduction to Android

• The OHA is a group of hardware and software developers, including Google, NTT DoCoMo, Sprint Nextel, and HTC …

• Goal – Accelerate innovation in mobile – Offer consumers a richer, less expensive, and

better mobile experience• OHA have developed Android™, the first

complete, open, and free mobile platform

Page 6: An introduction to Android
Page 7: An introduction to Android

HTC Dream , T mobile G1, announced at 2008.09

HTC Hero, HTC Magic, HTC TatooSAMSUNG Galaxy i7500

Page 8: An introduction to Android

【聯合報╱記者祁安國/台北報導】 2009/11/19 中華電信昨天推出自創品牌的 Android 平台手機 CHT

8000 ,將和 HTC 英雄機一較高下,這也是繼宏達電、三星之後,國內新誕生的 Google Phone ,也將讓 Google邁向平價化。

中華電信每年採購 200 萬支手機作為門號配套促銷,這次看好 Android 手機的前景,乾脆直接找華為( Wuawei )代工,加入中華電信的設計,單機雖訂價 1 萬 3900 元,不過這支手機純屬中華電信,資費包裝上更具彈性,將從零元到低月租費都有,也讓 Android 手機售價不再高貴。

CHT8000 外型跟 iPhone 類似, 3.5 吋電容觸控螢幕,也跟 iPhone 一樣內建中華電信智慧型手機專屬的客製加值服務,包括有 Hami 服務、 Hami 書城、至尊股票機、東森購物、 KKBOX 以及影視台等。中華電信行動通信分公司協理陳長榮表示,明年中華電信預估能延續今年在智慧型手機市場約有五成以上的市佔率優勢,達到 30 萬支銷售目標,其中相當看好 Android 手機市場。

圖/中華電信提供

Page 9: An introduction to Android

Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

Android is a Java-based operating system that runs on the Linux 2.6 kernel.

The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Page 10: An introduction to Android

• Application framework enabling reuse and replacement of components

• Dalvik virtual machine optimized for mobile devices

• Integrated browser based on the open source WebKit engine

• Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)

• SQLite for structured data storage

Page 11: An introduction to Android

• Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

• GSM Telephony (hardware dependent)• Bluetooth, EDGE, 3G, and WiFi (hardware

dependent)• Camera, GPS, compass, and

accelerometer (hardware dependent)• Rich development environment including

a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Page 12: An introduction to Android
Page 13: An introduction to Android
Page 14: An introduction to Android

• Android is built on the Linux kernel, but Android is not Linux

• Provide core system services such as process, memory, power management, network stack, driver model and security

• Does not include the full set of standard Linux utilities

The Android kernel source is available today http://git.android.com

Page 15: An introduction to Android
Page 16: An introduction to Android

Bionic LibcFunction LibrariesNative ServersHardware Abstraction Libraries

Page 17: An introduction to Android

• C/C++ library• Custom libc implementation, optimized for

embedded use.• Pros (compare with glibc)– BSD License– Small size and fast code paths– Very fast and small custom pthread

implementation• Not compatible with Gnu Libc (glibc)

Page 18: An introduction to Android

• WebKit– Based on open source WebKit browser– Full CSS, Javascript, DOM, AJAX support

• Media Framework– Based on PacketVideo OpenCORE platform– Supports standard video, audio, still-frame

formats• SOLite– Light-weight transactional data store– Back end for most platform data storage

Page 19: An introduction to Android

• Provides system-wide surface “composer”, handling all surface rendering to frame buffer device

• Can combine 2D and 3D surfaces and surfaces from multiple applications

Page 20: An introduction to Android

Manages all audio output devicesHandles audio routing to various outputs

Page 21: An introduction to Android
Page 22: An introduction to Android

• User space C/C++ library layer• Defines the interface that Android requires

hardware “drivers” to implement• Separates the Android platform logic from the

hardware interface• Why do we need a user-space HAL?– Not all components have standardized kernel

driver interfaces– Kernel drivers are GPL which exposes any

proprietary IP– Android has specific requirements for hardware

drivers

Page 23: An introduction to Android
Page 24: An introduction to Android

Application Developed language : JavaDalvik Virtual Machine

Instruvtion set : Dalvik Excutable Java Standard Library

Compile java code to Dalvik Excutable (dex format)

Page 25: An introduction to Android

• Android custom implementation virtual machine– Provides application portability and runtime consistency– Runs optimized file format (.dex) and Dalvik bytecode– Java .class / .jar files converted to .dex at build time

• Designed for embedded environment– Supports multiple virtual machine processes per device– Highly CPU-optimized bytecode interpreter– Efficiently Using runtime memory

• Core Libraries– Core APIs for Java language provide a powerful, yet

simple and familiar development platform

Page 26: An introduction to Android

DVMGoogleDalvik excutable

JVMSunJava bytecode

What else ?

Page 27: An introduction to Android
Page 28: An introduction to Android

• Activity manager– Manage the life cycle of applications

• Content Provider– Share data between applications

• Resource Manager– Manager non-code resource

• Notification Manager– Display custom alerts in the status bar

• Views System– A rich and extensible set, which can construct UI

Page 29: An introduction to Android
Page 30: An introduction to Android

Use the powerful and flexible application framework to develop your application

Written by JAVA programming language

Page 31: An introduction to Android

IDE – Eclipse Eclipse plug-in - ADTSoftware Development Kit (SDK)Android EmulatorDebuger

Page 32: An introduction to Android
Page 33: An introduction to Android

• The Android SDK includes a variety of custom tools that help you develop mobile applications on the Android platform.– Android Emulator– Android Development Tools Plugin (for the

Eclipse IDE)– Android Virtual Devices (AVDs)– Hierarchy Viewer– Android Debug Bridge (adb)

Page 34: An introduction to Android

Virtual mobile deviceQEMU-based ARM emulatorDesign application in an actual

Android runtime environmentUse the same toolchainRun the same binary

Page 35: An introduction to Android