cs241001 android lab 2009.11.24. background what is android – features – android architecture...

35
CS241001 Android Lab 2009.11.24

Upload: daisy-cain

Post on 28-Dec-2015

221 views

Category:

Documents


2 download

TRANSCRIPT

  • CS241001 Android Lab2009.11.24

  • BackgroundWhat is AndroidFeaturesAndroid ArchitectureLinux kernelNative LibrariesAndroid RuntimeApplication FrameworkApplicationsSoftware Development Kit (SDK)

  • 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).

  • 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 experienceOHA have developed Android, the first complete, open, and free mobile platform

  • HTC Dream , T mobile G1, announced at 2008.09HTC Hero, HTC Magic, HTC TatooSAMSUNG Galaxy i7500

  • 2009/11/19 AndroidCHT 8000HTCGoogle PhoneGoogle200AndroidWuawei13900AndroidCHT8000iPhone3.5iPhoneHami Hami KKBOX30Android

  • 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.

  • Application framework enabling reuse and replacement of componentsDalvik virtual machine optimized for mobile devicesIntegrated 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

  • 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

  • Android is built on the Linux kernel, but Android is not LinuxProvide core system services such as process, memory, power management, network stack, driver model and securityDoes not include the full set of standard Linux utilitiesThe Android kernel source is available today http://git.android.com

  • Bionic LibcFunction LibrariesNative ServersHardware Abstraction Libraries

  • C/C++ libraryCustom libc implementation, optimized for embedded use.Pros (compare with glibc)BSD LicenseSmall size and fast code pathsVery fast and small custom pthread implementationNot compatible with Gnu Libc (glibc)

  • WebKitBased on open source WebKit browserFull CSS, Javascript, DOM, AJAX supportMedia FrameworkBased on PacketVideo OpenCORE platformSupports standard video, audio, still-frame formatsSOLiteLight-weight transactional data storeBack end for most platform data storage

  • Provides system-wide surface composer, handling all surface rendering to frame buffer deviceCan combine 2D and 3D surfaces and surfaces from multiple applications

  • Manages all audio output devicesHandles audio routing to various outputs

  • User space C/C++ library layerDefines the interface that Android requires hardware drivers to implementSeparates the Android platform logic from the hardware interfaceWhy do we need a user-space HAL?Not all components have standardized kernel driver interfacesKernel drivers are GPL which exposes any proprietary IPAndroid has specific requirements for hardware drivers

  • Application Developed language : JavaDalvik Virtual Machine Instruvtion set : Dalvik Excutable Java Standard LibraryCompile java code to Dalvik Excutable (dex format)

  • Android custom implementation virtual machineProvides application portability and runtime consistencyRuns optimized file format (.dex) and Dalvik bytecodeJava .class / .jar files converted to .dex at build timeDesigned for embedded environmentSupports multiple virtual machine processes per deviceHighly CPU-optimized bytecode interpreterEfficiently Using runtime memoryCore LibrariesCore APIs for Java language provide a powerful, yet simple and familiar development platform

  • DVMGoogleDalvik excutable

    JVMSunJava bytecode

    What else ?

  • Activity managerManage the life cycle of applicationsContent Provider Share data between applicationsResource Manager Manager non-code resourceNotification ManagerDisplay custom alerts in the status barViews System A rich and extensible set, which can construct UI

  • Use the powerful and flexible application framework to develop your applicationWritten by JAVA programming language

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

  • The Android SDK includes a variety of custom tools that help you develop mobile applications on the Android platform.Android EmulatorAndroid Development Tools Plugin (for the Eclipse IDE)Android Virtual Devices (AVDs)Hierarchy ViewerAndroid Debug Bridge (adb)

  • Virtual mobile deviceQEMU-based ARM emulatorDesign application in an actual Android runtime environmentUse the same toolchainRun the same binary

  • *********SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world.*EDGEEnhanced Datarate for GSM EvolutionGSMCompass : ******BSD: the name of the the names of its contributorsORGANIZATIONBSD

    GPL: LGPL **surface surface 2D 3D Surface flinger 2D 3D 3D GPU 2D 3D 2D GNU/Linux Android *** kernel google userspace Linux kernel GPL, kernel userspace userspace Android Android GPSGSM **Android Android Runtime Java dex Android Android Java Runtime 1. dex Java bytecode2. Android

    *Java + DVM***********