Simply put, a mobile native application is an application that runs on a mobile platform and makes use of the native services like caller service, camera, accelerometer etc., of the mobile.
The application is developed using the mobile platform specific API, built and installed in the mobile device.
This application can be made available for the general public by distributing it in the respective repositories.
Here is a simple table that shows the language, SDK, IDE, executable file and the distribution store for Apple, Android and Blackberry devices.
|Eclipse with android plugin
|Eclipse with blackberry Java plugin
|Blackberry Java SDK
So to develop an android application, install Eclipse and an Android plugin for eclipse, download the Android SDK, write code in Java using Android API, and you get a .apk executable file that can be hosted for public use in Android Market.
If you have to build an application that can run in all these platforms you will land up maintaining three codebases. Is there a way to avoid it? Yes, you have PhoneGap for that purpose. I will post an article about PhoneGap later.