Resource Guide for the UMPC Software Developer

Submit New Article

Last Modified On :   October 16, 2008 9:21 AM PDT
Rate
 



Abstract

Developers who want to get started with creating applications for the Ultra-Mobile PC (UMPC) and Mobile Internet Device (MID) generally already have many of the development tools and skills they need. Since these devices run full versions of Windows* and Linux* operating systems, developing for UMPCs and MIDs is more of a variation on a theme than an utterly new undertaking. By building the right core development environment and then taking advantage of developer toolkits available from Intel and elsewhere to augment it, developers can get started quickly in meeting the challenges associated with UMPC and MID development. This article guides the reader in rounding up their tools of choice for both Windows and Linux development, helping to make developing for these platforms an extension of the work they are already doing.


Introduction

The availability of UMPC and MID devices clearly represents an opportunity for software companies to reach a new market segment, and many vendors are considering how best to take advantage of it. An important part of the value proposition to software companies is that development for these devices is very similar to development for conventional PCs. Thus, those companies can take advantage of existing tools and expertise to update their products to take advantage of the UMPC and MID platforms.

Perhaps the first thing to recognize when getting ready to develop software for UMPC and MID devices is that the development tools, APIs, and skill sets are very similar to those associated with developing for other x86 platforms, such as conventional laptops. Typically, developers will want to create software on a standard laptop or desktop PC, using an actual UMPC or MID only for testing purposes.

It is possible to run development tools on a UMPC or MID device, but because of their small footprint—such as memory and hard-drive constraints—most programmers choose not to. Typically, you will find the inefficiency of moving between hardware during the test and debug phases to be less of an imposition than coding on an actual UMPC or MID. A variety of tools, discussed in this article, helps to streamline this process.

Windows developers are likely to choose Microsoft Visual Studio* as an IDE, adding elements to suit their personal tastes as well as the needs of supporting issues like mobility and touch-screens. Linux developers can use their tools of choice, while also taking advantage of various open-source initiatives that will help them to efficiently make high-quality applications for these platforms. Both types of developers also benefit from the enormous availability of existing applications, drivers, libraries, and other resources for x86 devices.

Both Windows and Linux developers can benefit from the use of Intel® Software Development Products like compiler s, libraries, and analyzers that streamline the effort to achieve high performance on Intel® architecture-based devices. Intel and others also make a variety of developer toolkits that facilitate ultra-mobile software production. The primary scope of all these offerings is discussed in the following sections of this article.


Bridging the Gap Between the PC and the UMPC

The most obvious issues at stake in moving from conventional PCs to UMPCs and MIDs are related to the physical differences in the platforms. Before anything else, one must consider the small display (about five to seven inches), the lack of a keyboard and mouse, the addition of touch-screen input, and the availability of hardware buttons on the typical device. With a grasp of these issues in hand, one can turn to matters of enhancing usability, which aids in the quality of the final software product and helps to build customer acceptance and adoption.

To facilitate the bridge between conventional PCs and UMPC/MID devices, the developer can take advantage of a couple of tools from Microsoft and Intel, discussed below:

  • Microsoft UMPC Display Emulator* is an aid when developing UMPC software on a conventional Windows-based PC. It provides an 800x480-pixel display on the screen of the development station, independent of the resolution settings of the development machine. This simple simulation can be very useful in approximating how an application will appear and behave when it is run on an actual UMPC. That lets you address issues of legibility and usability more efficiently.
  • UMPC Evaluator Tool provides a rapid view of the compatibility of existing PC applications with multiple UMPC devices. To simulate various UMPCs, the tool uses device profiles—either one of the standard ones provided with the tool or one created by the developer. The emulator captures keyboard and mouse messages at runtime and checks them for compatibility with one or more active device profiles. Results can be viewed in real time, logged to a file, or both.

These simple, free tools can greatly enhance development efficiency. Because UMPC devices have been on the market longer than MIDs, these tools focus on that class of device. They are currently also limited to use on Windows machines. As the market matures, these tools may multiply and to provide enhanced support for more device types.


Developer Toolkits from Intel

Intel® Mobile Platform SDK v1.2 Open Source Project

