つぶやきを監視しております。いつもありがとうございます。
Android 端末のリリース時のバージョン (API レベル) を調べる方法 "adb shell getprop ro.product.first_api_level"
— Yuichi Araki (@yuichi_araki) April 26, 2019
やってみる。
~ $ adb shell getprop | grep api
[ro.product.first_api_level]: [25]
「SDK」関連を見てみます。
~ $ adb shell getprop | grep sdk
[ro.bootimage.build.version.sdk]: [28]
[ro.build.version.min_supported_target_sdk]: [23]
[ro.build.version.preview_sdk]: [1]
[ro.build.version.preview_sdk_fingerprint]: [9049062ccadb8a692212952393179260]
[ro.build.version.sdk]: [28]
[ro.qc.sdk.audio.fluencetype]: [fluencepro]
[ro.system.build.version.sdk]: [28]
[ro.vendor.build.version.sdk]: [28]
てか、整数のAPIバージョン数が分からないので、コードネームとの対照を調べる。
23 M 6 Marshmallow
24 N 7 Nougat
25 N_MR1 7.1 Nougat
26 O 8.0 Oreo
27 O_MR1 8.1 Oreo
28 P 9.0 Pie
core/java/android/os/Build.java - platform/frameworks/base - Git at Google
または、アプリ内部から吐かす。
Build.VERSION_CODES::class.declaredMembers.forEach { p ->
p.isAccessible = true
Log.d("VERSIONS", "${p.call()} -> ${p.name}")
}
D/VERSIONS: 1 -> BASE
D/VERSIONS: 2 -> BASE_1_1
D/VERSIONS: 3 -> CUPCAKE
D/VERSIONS: 10000 -> CUR_DEVELOPMENT
D/VERSIONS: 4 -> DONUT
D/VERSIONS: 5 -> ECLAIR
D/VERSIONS: 6 -> ECLAIR_0_1
D/VERSIONS: 7 -> ECLAIR_MR1
D/VERSIONS: 8 -> FROYO
D/VERSIONS: 9 -> GINGERBREAD
D/VERSIONS: 10 -> GINGERBREAD_MR1
D/VERSIONS: 11 -> HONEYCOMB
D/VERSIONS: 12 -> HONEYCOMB_MR1
D/VERSIONS: 13 -> HONEYCOMB_MR2
D/VERSIONS: 14 -> ICE_CREAM_SANDWICH
D/VERSIONS: 15 -> ICE_CREAM_SANDWICH_MR1
D/VERSIONS: 16 -> JELLY_BEAN
D/VERSIONS: 17 -> JELLY_BEAN_MR1
D/VERSIONS: 18 -> JELLY_BEAN_MR2
D/VERSIONS: 19 -> KITKAT
D/VERSIONS: 20 -> KITKAT_WATCH
D/VERSIONS: 21 -> LOLLIPOP
D/VERSIONS: 22 -> LOLLIPOP_MR1
D/VERSIONS: 23 -> M
D/VERSIONS: 24 -> N
D/VERSIONS: 25 -> N_MR1
D/VERSIONS: 26 -> O
D/VERSIONS: 27 -> O_MR1
D/VERSIONS: 28 -> P
D/VERSIONS: 10000 -> Q
この端末は API 25 の Nougat(MR1) でデビューしています。
今現在 「28-9.0-Pie」ように見えていますが、実際は、「Q-Preview」です。
I want a lint check that bans the use of Build.VERSION_CODES constants. I don't care about letters or the (even worse) codenames. API docs, lint output, build.gradle files, and AS use numbers. There's a difference between magic constants and constants and these are the latter.
— Jake Wharton (@JakeWharton) October 8, 2018