Я новичок в Android здесь.
Я использую плату разработки под названием hikey 970 с установленным на ней андроидом, когда он был доставлен в мою компанию.
В настоящее время яя запускаю nnapi
тест на Android с tflite
, которому нужно getprop ro.build.version.sdk >= 27
, когда я читаю соответствующий код (код приведен ниже). Тем не менее, плата предлагает только getprop ro.build.version.release = P
и getprop ro.build.version.sdk = 26
. Это выглядит странно, потому что Android P обычно предоставляет более высокую версию SDK.
Поэтому у меня такой вопрос: как я могу обновить версию SDK в плате разработки? Нужно ли перекомпилировать всю ОС или просто загрузить бинарный файл и прочее? Я прочитал кучу статей, и все они говорят о sdkmanager
, что не относится к моим ограниченным знаниям.
#ifdef __ANDROID__
int32_t GetAndroidSdkVersion() {
const char* sdkProp = "ro.build.version.sdk";
char sdkVersion[PROP_VALUE_MAX];
int length = __system_property_get(sdkProp, sdkVersion);
if (length != 0) {
int32_t result = 0;
for (int i = 0; i < length; ++i) {
int digit = sdkVersion[i] - '0';
if (digit < 0 || digit > 9) {
// Non-numeric SDK version, assume it's higher than expected;
return 0xffff;
}
result = result * 10 + digit;
}
// TODO(levp): remove once SDK gets updated to 29th level
// Upgrade SDK version for pre-release Q to be able to test functionality
// available from SDK level 29.
if (result == 28) {
char versionCodename[PROP_VALUE_MAX];
const char* versionCodenameProp = "ro.build.version.codename";
length = __system_property_get(versionCodenameProp, versionCodename);
if (length != 0) {
if (versionCodename[0] == 'Q') {
return 29;
}
}
}
return result;
}
return 0;
}
#endif // __ANDROID__
// ==============================================
// const NnApi LoadNnApi();
// Most of the function is ommitted.
#ifdef __ANDROID__
nnapi.android_sdk_version = GetAndroidSdkVersion();
if (nnapi.android_sdk_version < 27) {
NNAPI_LOG("nnapi error: requires android sdk version to be at least %d",
27);
nnapi.nnapi_exists = false;
return nnapi;
}
#endif // __ANDROID__