Intel Corporation is providing the Intel® Mobile Platform SDK 1.2 as a free, open source project to give the developer community an innovative solution for developing mobile-aware applications. The powerful feature set of the Intel® Mobile Platform SDK 1.2 enables developers to create efficient, reliable software that adapts to fluid mobile computing environments.

For more detailed information please visit: Intel Mobile Platform SDK.

Another core resource for developers is a set of toolkits from Intel that allow them to more efficiently meet the design challenges associated with mobilized software, including developm ent for UMPCs and MIDs. These tools are designed specifically to assist in the creation of software that can be used across multiple platforms and runtime environments, which makes them well-suited to the challenges associated with creating products that support laptop PCs, UMPCs, and MIDs from a single code base.

Using the software and technology development kits (SDKs and TDKs, respectively) discussed in this section, applications can be effectively mobilized to meet primary challenges associated with creating mobile software for ultra-mobile devices. As part of this effort, applications must be able to operate smoothly as network connections come and go, manage power consumption to provide optimal battery life, take good advantage of the hardware resources such as memory and disk space available from the device, and adapt effectively to the amount of network bandwidth available.

  • Intel® Mobile Platform SDK provides open-source libraries and runtime components that abstract mobility issues such as those described above away from the development effort, so that programmers can address these considerations with less effort. As an added advantage, the SDK includes a programming interface that is common across supported platforms and runtimes, maximizing code reuse. The SDK also provides APIs that enable applications to easily support forward-looking technologies like Global Positioning System (GPS) and Radio Frequency Identification (RFID).
  • Intel® Web 2.0 Technology Development Kit (TDK) is a royalty-free, JavaScript*-based API with fully available source that gives Web applications programmatic access to information about the execution platform. That information relates to system configuration, such as display, storage, and processor, as well as its context, such as bandwidth and power levels. Developers can use this information to modify the behavior of the application on the basis of the execution environment, such as rendering graphics at lower quality when the platform is resource-constrained, or delaying a large download when connection-bandwidth is low. These capabilities allow rapid development of software that is highly responsive to transitory needs at runtime.
  • Intel® Laptop Gaming TDK provides royalty-free C++ based APIs that gather system information such as network signal strength and battery level, as well as interface elements that allow that information to be incorporated into the game display. It also allows the developer to create user-defined callbacks that handle specific platform events, making the game more responsive to the environment. For example, a game might decrease the complexity of the display elements when the battery level reaches a certain point, or it might notice that the W-Fi radio is on during a one-player game and prompt the user to turn the radio off to save on battery life.

 


Development Tools Specifically for Windows Platforms

Windows support for ultra-mobile platforms is provided by both Windows XP Tablet PC Edition 2005* and Windows Vista*. Many of the pen and ink support features that were formerly supported only in the Windows XP Tablet PC Edition are now supported in all versions of Window s Vista. Visual Studio is the usual center of the development environment for Windows-based UMPCs and MIDs.

To create the actual development environment, on either Windows XP Tablet PC Edition 2005 or Windows Vista, you must first install the extra drivers for things like wireless, screen rotation, and other hardware-specific actions. Microsoft recommends the following list of installed packages in order to develop for ultra-mobile platforms; all of them are available from http://www.microsoft.com/downloads/* except where noted:

  • The .NET Framework 3.0 (formerly WinFX*) Runtime Components Beta 1
  • The MSXML 6.0 Parser
  • Visual Studio 2005 from http://msdn.microsoft.com/en-us/vstudio/products/aa700831.aspx*
  • The NET Framework 3.0 (formerly WinFX) SDK for the .NET Framework 3.0 Runtime Components September 2005 CTP (this provides access to the InkCanvas object)
  • Visual Studio Extensions for .NET Framework 3.0 (formerly WinFX) Beta1, which provides IntelliSense* capabilities for the development with the markup language (code-named "XAML")
  • The Mobile PC and Tablet PC Software Development Kit September Release, which provides access to the InkAnalysis object

 

For further research on Windows development for the UMPC and MID, visit Microsoft's UMPC developer center.


Development Tools Specifically for Linux Platforms

