Что делать, если Android тормозит
Со временем популярные флагманы устаревают, тем не менее, замедлить этот процесс все-таки возможно. Наверно каждый обращал внимание на то, как спустя время производительность смартфона незаметно спадает. Если при покупке телефона, свеженькое устройство прекрасно функционировало, то со временем от былой скорости ничего не остается. В результате программные компоненты запускаются медленнее, телефон начинает дольше думать и, даже некоторые элементы, которые никогда не тормозили, сейчас работают не как раньше. Почему все так возникает и возможно ли вообще это как-то исправить?
Обновление системы не подходят для старого телефона
Всегда смартфон попадает на прилавок с актуальной в данное время прошивкой, которая как раз отлично походит по характеристикам к этому устройству. Если позднее выйдет новая версия прошивки, то она также предложится для установки, однако с ней смартфон не будет работать как раньше. Да, в этом случае пользователь получает новые функции, исправление возможных ошибок, однако, сама версия системы может не вполне соответствовать характеристикам гаджета, что и будет приводить к определенного рода зависаниям на устройстве.
Если на старый телефон установить свежую версию Android, то подвисания и глюки обязательно покажут себя при работе.
Можно ли это исправить?
В данном случае нужно сделать выбор в пользу какого-то одного момента — предлагаемой функциональности, либо скорости работы устройства. Если используется слабый телефон, то ставить новую версию ОС не нужно. Тем не менее, важно учесть, что чем старее будет использоваться версия, тем гораздо меньше приложений можно будет на нее установить. Можно также перейти на другую прошивку, к примеру, LineageOS, которая считается более облегченной.
Тем не менее, в этой ситуации, наверно самым лучшим вариантом будет покупка нового устройства, в особенности это касается тех гаджетов, у которых имеются версии Android ниже пятой. Новые программы не подходят под характеристики старого гаджета.
Разработчиками постоянно создаются новые дополнения, которые ориентированы непосредственно на новые смартфоны. Некоторые программы после ряда обновлений работают не как раньше, могут тормозить и использовать много ресурсов.
Некоторые разработчики вовсе не учитывают возможности пользователей, которые используют старые устройства. К примеру, тот же Google Chrome, который занимает порядка 200 мб памяти, а также место для кеша и иных данных. Подобная прожорливость просто немыслима для старых устройств и приводит к тому, что они начинают тормозить. Можно ли это исправить?
Что делать, если старый Android тормозит?
Первый вариант предполагает использование только старой версии и отказ от дальнейших обновлений. Да, можно использовать устаревшую версию, однако, многие страницы в интернете могут попросту не открываться как нужно, а некоторые облачные хранилища вовсе не проходить авторизацию. В общем, такой способ находится под сомнением.
Второй вариант – это использование особых версий приложений специально для слабых устройств. К примеру, для общения можно использовать не обширную версию Skype, а урезанную Skype Lite, что касается социальной сети Facebook, то для него также имеется более упрощенный вариант Facebook Lite. Чтобы не использовать Chrome, из-за которого сильно тормозит телефон, можно перейти на браузер Opera Mini, который будет меньше брать системных ресурсов.
Ненужная работа фоновых приложений, как причина торможения Android
Как только телефон куплен, многие пользователи начинают закачивать множество приложения, рассчитывая на то, что если они не открыты, то значит, ресурсов потреблять не будут и телефон тормозить не станет. К сожалению, это ошибочное мнение, которое в дальнейшем и приводит к менее приятным последствиям.
Установленные приложения при включении телефона начинают свою работу в фоновом режиме. Да, их не видно в открытых приложениях, но они все равно активны и расходуют ресурсы системы. Отличным примером будут служить живые обои и виджеты, установленные на рабочем столе. Они приносят меньше пользы и, тем не менее, нагружают само устройство. Что с этим можно сделать?
Простой вариант предполагает отказаться от всего ненужного в своем смартфоне. Первым делом стоит убрать живые обои и виджеты, которые совсем не используются, а также программы, которые никогда не открывались. Все эти действия можно провести вручную, либо воспользоваться сервисом Greenify. С помощью него можно посмотреть, какие элементы сильнее нагружают процессор, а также начать контроль за фоновой активностью.
Нехватка свободного места на телефоне как причина того, что Android тормозит
Если встроенный накопитель в телефоне полностью заполняется файлами, то через некоторое время телефон начинает работать намного медленнее. По этой причине необходимо, чтобы внутренняя память на 25% оставалась пустой, чтобы обеспечить нормальную работу устройства. В итоге, производительность будет держаться на том же уровне, да и износ устройства уменьшится в несколько раз. Можно ли это исправить?
Если в смартфоне можно использовать SD карту, то лучше всего все имеющиеся файлы переместить именно на нее, дабы освободить больше места во встроенной памяти. Новые фото, видео, подкасты, данные приложений и многое другое лучше держать на внешнем накопителе, чтобы не страдало быстродействие устройства.
Что касается таких файлов, как изображения, то их стоит сохранять в облачном хранилище, тем более, если их большое количество. Также не стоит забывать и про кеш от приложений, поскольку он также влияет на быстродействие смартфона.
Многие современные устройства не имеют специального места для SD карты, но, тем не менее, обладают большим объемом памяти. В данном случае все равно когда-то она закончится, поэтому не нужно забывать о регулярной очистке ненужных элементов.
Еще один вариант – это попробовать сбросить настройки телефона до первоначальной точки, только предварительно стоит позаботиться о бэкапе. В данном случае устройство будет как новое, поэтому можно будет установить то, что нужно.
Так или иначе, смартфоны быстро устаревают и тормозят в работе, это неизбежно. В данном случае можно воспользоваться вышеуказанными способами, либо использовать смартфон в качестве «звонилки», или вовсе сменить аппарат. Выбор здесь нужно делать уже самостоятельно.
С этим еще читают:
Как ускорить работу Android После приобретения планшета или смартфона на Android устройство работает быстро, но по мере эксплуатации гаджет начинает притормаживать и это начинает раздражать пользователя. Случается […]- Как сделать Hard Reset (сброс на заводские настройки) на смартфоне или планшете Если ваш смартфон или планшет, работающий под управлением операционной системой Android начал сильно тормозить, долго загружаться или загружаться через раз, а чистка системы от мусора не […]
- Как проверить смартфон при покупке Покупка смартфона, как нового, так и бывшего в употреблении – ответственное дело. Очень часто бывает так, что даже в специализированном магазине по продажам мобильных устройств, продавец […]
- Как увеличить память на Android устройстве Количество оперативной памяти устройств на Android является одной из самых важных характеристик. От ее размера зависит комфортная работа в нескольких одновременно запущенных программах. […]
Главные причины, из-за которых все Android-смартфоны начинают работать медленнее
В конце прошлого года Apple открыто призналась в скрытом замедлении всех старых поколений iPhone, объяснив это заботой о владельцах своей фирменной продукции. После этого практически все популярные производители Android-смартфонов заявили о том, что они никогда не снижали и не собираются снижать скорость работы своих мобильных устройств. Такое заявление сделали Samsung, Huawei, Xiaomi, HTC, Sony LG и еще парочка крупных брендов.
Впрочем, владельцы любых Android-смартфонов наверняка замечали, что со временем мобильное устройство, каким бы производителем оно не было выпущено на рынок, начинает работает ощутимо медленнее. На самом деле, это относится не только к телефонами, работающий на базе ОС от Google, но и ко всем остальным электронным гаджетам, среди которых даже компьютеры на Windows 10 и macOS High Sierra.
Как правило, смартфон на Android начинает подтормаживать приблизительно через год после начала использования. Программы запускаются дольше, время автономной работы снижается, а иногда и вовсе случаются зависания. Виной всему вовсе не «криворукость» разработчиков, а вполне очевидные причины, которые и приводят к тому, что любое электронное устройство, даже если это топовый смартфон, начинает работать ощутимо менее быстро.
Операционная система
Главная причина снижения скорости работы любого смартфона заключается в том программном обеспечении, на базе которого он работает. Из года в год в Android добавляют новые функции и возможности, а интерфейс снабжают обилием самых разных анимаций. На все это нужна дополнительная производительность, поэтому со временем не очень мощные телефоны начитают подтормаживать. Единственным способом решить эту «проблему» можно считать только установку более ранней версии ОС, на которой устройство работало быстро.
Обновления приложений
Если целенаправленно не обновлять операционную систему Android, чтобы производительность смартфона не упала, то это все равно едва ли может получиться. Все приложений из магазина Google Play регулярно обновляются, в результате чего увеличиваются их потребности в техническом оснащении устройства. Так, например, если еще в конце 2014 года запущенный клиент соцсети Facebook отнимал только 50 МБ оперативной памяти, то сейчас, в начале 2018 года, этот показатель уже находится на уровне 400 МБ. Аналогичная ситуация наблюдается и со многими другими приложениями.
Флеш-память
В большинстве своем все Android-смартфоны оснащены флеш-памятью, которая гарантирует очень высокую скорость работы. При использовании памяти такого типа она обязательно должна быть свободна хотя бы на 15-20%, поскольку в противном случае электронное устройство, которое ее использует, начнет подвисать и подтормаживать. Кроме того, некоторые виды флеш-памяти подвержены процессу деградации, то есть чем больше она проходит циклов перезаписи, тем хуже начинает справляться со своими обязанностями. Побороть эту проблему нельзя, разве что только если как-то запретить или значительно снизить перезапись файлов.
До 22 декабря включительно у всех желающих есть возможность совершенно бесплатно получить спортивный браслет Xiaomi Mi Band 4, потратив на это всего 1 минуту своего личного времени.
Присоединяйтесь к нам в Twitter, Facebook, ВКонтакте, YouTube, Google+ и RSS чтобы быть в курсе последних новостей из мира технологий будущего.
Почему смартфон тормозит и как это исправить
Почти любой новый смартфон, даже самый дешёвый, в первые дни после покупки не глючит и не тормозит. Но стоит попользоваться им какое-то время, как начинают появляться проблемы. При активном использовании даже флагман может превратиться в неповоротливого монстра. Причин замедления смартфона может быть несколько, но хуже всего то, что они, как правило, проявляются комплексно.
Переполненная память
Скорость работы накопителя падает, если он становится переполнен. Это происходит из-за того, что операционной системе и приложениям становиться сложнее распределять данные в памяти — на поиск свободного пространства уходит всё больше времени.Если ваш смартфон поддерживает работу с картой памяти, переместите данные на неё. При отсутствии такой возможности имеет смысл удалить ненужные файлы или перенести в облако то, что занимает много место (фотографии, видео, музыку, записи телефонных разговоров). Очистить накопитель также помогают приложения вроде CCleaner.
Слишком много приложений
Приложения занимают место в накопителе, но это полбеды, дело в том, что многие из них работают в фоновом режиме, потребляя оперативную память, процессорное время и интернет-трафик. Хуже всего то, что в фоне работают не только те приложения, которым это действительно нужно (например, мессенджеры, соцсети, аудиоплееры и определители номеров), но и те, от которых вы этого не ждёте. Таким образом они получают возможность отправлять вам уведомления с той целью, чтобы вы чаще их открывали.Пробегитесь по списку установленных приложений и без сожаления удалите те, которыми вы никогда не пользовались, а также те, которые вы не запускали за последнюю пару недель. Потеря невелика, зато смартфон будет работать шустрее и дольше держать заряд.
Ослабшая батарея
Любая батарея подвержена износу, причём снижается не только её ёмкость, но и вольтаж, из-за чего она начинает перегреваться, а это может привести к падению тактовой частоты процессора и подвисанию интерфейса операционной системы и приложений. Определите здоровье аккумулятора с помощью приложения AccuBattery (в случае iPhone — через системные настройки) и выясните оставшуюся эффективную ёмкость. Если она значительно снизилась, необходимо заменить аккумулятор. Съёмный аккумулятор проще и дешевле поменять самому, а несъёмный меняют в сервисных центрах.Ошибки в прошивке
Операционная система — сложнейшее и важнейшее ПО, которое отвечает за корректную работу всех аппаратных и программных компонентов смартфона. В ней всегда очень много багов, особенно если речь идёт о тестовых релизах или кастомных сборках, созданных энтузиастами.Как правило, самая стабильная сборка ОС — та, что была выпущена производителем смартфона и получила несколько обновлений и заплаток. Используйте именно её и избегайте самопальных прошивок.
Внутренние повреждения
Если вы роняли смартфон, у него могли возникнуть не только сколы, трещины, вмятины и царапины, заметные сразу, но и повреждения внутренних компонентов, например, системы охлаждения, материнской платы, чипа памяти и т. п. Главный признак таких повреждений — резкое ухудшение стабильности работы смартфона: он внезапно начал тупить, тормозить, экран иногда перестаёт отвечать на нажатия, приложения вылетают с ошибкой, операционная система беспричинно выключается или перезапускается).Такой смартфон не вылечить даже полным сбросом ОС к заводским настройкам, ему необходим квалифицированный ремонт в сервисном центре.
Канал iG в Telegram — t.me/iguides_ru
Смартфон работает медленно, читайте советы
Каждый пользователь мечтает о том, чтобы его смартфон работал четко и не зависал в самый неподходящий момент.
Для этого предлагается большое количество различных приложений, призванных, по словам их разработчиков, облегчить владельцам смартфонов их жизнь: почистить оперативную память, оптимизировать зарядку аккумулятора, проверить наличие вирусов и многое другое. Так ли нужны подобные приложения, что стоит удалить и почему, АиФ.ru спросил у экспертов. Все они были сошлись на том, что удалять надо те приложения, которыми вы не пользуетесь, а также различные приложения-чистильщики и им подобные, так как они могут даже навредить смартфону.
Изучите свой смартфон
Прежде всего пользователю надо понимать, что, например, в Android уже встроены многие полезные приложения, которые помогают работе смартфона. Это касается системы контроля памяти, которая рационально управляет процессами и оперативно выгружает все, что уже не понадобится, либо переводит в кэш временно ненужные приложения. Начиная с 2014 года все смартфоны и планшеты на ОС Android также оснащены режимом экономии аккумулятора. Кстати, чистить кэш на Android можно самому: надо лишь зайти в настройки и удалить кэшированные данные. Специалисты советуют делать это не очень часто, примерно раз в два месяца.
Что удалять?
Итак, от каких приложений стоит избавиться в первую очередь? Самыми популярными и ненужными являются: приложения для очистки дискового пространства (так называемые оптимизаторы), Clean Master и ему подобные «чистильщики», антивирусы, экранные батареи (экономайзеры), а также некоторые предустановленные приложения, которые лично для вас оказались бесполезными.
«Стоит избавиться от всех приложений, которыми вы не пользуетесь. Различные антивирусы и клинеры уже предустановлены в системах, поэтому нет надобности скачивать дополнительные программы. Они иногда могут даже навредить системе», — рассказал АиФ.ru эксперт по гаджетам Илья Корнейчук.
Реклама
С ним согласен и ведущий аналитик Mobile Research Group Эльдар Муртазин. Он говорит, что полностью забивать память смартфона различными приложениями нельзя. Желательно оставлять хотя бы 10% от изначального объема встроенной памяти. Это касается устройств и на iOS, и на Android.
«Удалить надо те приложения, которыми вы не пользуетесь. И не стоит забивать память смартфона полностью, надо оставлять резерв. Какой-то объем памяти должен быть свободным, чтобы сама программа хорошо работала. Следуя таким простым правилам, можно добиться того, что смартфон будет работать достаточно быстро. Что касается предустановленных приложений, то тут многое зависит от производителя. На Android, как правило, предустановленные приложения можно удалить , если они вам не нужны. Сlean Master и тому подобные приложения также не нужны. Их не надо использовать. Они скорее вредят, чем помогают. На Android организация памяти так устроена, что делает эти программы (в частности, очистку оперативной памяти) ненужными», — сказал Муртазин.
Аналитик Николай Николаев, директор магазина по продаже устройств Apple, считает, что для быстрой работы смартфонов на системе iOS достаточно отключить push-уведомления у тех приложений, которыми вы не пользуетесь, а также не забывать про те приложения, которые работают в фоновом режиме.
«О смартфоне на операционной системе Android не скажу, но в iPhone удалять приложения не стоит. Чтобы ваш смартфон работал быстрее и меньше расходовал заряд аккумулятора, достаточно выключить push-уведомления у тех приложений, которыми вы не пользуетесь, и проконтролировать, чтобы они не работали в фоне. Например, это такие приложения, как „Яндекс.Навигатор“. Часто пользователь запускает его, прокладывает какой-то маршрут, а потом не закрывает приложение, и оно начинает работать в фоне. Проводилось уже много исследований на эту тему. Раньше считалось, что если вы открываете много приложений на iPhone, то их надо обязательно вручную закрывать. Но выяснилось, что это не совсем так. Если приложения работают в фоне, — „Яндекс.Навигатор“ или фоновое распределение музыки, например — то они действительно могут немного подтормаживать систему. А приложения, открытые день-два-три назад, никак не влияют на скорость работы смартфона. Если вы вернетесь в какое-то из этих приложений, оно просто откроется заново. Если вы хотите увеличить производительность вашего смартфона, удалять приложения необязательно, нужно всего лишь запретить уведомления от них. Тогда они не будут вам докучать и тормозить ваш смартфон», — рассказал Николаев.
Мессенджеры
У современного пользователя есть большой выбор различных мессенджеров. По словам Ильи Корнейчука, они занимают очень много места на смартфоне. Поэтому имеет смысл удалить те мессенджеры, которыми вы перестали пользоваться или в которые заглядываете лишь изредка.
«Если вы каким-либо мессенджером пользуетесь, условно говоря, раз в полгода, стоит установить специальное расширение на компьютере и проверять сообщения там, а не держать его в смартфоне», — советует эксперт.
Следите за самым важным и интересным в Telegram-канале Татмедиа
По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет? / Habr
Добрый день, Хабр!
Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.
Почему Android тормозит, в то время как iOS, Windows Phone 7, QNX и WebOS столь плавны в работе?
Этот пост призван ответить на этот вопрос.
Однако, прежде чем перейти к сути, несколько оговорок. Во-первых, я студент третьего курса специальности «software engineering». Я интернирован в команде Android, и Romain Guy который был ответственен за большую часть работы аппаратного ускорения в Honeycomb, рассмотрел некоторые участки и моего кода, но я не был в команде разрабатывающей сам framework, и я никогда не читал исходники кода отрисовки в Android. У меня нет какого-либо серьёзного авторитета на знание Android и я не могу гарантировать, что я говорю здесь, обязательно на 100% точно, но я сделал все возможное, чтобы аргументировать свои слова.
Во-вторых, я на стажировке в команде Windows Phone, начиная с января, так что вполне возможно, что эта должность могла бы подсознательно настроить меня против Android, но если вы спросите любого из моих друзей, это действительно трудно, попросить меня не болтать об Android. У меня больше Android футболок, чем дней в неделю, и я предпочел бы отдать мой Macbook, чем мой Nexus S. Googlplex это как второй дом. Во всяком случае, мои интересы, пожалуй, смещены в пользу Android.
Итак приступим к анализу предыдущей статьи о мифах (речь идет о полной версии поста Дианы Hackborn).
Диана начинает свой пост удивительным откровением:
«Глядя на рендеринг внутри окна, мы не обязательно должны использовать аппаратное ускорение для достижения полных 60FPS. Это во многом зависит от количества пикселей в дисплее и скорости вашего процессора. Например, у Nexus S нет проблем с 60 кадрами в секунду для всех нормальных вещей которые вы видите в Android UI, как например прокрутка списков на своем 800×480 экране.»
Да ну? Как такое может быть? Любой, кто использовал Nexus S знает, что он замедляется при всем, кроме разве что простого ListViews. И забудьте про любое подобие достойной производительности, если в фоновом режиме, что-то происходит, например установка приложения или обновления пользовательского интерфейса с внутреннего накопителя. С другой стороны, іOS работает на 100% гладко даже при установке приложений. Но мы знаем, Диана не врет о потенциальной производительности центрального процессора, так что же происходит?
Основная причина
Это не паузы из-за сборщика мусора. Это не потому, что Android работает через байт-код, а іOS работает на нативном коде. Это потому, что в iOS рендеринг всего интерфейса происходит в отдельном потоке пользовательского интерфейса в режиме приоритета реального времени. С другой стороны, Android следует традиционной для ПК модели, в которой основной рендеринг происходит с нормальным приоритетом.
Это не абстрактная или академическая разницы. Вы можете увидеть это самостоятельно. Хватайте ближайший iPad или iPhone и открывайте Safari. Начните загрузку сложной веб-страницы, такой как Facebook. На середине загрузки, приложите палец к экрану и подвигайте им вокруг. Вся отрисовка мгновенно останавливается. Сайт просто не будет загружаться, пока вы не уберете палец. Это потому, что поток пользовательского интерфейса перехватывает все события и рендеринг пользовательского интерфейса осуществляется в режиме реального времени.
Если вы повторите это упражнение на Android, вы заметите, что браузер будет пытаться как отрисовать страницу, так и отобразить HTML, т.е. сделать «на отлично» как одно так и другое. Для Android, это тот случай, когда эффективный двухъядерный процессор действительно помогает, поэтому Galaxy S II и славится своей плавностью.
На iOS, когда приложение устанавливается из App Store, а вы приложите палец к экрану, установка мгновенно поставится на паузу, пока рендеринг не будет завершен. Android старается сделать и то и то с одинаковым приоритетом, поэтому частота кадров страдает. Как только вы заметите как это происходит, вы увидите что это повсюду на телефоне Android. Почему прокрутка в приложении «Фильмы» медленная? Поскольку эскизы фильмов динамически добавляются к списку фильмов, когда вы прокручиваете вниз, а вот на iOS они спокойно добавляются только в момент остановки прокрутки.
Несколько людей взялись объяснить ошибки, допущенные мною в упрощенном описании процесса отрисовки в iOS. В частности:
1) Композитинг и пред-настройка анимации — все что включает в себя Core Animation и рендеринг сопутствующих слоев действительно происходит в фоновом потоке.
2) Отрисовка нового контента в слое Core Animation и настройка их анимации происходит в основном потоке. Это то же поток в котором происходит отрисовка пользовательского интерфейса.
3) В нативном коде, весь создаваемый разработчиком код будет происходить в основном потоке. Тем не менее, Apple предлагает очень простой API (Grand Central Dispatch и NSOperation), чтобы переместить эти вещи в управляемые системой фоновые потоки. В iOS 5 можно даже заявить что Core Data (объектно-реляционные базы данных) контекст не может быть использован непосредственно в основном потоке.
Что же мы замечаем? Изображение не отрисовывается пока вы не закончите прокрутку списка, рендеринг страницы в WebKit останавливается, когда система отслеживает прикосновение к экрану, это изначально встроенный механизм, который ставит на паузу весь мир, пока палец на экране.
(На самом деле это не совсем верно: главный поток помещается в специальный режим во время слежения за сенсором, и по умолчанию, определенные обратные вызовы задерживаются в этом режиме. Тем не менее, многие другие вещи, например, загрузка с диска или сетевая активность хранятся полностью в фоновом потоке, не останавливаясь, ничто из этого автоматически не приостанавливается в момент прокрутки. Разработчик должен указать явно задержки для этих вещей). Это преднамеренное поведение тщательно реализовано разработчиком каждого отдельного приложения.
Это не техническое различие, это культурные различия. Хорошие разработчики под iOS не выпускают программное обеспечение, пока не работает на что-то около 60 кадров в секунду при прокрутке и отслеживает прикосновения практически идеально, как впрочем это делают и хорошие разработчики под Android.
Другие причины
Основная причина по которой Android тормозит это структура потоков UI и их приоритетность, но это не единственная причина. Во-первых, аппаратное ускорение, несмотря на оговорки Дианы, все-таки помогает. Мой Nexus S прежде никогда не работал так плавно с момента обновления до ICS [прим.перевод: Мой тоже! :)]. Аппаратное ускорение дает огромную разницу в приложениях, таких как домашний экран и Android Market. Помощь оказанная GPU также увеличивает время автономной работы, потому что графические процессоры — это оборудование с фиксированными функциями, так что они работают с меньшим энергопотреблением.
Во-вторых, вопреки тому что я утверждал ранее, сбор мусора по-прежнему проблема, даже при работе по совместительству с GC в Dalvik. Например, если вы когда-либо использовали приложение фотогалерея в Honeycomb или ICS вы можете удивиться, почему частота кадров такая низкая. Оказывается, частота кадров ограничена числом 30 кадров в секунду, а прокрутка фотографий возможна и при 60 FPS в большинстве случаев, но иногда паузы сборщика мусора приводят к заметному «заиканию». Ограничение частоты кадров до 30 исправляет «заикание» и обеспечивает плавную анимацию все время.
В-третьих, есть проблемы с оборудованием, что также упоминается Дианой. Tegra 2, несмотря на грандиозные претензии от отдела маркетинга Nvidia, наносит ущерб низкой пропускной способности памяти и не имеет поддержки набора инструкций NEON (NEON инструкции в ARM это эквивалент SSE от компании Intel, которые позволяют быстрее рассчитывать матрицы на CPU). Honeycomb таблетки были бы лучше с различными GPU, даже если они были бы теоретически менее мощные в некоторых отношениях, нежели Tegra 2. Например, Samsung Hummingbird в Nexus S или Apple A4. Это говорит нам, что самый быстрый выпущенная Honeycomb планшет, Tab Galaxy 7.7, работает под управлением процессора Exynos с Galaxy S II.
В-четвертых, Android имеет способ перейти на более эффективный композитинг пользовательского интерфейса. в iOS, каждый вид пользовательского интерфейса отображается отдельно и хранится в памяти, так для многих анимаций требуется только GPU для просмотра рекомпозиции пользовательского интерфейса. Графические процессоры очень хороши в этом. К сожалению, на Android, иерархия пользовательского интерфейса уплощена до рендеринга, поэтому анимация требует перерисовки каждого сектора экрана в которой она происходит.
В-пятых, Dalvik VM не так развита, как десктопная JVM. Java печально известна ужасной производительностью GUI на десктопах. Тем не менее, многие вопросы, не переносятся на реализацию Dalvik. Swing был ужасен, потому что являлся кросс-платформенным слоем на вершине родной API. Интересно отметить, что Windows Phone 7 в основной пользовательский интерфейс построен на нативном коде, хотя первоначальный план был — базироваться полностью на Silverlight. В Microsoft в конце концов решили, что для придания интерфейсу необходимой производительности, код должен быть родным. Это легко увидеть разницу между родным и байт-кодом на Windows Phone 7, поскольку сторонние приложения написанных на Silverlight уступает в производительности (Nodo и Mango смягчили эту проблему и Silverlight интерфейсы, как правило, сейчас очень плавные).
К счастью, каждый из пяти вопросов, перечисленных выше, разрешим без радикальных изменений в Android. Аппаратное ускорение будет на всех телефонах под управлением Android ICS, Dalvik продолжает совершенствовать эффективность своего сборщик мусора, Tegra 2, наконец, устареет, есть обходные пути для существующих проблем композиции интерфейса, и Dalvik VM становится быстрее с каждым выпуском. Недавно я спросил Джейсона Кинкейда с TechCrunch, насколько плавной была работа Galaxy Nexus и он ответил:
«В целом я счел ICS по Galaxy Nexus достаточно плавным в работе. Есть случайные заикания — одно место, где я могу получить последовательно испуг на Galaxy Nexus, это когда я нажимаю кнопку многозадачности, где он часто будет приостанавливается на четверть секунды. Тем не менее, я считаю, что iPhone 4S также подтормаживал больше, чем я ожидал, особенно, когда я переходил на доступ к общему поиску приложений (где вы проводите пальцем влево от главного экрана).»
Итак, поехали, проблема тормозов Android в основном решена, не так ли? Не так быстро.
Вперед в будущее
Android UI никогда не будет совершенно плавным из-за конструктивных ограничений, которые мы обсуждали в самом начале:
— Рендеринг интерфейса происходит на главном потоке приложения;
— Рендеринг интерфейса происходит с нормальным приоритетом;
Даже с Galaxy Nexus, или четырехъядерным процессором EeePad Transformer Prime, нет никакого способа, чтобы гарантировать гладкость и приемлемую частоту кадров, если эти два конструктивных ограничения остаются в силе. Это говорит, что мощности Galaxy Nexus хватит чтобы сравнится по плавности работы с первым iPhone трехлетней давности. Так почему же команда Android использовала именно такую структуру рендеринга?
Работа над Android началась еще до выхода iPhone, и на тот момент система Android была разработана, чтобы быть конкурентом Blackberry. В оригинальном прототип Android не было сенсорного экрана. Компромиссы Android имеют смысл устройств с аппаратной клавиатурой и трекболом. И когда вышел iPhone, команда Android бросилась к выпуску конкурента этому продукту, но, к сожалению, было уже слишком поздно, чтобы переписать весь пользовательский интерфейс системы.
Это же самая причина, почему Windows Mobile 6.5, Blackberry OS, Symbian имеют ужасную производительность сенсорного экрана. Как и Android, они не были предназначены для «приоретиризации» рендеринга пользовательского интерфейса. После выпуска iPhone, в RIM, Microsoft, и Nokia отказались от своих мобильных ОС и начали разработку с нуля. Android является единственной мобильной ОС, которая существовала до «эры iPhone».
Так почему же команда Android не изменила существующее положение дел? Я позволю Romain Guy объяснить:
«… Много работы, которую мы должны сделать сегодня, существует из-за определенного выбора, сделанного много лет назад…… С анимацией пользовательского интерфейса самая большая проблема. Мы работаем над другими решениями, чтобы попытаться улучшить её (возможность использования отдельный поток рендеринга, и т.д.). Простое решение, конечно, это создание нового графического инструментария но есть много минусов в этом подходе. «
Ромен не уточняет какие минусы и недостатки в этом решении, но это не сложно предположить:
— Все приложения должны быть переписаны для поддержки новой структуры;
— Android должен будет обеспечить режим поддержки для старых приложений;
— Работа на другие особенностями Android будет приостановлена, до то времени как новая система будет разработана;
Однако я считаю, что написание «с нуля» должно произойти, несмотря на эти минусы и недостатки. Как начинающий менеджер, я считаю, медлительность Android абсолютно неприемлемой. Следует сделать этот вопрос приоритетом №1 для команды Android.
Когда тема Android поднимается как технически подкованными, так и не-технически образованными друзьями, я слышу снова и снова, что Android тормозит и работает медленно. Реальность такова, что Android может открывать приложения и отображать веб-страницы так же быстро или даже быстрее, чем iOS, но восприятие — это всё. Исправление тормозящего UI это будет начало долгого пути, чтобы восстановить репутацию и образ Android.
Восприятие проблемы, тормоза — это нарушение философии компании Google. Google считает, что все должно быть быстрым. Вот ведущая философия Google Search, Gmail, и Chrome. Именно поэтому Google создал SPDY — для улучшения HTTP. Именно поэтому Google создает инструменты, помогающие оптимизировать ваш сайт. Именно поэтому Google запускает свой собственный CDN. Именно поэтому Google Maps отображается при помощи WebGL. Именно поэтому буферизации на Youtube что-то то что большинство из нас хорошо помнит, но видят все реже.
Но, пожалуй, одна наиболее важных причин отставания в интерфейсе Android неприемлемо исходит из области человеко-машинного взаимодействия (HCI). Современные сенсорные экраны предполагают соответствие «один к одному» между пальцем и анимацией на экране. Именно поэтому эффект перепрокрутки в iOS (эластичная резинка) это так здорово, весело, и интуитивно понятно. И именно поэтому сенсорные экраны авиакомпании Virgin America Flights так расстраивают: они невероятно тормозят и очень неточно срабатывают.
Тормоза пользовательского интерфейса прерывают связь человека и сенсорного экрана. Общение с устройством перестает быть естественным. Оно теряет магию. Пользователь исключается из взаимодействия с ними и должен безоговорочно признать, что они используют несовершенное компьютерное моделирование. Я часто «теряюсь» в іPad, но меня аж передергивает, когда Xoom заикается между экранами. 200 миллионов пользователей Android заслуживают лучшего.
И я знаю, они получат это в конечном счете. Команда Android является одной из самых преданных и талантливых команд разработчиков в мире. При таких звезд, как Диана Hackborn и Romain Guy Android находится в хороших руках.
Я надеюсь, что эта публикация сократит путаницу вокруг тормозов Android.
Немного удачи, и Android 5.0 принесет нам плавный Android, о котором мы все мечтали, с момента выхода HTC G1. В то же время, я буду в Редмонде работать над красивой и плавной мобильной ОС, и пытаться дать ей некоторое признание, которого она заслуживает.