Kaleem Nawaz Khan Lecturer Department of Computer Science
University of Engineering and Technology, Mardan
Today’s Agenda ØAndroid Architecture ØAndroid Developer Community ØRequired Tools ØAndroid: API level VS. Android version Android Architecture Android Architecture Linux kernel ØAt the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. ØThis provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc. ØAlso, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware. Android Architecture Libraries ØOn top of Linux kernel there is a set of libraries including: Øopen-source Web browser engine WebKit and well known library libc, ØSQLite database which is a useful repository for storage and sharing of application data, Ølibraries to play and record audio and video, and ØSSL libraries responsible for Internet security etc. ØIt also provides Java-based libraries that are specific to Android development Øandroid.view − The fundamental building blocks of application user interfaces. Øandroid.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc. Øandroid.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications. Android Architecture Android Runtime ØThis section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android. ØThe Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. ØThe Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine. ØThe Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language. Android Architecture Application Framework ØThe Application Framework layer provides many higher-level services to applications in the form of Java classes. ØApplication developers are allowed to make use of these services in their applications. ØThe Android framework includes the following key services: ØActivity Manager − Controls all aspects of the application lifecycle and activity stack. ØContent Providers − Allows applications to publish and share data with other applications. ØResource Manager − Provides access to non-code embedded resources such as strings, color settings and user interface layouts. ØNotifications Manager − Allows applications to display alerts and notifications to the user. ØView System − An extensible set of views used to create application user interfaces. Android Architecture Applications ØYou will find all the Android application at the top layer. ØYou will write your application to be installed on this layer only. ØExamples of such applications are Contacts Books, Games etc. Android Developer Community ØThe Android Developers Blog (https://android-developers.googleblog.com/) provides a wealth of articles on Android development. ØGoogle Developer Training ØGoogle I/O Codelabs ØAndroid Testing Codelab ØGoogle Testing Blog Required Tools ØYou will be glad to know that you can start your Android application development on either of the following operating systems − ØMicrosoft Windows XP or later version. ØMac OS X 10.5.8 or later version with Intel chip. ØLinux including GNU C Library 2.7 or later. ØSecond point is that all the required tools to develop Android applications are freely available and can be downloaded from the Web. Following is the list of software's you will need before you start your Android application programming. ØJava JDK (Java Development Kit) latest version ØAndroid SDK (Software Development Kit) Required Tools ØJava JDK ØThe JDK allows developers to create Java programs that can be executed and run by the JVM and JRE. ØThe JVM is the Java platform component that executes programs. ØThe JRE is the on-disk part of Java that creates the JVM. ØAndroid SDK ØThe Android SDK is a collection of software development tools and libraries required to develop Android applications. ØIt is a software development kit developed by Google for the Android platform. ØIt allows you to create Android apps, and you don't need to be an expert to use it. ØAndroid SDK can be run stand-alone (by using command-prompt), or with the other IDE like Eclipse or Android Studio Android: API level VS. Android version ØThe Android platform provides a framework API that applications can use to interact with the underlying Android system. The framework API consists of: ØA core set of packages and classes ØA set of XML elements and attributes for declaring a manifest file ØA set of XML elements and attributes for declaring and accessing resources ØA set of Intents ØA set of permissions that applications can request, as well as permission enforcements included in the system ØEach successive version of the Android platform can include updates to the Android application framework API that it delivers. ØAPI is for development, so the changes in new API version are more "inside". But new version of Android usually adds more features for users, that are "visible".