Размер страницы памяти 16 КБ для Flutter Android и требования ndkVersion?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Размер страницы памяти 16 КБ для Flutter Android и требования ndkVersion?

Сообщение Anonymous »

Я ознакомился с руководством по миграции и уже убедился, что у меня установлена ​​версия плагина Android Gradle (AGP) 8.5.1 или выше; у меня 8.7.3.
Второе, что я гарантировал, это то, что выравнивание сегментов ELF поддерживает размер страницы памяти 16 КБ. Я использовал команду llvm-objdump-18 на своем компьютере с Ubuntu Linux и выполнил следующую команду из корня проекта (когда проект был скомпилирован для отладки и приложение работало в режиме отладки):

Код: Выделить всё

find | grep '\.so$' | xargs -I{} -exec llvm-objdump-18 -p "{}" | grep 'LOAD'
Вывод приведенной выше команды:

Код: Выделить всё

LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off    0x0000000001dd0240 vaddr 0x0000000001de0240 paddr 0x0000000001de0240 align 2**16
LOAD off    0x00000000026f2370 vaddr 0x0000000002712370 paddr 0x0000000002712370 align 2**16
LOAD off    0x0000000002784490 vaddr 0x00000000027b4490 paddr 0x00000000027b4490 align 2**16
LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off    0x0000000001dd0240 vaddr 0x0000000001de0240 paddr 0x0000000001de0240 align 2**16
LOAD off    0x00000000026f2370 vaddr 0x0000000002712370 paddr 0x0000000002712370 align 2**16
LOAD off    0x0000000002784490 vaddr 0x00000000027b4490 paddr 0x00000000027b4490 align 2**16
Здесь в выводе очевидно, что сегменты загрузки не имеют значений меньше 2**14 == 16 КБ.
Третье, в чем я убедился, — это то, что мое приложение отлично работает на виртуальном устройстве Android (AVD), поддерживающем размер страницы памяти 16 КБ, путем настройки нового API 36 AVD. Кажется, мое приложение работает хорошо, не приводя к каким-либо ошибкам.
Я читал предложения о том, что мне также нужно, чтобы ndkVersion был не ниже r28 или выше, чтобы мое приложение полностью поддерживало размер страницы памяти 16 КБ. Или, поскольку моя текущая версия ndkVersion "27.0.12077973" также правильно скомпилировала библиотеки .so, поддерживающие страницы размером 16 КБ, могу ли я быть уверен, что мое приложение будет работать без соответствующих ошибок на устройствах 16 КБ? Поскольку компиляция с выравниванием 16 КБ не используется по умолчанию для ndkVersions ниже r28, как моя используемая версия скомпилировалась правильно?
Ссылки:
  • Поддержка размеров страниц 16 КБ


Подробнее здесь: https://stackoverflow.com/questions/797 ... equirement
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»