Mobile Development Platforms Comparison
The software giant like Google is not disrupting the otherwise safe and established players in the mobile app development business. Newcomers like Android have led to significant structural changes for the future of mobile application development by imposing their own rules. This changing environment brings not only additional opportunities, but also adds some difficulties. Today, developers need to assess their capabilities and find out how they can benefit from this changed environment.
While mobile computing has attracted the attention of application developers, there was very little work to learn the easy programming of these technologies. Here we consider two of the most widely available development environments for mobile devices – Android and Windows Mobile, and explore and assess these options from the developer’s point of view.
Android was released by Google in 2007 as a platform open source for the development of mobile software for smartphones. The Android platform was released in the framework of the Open device Alliance. The main purpose of this Union was the creation of open standards for smartphones. Android is basically a Linux-based Operating system with open source for mobile phones. As mobile operating system it enables developers to create managed codes in Java, using the java libraries developed by Google. Not only Android provide mobile operating systems, including the development environment, it also offers a custom virtual machine called the dalvik Virtual machine for running applications, and also acts as an intermediate between the operating system and code. When it comes to application development, Android facilitates the use of 2D as well as 3D graphic libraries, advanced network features such as 3G, EDGE and WLAN and a customized SQL engine for persistent storage.
Developed by Microsoft, window Mobile is the operating system for mobile devices. Based on Microsoft Windows CE 5.0, Windows Mobile is used as the operating system on many smartphones, PDAs and devices with a touch screen. Windows mobile facilitates the creation of custom applications written in managed and native code. Application programming interface (APIs) in Windows Mobile is extensible and has rich features along with a programmable layer. In addition, for Windows Mobile also uses the opportunities provided by the environment Microsoft.Net .
We will compare these platforms and closely examine their strengths and weaknesses. Platforms will be compared on the basis of implementation and performance aspects, as well as support developers. We chose this criterion for comparison since they represent the most important aspects when it comes to developers of mobile software.
We will use persistent storage as a basis for comparison in the aspect of implementation. Technology used for permanent storage in mobile technology varies between different development environments for mobile applications. As for Windows Mobile and Android have the ability to use the device database, which facilitates easier manipulation and data extraction. Also, how much local storage the file concerned both environments, Support memory cards for additional storage space. However, the difference is that the disk space is used. While Android can’t install apps to the SD card, Windows Mobile allows it. Android and Windows Mobile platforms in a relational database. In addition, both libraries have many useful features, persistence. Once the library was initialized, access the database through an object-oriented interface, which can be easily available to developers.
Performance is important both for users and developers. Performance comparison of the two platforms will be based on the size of the file. The main purpose of measuring the size of the file to get a better idea about the configuration and run-time dependencies that are included in the application package.
Android apps come in apk (Android package) files. The Internet .Apk file, usually has a group .DEX (program files Android) files that run as a single application file for use within the Android Platform. The Internet .Apk file is basically a compressed version of the contents in the file Androidmanifest.xml’.
Mobile Windows applications use. CAB files to package and deploy applications. The first step in the manufacture of redistributable files includes to package the application into a cab (a CAB file). This CAB file can be deployed on other devices, where it can be expanded and installed. A CAB file is an executable archive that contains the application, resources, dependencies like dll and other resource files.
Comparative analysis of development environments for mobile applications was conducted by Tom Morten Gronli, Jarle Hansen and Gheorghita Ghinea a, from Brunel University in London. In this comparative study, was an example of a demo application developed in the Windows development platforms iPhone and Android, to better illustrate the deployment of a file Size for each application. Example demo application was a simple program that printed a line of text on the screen. Result from sample code looks like the following:
The size of the deployment of the demo application in Windows mobile environment was 2.8 KB.
The size of the deployment of the demo application in the Android environment was 9.3 KB.
File size is, as indicated, was without any obfuscator or software psychiatrist. This is the Type of file that the user must either upload or send to, and then installed on his/her device. As seen from above, the demo applications in Windows mobile file Size 2.8 KB, while Android was about three times the size of 9.3 KB. This provides an indication of the total amount of configuration files and dependencies during the execution, which must be bundled together with each of the client applications. When it comes to the number of lines of code, Windows mobile requires only 11 lines, while Android need 28.
The Developer Of The Comparison Support
Developer support is a very important aspect when it comes to gaining speed and quality in the development process. While the mobile platform development have certain similarities, there are some unique differences in developer support. The differences become more clear when we take an integrated developer environment (IDE) and tooling into account.
The only choice for development on Windows Mobile is visual Studio, which is again developed by Microsoft. Using Visual Studio, Microsoft Windows mobile needs support before it can implement and deliver new features in the IDE. The community can only make suggestions, but has no direct influence. However, there is a positive side as consistency is ensured. In addition, the process of approval of quality, introduced by Microsoft when shipping new products to ensure quality.
On the other hand, there are several options for tooling for Android, with a very small IDA. Android is open source communities that contribute to the development of environment security as well as quality assurance of functionality, a plugin for the software. However, the IDE can be quite a challenge to maintain consistency and quality assurance. Consistency becomes a problem as the extension may only be available for some of the competing ides. Quality assurance becomes a serious problem since the development is carried out in a society not governed by a single quality standard prior to the adoption of the new functions are integrated to the development environment available. Guarantee of quality of supplied code is required for fully functional products. These two factors can make the code and application portability between environments impossible.
One of the differences between Android and mobile platform development for Windows as for support developers and quality assurance becomes more and more obvious in the test environment. Let’s take a closer look at this during unit testing of both development platforms.
Unit testing is basically a quality assurance and validation of instrument for testing small parts of the computer or mobile application. The goal is to ensure that each section is isolated and tested separately. This will help to isolate and to ensure the quality of various units of the application.
Unit testing on Android is much simple, because the API uses the junit test framework. The junit framework provides a hierarchical organization of the different test rigs, which is an important advantage. In addition, the template provides independence junit test rigs, as well as minimizes interference. At first create, and then destroy the newly created test environment, before and after each test method. Android even with junit step further, allowing for testing of the device code. Here’s the test library are part of the standard library of Android.
However, there is one problem with testing on Android devices compared to Windows Mobile is the readability of the results. Android tests the device has no user interface which can display the test results. In order to view the test results, the handler that deals with the answers of the Android test runner must be implemented.