Oleg Weedy (olweedy) wrote,
Oleg Weedy
olweedy

Category:

Читалка Weedy Reader - на дроидмаркте

Знаковое событие!

Многострадальная читалка  - уж полтора года пишется-ломается - выложена на гуглодроид маркт, йо йо йо!!
Увы, по-прежнему малофункциональна, ибо все журналы подгружаются с сервера и куча времени на эту возню выходит;;
Но уже шевелится, надо довести до ума.
Интересно что прогеры - несмотря на мои требования!! - отговаривают от сохранения контента на девайсе.
Чудеса.
Но вроде достучался.
Пока вот какое есть, в течении месяца жду апдейта в виде бесплатных версий журналов и сохранения всех данных на девайсе.




Технические прения ложу под кат для памяти

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

Это то, о чем я тебе писал вчера. Твои журналы жутко не оптимизированны. Мобильные устройства совершенно не могут их нормально рендерить. И не надо все скидывать на нашу читалку – загрузи любой свой журнал на том же нексусе в Adobe Reader и посмотри на скорость. И это продукт от крупнейшей корпорации, которая этот самый PDF формат изобрела.

>купленая версия опять грузится из интернета - не могу почитать вообще, виселово на каждой странице. просто мрак. ваще невозможно.

Давай четко разделим понятия - грузится из интернета и рендерится - разные вещи.

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

Теперь подробнее о рендеринге. После того, как журнал загрузился, его следовательно можно показать пользователю, но не все так быстро. Каждую страничку нужно распарсить (прочитать данные – PDF формат представляет собой сложную XML иерархию. Очень сложную и замудренную), после чего всю эту сложную прочитанную структуру надо загнать под видеокарту устройства. Для каждого из использованных тобой элементов, создается штамп в текстуру и с учетом последовательности или других особых моментов вроде, размытия, сглаживания, тени, смешивания и т.д., отправляется в стек видеокарты. Когда все элементы по очереди отрендерелись, они собираются в единую текстуру, и уже после этого выводятся на экран. Каждое такое действие называется DrawCall и содержит в себе до сотни операций, вычисляемых сперва на процессоре, потом на видеокарте. Во время рендеринга, ты видишь на экране темный квадрат с закругленными углами, внутри которого бегая по кругу полоска. Это явный индикатор того, что страница рендерится.

А теперь момент истины. В среднем на каждую страницу у тебя примерно 1000 таких объектов. Встречаются и мастодонты по 10000. Сотрудники компании Adobe, увидев это, покрутили бы у виска. Если провести прямую аналогию, то выглядит все следующим образом. Есть известная всем игра Bad Piggies от компании Rovio. Эта игра написана на движке Unity. Эта игра отлично идет на твоем старичке Galaxy Nexus, при этом выжимает из него все соки. Так вот. В этой игре, используется всего от 5 до 15 DrawCall на каждый кадр. При этом разрешение каждого элемента в DrawCall (если считать именно клипнутые участки текстуры) составляет не более 256 на 256 пикселей. И вот такая игра заставляет твоего старичка попотеть, чтобы не тормозить. А теперь давай вернемся в твоим не оптимизированным журналам. У тебя от 1000 до 10000 элементов с разрешениями от 1024 x 1024 пикселей, с кучей исключительно процессорных элементов, в невероятно сложной иерархии.

Наше приложение рендерит для пользователя при открытии 1-ю и следующую страницу сразу. При открытии каждой следующей страницы, мы рендерим по одной странице наперед. Это логично весьма. Но мы не несем ответственности за столь некорректный PDF. Поэтому чтобы исправить данные нюансы, займись жесткой оптимизацией журналов.
Tags: weedy reader
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments