Android最低SDK的工作方式是什么?

时间:2017-02-24 18:02:06

标签: android api android-studio sdk version

如果我将最低SDK版本设置为16(Jelly Bean 4.1)并且我已经以与此API级别兼容的方式编写了我的大部分项目,但是我有一个小方法需要SDK版本25,这会阻止整个应用程序在使用Jelly Bean平台的设备上运行吗? 或者它会允许他们安装它,只有那个特定的部分不起作用?

3 个答案:

答案 0 :(得分:1)

您可以使用注释来删除方法中的这些问题。

@TargetApi(25)

1.您需要使用您正在讨论的抽象方法创建一个抽象类。

    public abstract class YourClass {
        public abstract void doSomething();
    }

2.两个实现。一个用于旧版本,另一个用于新版本,在新版本中放置@TargetApi。

  • 传统版本:

    public class YourClassLegacy extends YourClass {
        public void doSomething(){
            //Legacy method
        }
    }
    
  • 实施25版本:

    @TargetApi(25) 
    public class YourClassNew extends YourClass {
        public void doSomething(){
            //25 version method
        }
    }
    

3.在您调用此方法的方法中( doSomething() ),您需要实现此方法。

    public static void methodFoo(Context context) {
        if (android.os.Build.VERSION.SDK_INT >= 25) {
            //call to YourClassNew.doSomething();
        }else{ 
            //call to YourClassLegacy.doSomething();
        } 
     }

答案 1 :(得分:0)

然后你需要自己编写版本25并重新编写旧的做法以跟上趋势。 Gradle WILL和MAY有更高的API问题不支持某些方法,尤其是人们在自己的方法中使用的库

答案 2 :(得分:0)

您应该使用支票为桤木版本提供替代方案。

if(android.os.Build.VERSION.SDK_INT >= 25) {
    // use new method
} else {
    // use alternative method
}