Mobile Platform Development
1 Android
Based on various sources, Android continues to lead the market of Smartphones in worldwide. In 2011, the number of Android OS devices sold was about 76 million units in worldwide.
From Android developer website, “Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.” [18]. Android has some features as follows: 1) Application framework 2) Dalvik virtual machine 3) Integrated browser 4) Optimized graphics 5) SQLite 6) Media support 7) GSM telephony 8) Bluetooth, EDGE, 3G, and Wi-Fi 9) Camera, GPS, compass, and acceleromenter 10) Rich development environment.
Figure above shows the major component of the Android operating system. All application in Android is written using Java programming language. Underlying all application is a set of services and systems which is also referred as application framework. As we can see from figure 15, it includes activity manager, window manager, content providers, view system, package manager, telephony manager, resource manager, location manager, and notification manager. Android includes a set of C or C++ libraries that is exposed to developers through the Android application framework. Some of the core libraries are 1) Surface manager 2) Media framework 3) SQLite 4) OpenGL ES 5) FreeType 6) WebKit 7) SGL 8) SSL 9) libc. Android includes a set of core libraries and Dalvik virtual machine. Core libraries provide most of the functionality available for java programming language. The
Dalvik virtual machine is register-based, and it executes files in the Dalvik executable format (.dex). It relies on the Linux kernel. The Linux is used for core system services, and the kernel acts as an abstraction layer between the hardware and the software stack.
1.1 Android SDK
SDK is stands for Software Development Kit. It allows developers to create an application for a specific platform. Therefore, android SDK enables programmer to create an application for android platform, and it includes an emulator, one or more API, development tools, sample projects with source code, and required libraries to build android applications which is written using the Java programming language.
“The Android SDK tools compile the code – along with any data and resource files – into an Android package, an archive file with an .apk suffix. All the code in a single .apk file is considered to be one application and is the file that Android-powered devices use to install the application. Once installed on a device, each Android application lives in its own security sandbox. In this way, the Android system implements the principle of least privilege. That is, each application, by default, has access only to the components that is requires to do its work and no more.
This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.” . On every Android Application, application components are the essential part. Each component has its own role in the application behavior. Based on source, there are four types of application components namely 1) Activities which represents a single screen with a user interface 2) Services that runs in the background to perform work 3) Content providers that manages a shared set of application data 4) Broadcast receivers that responds to system-wide broadcast announcements. Activities, services, and broadcast receivers are activated by an asynchronous message called an intent, while content providers is activated when targeted by a request from a ContentResolver. The manifest file must declare all application components and requirements.
To help developers develop their mobile applications for the Android platform, the Android SDK provides a variety of tools. “The tools are classified into two groups: SDK tools and platform tools. SDK tools are platform independent and are required no matter which Android platform you are developing on. Platform tools are customized to support the features of the latest Android platform.”.
1.2 ADT Plugin
ADT stands for Android Developer Tools. “ADT is a plugin for Eclipse that provides a suite of tools that are integrated with the Eclipse IDE. It offers you access to many features that help you develop Android application quickly. ADT provides GUI access to many of the command line SDK tools as well as a UI design tool for rapid prototyping, designing, and building of your application’s user interface. Because ADT is a plugin for Eclipse, you get the functionality of a well-established IDE, along with Android-specific features that are bundled with ADT. The following describes important features of Eclipse and ADT:
1) Integrated Android project creation, building, packaging, installation, and debugging
2) SDK tools integration
3) Java programming language and XML editors
4) Integrated documentation for Android framework APIs.”
1.3 AVD Manager
AVD stands for Android Virtual Device. “An AVD is an emulator configuration that lets you model an actual device by defining hardware and software options to be emulated by the Android Emulator.” . There are two ways to create an AVD, either using the graphical AVD Manager or using command line. An AVD consists of: 1) A hardware profile 2) A mapping to a system image 3) Other options 4) A dedicated storage area on your development machine. Users can create more than one AVD according to their needs.
1.4 Android Emulator
“The Android emulator is an application that provides a virtual mobile device on which you can run your Android applications. It runs a full Android system stack, down to the kernel level, that includes a set of preinstalled applications (such as the dialer) that you can access from your applications. You can choose what version of the Android system you want to run in the emulator by configuring AVDs, and you can also customize the mobile device skin and key mappings. When launching the emulator and at runtime, you can use a variety of commands and options to control its behavior.”. The Android emulator also supports many hardware features likely to be found on mobile devices, such as camera.
2 iOs
All Apple products (like iPhone, iPod touch, and iPad) use iOS as the operating system. iOS supports the development of two types of applications, that are native applications and web applications [26]. iOS manages the device hardware, ships with various system applications, and provides the technologies required to implement native applications. “The iOS SDK contains the tools and interfaces needed to develop, install, run, and test native applications. Native applications are built using the iOS system frameworks and Objective-C language and run directly on iOS. Unlike web applications, native applications are installed physically on a device and are therefore always available to the user, even when the device is in Airplane mode.”. Some other key components of the SDK are Xcode tools (includes Xcode and instruments), iOS simulator, and iOS developer library.
Figureshows that iOS acts as an intermediary between the underlying hardware and the applications that appear on the screen. The implementation of iOS technologies can be viewed as a set of layers as shown by figure 17 below.
The lower layer is the fundamental services and technologies where all applications rely on. While higher-level layers contain more sophisticated services and technologies.
The highest layer is the Cocoa Touch layer. “The Cocoa Touch layer contains the key frameworks for building iOS applications. This layer defines the basic application infrastructure and support for key technologies such as multitasking, touch-based input, push notifications, and many high-level system services. When designing your applications, you should investigate the technologies in this layer first to see if they meet your needs.”. Some key technologies available for this layer are storyboards, document support, multitasking, printing, data protection, apple push notification service, local notifications, gesture recognizers, file-sharing support, peer-to-peer services, standard system view controllers, and external display support. The frameworks provided by this layer are
1) Address book UI framework
2) Event kit UI framework
3) Game kit framework
4) iAd framework
5) Map kit framework
6) Message UI framework
7) Twitter framework
8) UIKit framework.
After Cocoa Touch layer, the next layer below it is the Media layer. “The Media layer contains the graphics, audio, and video technologies geared toward creating the best multimedia experience available on a mobile device. The technologies in this layer were designed to make it easy for you to build applications that look and sound great.” [28]. Several technologies that can be used to manage application’s graphical are core graphics (also known as Quartz), core animation (part of Quartz), core image, openGL ES and GLKit, core text, image I/O, the assets library frameworks. The audio technologies that supported by iOS are AAC, Apple Lossless (ALAC), A- law, IMA/ADPCM (IMA4), linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, and AES3-2003. IOS supports movies file with the .mov, .mp4, .m4v, and .3gp filename extensions. The frameworks provided by this layer are 1) Assets library framework 2) AV foundation framework 3) Core audio framework 4) Core graphics framework 5) Core image framework 6) Core MIDI framework 7) Core text framework 8) Core video framework 9) Image I/O framework 10) GLKit framework 11) Media player framework 12) OpenAL framework 13) OpenGL ES framework 14) Quartz core framework.
Layer beneath the Media layer is the Core Services layer. “The Core Services layer contains the fundamental system services that all applications use. Even if you do not use these services directly, many parts of the system are built on top of them.”. Some key technologies available at this layer are iCloud storage (there are two types of features: iCloud document storage and iCloud ket-value data storage), Automatic Reference Counting (ARC), block objects, Grand Central Dispatch (GCD), in-app purchase, SQLite, and XML support. The frameworks provided by this layer are 1) Accounts framework 2) Address book framework 3) CFNetwork framework 4) Core data framework 5) Core foundation framework 6) Core location framework 7) Core media framework 8) Core telephony framework 9) Event kit framework 10) Foundation framework 11) Mobile core services framework 12) Newsstand kit framework 13) Quick look framework 14) Store kit framework 15) System configuration framework.
And the lowest layer is the Core OS layer. “The Core OS layer contains the low- level features that most other technologies are built upon. Even if you do not use these technologies directly in your applications, they are most likely being used by other frameworks. And in situations where you need to explicitly deal with security or communicating with an external hardware accessory, you do so using the frameworks in this layer.”. The frameworks provided by this layer are 1) Accelerate framework 2) Core Bluetooth framework 3) External accessory framework 4) Generic Security Services (GSS) framework 5) Security framework
0 Response to "Mobile Platform Development"
Post a Comment