Изменение локали эмулятора Android автоматически

Для автоматизированного тестирования (использующий Гудзон) у меня есть сценарий, который генерирует набор эмуляторов для многих комбинаций версии ОС Android, разрешения экрана, экранной плотности и языка.
Это хорошо работает, за исключением части языка.

Я должен найти способ изменить системную локаль Android автоматически. Вот некоторые подходы, о которых я могу думать, в порядке предпочтения:

  • Извлекают/редактируют/переупаковывают изображение QEMU непосредственно прежде, чем запустить эмулятор
  • Выполнение своего рода системного изменения локали APK на эмуляторе после запуска
  • Изменение настроек локали в файловой системе эмулятора после запуска
  • Изменение настроек локали в некотором DB SQLite на эмуляторе после запуска
  • Выполнение сочетания клавиш (через интерфейс telnet эмулятора), который открыл бы приложение настроек и изменил бы локаль
  • Вручную запуская эмулятор для каждой версии платформ, изменяя локаль вручную в настройках, сохраняя его и архивируя изображения для более позднего развертывания

Какие-либо идеи, может ли это быть сделано, или с помощью вышеупомянутых методов или иначе?

Вы знаете, где настройки локали сохраняются к/чтение от системой?


Решение:
Благодаря информации dtmilano о соответствующих свойствах и некоторому дальнейшему расследованию с моей стороны, я предложил решение еще лучше и более простой, чем все идеи выше!

Я обновил его ответ ниже с деталями.

27
задан Christopher Orr 11 March 2010 в 19:54
поделиться

1 ответ

Лично я считаю, что самый простой способ - запустить эмулятор, возможно, чистый экземпляр, если вы не запускаете интеграционные тесты, которые зависят от других приложений, а затем меняете языковой стандарт с помощью adb:

$ adb shell '
setprop persist.sys.language en;
setprop persist.sys.country GB;
stop;
sleep 5;
start'

или любой другой языковой стандарт, который вы хотите установить. {{ 1}} Чтобы убедиться, что ваше изменение было успешным, просто используйте

$ adb shell 'getprop persist.sys.language'

. Вы также можете запустить эмуляторы на известных портах, посмотрите мой ответ в этой ветке .


Обратите внимание, что вы также можете установить свойства системы напрямую при запуске эмулятора :

emulator -avd my_avd -prop persist.sys.language=en -prop persist.sys.country=GB

Таким образом, вы можете создать простой старый эмулятор любого типа, а затем сразу же запустить его, используя выбранную вами локаль. , без предварительной модификации изображений эмулятора.

Этот языковой стандарт будет сохраняться для будущих запусков эмулятора, хотя, конечно, вы всегда можете изменить его снова при запуске или во время выполнения.

55
ответ дан 28 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: