Our goal is to categorize and review various tools for application development in Android in terms of portability, support, resource utilization and maintenance.
You've no doubt discovered there are hundreds of tool combinations a team or individual developer could use to create and support a applications on various Android platforms. Individual and company development criteria are varied. Individuals may prioritize tools because of language selection and application portability, other's may value performance, debugging and community resources. This site will attempt to track the most popular and some lesser known tools as they evolve to serve the Android ecosystem.
The main criteria for categorization and evaluation will be UI utilization and Platforms served in the spectrum of cross platform tools from
Native <-> Cross Platform <-> Web Wrapped <-> Write Once Run Everywhere <-> Web
Secondary criteria for evaluation will consider resource utilization of the device, the size (number of developers) and activity of the community as well as the maintenance, development, debug, backend, and API resources. We'll attempt to weigh the trade off between ease of implementation with some tools with the flexibility and advanced resources available. Finally and relevant mostly to individual developers and small dev teams, we'll look at the programming and markup languages available within the tool ecosystem and costs. With few exceptions, basic applications that attempt access to accelerometer, camera, call and speaker functions have been implemented with each tool we cover.
The high ideals of 'write once run everywhere/anywhere' (WORE) environments in the mobile market haven't been met with great success. While there are many Java and Air developers and resources, not many mobile platforms have emerged with support or at least useful support for these environments. Mobile platforms are highly disparate in their features (cameras, sensors, radios), capabilities (processor, memory, battery) and interfaces (touch, keyboard, number pad) that creating an efficient, fast, useful and universal UI is not practical.
Wrapping a web page or a mobile web page in an application framework is quite useful for simple, informational, business or entertainment apps. There are more frameworks to help with UI, platform features and portability than we could ever hope to cover. Even the UI capabilities to mimic the native platform experience are improving but they'll never match the integration achieved by native apps. They also lack the high performance and efficiency of native apps needed for modern and complex games, digital signal processing and augmented reality. There are, however, many skilled software engineers and designers in the HTML5 eco system and many online support resources for application design.
If you absolutely need the best performance and user experience, native is the way to go. Not only do native APIs and libraries give you the highest performance graphics and processor utilization and tightly integrated UI, they also give you the most efficient battery utilization and can better utilize lower power handsets developed for emerging markets and extend the longevity of older devices. Obviously, your portability suffers. The effort needed to port a fully native application to a new platform is more difficult than using cross platform libraries or web wrapped tools. Developers can be a bit specialized to native application design but the resources and tools available to help with the high learning curve is growing very rapidly.
There is a middle ground between WORE and native application development and it has a very diverse set of coding and design tools, languages, and companies supporting cross platform, native applications. Some technologies, like Adobe Flex, focus on optimizing their runtime engines for a few select platforms. Others, like Marmalade, attempt to abstract all of the native APIs and resources to a common set of APIs. These approaches yield nearly native performance and functionality. The UIs can be left more up to the developer and lag behind the latest native applications a bit but are generally passable. You're much more beholden to these companies whims on which platforms and features they support than with WORE or HTML5 based technologies but it is in their best interests to support the hottest environments.