Руководство по адаптации TargetSdkVersion принудительного обновления Google
Версия Android P, выпущенная Google, выдвигает требования к параметру TargetSdkVersion.Терминальная открытая лаборатория Huawei быстро протестировала ТОП3000 приложений, и результаты тестирования оказались не оптимистичными: более 300 приложений имели проблемы совместимости, а уровень несовместимости превысил одну десятую.
Итак, как разработчикам следует решать проблемы совместимости, возникающие из-за TargetSdkVersion в процессе адаптации версии P? Далее эксперты Huawei помогут вам интерпретировать руководство по адаптации Google TargetSdkVersion<17.
1. История функции Google TargetSdkVersion
Google требует, чтобы значение TargetSdkVersion в настройках приложения в версии P было >=17, в противном случае появится диалоговое окно с предупреждением для пользователя, а у Google есть четкое требование CDD, и это приглашение нельзя удалить.
2. Руководство по адаптации
2.1 Измените значение TargetSdkVersion приложения.
Разработчикам рекомендуется установить для TargetSdkVersion значение 17+. Если параметр TargetSdkVersion слишком высок и рабочая нагрузка по адаптации слишком велика, они также могут установить для адаптации TargetSdkVersion значение 17. Этот параметр минимизирует рабочую нагрузку по адаптации.
2.2 Проблемы совместимости
Тестируйте и устраняйте проблемы совместимости, возникающие в TargetSdkVersion. Разработчики могут обратиться к руководствам по адаптации, предоставленным Google, и сосредоточиться на изменениях и модификациях, которые эффективны только для TargetSdkVersion, в каждой новой версии Google.
2.2.1 Версия P
-
Перенос приложения на Android P. Ссылка: https://developer.android.com/preview/migration .
-
Функции Android P и ссылки на API: https://developer.android.com/preview/features .
-
Ссылка на изменение поведения Android P: https://developer.android.com/preview/behavior-changes
Фокус:
-
Чтобы узнать об ограничениях интерфейса, не связанных с SDK, ссылка: https://developer.android.com/preview/restrictions-non-sdk-interfaces.
-
Адаптация Лю Хайпина, ссылка: https://developer.android.com/preview/features#cutout
2.2.2 Версия О
-
Перенесите приложения на Android 8.0, ссылка: https://developer.android.com/about/versions/oreo/android-8.0-migration .
-
Функции и API Android 8.0, ссылка: https://developer.android.com/about/versions/oreo/android-8.0 .
Фокус:
-
Изменения в поведении Android 8.0, ссылка: https://developer.android.com/about/versions/oreo/android-8.0-changes
-
Максимальное соотношение сторон экрана: если в приложении установлено TargetSdkVersion>=26, то экран с любым соотношением сторон по умолчанию будет отображаться в полноэкранном режиме, и разработчикам необходимо обратить внимание на адаптацию отображения экранов с разными соотношениями сторон. Приложения, ориентированные на Android 7.1 (уровень API 25) или ниже, имеют максимальное соотношение сторон экрана по умолчанию 1,86. Приложения, предназначенные для Android 8.0 или более поздней версии, не имеют максимального соотношения сторон по умолчанию. Если вашему приложению необходимо установить максимальное соотношение сторон, используйте атрибут maxAspectRatio в файле манифеста, который определяет ваш компонент действия.
-
Ограничения на фоновое выполнение: управление трансляцией и фоновыми службами, ссылка: https://developer.android.com/about/versions/oreo/background
-
Разное: ключевые изменения, влияющие на приложения, когда для параметра targetSdkVersion установлено значение «0».
Разнообразие | Краткое содержание | другие ссылки |
Конфиденциальность | Android 8.0 не поддерживает использование системных свойств net.dns1, net.dns2, net.dns3 и net.dns4. | Изменение поведения: |
Обеспечивает выполнение записываемых и исполняемых сегментов кода. | Для нативных библиотек в Android 8.0 реализованы следующие правила: данные не должны быть исполняемыми, а код не должен быть доступен для записи. | Изменение поведения: |
Проверка заголовка и раздела ELF | Динамический компоновщик проверяет наличие дополнительных значений в заголовках ELF и заголовках разделов и терпит неудачу, если значение недопустимо. | Изменение поведения: |
поставить в известность | Приложения SDK для Android 8.0 должны реализовывать один или несколько каналов уведомлений, чтобы отправлять уведомления пользователю. | Обзор API: |
Метод Список.сорт() | Реализации этого метода больше не должны вызывать Collections.sort() , иначе приложение выдаст исключение из-за переполнения стека. | Изменение поведения: |
Коллекции.Метод sort() | В реализациях списков Collections.sort() теперь генерирует исключение ConcurrentModificationException. | Изменение поведения: |
2.2.3 Версия N
Изменения в поведении Android 7.0, ссылка: https://developer.android.com/about/versions/nougat/android-7.0-changes
Ключевые изменения в функциях: приложения NDK, связывающиеся с библиотеками платформы. Начиная с Android 7.0, система не позволяет приложениям динамически связывать закрытые библиотеки NDK, что может привести к сбою вашего приложения. В следующей таблице описаны частная собственная библиотека и ее целевой уровень API. (android:targetSdkVersion), ожидаемое поведение приложения:
библиотека | целевой уровень API | N Поведение предварительного просмотра для разработчиков | Окончательное поведение версии Android N | Будущее поведение платформы Android |
Открыть НДК | произвольно | Как и ожидалось | Как и ожидалось | Как и ожидалось |
частный (временно доступная частная библиотека) |
23 или ниже | Как и ожидалось, вы получаете предупреждение logcat и сообщение на целевом устройстве. | Как и ожидалось, вы получаете предупреждение logcat. | ошибка выполнения |
частный (временно доступная частная библиотека) |
24 или выше | ошибка выполнения | ошибка выполнения | ошибка выполнения |
частный (другой) | произвольно | ошибка выполнения | ошибка выполнения | ошибка выполнения |
2.2.4 М версия
-
Изменения Android 6.0, ссылка: https://developer.android.com/about/versions/marshmallow/android-6.0-changes
-
API Android 6.0, ссылка: https://developer.android.com/about/versions/marshmallow/android-6.0
-
Руководство по тестированию Android 6.0, ссылка: https://developer.android.com/about/versions/marshmallow/android-6.0-testing
Версия 2.2,5 л
-
Android 5.1API, ссылка: https://developer.android.com/about/versions/android-5.1
-
API Android 5.0, ссылка: https://developer.android.com/about/versions/android-5.0
-
Изменения в поведении Android 5.0, ссылка: https://developer.android.com/about/versions/android-5.0-changes
2.2.6 К версия
-
API Android 4.4, ссылка: https://developer.android.com/about/versions/android-4.4
2.2.7 Версия J
-
API Android 4.3, ссылка: https://developer.android.com/about/versions/android-4.3 .
-
API Android 4.2 (уровень API: 17), ссылка: https://developer.android.com/about/versions/android-4.2
-
API Android 4.1 (уровень API: 16), ссылка: https://developer.android.com/about/versions/android-4.1
Разработчикам рекомендуется протестировать и проверить приложение несколько раз, чтобы избежать возникновения новых проблем совместимости.
3. Метод тестовой проверки
3.1 Версия щетки P
Купите Google Pixel, Pixel XL, Pixel2, Pixel 2 XL, почистите версию P для тестирования.
3.1.1 скачать версию
Ссылка: https://developer.android.google.cn/preview/download .
оборудование | ссылка для скачивания | Контрольная сумма SHA-256 |
Пиксель | парусник-ppp2.180412.013-фабрика-18f60ec5.zip | 18f60ec5d77dc44a2c80ca0819fe3ce3aaeba04cd35a58598b8352eb200b010a |
Пиксель XL | марлин-ppp2.180412.013-фабрика-cf8ae2b1.zip | cf8ae2b1bfe6b9ba8ada311436c29e1cee731c16f1bf790cc36923faf96ee423 |
Пиксель 2 | судак-ppp2.180412.013-фабрика-6406b348.zip | 6406b348c6dc2349b1dcf33e1031043d3d0a2c3a065f64e0385d8ee6dacfbcbf |
Пиксель 2 XL | таймень-ppp2.180412.013-фабрика-546fdc1f.zip | 546fdc1fa56d4d47f1c729688c8087d66d59ce831f01b08e28b67bb0320463cd |
Версия DP2, вам необходимо изменить язык отображения внизу веб-страницы на английский, а китайский дисплей по-прежнему будет версией DP1.
3.1.2 Мигание
Перед прошивкой необходимо выйти из аккаунта Google, в который вы вошли ранее.
1. Загрузите сжатый пакет соответствующего устройства и распакуйте его.
2. После подключения телефона к USB выполните команду adb restart bootloader.
3. Когда на мобильном телефоне появится небольшой рисунок робота и слово «разблокировать», выполните bat-скрипт в сжатом пакете.
4. Если это «блокировка»:
(1) Нажмите «Настройки-Номер версии» 7 раз подряд, чтобы открыть параметры разработчика; (
2) Откройте OEM-разблокировку в параметрах разработчика;
(3) Подключите телефон к компьютеру и выполните adb Команда перезагрузки загрузчика для интерфейса маленького робота;
(4) Выполните разблокировку fastboot oem, телефон будет разблокирован, а затем используйте описанный выше метод перепрошивки.
3.2 Удаленная отладка реальной машины
Если новому пользователю необходимо подать заявку на участие в функции облачного тестирования в открытой лаборатории терминала Huawei, ему необходимо присоединиться к Android Green Alliance и стать его участником. Подайте заявку, выполнив следующие действия:
1. Авторизуйтесь на платформе DevEco .
2. Используйте адрес электронной почты с суффиксом вашей компании, чтобы зарегистрировать учетную запись.
3. Отправьте свой новый номер учетной записи, компанию, личное имя и номер телефона, а также название ответственного приложения на адрес [email protected], чтобы подать заявку на вступление в Android Green Alliance. После прохождения проверки вы будете дал разрешение на его использование.
4. Войдите в учетную запись и выберите реальное устройство для удаленной отладки.
5. Выберите телефон: Pixel.
6. Нажмите «Испытать сейчас», чтобы загрузить APK для отладки.
3.3. Проверка с помощью Google Simulator
Установите и настройте Android P SDK и эмулятор, см. https://developer.android.google.cn/preview/setup-sdk.
Чтобы получить более интересный контент версии Android P, обратите внимание на Android Green Alliance.