среда, 9 января 2013 г.

ОЗУ-шные аппетиты браузеров в Android и полный 日本語

На днях я рассказывал о мобильном Firefox, держа в руках планшет Prestigio 5080C PRO. Сегодня же, побывав у родителей, воспользовавшись DNS AirTab E101, я могу показать и планшетный вариант интерфейса браузера.
Но больше всего мне хотелось посмотреть, сколько же оперативной памяти кушают браузеры. А встречал утверждения как об удачной работе Firefox на 256МБ устройствах, так и о проблемах с 512МБ ОЗУ. Тест проводился так. Сначала я замерял из меню запущенных приложений объем занятой памяти. Потом открывал браузер с домашней страницей. В случае со штатным браузером Android я использовал about:blank, так как по умолчанию запустилась куча вкладок от отца, а разбираться с иными вариантами не было времени. Вообще, мне хотелось посмотреть на работу Firefox, Opera Mobile и Chrome. Все три - порты настольных версий. Все три работают на инсталлируемом движке, причем у каждого он свой. Но не все получилось гладко. Chrome напрочь отказался работать. Причем, я пробовал и ранние версии с 4PDA, и перегружал планшет. Но браузер был упрям, и запускаться не желал ни при каких обстоятельствах. Поэтому на место Chrome встал штатный браузер Android. В любом случае, тот же движок и практически идентичный интерфейс.
Так вот, а третий замер памяти был после того как открывались три вкладки. Сайты Mozilla.Россия, iXBT и RuTor. Вот так выглядели браузеры после открытия трех вкладок.

 Firefox 18
Opera 12.1.4

Штатный браузер Android 

 В связи с тем, что здесь, похоже, нельзя создавать таблицы, придется объяснять расход памяти на пальцах. Первая цифра будет - занято памяти до запуска браузера, вторая - запуск с домашней страницей, третья - после открытия трех вкладок. Единицы измерения - мегабайты.
Firefox - 241, 274, 349. Opera - 253, 283, 329. Android - 255, 281, 341. Путем несложных арифметических операций вычисляем расход памяти пустым браузером и с тремя загруженными сайтами. Firefox - 33 и 108. Opera - 30 и 76. Android - 26 и 86. Нетрудно заметить, что Firefox - самый прожорливый, но разница измеряется в нескольких десятках мегабайт.
На этом можно было бы и закончить, если бы не интересное приключение, произошедшее со мной чуть позже. На форуме Mozilla Россия лет 5-6 тому назад я любил ругать настольную Opera. Много воды с тех пор утекло, наступил 2013 год, Android. У мамы не работает Skype. Забыла пароль. Нажимаю на кнопку восстановления пароля. Отправляется e-mail. Открываю его. На китайском языке. Да, я знаю, что DNS AirTab E101 - это перепрошитый китаец, но не настолько же. Ладно, рассуждая логически, перехожу по первой ссылке в письме. Предлагается выбрать браузер. Выбираю Opera. Дай, думаю, поработаю в ней. Открывается страница сброса пароля, тоже все на китайском. И тут уже не все так тривиально, и я не решился действовать вслепую. А языки, между тем, приходится по жизни переключать регулярно, и каракулями типа 日本語 ("китайский") меня не напугать. Открываю меню, выбираю русский. Страница перегружается. Опять китайский. Пробовал и заново запускать браузер, вставляя ссылку из буфера. Все равно только китайский язык. Печаль меня настигла. Открыл Firefox. Вставил ссылку. Русский язык! Попробовал напрямую по ссылке из e-mail перейти. Русский! Получается, Opera или некорректно работает с языками или я чего-то не понимаю в логике Android. В любом случае, работа Firefox меня полностью устроила, я восстановил пароль, и мама моя успешно пообщалась с сестрой из другого города.

понедельник, 7 января 2013 г.

Очень мобильный Firefox



Я похож на Intel. Точно также запоздал с приходом на мобильный рынок. Пока все мои друзья каждый вечер заряжали телефоны на Android, я стыдливо прятал в карман свою древнюю Nokia. У меня никогда не было телефонов дороже $200. И даже в прошлом году я как раз уложился в эту сумму, купив Nokia C6 - touchscreen на Symbian 9.4 с выдвижной qwerty-клавиатурой. На моем телефоне прочно обосновалась Opera Mini, а о большем я и не мечтал со своим 434МГц ARM11 процессором и 128МБ ОЗУ. Благо, все популярные социальные сети из норвежского телефонного браузера работают без нареканий, а трафик экономится просто отлично.
Но в прошлом году произошли события, заставившие меня захотеть мобильный девайс помощнее. Причиной тому стало бурное развитие Firefox для Android. Из поделки для гиков мобильный лис превратился в достойного конкурента телефонным столпам - штатному браузеру Android, Chrome, Dolphin и т.д.
Так как полностью устраивающий телефон у меня уже был, я решил купить планшет. Опять же, выходить за психологический порог в $200 не хотелось, поэтому куплен был Prestigio 5080C PRO. C дополнительной microSD картой на 32ГБ как раз вышло $200 в рублевом эквиваленте.
Перед тем, как начать рассказывать о том, как работает на такой скромной таблетке Firefox, я бы хотел очень коротко пройтись по штатному браузеру Android.
 


