У меня здесь довольно большая проблема:
Я хочу, чтобы все карты Европы были на моих устройствах, но у них недостаточно внутренней памяти, чтобы иметь их все, поэтому Я использую SD-карту для их хранения.
Проблема в том, что при инициализации MapEngine [MapEngine.getInstance (). Init (...)] загрузка занимает много времени (до тех пор, пока OnEngineInitListener выполняется) на старых устройствах (Honor 5X [huawei KIW-L24] для старого устройства с android 6.0.1, но это довольно случайно, обычно это занимает около 23 секунд, но иногда это может занять 2 секунды, в противном случае это может займет до полутора минут.
Итак, я попытался профилировать приложение на android studio, и оно зависло в методе com.nokia.maps.MapServiceClient.startServer, как показано на Прикрепленное изображение:
Honor 5X Android Образец профилировщика
Я попытался восстановить заводские настройки телефона и даже попытался использовать другие телефоны Hono 5x, и та же проблема возникает .
На logcat я получаю эту ошибку только перед Во время запуска OnEngineInitListener (с подключенным WiFi, отключенным и с отключенным WiFi):
24442-24442/net.gottsolutions.gps E/WifiManager: WifiServiceMessenger == null
С другой стороны, я протестировал то же приложение и ту же SDCard на Nokia 4.2 (Android 9.0) и для запуска этого метода потребовалось около 2 секунд.
Поэтому я решил протестировать ваше приложение (Здесь мы Go) с картами Европы на SDCard, и у меня возникла аналогичная проблема, как на GPS I развиваюсь.
Прикрепленное видео:
https://youtu.be/YH7w9p0NeCs
Другая проблема заключается в том, что при инициализации MapEngine он блокирует пользовательский интерфейс, даже если он запущен в другом потоке или в фоновом режиме.
Используемой SDCard является Kingston 32GB UHS I.
MapEngine.getInstance().init(sdkAppContextApplicationContext, error ->
{
if (error == OnEngineInitListener.Error.NONE)
{
if (ISDKMapEngineListener != null)
ISDKMapEngineListener.onSDKReady();
} else
{
Log.e("MapEngine", "Failed to initialize MapEngine: " + error);
}
});