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
Android OS : Core Concepts Dr. Jeyakesavan Veerasamy Sr. Lecturer University of Texas at Dallas [email protected] Agenda • • • • Introduction to Android devices Environment overview Android concepts Application components – Activities, Services, Content providers, Broadcast receivers • “Hello” application • Summary Development Environment • • • • Java Development Kit (JDK) Eclipse IDE Android Development Tools (ADT) plug-in SDK starter package – Platforms (1.0, 2.0, 3.0, 4.1, …) – Tools (debug, …) Android SDK Eclipse JDK Reference: http://developer.android.com/sdk/installing.html ADT Plug-in Development Process for Android Applications Android Architecture Android Runtime Environment • Dalvik VM for each application • common Linux kernel x.class JRE y.class APP APP VM VM … Linux kernel Basics: UNIX security • compare it with Windows security Application Security • Android operating system is based on multiuser Linux system. • Each application is treated as a different user. Each application uses unique Linux user ID. • Every application runs as a Linux process. Application security … • It's possible to arrange for two applications to share the same Linux user ID, in which case they are able to access each other's files – can run as same Linux process and share the same VM (applications use same certificate). • An application can request permission to access device data such as the user's contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. All application permissions must be granted by the user at install time. Processes & Threads • Every application runs in its own process and all components of the application run in that process, by default -- UI thread • Any slow, blocking operations in an activity should be done in a new thread, to avoid slowing down the user interface. – If application does not respond in 5 seconds, "application not responding" (ANR) dialog appears. Process lifecycle: Importance Hierarchy • • • • • Foreground process Visible process Service process Background process Empty process “Lower importance” tasks may be killed by Android – why? How to select a lucky one from a pool? IPC • Remote procedure calls (RPCs) Android Application components • Activities - front-end UI screens • Services – back-end support • Content providers – application data – SQLite, web or SD card • Broadcast receivers – handle system events Activitating Components: Intent Basics: Data Exchange A2 A1 A4 A3 Basics: Data Exchange A2 A1 A4 A3 • Binary or text data XML or JSON … • Independent data checkers tools available. Sample XML data file Text format: Belgian Waffles, 5.95, two of our famous Belgian Waffles with plenty of real … , 650 Strawberry Belgian Waffles, 7.95, light Belgian waffles covered with …., 900 Application info: Manifest file • Declare components • Declare application requirements • Application Resources? Activity lifecycle: 3 states • Resumed or Running • Paused • Stopped State machine Code Service Lifecycle User Interface Design XML Layouts • Declare UI elements in XML. Android provides a straightforward XML vocabulary that corresponds to the View classes and subclasses. • Instantiate layout elements at runtime. Your application can create View and ViewGroup objects (and manipulate their properties) programmatically. Application Resources Building & running Android app Program to say “Hello!” Native Development Kit (NDK) • Use C/C++ for development • primarily for performance critical components Summary • Clean, sophsticated, yet reasonably simple. • Android requires strong Java skills – heavy use of derived classes (inheritance). • Development: Java code & XML definitions • Reference: http://developer.android.com/sdk/installing.html • Install Android development environment and play with a few examples or try your own ideas! • Marketable skill in the industry! More references • http://www.vogella.de/articles/AndroidIntent/article.html • http://developer.android.com/resources/browser.html?tag=sa mple Questions & Answers [email protected]