常用命令
查看一個手機(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