|
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,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 weak or imperfect communication services and exploring the features of the device. The code is developed from the Android API: data storage, networking, telephony, location-based services, multimedia, graphics, and hardware.
The following issues have been researched:
-
The setup of the SDK in order to prepare a development environment, ensure that a computer meets the system requirements.
-
Using the Eclipse Development Environment for Java to develop and debug Android applications on the emulator and handsets.
-
The Android SDK featureset and how to develop applications.
-
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 optional 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
CETi staff and Technology Partners have been evaluating the major development environments:
|
Eclipse Java IDE |
Eclipse JDT Plug-in
|
|
WTP: Web Tools Platform |
Java SE Development Kit |
|
Android SDK |
ADT Plug-in for Eclipse |
|
NDK Tools Revisions |
SDK Tools Revision |
Android IDE Tools
and Development Environments
| 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. |
| 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. |
Client Requirements
These are the specifications that SYS-ED staff and CETi Technology Partners are evaluating and prototyping code.
|
|
|
|
|
|
|
|
- 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 is shut down and then restarted.
|
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.
- WebView displays 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.
|
|
|
|