In this Product How-To article, Mentor Graphics’ Philip Burr provides a few tips to developers who want the low development cost that a standard such as Android provides, but want to differentiate their designs from competitive devices using the same platform.
Android is a game changer in the industry and many companies are planning to adopt it for their next generation of embedded systems. However, many embedded devices based on Android all start to have the same look and feel over time. So how does an embedded designer differentiate their Android-based device?
This article looks at ways a designer can create a feature-rich, compelling user interface in a fraction of the time when compared to conventional UI development methods.
By clearly delineating the line between the graphical UI and embedded application, the UI and application can be quickly and independently developed, allowing the greatest flexibility in a project life cycle.
The article details a process for creating a user interface and even customizing a UI so that OEMs can differentiate and address the needs of a specific target market – all without changing the code.
Differentiation, Differentiation, Differentiation
The rate of adoption of Android as the platform of choice by device OEMs for smart phones and tablets has been amazing. What’s also amazing is the rate and diversity of adoption of Android outside of tablets and smart phones – from ski goggles to TVs, Android is finding its use in many embedded applications.
The one thing that unites mobile and non-mobile OEMs alike is the need to ensure that their products are different (and better) than their competitors. Android is a great enabler, but is not a differentiator, and device OEMs are looking to the UI to help them make their product stand out in a highly competitive and crowded marketplace.
The Importance of UI
So why are device manufacturers concentrating on the UI? To help answer this it’s best to consider two types of product areas: mobile and non-mobile. In the mobile space (and I will include tablets in this definition), OEMs need their customers to know that the platform being used is Android, however, they also need to offer something that makes Android stand out.
OEMs can go only so far with industrial design and price; consumers are looking for more and given that the display and hence the UI offers the biggest real estate on the device, the user experience is crucial to the product and to building a brand name.
In the non-mobile space, device manufacturers have no choice but to change the Android UI into a form that matches the device – trying to reuse a UI that was intended for a small touch screen for an Android-based TV product just doesn’t work.
In addition, as user expectations of UI increase, device manufacturers in many vertical markets are under pressure to offer their customers a far more compelling user experience.
One of the other main factors in this mix is the rapid increase in the capability of hardware – CPUs continue to get faster and many processors now have a graphics processing unit (GPU) alongside the traditional CPU.
This GPU provides the graphics processing power that allows very rich sophisticated UIs which utilize techniques such as animated transitions, complex lighting, 3D objects and depth, textures, and more. UI designers know that it’s often the subtle use of these techniques that result in the perception of a quality UI.
How to Get These UIs
It’s all very well stating that devices need great UIs, and that processors have enough power to process the graphics for great UIs, but any UI software engineer knows that without the right tools, creating these UIs by writing software is going to take a lot of time and effort.
They also know that it will likely result in a UI that is fixed and hard to reconfigure for different markets or products. Some may think that the Android UI framework is the answer – after all it’s possible to create new UIs in Android.
Unfortunately not; while it is possible to create new UIs in Android, UIs are created from the same fixed widget and control set and all have the standard “form-like” look and feel (as well as being hard-coded).
The types of customizations possible include changes to boot animations, personalized wallpapers and/or icons. Swappable themes are introduced in Android, but the developer has very little chance to create or radically customize these themes without having serious software experience.
To do anything more compelling, such as creating a new menu or completely changing the look and feel of a menu system, is not within the offering of the Android SDK today.
The answer to this problem is to use a tool in which a UI can be quickly and easily created through a drag and drop approach and an associated engine that “runs” the UI created by the tool (which taps into the full capability of the GPU or CPU when a GPU isn’t present).
The key thing about such a UI tool and engine is that any application that uses this UI can continue to be written in Java running on the Dalvik VM, and can access the full functionality of the Android framework.
The good news is that by separating UI and application logic and by having a simple interface between the application logic and UI, Java applications can continue to be written in the normal way and leave the presentation of the application to the UI layer.
The further (and important) benefit of this approach is that the UI can be quickly and easily changed (“re-skinned”) entirely in the tool, and without touching the application code.
This makes it very easy to completely change the UI to meet different market requirements (e.g. high-end product with a GPU to a low-end product without a GPU) or the requirements of different geographies. It would also allow the UI to be developed in parallel to the application for an efficient development process.
A good tool would allow the OEM the possibility of providing a user a choice of UI “themes”, or even to download new themes after-market (and without having to download the entire application).
One example of a tool is the Inflexion UI technology, used for UIs across a whole range of verticals including smart phone, tablet, automotive, TV, medical and industrial.
It conveniently solves the problem of similar look-and-feel Android UIs by enabling rapid customization of the UI. It delivers a distinctive look and feel to any Android product – without requiring the embedded developer to understand low-level graphics APIs.
This type of Android UI tool enables design teams to create terrific new UIs for applications and home screens by using a visual drag and drop method. It allows rich visuals (including 3D animation, sophisticated lighting, and shader effects) to be implemented within minutes.
So how does this work? The standard Inflexion UI Engine is integrated within Android and interfaces to public APIs helping to ensure that there is minimal impact with new versions of Android.
This “engine” sits alongside other system libraries and interfaces to the OpenGL/ES library (for 3D rendering). On platforms that include a 3D accelerator, Inflexion will be able to take advantage of that accelerator with no additional effort.
If there is no supported accelerator, 3D effects will still be possible using software only. Moving up to the Application Framework, Inflexion provides a lightweight Java framework that exposes the functionality of the Inflexion Engine so that it can be used by Java applications.
An Inflexion-based application behaves like a standard Android application so that notifications, status bar, and so on, can be used as normal, and it does not affect any of the other applications such as those downloaded from the Android Market, Google’s application store.
The UI on Android has become a key differentiator for Android products – whether Android is exposed to the user (like a smart phone or tablet) or hidden (like a TV or automotive infotainment system). Unfortunately, the Android framework does not make it easy for an OEM or ODM to create the level of differentiated and quality UI that their customers require.
The good news is that there are user interface development tools that allow quality and visually rich UIs to be created quickly and easily through a simple drag and drop approach.
As Android continues to become the defacto development platform for embedded designers, such tools will only become more critical to successful UI differentiation and development.
Phillip Burr , Inflexion and Mobile product marketing director at Mentor Graphics Embedded Software Division is responsible for Mentor’s graphical user interface product line and for setting strategy within the mobile space. He holds a Masters Degree and a First Class Bachelor of Engineering Degree in Electronics, Communications and Computer System Engineering from the University of Bradford, UK.