Is Android Applications are Platform Independent like Java and can we install Android app in any Mobile ..?
Before going to discuss about this first need to brush-up few things about Platform Independent:
Platform independent means the execution of the program is not restricted by the type of os environment provided...thereby, make it possible to process the program at any type of environement available.
Java is a platform independent language becoz of the bytecode magic of java. In java, when we execute the source code...it generates the .class file comprising the bytecodes. Bytecodes are easily interpreted by JVM which is available with every type of OS we install.
Whereas C and C++ are complied languages which makes them platform dependent. The source code written in C / C++ gets transformed into an object code which is machine and OS dependent. That's the reason why C and C++ languages are termed as Platform Dependent.
è If Java is platform independent, why doesn't it run on all platforms?
Java runs mostly on all platforms. For running a Java program we need JVM on all the platforms. If JVM is not installed on any platform then we are not able to run Java programs. Java API has standard library and API that can run on any platform. But the API of different languages like C and C++ is different for different platforms.
The API for Windows is totally different than the API for Linux, and the API for Mac OS X is totally different again. When you write a C or C++ program that uses the Windows API, then your source code will be largely useless on a Linux system or on a Mac - because the Windows API doesn't exist there. So we can run Java programs on any platform but before this we have to install JVM for interpreting the byte code. The byte code of Java or war or jar files can be taken to any platform and can be run directly on the platform having JVM.
è Is Android Platform Independent…?
Following chart gives a clear picture of the current market situation.
Developing for all of these platforms is a challenge, especially for the developer or business with limited resources. So the question remains: How do you choose what platform to develop for and what to leave? It gives a drastic rise to the demand of cross platform mobile apps where the code is written once and ran everywhere. So what is a cross platform development environment? Cross platform refers to the capability of software or hardware to run identically on different platforms i.e. users can switch from one platform to the other without converting their data to a new format.
There are various benefits of using a cross platform approach.
· Allows you to develop on additional platforms for almost no additional cost
· The reusability of code is also an important aspect to considerde
· Easy access to plugins and modules that can easily plug into other services or tools
· Easier for the web developers to jump in and use
· Assists in reducing the development costs.
There are various platforms available for making very robust, powerful and useful cross platform mobile apps. Some of them are discussed here:
PhoneGap
|
Appcelerator titanium
|
Rhomobile
|
Corona
| |
About
|
PhoneGap is a HTML5 app platform that allows you to author native applications with web technologies and gets access to api’s and appstore. Allows to develop applications for iPhone, iTouch, iPAD, Android, Black¬berry, Symbian and Palm becoming one of the few products that supports almost all major platforms
|
Appcelerator is a free and open source application development platform, Titanium lets you create native mobile, tablet and desktop application experiences using existing web skills like JavaScript, HTML, CSS, Python, Ruby, and PHP. It comes with an in built language-OS bridge and a runtime shell that compiles and packages your applications for cross platform distribution.
|
Rhomobile provides a complete set of products for managing an enterprise’s mobile apps and data. Specifically the product suite Rhomobile uses the power and productivity of web technology and the cloud to allow enterprises to more easily DEVELOP, DISTRIBUTE, DEPLOY and MANAGE native Smartphone apps and data
|
Corona lets developers to build graphically rich applications that are also lightweight in size and quick in development time. The SDK does not charge per-app royalty or impose any branding requirement, and has a subscription-based purchase model that allows new features to be rolled out immediately to users.
|
Pros
|
• Can use HTML5 and CSS3
• Deploy your app to Multiple Platforms (Symbian and Bada is also supported) • Access Native Features • Use JavaScript to write your code • Licence under Apache Software Foundation • Very well documented |
• Compiles to truly native application code, not HTML5
• Very large library of APIs for all kinds of activities and data access • Uses JavaScript/JSON for primary language |
• It has unmatched developer productivity
• Online application development capability,
• Cross platform framework.
• Synchronized data and easy application integration.
|
• Support for integration with Maps, Facebook, OpenFeint, and Game Center
• Physics built-in • Based on Lua which is fairly simple and easy to learn • Have had a number of good “flagship” apps which have been in the top ten lists. • Good Community Support |
Cons
|
• No MVC
• No ORM |
• Only support iphone and Android
• Titanium appears to be more feature rich than PhoneGap by bridging more mobile phone functions to javascript. |
• Developers are using this software for build iPhones applications.
• If you are new developer this will not be suitable fo you |
• iOS and Android only
• Lua is not an object oriented language • Subscription based model • Andriod support has been buggy |
è Conclusion: Yes Android is Platform Independent but not directly it achieve that instead of it achieve using Cross-Platform Mobile Development Tools like: RhoMobile, Appcelerator, WidgetPad, PhoneGap and MoSync .
No comments: