Android MapView медленный и не отвечает - PullRequest
1 голос
/ 10 января 2012

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

Я перерабатываю растровые изображения и очищаю вещи, но, похоже, это не помогает. Во время разработки приложения казалось, что некоторые телефоны испытывают проблемы с отображением карты, но теперь это кажется очень постоянным.

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

На телефонах, которые работают, плитки вида карты загружаются быстро, другие части приложения работают очень быстро, поиск по карте Google дает подсказки для поиска, и карта обновляется точно так, как нужно.

что вызывает это и как я могу улучшить это? (это стандартный код карты)

Я видел похожий вопрос о том, «android mapview работает медленно», в основном это была моя проблема, но решение для меня не имело значения, как приложения, использующие для этого аккаунт mapview?

Ответы [ 3 ]

3 голосов
/ 10 января 2012

Вы просматривали этот отчет об ошибке (и связанные с ним обходные пути):

http://code.google.com/p/android/issues/detail?id=2181

1 голос
/ 18 января 2012

Ну, на самом деле вы не предоставляете какой-либо код, но считаете ли вы, что проблема может быть связана с чем-то иным, чем с просмотром карты? Или вы подумали, что, возможно, вы могли бы улучшить производительность другими способами? * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

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

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

Еще одна вещь, которую вы могли бы попробовать, это отойти от вкладок с действиями (я полагаю, вы делаете это сейчас) и использовать вместо них вкладки с фрагментами. И да, это возможно с помощью mapview, просто применив один из множества фрагментов mapmaptivities или сделав свой фрагментарно активным.

0 голосов
/ 17 января 2012

Одной вещью, которая вызывающе улучшит вашу производительность, будет установка mapView в качестве вида сверху вашей активности.

MapView myMap = createMapView();

setContentView(myMap);

И я даже предложу вам сделать это в новой деятельности.Конечно, если сможешь.

...