Você está na página 1de 5

Embedded Software White Paper

HOW TO RAPIDLY CREATE AND CUSTOMIZE COMPELLING GUI s FOR ANDROID-BASED DEVICES
January 2010 ABSTRACT As the Android platform gains widespread adoption, its incumbent upon device manufacturers and network operators to find compelling and innovative new ways to differentiate one Android-based device from the other. Of course, there are the basic factors that influence the success of a handheld device such as price, functionality, ease-of-use, network carrier, and brand name recognition to name a few. But the devices graphical user interface (GUI) also has a direct impact on its success or failure. Unfortunately, differentiating a GUI usually requires significant engineering investment and while the Android platform does offer basic GUI functionality, the platform doesnt go far enough to facilitate a truly unique and one-of-a-kind user experience. This paper takes a closer look at one available GUI technology that allows for the rapid creation and radical customization of a GUI in any Android-based device.

Author: Ville-Veikko Helppi Technical Marketing Engineer, Embedded Software Division Ville-Veikko_Helppi@mentor.com

Mentor Graphics Corporation 8005 SW Boeckman Road Wilsonville, OR 97070 USA

www.mentor.com/embedded

IMPORTANCE OF A GOOD GUI A good user experience is a top priority for any device maker or software development team. The user experience is closely related to the devices GUI. Perhaps the most famous example of GUI that fosters a highly favorable user experience is the Apple iPhone. In this context, Apples touch screen GUI technology has revolutionized how users interact with their Apple devices. But the user experience has evolved to become much more than a touch screen or even a smart screen its also about the look and feel of the visuals, the type of keyboard utilized, the control or functionality sequences, intuitiveness of the features, and of course, the physical feel of a device. In a world where end-users are making their purchasing decisions on initial reactions, a compelling and easy-touse GUI is often the one and only factor in determining the success of a device. THE ANDROID ARCHITECTURE The Android architecture may not be as easily customizable as the open source approach may lead people to believe. Based on the open Linux kernel and services associated to the GNU-based utility packages (ported to processor-specific architectures), the lowest level of software must stay untouched, and if changes are made, they will need to be distributed as source code. At the Libraries level, where a number of C and C++ libraries reside, there are a number of available licenses such as GPL, LGPL, and BSD. While it may be possible to make changes to libraries without having to distribute these changes any device thats customized at this level may end up conflicting with Androids non-fragmentation rules. Additionally, when looking at the Android GUI, the Android development platform affords rather basic GUI alterations/modifications. These types of customizations 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. ADDRESSING ANDROID GUI CHALLENGES So whats a software developer or even an OEM to do? On the surface, it would appear the Android development platform is not very accommodating to anyone who wants to depart from the status quo. The one option is to engage in an intelligent GUI technology built exclusively for Android-based devices. When looking at such a technology, there are two areas worth investigating that might help facilitate innovative GUIs on Android-based devices. These two areas include how to build an Android GUI without touching any part of the code and how to effectively separate the GUI designer from the software engineer to ensure the best possible presentation and functionality of a devices GUI.
MODIFYING THE ANDROID GUI WITHOUT TOUCHING THE CODE

Changes to software are expensive and often risky even on Android. A developer not only has to describe the GUI first in the XML level, but then write Java code for the behavior of each GUI element. To some extent, Androids standardized GUI framework and the use of graphical components or widgets (buttons, check and list

www.mentor.com/embedded

boxes, keys, indicators, progress bars, etc.) has helped, but nonetheless GUI development always requires code to be written. An alternative approach is to use an intelligent GUI technology that enables designer resources (software engineers, GUI designers, and content providers) to rapidly create, customize, and test GUI logic without having to modify the actual Android software. An intelligent GUI technology would also allow the design team to package their designs into templates and themes, which can be rapidly deployed on the Android platform regardless of whether its running on the physical target device or Android running on Qemu emulator, which is packaged with the Android SDK. This makes it relatively easy to create product variants with very little engineering effort. Its crucial that this GUI technology assist developers in creating user interfaces and that it also maintains themes or templates. This GUI technology would also have the capability to modify and enhance graphical elements quickly while the code remains untouched. Finally, its important to point out that any intelligent GUI technology should also provide software engineers or developers with an easy-to-use method to create UI flow, whether through menus or icon-based input methods. It should be possible to structure menus around the chosen design paradigm (examples include carousel, widget screens, etc,) and embedded widgets that can then be updated with live data feeds. Such a GUI technology should also make it easy to use standard GUI constructs like yes/no prompts, multiple-choice settings, and more. Applying this level of customization to a home screen allows the device manufacturer or ODM to develop a rather unique and highly differentiated offering.
ALLOWING EXPERTISE DOMAINS TO ALIGN AND FLOURISH

