Operational Challenge
Organizations are being challenged to develop applications for utilization on mobile devices and integration into its existing information technology infrastructure.
The requirement is to develop apps using the Android platform for the leading mobile and wireless manufacturer devices: T-Mobile G1, Galaxy, HTC Nexus, HTC Evo4G, and Motorola Droid. The foundation for the mobile programming are principles of application design applied to creating effective user interfaces, working with limited memory
resources, having inconsistent or imperfect communication services and features specific to the device. The code is developed from the Android API: data storage, networking, telephony, location-based services, multimedia, graphics, and hardware.
These issues have been researched:
- The setup of the SDK to prepare a development environment, ensure that a computer meets the system requirements.
|
- Install the SDK and the ADT Plugin for Eclipse, and add the Android platforms and other components.
|
- The user interface element and the drawing and animation abilities provided in the Android SDK.
|
- Differences between the mobile development process in relation to that used with the client/server desktop.
|
- The hardware APIs which are available.
|
- How to design for and utilize notifications and services.
|
- Implementing quality assurance.
|
- How to package Android applications for deployment.
|
Development Environments and APIs
The Google Android SDK: Software Development Kit is used for developing mobile applications; the tools include a device emulator and virtual machine. The Android operating system facilities provide background processing, a rich user interface library, support for 2-D and 3-D graphics with OpenGL
libraries, access to the file system, and an embedded SQLite database. Android applications consist of reusable components used for archiving tasks. There are Google and third party tools and associated plug-ins that can be used for developing web resources.
| Eclipse Java IDE |
A development tool used to build and edit Java applications; it provides for validation, incremental compilation, cross-referencing, code assist, and XML editing. |
| Eclipse JDT Plug-in
|
Tool plug-ins which implement a Java IDE; it supports the development of a Java application including Eclipse plug-ins. |
| Java SE Development Kit |
Java Platform Standard Edition is used for developing and deploying Java applications on desktops, servers, and embedded environments. |
| WTP: Web Tools Platform |
Extends the Eclipse platform with tools for developing web and Java EE applications. It includes source and graphical editors for supporting the deployment, execution, and testing of
applications with a variety of languages, wizards and built-in applications, tools and APIs. |
| Android SDK |
Provides the API libraries and developer tools for building, testing, and debugging apps for Android. |
| ADT Plug-in for Eclipse |
A plugin for the Eclipse IDE that is provides an integrated environment for building Android applications. |
| NDK Tools Revisions |
Toolset which provides the capability to implement parts of an app using native-code languages such as C and C++. |
| SDK Tools Revision |
Downloadable component for which includes the complete set of development and debugging tools for the Android SDK. |
Android IDE Tools
The SDK tools are installed with the SDK starter package and used for creation an Android app. There is an emulator which simulates the functionality of an Android device. System images are loaded which represent the Android operating system with the software stack of the Android mobile device.
The tools provided include:
| Environment |
Functionality |
| IntelliJ IDEA 10 |
IntelliJ IDEA Community Edition has an Android development plugin; it is available in the free edition of IntelliJ IDEA starting with version 10. |
| Eclipse |
A multi-language software development environment comprising an IDE: Integrated Development Environment and an extensible plug-in system. |
| App Inventor for Android |
A development environment designed for the user without programming experience that is used to build an app for the Android operating system. |
| MOTODEV Studio |
Create new projects and Android classes using simple wizards. It economizes on entering repetitive code by generating source from XML layout files. |
| Titanium |
A free open source application development platform which provides the capability to create native mobile, tablet, and desktop application. It assumes web skill experience with: JavaScript, HTML, CSS, Python, Ruby, or PHP. |
| Tool |
Functionality |
| Dalvik Debug Monitor Server - ddms |
Used for debugging Android applications. |
| Dmtracedump |
Generates graphical call-stack diagrams from trace log files. The tool uses the Graphviz Dot utility for creating the graphical output. The Graphviz will be needed to be installed prior to running dmtracedump. |
| Hierarchy Viewer - hierarchyviewer |
Used to debug and optimize an Android application's user interface. |
| hprof-conv |
Converts the HPROF file generated by the Android SDK tools to a standard format that can be reviewed in a profiling tool. |
| Layoutopt |
Used to analyze an application's layouts in order to that they can be optimized. |
| Mksdcard |
Creates a disk image that can be used with the emulator to simulate the presence of an external storage card. |
| Monkey |
Runs on an emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as system-level events. The Monkey is used for stress testing applications under development. |
| Monkeyrunner |
Provides an API for writing programs that control an Android device or emulator from outside of Android code. |
| ProGuard |
Shrinks, optimizes, and obfuscates code by removing unused code and renaming classes, fields, and methods with semantically obscure names. |
| sqlite3 |
Access the SQLite data files created and used by Android applications. |
| Traceview |
Provides a graphical viewer for execution logs saved by an application. |
| Zipalign |
Optimizes .apk files by ensuring that all uncompressed data starts with a particular alignment relative to the start of the file. The Zipalign should always be used to align .apk files after they have been signed. |
Client Requirements
These are the specifications being applied to application and database design and prototyping code.
Display an image and allow the user to click on the image. The location on the image where the click has been invoked will determine the site that the redirect occurrs. Develop a simple application for the user to supply a criteria and the program extracts and presents the result table. SQLite is an open source project written in the C language which provides a general database layer. Android includes a thin layer to use SQLite from Java.
Allow the user to request an extract of an Oracle database to be stored and accessed on the phone using local storage. Provide a list of products on the smartphone which can be moved around the screen by finger movement and gestures. Avoid the issue of a user rotating the phone from portrait to horizontal mode and having the app shut down and restarted. Determine the sales tax based on the location of the phone.
Android Applications
SYS-ED courses and training programs utilize case studies and hands-on exercises to:
- Build the mobile client - form factors, local storage, connect to WiFi, and WebView.
|
- Use WebView for displaying web pages and speech control.
|
- Use services on the phone - data storage and manipulation, synchronization, capturing pictures, sound, and location.
|
- Connect with services - authentication, service design, filtering, and notifications.
|
- Identify and appreciate the differences between a web app and a mobile web page.
|
|
|
|
|
|