The Android mobile operating system by Google has been primarily designed for devices such as touchscreen mobiles and tablets, with specialised versions for TV (Android TV), cars (Android Auto) and wearable devices (Android Wear). It is one of the leading mobile operating systems across the world. Its source code has been released under an open source licence. The application store, Google Play, provides the platform to upload/download Android mobile apps. Features supported by the Android platform are:
- Bar code reader
- OCR (optical character recognition) integration
- NFC (near field communication) wallets
- LBS (location based services) navigation, directions
- Map view, Geo tracking/tagging/fencing
- Push notification GCM (Google Cloud Messaging), C2DM (Cloud-to-Device Messaging)
- Data sharing across applications using a content provider
- Relational database support – SQLite
By using Android supported features, distinctive applications can be implemented, such as:
- Interactive UI based charting, reporting applications
- Relational database-intensive applications, high performance SQLite based applications
- Native widget development
- UI customisation for rich UI and animation based applications with features like wise view, drag-and-drop, list reordering, etc
- Native application development using NDK (native development kit)
Device form factors
Evolving hardware capabilities are the major cause for rapidly evolving mobile devices, and their availability in diverse form factors. Android devices are available on the following form factors:
- Smartphones: These mobile computing devices generally come with a screen size less than 13.5cm (5.3 inches) and have made PDA devices obsolete. They come with applications and features to manage personal and professional work. The latest hardware capabilities of smartphones also incorporate high computing processors, storage and memory units.
- Tablets: These touchscreen devices have screen sizes that vary from 17.8cm to 25.4cm (7 inches to 10 inches). They are mini computers with capabilities like an Internet connection, applications, data storage, video/audio players, etc.
- Phablets: These devices generally have screen sizes ranging from 13.5cm to 17.5cm (5.3 inches to 6.9 inches). The word phablet has been coined for devices that are a combination of smartphones and tablets.
It is essential to have fine-grained and well-defined strategies for how devices are used in enterprises. Emerging hardware and software capabilities of Android mobile devices have led to diverse device distribution gateways. Enterprises can select and plan according to their needs and security level enforcement strategies. Each device distribution approach requires a technical support system, application/device management plan, admin console for administration activities, and policies that need to be enforced. Popular enterprise device strategies are BYOD, CYOD and COPE, which are described below.
BYOD: Bring Your Own Device (BYOD) is a popular device strategy with enterprises, wherein users are allowed to access their own personal devices for enterprise applications. As enterprise data and applications are accessed via users personal devices, this strategy requires well planned and enforced security to protect the data.
CYOD: Choose Your Own Device (CYOD) is a limited version of BYOD. In this device strategy, enterprises can support selected Android devices for application access, and users are requested to choose a device from a proposed device list. This strategy also demands security mechanisms and policies to protect enterprise data on Android devices.
COPE: The Corporate Owned Personally Enabled (COPE) device distribution policy is the way to ensure high levels of security for enterprise data. This is also one of the recommended ways for enterprises, if data is very sensitive, and its loss leads to high risks. Enterprises can use customised COPE Android devices that come with high security mechanisms and limited access for personal usage.
Mobile platform customisation
Android mobile platform customisation is used for fine grained or tailored control of mobile devices. Corporate owned devices can be enterprise-ready, customised Android mobile platform devices. These devices can be managed by an admin console to enforce enterprise policies on devices. Enterprise-ready customised platforms come embedded with controls for the devices, applications and role based access, which enforce high levels of security management. Android mobile platform customisation can leverage the following aspects:
- Custom branding and UI/UX
- Add or remove device features from the platform
- Integration with third party hardware devices
- Install, remove or upgrade applications on the platform
- Platform porting and upgrades
- Integrate legacy code
- Firmware-over-the-air (FOTA) installation or upgrades
Such mobile platform customisation catalysts can also be leveraged by OEMs (original equipment manufacturers), either for the enterprise or the consumer market.
Android mobile applications can be broadly divided into two types system apps and third party apps. System apps are those that come inbuilt with the Android mobile operating system or platforms on the devices, while third party apps are those that are implemented and installed by the developer community.
System apps: Android applications that are implemented with the NDK (native development kit) and can be integrated with mobile platforms or OSs are system apps. These are efficient enough to program applications at hardware level interactions and optimisations like memory, process, execution, etc. Applications provided, by default, from the Android platform on devices are system apps, which are either implemented by the platform community or partner vendor. For example, Android NDK supports systems app implementation via C/C++ programming language, while Android SDK (software development kit) supports native application implementation via the Java programming language.
Third party apps: There are several development approaches for implementing third party Android mobile applications. These can be classified into three types:
- Native apps
- Web apps
- Hybrid apps
Native apps: These are also known as thick client applications, which are implemented via Android mobile device platform native technologies. Here are the imperative characteristics of Android mobile native apps:
- An executable file installs and resides at the mobile device
- Executed directly by the mobile operating system
- Able to use mobile platform or operating system APIs
- Distributed via a platform-specific app store or via an enterprise distribution mechanism
Web apps: These are also known as thin client applications, and are implemented with Web technologies (HTML, CSS and Java Script). Some imperative characteristics for mobile Web apps are:
- Apps are executed by the Android device browser
- Apps can leverage only limited device features for application implementation
- They dont carry any executable file that can be installed or removed from Android mobile devices
Hybrid apps: Hybrid applications are neither native apps nor Web apps. They are implemented with Web technologies and packaged as applications for distribution. These apps can access native device features and APIs. Basically, a hybrid app is a native mobile application, which hosts a Web browser control within its main UI screen. Here are the imperative characteristics of an Android mobile hybrid app:
- UI implementation using Web technologies (HTML, CSS and Java Script)
- Apps are capable of using Android mobile platform features
- An executable file installs and resides at the mobile device
- Apps can be distributed via the Android platform application store (Google Play) or an enterprise distribution mechanism
Figure 2 depicts an analogy of a hybrid application. Broadly, it has two layers the container and the user interface (UI). The container is implemented with Android native mobile technology, whereas the UI is implemented with Web technologies (HTML, CSS and JS).
There are many frameworks and tools for Android mobile hybrid application development. The main selling point for hybrid applications is cross-platform development. The following are the features which can be leveraged with hybrid applications:
- Integration of open source frameworks with HTML5
- Liquid layouts for multi-screen UIs
- Local storage, multimedia handling, semantics and forms, graphics, etc.
- A single code based architecture model for multi-platform presentations
- Hybrid framework that bundles the HTML5 based view layer, with native platform containers, to create deployable builds
There are other distinctive ways of information communication in Android mobile devices, like SMS and IVR (interactive voice response).
SMS based apps: This is the short-code based SMS application. In this application, users are required to send SMSs in specified short-code to avail services. These kinds of applications are primarily driven by network operators and the SMS server, to extend the application services for feature phones.
IVR apps: IVR applications are used for automated interactions with callers, typically, in the customer support department to offer services 24×7. These applications are multi-lingual in order to serve customers across heterogeneous regions. IVR apps are driven by network operators and IVR servers. They dont require any additional client application to be installed on Android mobile phones.
Application layer structure
Android mobile applications incorporate multiple layers in one application codebase.
Figure 1 illustrates three distinctive layers.
- UI layer: This represents the UI/UX and view implementation for Android mobile applications. Android platform has multiple ways of implementing the UI layer as hybrid/Web or native (Android Activity). The hybrid and Web application UI layer is implemented with HTML, CSS, JS and other UI frameworks/tools (JQuery, JQueryMobile, LESS, Bootstrap, etc). This is the layer where platform-specific UI/UX guidelines are required to be implemented as per application features.
- Business logic layer: This layer is responsible for core logic and implementation handling for applications. It also communicates with the server for the required data and information. Android-recommended implementation approaches and the respective design patterns can be used to implement application features. In case of cross platform development, it is recommended to harness the common business logic layer among platform-specific builds.
- Android native layer: This layer takes care of platform-specific capabilities (camera, database, HTTP communication, persistent store, etc) to be used by Android mobile applications. This layer is not accessible with Web application implementation. This is the reason Web applications possess limited access to mobile platform capabilities.
Mobile device management
An enterprise application must provide data security and real-time management of the Android application/device. Mobile device management (MDM) is the approach for user device management of data security and real-time device management. The following are some of the imperative features offered by MDM:
- Device access management
- Managing installed applications
- Enabling/disabling device features/flows
- Identifying and managing security controls
- Real-time device monitoring/tracking locations
- Remote locking/wiping of devices
- Policy management
MDM solutions or products possess both server-side and Android mobile client-side handling. Server consoles have features to manage and control devices with their respective configurations. These configurations or settings are communicated to Android client devices via their respective protocols. And the relevant client implementation takes care of configuration management and other device level security mechanisms.
Mobile application management
Mobile application management (MAM) caters to an enterprises data security and application management needs. As the term indicates, MAM emphasises on application level management, rather than management at the device level. The emergence of BYOD/CYOD has led to the development of MAM, because users prefer to not carry enterprise MDM systems on their personal devices. However, enterprise application-specific security mechanisms and policies can be accepted by users. The following are some of the imperative features offered by MAM:
- Application access management
- Managing the applications life cycle
- Enabling/disabling application features/business flows
- Ensuring application data security while data is at rest
- Real-time application monitoring
- Data wiping while on the go
- Remote resuming/suspending of applications
This solutions approach requires a server-side system and the respective Android client-side handling to achieve the desired features. A server-side system, along with the admin console and the client at the device, communicates via ubiquitous protocols. These protocols provide controls at the server for managing enterprise applications.
Comparing native, Web and hybrid apps
The amalgamation of best-of-breed technologies is known as a mobile hybrid application. Figure 3 illustrates hybrid vs native vs Web applications on a scale of time and cost.
Availability of diverse mobile platforms is one of the challenges for any enterprise application. Cross-platform support is a must for any mobile application today. Along with this, the application is also expected to cover platform-specific diverse form factors. This diversity in mobile devices and technology is what has resulted in mobile hybrid applications becoming a preferred implementation approach to application development.
 Enterprise Mobility Breakthrough, <http://www.amazon.com/Enterprise-Mobility-Breakthrough-Beginners-Guide/dp/1482844087, https://books.google.com/books/about/Enterprise_Mobility_Breakthrough.html?id=_sY5rgEACAAJ&hl=en> 09th Mar, 2015.
 Android, <https://www.android.com/> accessed on 18th November 2015.
 Android, <http://developer.android.com/index.html> accessed on 18th November 2015.