The successful implementation of the GUI can be measured by several different form factors such as performance, intuitiveness, general usability, and memorability of certain sequences. Because of this, it is not uncommon for OEMs/ODMs to employ usability engineers, GUI designers, interaction designers, integration engineers, and software and hardware engineers to ensure a successful GUI implementation. Therefore, the separation between the GUI designer and software engineer is tantamount to a compelling GUI that helps distinguish one device from another. The presentation aspects of the GUI (what the GUI looks like and how it responds) are within the purview of the GUI designer. And the functional aspects (what features the device affords access to) fall under the sole responsibility of the software engineer. In this way, an Android device manufacturer is able to align each respective expertise so that software engineers can focus all of their effort (and talent) on software development (no need to develop software for GUI on Android) and GUI designer can take care of the providing great user experiences with GUIs. INFLEXION UI - AN INTELLIGENT GUI TECHNOLOGY FOR ANDROID Mentor Embedded Inflexion UI from Mentor Graphics is an intelligent GUI technology now available for Android-based devices. Inflexion solves the problem of similar look-and-feel Android GUIs by enabling rapid customization of the GUI. It delivers a distinctive look and feel to any Android product without requiring the

www.mentor.com/embedded

developer to understand low-level graphics APIs, or even modifying applications at the code level. This new type of Android GUI technology enables design teams to create stunning new application launchers and home screens for Android by using a visual dragand-drop method. Developers do not have to write or modify a single line of code to achieve this. Rich visuals (including 3D animation and lighting) can be employed within minutes. Inflexion UI separates application content and functionality from the Figure 1: How the various levels on Inflexion UI interact within the Android software stack. presentation by using data providers which present content to the devices user interface. In this way, productivity is increased because software engineers are focused on developing the functionality and data providers, while GUI designers remain free to develop the best possible user experience. Thus, any intelligent GUI technology employed should provide a clean GUI abstraction model for the Android GUI. This separation is critical in context of providing the best possible UI experience and best exploiting the devices silicon (e.g. OpenGL/ES accelerated 3D). The standard Inflexion UI Engine is optimized to using Androids built-in 3D OpenGL/ES API, which can be software and hardware accelerated. 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. At the top level, Inflexion comes with a shell application to replace the standard Android home screen and menuing system. This replacement enables the rapid and radical reskinning of the main screens without affecting any of the other applications such as those downloaded from Googles application store, the Android Market. CONCLUSION By separating an applications visual and interactive characteristics from the underlying functionality, Inflexion UI enables critical design tasks to be carried out independently. Application content is managed by Inflexions software modules that serve as data providers to the devices user interface. Productivity is increased as software

www.mentor.com/embedded

engineers focus on developing the functionality and data engines the application requires, while GUI designers remain free to develop the best user experience possible. As a proven technology, Inflexion UI for Android enables developers to create completely new interface designs without the required programming or scripting because Inflexion automates many of the key interactive behaviors such as hierarchical browsing, master/detail views, and scrolling which are common to a wide range of GUIs. Designing the GUI development independently of the software is not necessarily a new concept. Today, developers can find a variety of tools that can be used for this purpose. The problem lies in the fact that often a concept, or the presentation, is given to engineers who say it is too demanding, or the code is too complex to build. To meet the deadline, compromises are made which ultimately dilute the original vision of GUI, and as a result, the end-product falls dreadfully short of its true potential. With the assistance from Inflexion UI technology, it will be easy for Android device makers to master a compelling, distinctive, and easy-to-use GUI that will not fall short of what the GUI designers imagined and what the software engineers actually build.

Visit www.mentor.com/embedded for the latest product information.


2010 Mentor Graphics Corporation. All rights reserved.

Fordocument contains information that isor visit: www.mentor.com/fpga and may be duplicated in whole or in part by the original recipient for internal business purposes only, This more information, call us proprietary to Mentor Graphics Corporation Copyright 2008 Mentor Graphics Corporation. This In accepting this document, the that is proprietary to Mentor Graphics Corporation and mayunauthorized use of this information. provided that this entire notice appears in all copies. document contains information recipient agrees to make every reasonable effort to prevent be duplicated in whole or in part by the original recipient for internal business purposes only, provided that this entire notice appears in all copies. In accepting this document, the recipient agrees to make every reasonable effort to prevent unauthorized use of this information.

Mentor/0-In Formal Verification Technology Backgrounder

MGC 1-10

TECH8790-w

Você também pode gostar