Android 版本兼容

常用命令

查看一個手機(jī)的cpu架構(gòu)
adb shell cat /proc/cpuinfo
查看手機(jī)的SDK版本
adb shell getprop ro.build.version.release

RequiresApi

需要注意的是,該注解僅僅在編輯階段才有用,如

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void func() {
}

private void call_func1() {
  if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    func();
  }
}

private void call_func2() {
    func();
}

編譯階段

當(dāng)minSdkVersion比RequiresApi設(shè)置的LOLLIPOP低時,這個時候是可以編譯通過,只是Android Studio會紅色顯示call_func2里的func(),提示添加Build.VERSION判斷。

運(yùn)行階段

當(dāng)運(yùn)行的手機(jī)的SDK版本比RequiresApi設(shè)置的LOLLIPOP低時。
當(dāng)調(diào)用到call_func2時,func()函數(shù)還是會執(zhí)行,并不因?yàn)榧恿薘equiresApi就不執(zhí)行。
這個和Spring里的注解區(qū)別還挺大的,Spring中的類似注解,當(dāng)判斷不符合某種條件時,注解是不會真正調(diào)用標(biāo)記的函數(shù)的。

對應(yīng)表

Codename Version API level/NDK release
Android11 11 API level 30
Android10 10 API level 29
Pie 9 API level 28
Oreo 8.1.0 API level 27
Oreo 8.0.0 API level 26
Nougat 7.1 API level 25
Nougat 7.0 API level 24
Marshmallow 6.0 API level 23
Lollipop 5.1 API level 22
Lollipop 5.0 API level 21
KitKat 4.4 - 4.4.4 API level 19
Jelly Bean 4.3.x API level 18
Jelly Bean 4.2.x API level 17
Jelly Bean 4.1.x API level 16
Ice Cream Sandwich 4.0.3 - 4.0.4 API level 15, NDK 8
Ice Cream Sandwich 4.0.1 - 4.0.2 API level 14, NDK 7
Honeycomb 3.2.x API level 13
Honeycomb 3.1 API level 12, NDK 6
Honeycomb 3.0 API level 11
Gingerbread 2.3.3 - 2.3.7 API level 10
Gingerbread 2.3 - 2.3.2 API level 9, NDK 5
Froyo 2.2.x API level 8, NDK 4
Eclair 2.1 API level 7, NDK 3
Eclair 2.0.1 API level 6
Eclair 2.0 API level 5
Donut 1.6 API level 4, NDK 2
Cupcake 1.5 API level 3, NDK 1
(no codename) 1.1 API level 2
(no codename) 1.0 API level 1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容