Показать сообщение отдельно
Старый 01.05.2016, 21:12   #12
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Авторизация и хранение данных в Google-аккаунте

Проблема

С выводом текста лицензии об использовании ПО с открытым кодом вышел прикол - эта "хрень" выводится на экран 37 секунд!!
В это время прога подвисает, так, что андроид говорит, что прога заклинила.

Причём, получение строки текста через
GoogleApiAvailability.getInstance().getOpenSourceSoftwareLicenseInfo(getApplicationContext()); 
занимает 54 мс,
вывод AlertDialoga'a с момента setMessage() до show() всего 26 мс.

Миллисекунд.

И далее относительно гигантская строка - 114 514 символов - парсится, пытаясь уместиться в диалог (а что ещё там может занимать столько времени?).
Каждые 2-3 секунды в консоль андроид выводит инфу от GC - очищая примерно 500кб.

Решение

Выводим содержимое в webView, предварительно заменив \n на < br > (иначе всё слипается в месиво).
Этот способ занимает 3 секунды - вполне приемлемо.

Из "минусов" - горизонтальная прокрутка из-за того, что в лицензии используются разделители-из-дохрена-символов-равно.
Можно сделать замену === на =, но нафиг надо - слишком жирная строка чтобы её модифицировать лишний раз.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (10.05.2016)