繁体   English   中英

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

[英]Which way does the Android minimum SDK work?

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

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

@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.在调用this方法的方法( doSomething() )中,您需要实现此方法。

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

那么您需要将自己编码为版本25,然后重新编码旧的方法以跟上趋势。 Gradle WILL和MAY可能存在问题,高级API不支持某些方法,尤其是人们在自己的方法中使用的库

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM