如何将我的Android应用程序从2.2降级到1.5 sdk无缝

时间:2010-12-24 14:24:42

标签: java android sdk

我有一个Android应用程序,我开始在sdk 2.2上写,但我的Android手机有1.5版本的android。我必须将我的应用程序无缝降级到1.5。我不完全确定,但我没有使用太多2.2特定的功能。你能告诉我怎么做吗?

3 个答案:

答案 0 :(得分:1)

如果您正在使用Eclipse,请将清单的minSdkVersiontargetSdkVersion以及项目的设置更改为使用1.5,并且该API版本中不存在的任何内容都将变为错误。

答案 1 :(得分:1)

基本上遵循Jean的上述链接到dev blog并接受这些建议。您将创建一个单独的类,该类为延迟加载正在运行的设备的相应API级别的类。版本中不可用的函数应该处理该用例。

public abstract class StaticAct {

protected static StaticAct INSTANCE = null;

public static StaticAct getInstance() {
    final int sdkVersion = Integer.parseInt(Build.VERSION.SDK);

    if(INSTANCE==null)
    if(sdkVersion < Build.VERSION_CODES.DONUT){
        INSTANCE = new CupcakeStaticAct();
    }else if (sdkVersion < Build.VERSION_CODES.ECLAIR){
        INSTANCE = new DonutStaticAct();
    }else if(sdkVersion < Build.VERSION_CODES.FROYO){
        INSTANCE = new EclairStaticAct();
    }else if(sdkVersion < Build.VERSION_CODES.GINGERBREAD){
        INSTANCE = new FroyoStaticAct();
    }else{
        INSTANCE = new GingerbreadStaticAct();
    }

    return INSTANCE;
}

// Private constructor prevents instantiation from other classes
  protected StaticAct() {}
}

这个抽象类将有一些它定义的抽象方法,如

public abstract boolean enableStrictMode();

可以为每个api级别定义一个类。编辑:这些都是在StaticAct.java文件中定义的私有类。这允许延迟加载正常工作并阻止来自其他类的实例化。

 /*
  * API Level 3
  */
 private static class CupcakeStaticAct extends StaticAct

基类(扩展StaticAct)必须实现StaticAct中定义的所有方法。 如果该方法对于该api级别不可用,则处理该情况,抛出错误或返回false(或完全忽略它)。

        @Override
        public void enableStrictMode() {
            //unavilable in cupcake, do nothing
        }

随着您的类在api级别上的增加,他们只需要实现从以前版本更改的方法。因此多点触控API在2.0等严格模式下可用。

答案 2 :(得分:0)

在manifest.xml文件中:

<uses-sdk android:minSdkVersion="integer" 
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />

有关详细信息,请参阅here

API level被插入到minSdkVersion,targetSdkVersion和maxSdkVersion字段中(并不是maxSdkVersion已在工具包中弃用,但将在市场上运行)。要概括:

Platform       API Level
Android 2.3   9
Android 2.2   8
Android 2.1   7
Android 2.0.1 6
Android 2.0   5
Android 1.6   4
Android 1.5   3
Android 1.1   2
Android 1.0   1