views:

537

answers:

4

Is Android backwards compatible, in other words can an application developed in Android 1.6 run in Android 2.0?

I just published a 2.0 application and discovered that I can't find it in the market using my G1 (Android 1.6) phone. But apparently others are downloading it.

Should I downgrade the application to 1.6 or do I need to create separate applications for each Android version?

+2  A: 

Hello

Just to say that an 1.6 app can run on 2.0 BUT NOT 2.0 app can run on 1.6 Others are downloading your 2.0 app because they hay 2.0 android on their phones (ex: Motorola Droid)

With no more bye bye

pd: sorry my english

yeradis
+3  A: 

Since you have developed your app with the 1.6 SDK you should(must?) flag it with 1.6. This will increase the number of person who will be able to see and download your app.

Don't need to have 2 apps (1.6 and 2.0) if they are the same. If you want you can try to evolve your app by using new features of the Android SDK 2.0 and then:

  1. update the old app if you only want to aim android 2.0 (or if you are executing 2 different codes regarding the android version on phone)
  2. create a new app on the market to aim android 2.0
Patrice Bernassola
This answer is correct, but not complete - you can build against 1.6 and have it visible and installable by users running 1.5. I elaborated in an answer below.
Klondike
+5  A: 

You can build against any version you want, and release it to every Android phone out there and have it show up to them in the Market, if you're sure it's stable.

I have an Android app that I build against the 1.6 SDK. I make sure not to use any 1.6-specific APIs, but I do want the build environment to let me use resolution-specific icons and assets, which the 1.5 SDK doesn't know how to do. Phones running 1.5, however, won't choke on the resolution-specific layout structure when it actually runs.

I mark the minSdkVersion as 3 (Android 1.5) and set the targetSdkVersion as 4 (Android 1.6). This tells Android phones, and the Market, that I've determined the app runs fine on phones as low as Android 1.5, but was built against 1.6 (and can be assumed to work on higher versions like 2.0).

Since the app is open-source, here's a link to my AndroidManifest.xml: http://github.com/sunlightlabs/congress/blob/master/AndroidManifest.xml#L60

This page in the Android Developer docs describes the uses-sdk attributes in more detail: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Klondike
A: 

Hi

I think if you established a app based on android 1.6 it can run on 1.6 and 2.0 platform both.

If this app is based on android 2.0 and you want to run it on android 1.6 platform just set minsdk in AndroidMenifest.xml like this " uses-sdk android:minSdkVersion="4" ", then it can also run in 1.6 platform.

thanks

czizzy