Android Mobile Device Programming  Educational Consultancy

Android Mobile Device Programming Training Services

Android OS Mobile Devices

Java Training Sitemap

Submit Java Questions Java Platform and Application Development Java Schedule
Definition of Service Delivery Medium Web-based Training Services
Android Mobile Device Programming Application Development
Operational Challenge Development Environments and APIs Android IDE Tools
Client Requirements Android Applications Best Practices and Guidelines
Copyright Acknowledgement

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.
Best Practices and Guidelines

SYS-ED staff and CETi technology partners have been testing code and evaluating white papers in conjunction with verifying best practices and guidelines.

  • Performing signature verification tasks on a server.
  • Utilization of secure random cryptographic nonces.
  • Understanding and designing touch mode.
  • Support interaction between applications.
  • Enable and configure StrictMode within an application.

Copyright Acknowledgement

Android is a registered trademark of Google Corporation.
Java is a registered trademark of Sun Microsystems, Inc. and Oracle America, Inc.
Computer Education Techniques makes no representations of ownership on the software reviewed in this technology assessment. It is aggregating information in the public domain and performing an independent review of mobile devices: hardware, development platform, database, programming languages, and development tools. SYS-ED and websites are being developed for prototyping and demonstrating mobile website and development platforms.