Как обновить версию Android SDK в плате разработки? - PullRequest
1 голос
/ 03 октября 2019

Я новичок в 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__
...