Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
1 Android architecture overview CS300 Android 2 A software stack for mobile devices developed and managed by Open Handset Alliance Free software under Apache License Android Key Applications Middleware Operating System (Linux Kernel 2.6) CS300 OHA (Open Handset Alliance) 3 A business alliance consisting of 47 companies to develop open standards for mobile devices CS300 Android Software Stack 4 CS300 Android Software Stack– Linux Kernel 5 Relying on Linux Kernel 2.6 for core system services Memory and Process Management Network Stack Driver Model Security Providing an abstraction layer between the hardware and the rest of the software stack CS300 Android Software Stack- Runtime 6 Core Libraries Providing most of the functionality available in the core libraries of the Java language APIs CS300 Data Structures Utilities File Access Network Access Graphics Etc 7 Android Software Stack – Runtime (Cont) Dalvik Virtual Machine Providing environment on which every Android application runs Each Android application runs in its own process, with its own instance of the Dalvik VM. Dalvik has been written so that a device can run multiple VMs efficiently. CS300 Register-based virtual machine 8 Android Software Stack – Runtime (Cont) Dalvik Virtual Machine (Cont) Executing the Dalvik Executable (.dex) format .dex format is optimized for minimal memory footprint. Compilation Relying on the Linux Kernel for: Threading Low-level CS300 memory management Android Software Stack - Libraries 9 Including a set of C/C++ libraries used by components of the Android system Exposed to developers through the Android application framework CS300 Android Software Stack – App Framework 10 Enabling and simplifying the reuse of components Developers have full access to the same framework APIs used by the core applications. Users are allowed to replace components. CS300 11 Android Software Stack – App Framework (Cont) Features Feature Role View System Used to build an application, including lists, grids, text boxes, buttons, and embedded web browser Content Provider Enabling applications to access data from other applications or to share their own data Resource Manager Providing access to non-code resources (localized string, graphics, and layout files) Notification Manager Activity Manager CS300 Enabling all applications to display customer alerts in the status bar Managing the lifecycle of applications and providing a common navigation backstack 12 Android Software Stack Application Android provides a set of core applications: Email Client SMS Program Calendar Maps Browser Contacts CS300 Etc. Reference 13 North Carolina State University: Android Real Time Systems, http://code.google.com/edu/submissions/ncsu-rts/ CS300 14 Your first Android app Hello Android! CS300 Types of Android apps 15 Foreground: application that is effectively suspended when it is not visible Background: spends most of its lifetime hidden Intermittent: some interactivity, but most work done on background Widget: home screen app CS300 Understanding: Hello Android 16 Activity: base class for visual, interactive components of your app Code for activity package org.example.helloAndroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } } CS300 Understanding: Hello Android 17 View: visual components, visual interface Code for activity package org.example.helloAndroid; import android.app.Activity; import android.os.Bundle; CS300 public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Understanding: Hello Android 18 Resources: stored in res Drawable, layout, values CS300 and