Внешне он напоминает Google Chrome. Движок тот же, WebKit. большинство браузеров для Android на самом деле являются просто надстройками над движком. Тоже самое было несколько лет тому назад в Windows, когда большой популярностью пользовались оболочки над Trident, типа MyIE или Maxthon. Кстати, любопытная вещь - Chrome ставится в систему как полноценный браузер. Несмотря на то, что он тоже использует движок WebKit, от штатного браузера получается полная независимость.
Интерфейс выполнен в духе настольных ПК. Сверху панель вкладок, ниже стандартная панель инструментов с адресной строкой. Управление закладками также выполнено в "настольном" духе. Каждому сайту присваивается миниатюра, и получается такая табличка из плиток а-ля Windows 8. Впрочем, по умолчанию миниатюр нет, а вместо них отображаются унылые глобусы. При наборе адреса включается аналог "умной строки" в Firefox. Удобство и эффективность оценивать не берусь, как в первый же день установил Firefox и все внимание переключил на него. Работает синхронизация с сервисами Google. Если вы в на ПК пользовались Chrome, то закладки можно перенести оттуда.
Работает штатный браузер на моем планшете отлично, никаких тормозов нет. Если что-то медленно и открывается, то это по вине тяжелых сайтов или флэша, который, кстати, работает прямо из коробки. Все таки у меня всего одно ядрышко в процессоре, и ему тяжело переваривать творческий полет некоторых веб-дизайнеров.
Наконец-то, мы подошли к самому интересному - к Firefox. В официальные системные требования мое устройство вписывается, ну а на практике браузер запускается даже на древних Android-девайсах с 256МБ ОЗУ. Правда, для нормальной работы все же желательно иметь 512МБ ОЗУ и процессор хотя бы как у меня - на 1ГГц.
Изначально Firefox для Android разрабатывался с использованием XUL, то есть за интерфейс отвечали те же библиотеки, что и на настольных ПК. Плюс - хорошая совместимость по расширениям, минус - очень низкая отзывчивость интерфейса. Начиная с версии 14, Firefox перешел на принципиально новый интерфейс, который использует родные библиотеки ОС. Все стало работать шустрее, но дополнения теперь четко разделились на настольные и мобильные.
Я ставил ради интереса версию 10. Фу. Выглядит ужасно. Честное слово. такое впечатление, что дизайнеры Mozilla вообще не участвовали в создании этого чудовища. Программисты что-то нашкодили - о, работает, выпускаем релиз. А далее, если мне не изменяет память, официальных релизов не было, браузер развивался в рамках альф и бет. К 12-ой ветке интерфейс наконец-то получился адекватным. Появилось несколько новых кнопок, и дизайн, как минимум, перестал отпугивать. Но работало все, как ни крути, медленно. XUL тянул проект на дно. У меня на планшете сейчас нет этих версий, снес давно, но вот вам нагугленная картинка Firefox 10.


А это одна из тестовых версий 12-ой ветки.

Начиная же с Firefox 14, браузер стал выглядеть по-современному.
 Но главное, что интерфейс стал очень отзывчив, что вообще непривычно даже для настольной версии браузера. Обратите внимание, что в 10 версии браузера еще не было боковой панели вкладок. Да, ее действительно еще не сделали. Затем ее реализовали, но включать стали на всех устройствах подряд. И, опять же, начиная с 14 версии, появился умный алгоритм выбора типа интерфейса. Он не зависит от того, планшет ли у вас или телефон, хотя официально это преподносится именно так, что вызывает кучу непонимания даже в Bugzilla. Выбор интерфейса зависит от плотности пикселей экрана (ppi). Причем, речь идет не о физическом параметре матрицы, а о настройке конкретного устройства. Иными словами, некоторые телефоны и планшеты настроены на отображение крупных элементов интерфейса, у них указывается большое значение ppi. Типа, плотность большая, все мелко, давайте покажем на экране все крупнее. У других устройств все наоборот. Опытным путем было установлено, что на моем устройстве планшетный интерфейс включается при значении 120 ppi. А по умолчанию стоит значение 160. То есть, используется телефонный интерфейс. О нем и пойдет речь далее.
