All about Android
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. With rich functionality, flexibility, extensibility, and developer-friendly openness, the Android Open Source Project (AOSP) has been widely adopted not only by smartphones but by other portable and embedded devices like tablet computers, TVs, set-top boxes, among others. To enable development of applications for the platform, the Android SDK are available which provides the tools and APIs necessary to begin building applications using the Java programming language.
Before embracing Android, users need to understand the risks and factors that need to be taken into consideration to build a commercial solution based on the Android Open Source Project (AOSP):
1. Internal complexity of Android:
Because the Linux kernel is in the General Public License (GPL), Android consists of about 185 different subcomponents that are written under about 19 different open source licenses. It is a big challenge to manage the hundreds of components, multiple licenses, and associated obligations.
The AOSP is continually evolving—five versions have been released since Cupcake version 1.5 in 2009. For each release, hundreds of branches are added into more than 200 different git repositories for new features, bug fixes, and patches by Google and the community. In-house development running in parallel with AOSP’s fast-paced releases and updates challenges the successful testing and validation of Android products.
2. External complexity of Android:
For mobile phones or embedded devices, multiple hardware choices are available in the market today: Intel architecture chipsets vs. ARM architecture chipsets, dual processor design vs. single processor design, single core vs. dual core, and PowerVR graphics vs. Adreno graphics. Additionally, different hardware choices among cameras, LCD controllers, modems, bluetooth devices, GPS devices, Wi-Fi devices, and power management integrated circuits (PMICs) make it even more complex.
With this many choices of hardware components—the target hardware designs vary according to specific purpose—a lot of effort and challenges are involved to adapt, optimize, and validate Android on a selected hardware platform to stay within budget and on schedule.
3. Lack of commercial readiness:
Android is designed for the handset platform, combining a mobile operating system, GSM/CDMA stack, middleware, plus browser and application environment. However, as an open source project, it is far away from being commercial ready. More research and development are still needed to accommodate additional embedded devices. Even as a handset platform, some important functions are still missing. Further, as an open source project, it is neither documented nor validated.
Additionally, the AOSP lacks the roadmap, support, maintenance, and customization available with other platforms.
The above challenges necessitate the availability of resources that can help developers seek a faster way to innovate and differentiate the risks. Given the need and years of experience with Android, Wind River has introduced a commercial Android platform that combines the innovation of Android with the predictability of a commercial software platform. The Wind River Platform for Android was developed for operators and handset manufacturers who are regularly challenged to consistently achieve time and quality performance metrics as Android devices are brought to market.
Key Features offered by the platform are:
Accelerated Boot Support: Wind River optimized Android’s Linux kernel to speed up the boot process and provide determinism and real-time performance. Enhancements focus on optimizing the boot loader, the Linux kernel, and the user space, including footprint reductions, boot sequence adjustments, and script changes. The accelerated boot support enhancements help support an “instant-on” capability and help minimize power consumption during the boot-up process.
SyncML Support: Wind River Platform for Android supports SyncML, an open protocol for synchronizing data sets such as contacts, images, and calendar entries. SyncML can synchronize data between a mobile device and a remote server.
CTS-compliant, tested, validated, documented: The Platform is a roadmap-driven, fully validated, tested, Android Compatibility Test Suite (CTS)- compliant, and globally supported and maintained Wind River platform. Releases are scheduled to be available quarterly or to coincide with public Android SDK drops. Each release is validated through a rigorous process that combines hundreds of manual test cases and our market-leading Wind River Framework for Automated Software Testing, with tens of thousands of automated test scenarios (including the latest CTS).
Multi-windows Support: Supports multiple windows with independent movement and layout, theming, and behavioral fine-tuning.
USB On-the-Go Support: Wind River’s Platform for Android is designed to work with and expand the ability of the Android operating system in ways that make it the OS of choice for the newest generation of mobile devices. One of the most innovative technologies is USB On-The-Go (USB OTG). This technology allows a device to act either as a USB host or USB peripheral device. With this technology in place, mobile devices will experience a new versatility and interoperability.
Mobile device operators struggle with a means of keeping firmware on their devices up to date. Firmware and device updates that rely on end users are seldom reliable. Wind River has partnered with Red Bend to deliver firmware-over-the-air (FOTA) updates to mobile devices. Devices running on Wind River Platform for Android employ Red Bend’s FOTA to make sure device operators can provide the most updated firmware to all their end users with an Open Mobile Alliance firmware update management object (OMA FUMO)-compatible, secure, and error-tolerable solution.
Testing very large open source software distributions such as Android containing thousands of packages is an onerous task. There are typically dozens of subsystems included in a distribution, with many applications built using those packages. Differences in device types, peripherals used, and user interface variations complicate the test and validation process. To properly validate the distribution, a number of tests are undertaken to get a holistic view including:
- Stress and stability
- Device driver
- User interface
- Board support packages (BSP)
- Version checking
Each of these types of tests needs to be performed as often as possible on each new release, and the results of these tests need to be reported and managed. Because test programs are pulled from so many different sources, and they all have diverse ways of being run and generating and reporting results, executing the tests and tracking and evaluating the test results can often become complicates, thereby delaying the entire testing process. The amount of information can be staggering, particularly when test cases have different reporting formats.
Wind River has developed a framework for Automated Software Testing -- Toolkit for Android. This enables customers to overcome the challenges of testing complex Android open source software distributions for mobile devices and automotive systems. Wind River FAST is another system for combining multiple test frameworks into a single meta-framework that can be run with “a single button press.” It helps automate, execute, and manage thousands of tests and their results. This tool makes executing tests much simpler because they are all wrapped in FAST scripts and run from the FAST graphical user interface (GUI) and an available command-line interface (CLI).
Each target may have a unique hardware configuration, peripherals, file storage systems, and so on. Tests that were developed for one device frequently need to be adapted to work on different devices. In addition, user interfaces (UI) that come with different devices are often changing. Even if the functionality behind the UI is the same, the developer or QA engineer must adapt tests to the different layouts and widget styles.
With Wind River FAST for Android, each individual test framework or application is encapsulated within a “wrapper” script executed by the FAST system. The results are all stored in a consistent manner in a centralized database. This provides a flexible and comprehensive system for handling large amounts of test results from heterogeneous test frameworks, and vastly simplifies the problem of wading through and comparing the various individual test reports. The database contains all test artifacts and logs from the original test programs, and additional metrics are collected.
Wind River FAST for Android can be thought of as a meta-test framework that can run other test frameworks and individual tests and this toolkit offers significant benefits to both developers and QA engineers.
- By Praful Joshi, Business Development Manager, Wind River, India. Reach him at firstname.lastname@example.org