{infiniteZest}
// Articles. Tutorials. Utilities.
Home  |   Search  |   Login  
Categories Skip Navigation Links
New / All
AJAX
Apple
ASP.NET
.NET
Git
Google / Android
Python / IronPython
Miscellaneous
SQL Server
Comparing the development environments for Windows Mobile and Android applications
Summary
This article discusses and compares the development environments and technologies (Visual Studio, Eclipse, C#, Java, .Net Framework, Android SDK, etc.) used for developing Windows Mobile and Android applications.
 
Table of Contents

Integrated Development Environments (IDE)

Visual Studio for Windows Mobile

Figure 1. Visual Studio 2008 Professional with a Smart Device Project

Eclipse for Android

Figure 2. Eclipse with Android Applications

Programming Languages

C#, Visual Basic, and C++ for Windows Mobile

Figure 3. Smart Device Projects using Visual C++ (uses older, low-level technologies)

Java for Android

Figure 4. Creating a new Android Project from Eclipse (available after installing the plugin)

Operating Systems

Windows Mobile

Android

Figure 5. Similar sized Windows Mobile and Android PDAs without keyboards

Libraries

.Net Compact Framework for Windows Mobile

Figure 6. .Net Compact Framework

Android SDK for Android

Figure 7. The Android Library

Databases

SQL Server Compact Edition for Windows Mobile

SQLite for Android

Emulators

Windows Mobile Emulators

Figure 8. A simple Windows Mobile App on an emulator

Android Emulators

Figure 9. A Notes application in an Android emulator

User Interface Development

Drawing the User Interface for Windows Mobile

Figure 10. Designing user interface for Windows Mobile Apps

Layout XML for Android

Code Listing 1. XML for the Note List screen

Built-in/Third-party Components/Controls

Device Controls for Windows Mobile

Figure 11. Device Controls for Windows Mobile

Custom Views for Android

 

Integrated Development Environments (IDE)

Visual Studio for Windows Mobile

Visual Studio is the standard and ultimate development environment for developing Windows Mobile applications. Using Visual Studio 2008, you can develop applications for Pocket PC 2003, Windows CE, Windows Mobile 5.0 Pocket PC, Windows Mobile 5.0 Smartphone, etc.

You can download a free Visual Studio Express version from the following Microsoft location (does not have mobile development functionality):

Visual Studio Express

Visual Studio is probably the best commercial development environment. It comes with a sophisticated code editor, full-fledged debugger, source control integration, testing functionality (higher editions of Visual Studio), and help.

Figure 1. Visual Studio 2008 Professional with a Smart Device Project

Figure 1. Visual Studio 2008 Professional with a Smart Device Project

Eclipse for Android

Applications for Android are developed primarily with Eclipse (though other Java IDEs can be used). Google provides a plugin for Eclipse that makes developing applications for Android easier. Eclipse is an open source integrated development environment. Just like Visual Studio, Eclipse also provides great code editor, debugger functionality, help, etc.

You can download Eclipse from:

Eclipse

You can get the Google’s Android Plugin for Eclipse from here:

Android

Figure 2. Eclipse with Android Applications

Figure 2. Eclipse with Android Applications

Programming Languages

C#, Visual Basic, and C++ for Windows Mobile

Smart Device applications for Windows Mobile can be developed with at least the following languages:

  • Visual C#
  • Visual Basic
  • Visual C++

And, of course, if you are targeting the web browser on a Windows Mobile device (and that browser is Internet Explorer), you have the web development technologies from Microsoft are also available (like ASP.NET and JavaScript/JScript).

Of these languages, if you have no preference, C# is the best way to go. If you are an old VB pro, then that might be appealing. If there is a need to access low-level functionality, then Visual C++ would be the right option.

Figure 3. Smart Device Projects using Visual C++ (uses older, low-level technologies)

Figure 3. Smart Device Projects using Visual C++ (uses older, low-level technologies)

Java for Android

Applications for Android can be created using, primarily, Java. Some third-party efforts (like Scala) may support other languages. Officially, Java is the only supported language (at least in the beginning). C/C++ (“native language/APIs”) are not supported (at least in the beginning).

Figure 4. Creating a new Android Project from Eclipse (available after installing the plugin)

Figure 4. Creating a new Android Project from Eclipse (available after installing the plugin)

Operating Systems

Windows Mobile

Versions 5.0 and 6.0 are on most of Windows Mobile devices as of this writing. This is a Windows “Lite” operating system in both appearance and for development purposes.

Android

The Android OS / stack / platform is based on Linux (version 2.6), which is a free, open source operating system. In addition, the Android platform adds the libraries, application framework, and common applications needed for a mobile device.

Figure 5. Similar sized Windows Mobile and Android PDAs without keyboards

Figure 5. Similar sized Windows Mobile and Android PDAs without keyboards

Libraries

.Net Compact Framework for Windows Mobile

.Net Compact Framework is the shortened version of .Net Framework. They both have the same high-level architecture (both are used to develop ‘managed’ applications – providing memory management, etc.); however .Net Compact Framework is optimized for low-memory devices like mobile devices.

Similar functionality comes similarly named namespaces, classes, methods in these two frameworks. But the dlls/assemblies providing the functionality comes from different directories. As shown in the figure below, for example, the Windows Forms functionality comes from a namespace called System.Windows.Forms in both the regular and compact frameworks. But the dll for the compact framework comes from the CompactFramework directory (e.g.: C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.Windows.Forms.dll)

Figure 6. .Net Compact Framework

Figure 6. .Net Compact Framework

Android SDK for Android

For the Windows Mobile, the library/framework is marketed/grouped under one name .Net (or .Net Compact Framework); but, it has various pieces like Base Classes, Forms, Database, Drawing/DirectX, etc.

Similarly, various pieces of functionality are collected in the Android Library. You will find a file named android.jar in the Android SDK directory. As you can see from the figure below, some classes from Java, JUnit, SQLite, etc. are in here, and, in addition, there is a whole bunch functionality under the android package.

Figure 7. The Android Library

Figure 7. The Android Library

Databases

SQL Server Compact Edition for Windows Mobile

SQL Server comes in several flavors – from Enterprise to the Compact. The Compact version comes with a reasonably nice subset of SQL functionality of the high-end versions. The SQL Server Compact edition (as well as the Express edition) are free.

SQLite for Android

Open source SQLite is the database engine behind Android applications. SQLite is not only free, the source is in the public domain. Lot of devices, including iPhone, use SQLite.

Emulators

Windows Mobile Emulators

Both Visual Studio and Eclipse/Android SDK provide emulators of their mobile devices. These emulators help test the applications without having to deploy them to a real physical device.

Figure 8. A simple Windows Mobile App on an emulator

Figure 8. A simple Windows Mobile App on an emulator

Android Emulators

Android SDK provides emulators of different sizes to run and test the Android applications.

Figure 9. A Notes application in an Android emulator

Figure 9. A Notes application in an Android emulator

User Interface Development

Drawing the User Interface for Windows Mobile

The user interface can be simply drawn on the design window of a form in Visual Studio. Various controls in the Toolbox can be simply dragged and dropped on to the surface. The code is written behind these controls.

Figure 10. Designing user interface for Windows Mobile Apps

Figure 10. Designing user interface for Windows Mobile Apps

Layout XML for Android

The Android Application user interface can not be drawn yet (as of this writing). But the user interface can be created with simple xml markup, as shown below. At some point, tools should be available to generate this XML from a drawing.

Code Listing 1. XML for the Note List screen

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:textAppearance="?android:attr/textAppearanceLargeInverse"
    android:gravity="center_vertical"
    android:paddingLeft="27dip"
/>

Built-in/Third-party Components/Controls

Device Controls for Windows Mobile

Windows Mobile comes with a whole bunch built-in controls/components to simply add to your mobile application. The following figure shows the built-in user interface controls (more available from the third-party vendors).

Figure 11. Device Controls for Windows Mobile

Figure 11. Device Controls for Windows Mobile

Custom Views for Android

In Android, Activities roughly correspond to screens and Views roughly correspond to individual widgets/controls. Android SDK includes widgets like Text, Button, Checkbox, etc. As Android becomes popular, third-party widgets should be more visible.

Bookmark and Share This

More Articles With Similar Tags
How would you start with developing a Windows Mobile program using C# programming language?
icon-first-smart-device-running.jpg
This article discusses and analyzes various aspects in creating the first smart device program using .NET Framework and C#.
icon-android-winmobile-games.jpg
This article compares the user interfaces of Windows Mobile and Android operating systems. For easier comparison, the images are placed side by side.
icon-android-debug-toolbar.jpg
This article gives some quick pointers on how to start debugging an Android application, along with where to put the breakpoints and how to change the emulator sizes from within Eclipse.
icon-android-safari-browser-user-agent-string.jpg
This article talks about the basics of the browser (including the user agent string) used in the Android platform.
About  Contact  Privacy Policy  Site Map