Список открытых документов отображается иначе, не как на настольных ПК. Вместо панели вкладок справа отображается число открытых документов. Как в Opera Mini. Если ткнуть пальцем в цифру, выплывает меню со списком открытых страниц.
В планшетной версии интерфейса этот список располагается слева, в боковой панели. На 10-дюймовых экранах с соотношением сторон 16:10 так удобней. И там действительно используется планшетная версия интерфейса. Но на телефонах и на 7 и 8 дюймовых планшетах боковая панель будет или слишком мелкой или закроет пол экрана. Поэтому решено отображать ее сверху, всплывающим списком. Крестик справа закрывает документ.
В самом углу справа располагаются три вертикально расположенных точки. Это кнопка. Она вызывает основное меню приложения.
Как видите, документ можно добавить в закладки, а также поделиться им. В отличие от iOS, где список социальных сетей ограничен (точно не помню пункты, но что-то неадекватное), здесь программа предлагает все установленные социальные приложения. В моем случае это оказалось - GMail, Twitter, Facebook, Skype, Google Диск, Одноклассники и ВКонтакте. Повторюсь, если у вас уставлено что-то типа Google+, Мой Мир, то Firefox увидит и их.
Поиск на странице реализован также как в настольной версии. Выскакивает снизу панель, вводим текст, фокус сразу стремится к месту первого совпадения. Есть кнопки перелистывания вниз и вверх.
По умолчанию браузер пытается отобразить мобильную версию сайта, если таковая имеется. Существует дополнение Desktop By Default, которое заставляет браузер представляться настольным и, соответственно, всегда показывает полные версии сайтов. Напротив некоторых сайтов в адресной строке дополнительно отображается книжечка. Это означает, что ресурс поддерживает печатный вариант форматирования. Переключившись в него, мы получаем практически голый текст, который в некоторых случаях удобней для чтения. Например, форум Mozilla Россия поддерживает такую функцию.
Как только сайт начинает загружаться, в адресной строке начинает отображаться его заголовок, что очень удобно, так как освобождает от необходимости показывать на экране заголовок окна или панель вкладок, как это имеет место в настольных версиях Firefox. Если ткнуть пальцем в заголовок, то он сменится веб-адресом и его можно будет редактировать.
Как только вы начинаете что-то набирать в адресной строке, включаются "умные" подсказки. Работают они точно также, как и в настольной версии. По умолчанию включается вкладка "топ сайтов", которая фактически является мобильной интерпретацией Fast Dial. Да-да, я только и делаю, что торчу на форуме Mozilla Россия, да качаю порнушку.
 
Закладки в мобильном Firefox реализованы, на мой взгляд, не слишком удачно. Дело в том, что после синхронизации с настольным ПК, его ссылки помещаются в специальную папку. И пока дойдешь до нужной ссылки, сломаешь палец или протрешь до дыр экран. Очень неудобно. По этой причине мне показалось, что значительно оперативней просто начинать вводить адрес и "умная строка" сама предложит нужные варианты. О самой синхронизации говорить особо нечего. Она работает. Переносятся все пароли, закладки, cookies. Дополнения, как я писал выше, несовместимы.
Списки загрузок и дополнений выполнены в едином стиле. Настроек у браузера минимум и даже нет смысла их показывать. Буквально 5-6 опций, и всё.
Что же касается отображения страниц, то здесь используется такой же Gecko, как в настольной версии. Флэша из коробки нет, ставится он отсюда. Прокрутка и масштабирование реализованы как и в других браузерах. Все быстро, плавно, никаких нареканий. Только успевай махать пальцами по экрану.
В памяти мой Firefox занимает сейчас 21МБ (привет прожорливым настольным версиям), кэш у меня сейчас 106МБ. Один раз очищал уже, чтобы освободить место на разделе приложений.
Субъективно скорость работы очень переменчива. Она зависит от тяжести сайтов. На мобильных версиях страниц все летает, никаких задержек. Но как только открывается что-то тяжелое, мой Firefox на 1-ядерном процессоре начинает сильно тормозить. Ради справедливости стоит отметить, что тормозить начинает и штатный браузер. Дело не в браузерах, а в том, что современному Веб нужно мощное железо.
Резюмируя, отмечаю, что Firefox для Andriod удался на славу, он развивается явно быстрей настольной версии. Надеюсь на успех проекта.