Analogously to the Windows environment, Linux developers have the full range of Linux developer tools available to them when building software for the UMPC or MID. Many will choose to use tools from the GNU Free Software Foundation*, including the following core components:

  • GNU Compiler Collection (GCC) is a set of compilers that can compile programs written in C, C++, Objective-C, Fortran, and Java.
  • GNU Binary Utilities (binutils) include tools for linking and managing archives, including handling object code, libraries, profile data, and symbol names.
  • GNU C Library (glibc) is a standardized collection of C-language header files and library routines for implementing common operations like input/output and string handling.
  • PowerTOP is a Linux tool that helps you find programs that are consuming extra power when your computer is idle. It is available at lesswatts.org.
  • Linux Battery Life Toolkit (BLTK) consists of a test framework and six example workloads. The toolkit framework launches the workload, collects statistics during the run, and summarizes test results. The framework could launch any workload, but currently has six example workloads: Idle, Reader, Office, DVD Player, SW Developer, and 3D-Gamer.

 

In addition, a variety of tools are available to augment the development environment for mobility. For example, the GNOME Mobile & Embedded Initiative* is another open-source initiative that is working on the development of mobility-s pecific development tools and components. This initiative targets a wide variety of mobile device types, and APIs are available for developers using C, C++, or Python, with components under consideration for the Java* Mobile & Embedded platform (Java ME*).

Another open-source initiative of interest to the mobile Linux developer is the Mobile Internet Linux* Project*, which is sponsored by Intel with the stated goal of accelerating the development of cross-platform mobile Linux solutions. The growing community surrounding the initiative is working on a variety of tools and components that are useful in developing software for the UMPC and MID, as well as other mobile devices, such as smart phones. The project also has involvement from several makers of mobile Linux distributions, such as Ubuntu*, Red Flag, and Pepper Linux.


Integration with Intel® Software Development Products

Once the primary development environment is built, Intel® Software Development Products can help both Windows and Linux developers speed up application tuning for UMPCs and MIDs. These products are designed to integrate smoothly with popular development tools like Microsoft Visual Studio 2005*, Eclipse*, and the GNU toolset:

  • Intel® Compilers produce code that is highly optimized for Intel® processors, and they are typically earlier to market with automated support for the latest processor features than competing products. The Intel® Software Network article "Using the Intel® C++ Compiler with an Ultra Mobile Device" shows how to use the Intel C++ Compiler to build programs that meet the specific needs of deployment on ultra-mobile devices.
  • Intel® VTune™ Performance Analyzers give developers a multi-faceted look at performance, and graphical representations of profiling results help them rapidly drill down to the code associated with specific performance issues. The Intel® Tuning Assistant brings together all of this information with cross-references to an extensive knowledgebase that provides targeted advice to resolve issues once they are identified.
  • Intel® Performance Libraries provide reusable, pre-built functions that are optimized for trouble-free, robust operation. Intel® Integrated Performance Primitives contains audio, video, imaging, cryptography, speech recognition, and signal processing functions, and Intel® Math Kernel Library contains mathematical functions for engineering, scientific, and financial applications.
  • Using Intel Software Development Products in conjunction with the core UMPC/MID development environment can substantially improve time to market, an important consideration in this new product segment.

 


Conclusion

As software vendors consider how to take advantage of the opportunities offered by the arrival of UMPC and MID devices, they have a tremendous head start in terms of development tools. The environment that programmers already use every day forms the basis for developing ultra-mobile applications, and a variety of other free and commercial tools from Intel and third parties complete the picture.

Because UMPCs and MIDs run full versions of Windows or Linux operating systems, it is viable to create software that runs on these devices as well as conventional PCs from a single code base, as long as appropriate accommodations are made for differences in form factor. For an examination of how to meet those challenges and to make software deliver a great user experience, see the companion whitepaper, "Meeting Key Challenges in Developing Software for UMPCs and MIDs."


Additional Resources

The following materials provide a point of departure for further research on this topic:

 


About the Author

Matt Gillespie is an independent technical author and editor working out of the Chicago area and specializing in emerging hardware and software technologies. Before going into business for himself, Matt developed training for software developers at Intel Corporation and worked in Internet Technical Services at California Federal Bank. He spent his early years as a writer and editor in the fields of financial publishing and neuroscience.