По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?

https://plus.google.com/100838276097451809262/posts/VDkV9XaJRGS
  • Перевод


Добрый день, Хабр!

Мой предыдущий перевод статьи про аппаратное ускорение в 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, как например прокрутка списков на своем 800x480 экране.»

Да ну? Как такое может быть? Любой, кто использовал 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. В то же время, я буду в Редмонде работать над красивой и плавной мобильной ОС, и пытаться дать ей некоторое признание, которого она заслуживает.
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 244
  • +138
    Простите, вы не родственник гуглтранслейта? :) очень похож стиль перевода :) мой мозг чуть не сломался, когда я пытался прочитать статью полностью… «я могу получить последовательно испуг» — нечто! :)) я сам испуг чуть не получил последовательно :)
    • +28
      :) я вообще стараюсь обычно не браться за переводы (посмотрите мои предыдущие топики, практически нет топиков-переводов). Просто эта статья мне показалась настолько интересной, что не смог удержаться. Я заранее приношу извинения за ошибки, и прошу отправлять их мне через хабрапочту — буду исправлять максимально быстро. Спасибо заранее!
      • 0
        да я как бы не в упрёк, специально подчеркнул это смайлами :) а статья, конечно же, достойна перевода :)
        • +9
          За перевод действительно спасибо, но ошибок и искусственных словосочетаний так много, что у Вас хабрапочта сломается :)
          • +2
            Я после нон-стоп марафона «перевод с утра (11 часов, топик начинается со слов „добрый день“) и до публикации (в 19 часов)» буду только рад замечаниям, сам сейчас уже не могу более адекватно переписать :)
            • +2
              Попробуйте перечитать текст на свежую голову, ошибок и правда многовато. Но статья интересная.
              • +9
                Просто совет, на будущее: переводите не словами, не фразами и не предложениями, а мыслями. Прочитали предложение оригинала два раза, запомнили суть, убрали оригинал с глаз долой, дописали в перевод самостоятельно.

                Языки отличаются не только алфавитом, словарем и грамматикой, самое главное различие в способе и структуре передачи мыслей. Поэтому, пытаясь переводить дословно, английская калька будет сквозить в каждом словосочетании. Хороший переводчик не просто переводит текст, он переформулирует мысль.
                • 0
                  Спасибо за перевод. :)

                  Cразу бросаются в глаза многочисленные повторы местоимений.
                  «… но я не был в команде, разрабатывающей сам framework[,] и я никогда не читал исходники» (запятые еще :) ),
                  «я не могу гарантировать, что я говорю здесь»…
              • +1
                > Сайт будет в буквальном смысле никогда не загружен, пока вы уберете палец.
                Ну вот это вообще…

                Пока вы не уберете палец, сайт не загрузится.
                • +2
                  Да, это выражение просто убило. Пытался его прочитать раз десять — не вышло (думал, что со мной что-то не то). Однако, нет.
                • 0
                  Статья очень интересная!
                  • 0
                    Тема оригинального топика — да, интересна. Перевод — в общем и целом хороший, местами машинный какой-то. Но, я думаю, некоторые люди помогут нашему переводчику исправиться.
                  • +1
                    Честно говоря, в этом случае просто нет смысла писать об ошибках, их слишком много, тут нужно тупо делать вычитку.
                  • +13
                    Большую часть ошибок глаз благополучно пропустил, но вот при фразе «я интернирован в команде Android» ярко представились концлагеря для программеров :-)
                  • +4
                    За перевод, хоть и не идеальный, большое спасибо!
                    • +1
                      А в чем суть картинки? Робот спасается бегством от Росомахи? ;)
                      • +6
                        Даже росомаха не заставит ваш андроид бегать.

                        А вообще печально, нам прямым текстом сказали, что система, без переписывания с нуля, не будет шустрой. Те андроид тупиковая ветка, и мы просто оплачиваем бетатест.
                        • 0
                          Не система целиком, а пользовательский интерфейс, но в целом это печально, согласен.
                          • 0
                            Так процентов 70 кода в мобильных прогах составляет интерфейс.
                            • 0
                              Ну не в самой системе же. Там большая часть наверное Dalvik.
                              Тут самое печальное в том что выбор дальнейшей стратегии развития довольно сложный. И так или иначе, Андроид в минусе.
                            • 0
                              Не только интерфейс.

                              Андроид не умеет управлять нагрузкой. Начинает загружать обновления из маркета когда человек активно читает/пишет сообщения, вместо того чтобы заняться этим, когда телефон будет отложен в карман.

                              Немного неразумный порядок действий, не находите?

                              PS. Спасибо всем кто анонимо слил мне карму.
                              • 0
                                Он загружает обновления по расписанию. Что логично.
                                И что самое характерное, вот как раз то что вы называете управлением нагрузкой, может быть изменено довольно просто быть может даже в кастомном ROM`е, ибо публичный API это не затрагивает, насколько мне думается. Кстати, а на остальных ОС`ях, такое «управление нагрузкой» реализовано?

                                PS: я кармосливами не занимаюсь, тем более анонимно.
                                • 0
                                  Нет, это абсолютно не логично.

                                  Фоновые и технические задания должны выполняться тогда, когда телефон idle.

                                  «Может быть легко изменено» — скорее всего согласен. Просто не в курсе технических деталей.
                                  Только вот уже хрен знает сколько официальный андроид этого сделать не может.

                                  PS. Те кому надо, знают кому это адресовано.
                                  • 0
                                    Не совсем правильно написал в ответе выше.
                                    Я понимаю, что выполнение служебных и фоновых задач когда телефон в режиме ожидания — лучше, чем то, что есть сейчас. Но и расписание — логично, а раз оно работает до сих пор именно так — инженеры гугл по всей видимости так и считают.
                                    Надеюсь, что они изменят свое решение, в одном из ближайших обновлений.
                                    • 0
                                      > Но и расписание — логично, а раз оно работает до сих пор именно так — инженеры гугл по всей видимости так и считают.

                                      Зная жизнь, люди просто забили болт на это.
                                    • 0
                                      Когда андроид в кармане — он спит в большинстве случаев. а вообще, насколько я помню (мой телефон месяц лежал в ремонте, а теперь списан, так что нет шанса проверить), обновление по запросу предусмотрено.
                              • 0
                                G компания удачных и не очень бетатестов и с этим просто надо смириться)
                            • +12
                              > Даже с Galaxy Nexus, или четырехъядерным процессором EeePad Transformer Prime, нет никакого способа, чтобы гарантировать гладкость и приемлемую

                              Восхитительно. Эпиграф.
                              Практически, эпитафия надеждам.
                              • –3
                                Последний абзац вы вообще значит не читали? Как бы эпиграф обычно вконце статьи, а не в середине
                                • 0
                                  Да я вообще наверное ничего не читал.
                                  • +2
                                    Этот? «200 миллионов пользователей Android заслуживают лучшего»
                                  • +2
                                    Меня это вообще убило, когда я об этом узнал
                                    • +1
                                      Надежды на плавность UI в Nexus S тоже убили
                                    • +14
                                      На iOS, когда приложение устанавливается из App Store, а вы приложите палец к экрану, установка мгновенно поставится на паузу, пока рендеринг не будет завершен. Android старается сделать и то и то с одинаковым приоритетом, поэтому частота кадров страдает.


                                      Восхитительно. Тоесть, когда мне нужно сделать важный звонок и я буду стараться добраться до звонилки под пальбой лагов, ОС будет пытаться обновлять [вырезано] приложения?

                                      Разумно, ничего не скажешь.
                                      • +2
                                        Хм… Если преувеличивать, то да. Но, сер, давайте рассмотрим этот момент реалистично — даже на стареньком, слабеньком HTC Wildfire, с 528мгц процессором, я не вижу никаких серьезных лагов, когда работает обновление + браузер + еще что нибудь.
                                        • +1
                                          Я уточню — нет лагов, когда я при всей этой нагрузке открываю звонилку
                                          • +7
                                            Если у миллионов пользователей есть, а у вас нет, значит никаких лагов нет, да?
                                            • +2
                                              Вы отвечаете за миллионы пользователей? Я только сказал, что с моей точки зрения вы преувеличиваете, так как я не вижу «пальбу лагов» при открытии звонилки.
                                              • –3
                                                Вы бы хоть камменты почитали что-ли…
                                                • +2
                                                  Покажите мне хотя бы один каммент, где человек с нормальным смартфоном, по железу не хуже iPhone имеет жестокие лаги при открытии звонилки? Вот покажите — я признаю что вы правы. Пока я такого не вижу. Заметьте — я не отрицаю, что у Андроид не плавная прокрутка и есть достаточно лагов, но утверждать, что «при открытии звонилки происходит пальба лагов» — это слишком.
                                                  • 0
                                                    Поэтому я и писал, что вы ГИПЕРБОЛИЗИРУЕТЕ.
                                                    • –2
                                                      Не нужно кричать. Вы валерьяночки что-ли попейте.

                                                      habrahabr.ru/blogs/android_development/134172/#comment_4454668
                                                      • 0
                                                        Поймите меня правильно, я не могу согласится с этим комментарием, потому что только что нажал обновить 49 приложений и не увидил лагов (Samsung galaxy tab — самый первый, по процессору вроде HTC Desire). Конечно если у человека какой нибудь HTC Magic, то я не исключаю такого результата.

                                                        P.S. Предлагаю окончить эту беседу, так как к консенсусу мы не придем.
                                                        • +4
                                                          > только что нажал обновить 49 приложений и не увидил

                                                          Если вы закрываете глаза вокруг темно не становится.

                                                          У меня флагман, галакси эс, точно так же глючит.
                                                          Таких отзывов о глюках полно. Прочитайте даже комментарии к этой ветке.
                                                          То что вы не видите глюков, не означает что их нет.

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

                                                          Пойдите и расскажите им что никаких лагов нет.

                                                          • –1
                                                            >У меня флагман, галакси эс, точно так же глючит.

                                                            Этот смарт уже давно не флагман.

                                                            >То что вы не видите глюков, не означает что их нет.

                                                            То, что их видите вы не значит, что андроид повсеместно лагает. Я говорю то, что я вижу. Подумайте сами — какой идиот будет покупать смартфон, который «умирает» при обновлении программ? Я просто не понимаю, как это возможно. Ваши кучи отзвывов — это пока один комментарий с непонятно каким смартфоном. Давайте не будем посылать друг друга искать отзывы. Я тоже могу щас найти с десяток комментариев о том, что нормально
                                                            • +6
                                                              >Пойдите и расскажите им что никаких лагов нет.
                                                              Прекратите перевирать мои слова. Я написал уже:
                                                              Заметьте — я не отрицаю, что у Андроид не плавная прокрутка и есть достаточно лагов, но утверждать, что «при открытии звонилки происходит пальба лагов» — это слишком.
                                                              Прочитали, да? Давайте еще раз, а то с первого раза недоходит, что я ниразу не говорил, что андроид не лагает вообще.
                                                              • 0
                                                                Хорошо. Я понял. Андроид никогда и ни у кого не глючит.

                                                                Исправлюсь.
                                                                • 0
                                                                  Заметьте — я не отрицаю, что у Андроид не плавная прокрутка и есть достаточно лагов, но утверждать, что «при открытии звонилки происходит пальба лагов» — это слишком.
                                                                  Заметьте — я не отрицаю, что у Андроид не плавная прокрутка и есть достаточно лагов, но утверждать, что «при открытии звонилки происходит пальба лагов» — это слишком.
                                                                  Заметьте — я не отрицаю, что у Андроид не плавная прокрутка и есть достаточно лагов, но утверждать, что «при открытии звонилки происходит пальба лагов» — это слишком.
                                                                  • –4
                                                                    Вы так и не понял, что я написал уже 10 раз? Печально.
                                                                    • –2
                                                                      Цитируйте внимательней:
                                                                      Ваше: при открытии звонилки происходит пальба лагов
                                                                      Ориг: буду стараться добраться до звонилки под пальбой лагов

                                                                • +1
                                                                  У меня флагман Galaxy S2. При прокрутке списков в ланчере иногда бывает задержка между первым движением пальца и первым изменением картинки (начало скрола).
                                                                  Как-то ВСЁ!
                                                                  Больше нигде ничего и никогда не лагает.

                                                                  Как правило открыта опера с парой влкдок, живые обои, пара виджетов типа календаря, быстрых контактов, списка задач, погоды, виджет для конторля заряда батареи.

                                                                  До него была спика (I5700-GT он же Galaxy Spica) — на дроиде 1.5 вообще никаких лагов. На родном 2.1 работать вообще было не возможно — о плавности не было и речи.
                                                                  Перешил на спикаген, потом на цианоген. Плавности добавилось весьма серьезно, проблем с входящими звонками как не было, так и не появилось, но при наборе номера телефон отставал иногда на пару секунд. Т.е. я уже 5 цифр набрал, а на экране пусто. Потом брык — набрались первые три из них.
                                                                  Вот это да — напрягало.

                                                                  Но опять же — хуавэи по 300 баксов работают плавнее, чем HTC Wildfire… (на работе есть 2 фаната хуавэев)
                                                                  • 0
                                                                    Тоесть, чтобы андроид нормально работал в нем надо колупаться отвёрткой, доставлять непонятные РОМы и т.д.
                                                                    Ок.
                                                                    • 0
                                                                      К сожалению, совсем не ок.
                                                                      но что поделать… на то она и открытая платформа, чтобы можно было засунуть отвертку.
                                                                      а про спику вообще анекдот есть. мол все юзеры делятся на яблокофилов, виндофономанов, андроидолюбов и спиководов.
                                                          • +6
                                                            У меня iPhone 2G
                                                            Его железо по современным меркам — ниже плинтуса.
                                                            Так вот даже по сравнению с ним, поведение относительно бюджетного андроид-смартфона, железо которого в разы производетельнее — один сплошной лаг (да, я пользовался, не просто так говорю)
                                                            • –1
                                                              Я не являюсь пользователем iPhone 2G, но наблюдал за женщиной в маршрутке, пока ехал в сервис. Так вот у неё интерфейс лагал по полной, скролы между экранами были ужасны возникало ощущение, что это не iPhone. Вопрос почему?
                                                              • 0
                                                                Вариант 1: это китайфон.
                                                                Вариант 2: стоит довольно много приложений, и прошивка => 3.1.3 (т.е. сама 3.1.3 либо любая из 4й серии).

                                                                Действительно совсем не быстро работает. Вернее, действительно ужасно работает. Правда, контакты и иные списки скроллятся, несмотря ни на что, безо всяких подтормаживаний.
                                                                • 0
                                                                  максимальная прошивка на 2Ж — 3.1.3. У меня стоит — проблем нет.
                                                                  Хотя да, засрать можно и айфон так что он начнет тупить, наверное
                                                                  • 0
                                                                    У меня начал тупить точнехонько в день анонса iOs 5.0. И строка пикселов выгорела.
                                                                  • 0
                                                                    Вариант 3: это джейлбрекнутый телефон, со старой прошивкой.
                                                                    • 0
                                                                      Не обязательно китайфон или много приложений. Куда вероятнее джейлбрейк и «кастомизация» из Cydia, всякие там Winterboard и прочие радости — качеством они, мягко говоря, не блещут.
                                                                • +1
                                                                  У меня Palm Veer, по железу превсходящий iPhone 3GS. Но вот тормоза всего и вся, в особенности прокрутки.
                                                                  • 0
                                                                    у меня LG p970, процессор 1Гц (одноядерный)
                                                                    сравниваю с iphone 4s жены и понимаю — в следующий раз куплю iPhone.
                                                                    Тормозит мой Android безбожно, если его не перезагружать очень долго (как виндовс 98). Например: я нажимаю в последних набранных — позвонить… не звонит...3 раза нажал и он позвонил ТРИ раза, последовательно. А бывает так: надо позвонить, а при этом работают яндекс карты, нажимаю «позвонить» и жду чёрный экран 5 секунд, бесит очень сильно.
                                                          • +9
                                                            На HTC Wildfire даже не всегда получается принять звонок из-за тормозов!
                                                            Причём никаких там фоновых приложений и т.п., даже интернета на нём нет — телефон просто лежит в кармане, раздаётся звонок, а кнопка принятия вызова не реагирует!

                                                            Если хочешь навсегда отвратить человека от андроида — подари ему HTC Wildfire :)
                                                            • –1
                                                              Вы все врете, Kyborg2011 знает что это не может быть!!! У него все работает!
                                                              • +8
                                                                На HTC Wildfire даже не всегда получается принять звонок из-за тормозов!

                                                                Подтверждаю =)
                                                                • +3
                                                                  На Samsung Galaxy Gio ровно то же самое,
                                                                  т.е. вывод: репутацию андроиду портят телефоны с дешевым процессором (в данном случае — арм 6).
                                                                  • –3
                                                                    Наконец-то адекватный коммент, а не выкрики типа: «пальба лагов при обновлении приложений». Браво.
                                                                    • 0
                                                                      У вас какие-то странные выводы.

                                                                      четырехъядерным процессором EeePad Transformer Prime, нет никакого способа, чтобы гарантировать гладкость и приемлемую частоту кадров
                                                                      • +3
                                                                        Не слишком плавное листание фоточек (о чем заметка) — это очень небольшая проблема в сравнении с ситуацией когда внезапно не можешь принять звонок из-за того, что телефон в момент вызова продолжительно ни на что не реагирует (о чем комментарий, на который я и отвечал).
                                                                        • –2
                                                                          Собственно да. Если фоновые процессы блокируют телефон то это простите труба.
                                                                      • +2
                                                                        »»(в данном случае — арм 6)
                                                                        — iphone 2G на этом процессоре живет и работает замечательно. Так что не в процессоре дело
                                                                        • –2
                                                                          оффтопик: Дело было не в машине, долбограй сидел в кабине. /оффтопик.
                                                                          • +4
                                                                            Не могу согласиться. У меня был 3G, вот там у меня примерно каждый третий звонок невозможно было принять, после обновления на 4.0.1. На 4.2.1 стало значительно лучше, но все равно не без изъяна. HD2 с цианогеном значительно быстрее.

                                                                            У андроида, такое ощущение, проблема лагов в большей степени — в прошивках производителей. MIUI, CM, AOSP — работают вполне неплохо.
                                                                            • 0
                                                                              Такая же проблема с 3G на 4.0.1.
                                                                              Причём, никаких обновлений не качалось и вообще аппарат не был ничем загружен.
                                                                          • 0
                                                                            backflip с AMR6 и оперативки мало. Лагов практически нет, появляются лишь при недостатке памяти а её аж 256. борюсь раздачей больших приоритетов приоритетным с моей точки зрения приложениям, а не с точки зрения гугла. К примеру когда я звоню, мне совсем не нужно чтобы maps запускались. и тд

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

                                                                            ах, да… при обновлении лучше положить тихонько в сторонку ) И вообще...«не было печали… да обновления скачали»
                                                                          • 0
                                                                            Это да, обидно немного из-за таких лагов, но вайлдфайр меня от андроида никак не отвернул, наоборот) первый андроид и явно не последний)
                                                                            • 0
                                                                              Отказался через полгода, купил Xperia Ray, доволен. Wildfire просто выбросил, натерпелся, не могу больше.
                                                                              • +1
                                                                                А скажите, куда выбросили?
                                                                              • 0
                                                                                Lg gt540, тоже самое.
                                                                                • 0
                                                                                  есть подозрение, что дело в гламурном сенсе… попробуй поставить вместо него например go launcher
                                                                                  • 0
                                                                                    Wildfire S. Такая же проблема)
                                                                                • 0
                                                                                  Будет. Но поскольку это фоновое приложение — с низким приоритетом.
                                                                                  • 0
                                                                                    Увы, в iOS 5 скопировали из Android не только экран уведомлений и целых два виджета, но и тормоза и глюки :(
                                                                                    На Android меня жутко раздражало, когда выключаешь режим самолёта, чтобы позвонить, а он начинает разом скачивать и устанавливать десяток приложений (почему-то проверка в маркете активировалась всегда именно в этот момент) — минут на пять-десять минут телефон с двухъядерным процессором можно отложить до окончания тормозов.
                                                                                    Я с ностальгией вспоминал свой iPhone 3G, в котором таких проблем не было, и думал, что вот выйдет новый айфон, и я навсегда избавлюсь от тормозов…

                                                                                    Так вот, в iOS 5 обновление приложений происходит так же одновременно, как и в андроиде, и когда оно обновляется, тормозит даже хвалёный эппловский интерфейс :(
                                                                                    • –2
                                                                                      Дебилизм.
                                                                                      • –5
                                                                                        Вы все врете, Eternalko знает что это не может быть!!! У него все работает!
                                                                                        • +2
                                                                                          Хм, а вы не пробовали отключить автоматическое обновление? Лично я не заметил никаких отличий в скорости работы от iOS4 (крутится на iPhone 4). Меня ваш коммент как-то удивил даже.
                                                                                          • +1
                                                                                            Предлагаете не обновляться, чтобы не было тормозов при обновлении? :)
                                                                                            Или обновлять ручками все программы по одной?
                                                                                            • +3
                                                                                              Зачем так радикально? Лично у меня аппстор просто информирует о том, что обновления доступны, но не кидается из все устанавливать. Таким образом я не получаю ВНЕЗАПНО!!! обновляемые программы, тысячи их при выключении авиа-режима.
                                                                                              Да и даже при обновляющихся программах спокойно играл в далеко не легенький Infinity Blade без тормозов.
                                                                                              У вас какой аппарат?
                                                                                              • +2
                                                                                                LG P990. «Флагман» 2011-го года. Продаю. Несколько дней назад для него наконец-то вышла прошлогодняя версия ОС — 2.3.4. Теперь аппарат работает совершенно без глюков, и все мои стоившие последней кармы комментарии в блогах LG и Android по поводу глюков, потери настроек, зависаний, внезапных отключений экрана и ребутов прошу считать устаревшими :)
                                                                                                Но я обновления не дождался и теперь свои жалобы на глюки пишу прямиком в раздел «iPhone 4S» на сайте discussions.apple.com — там нет задержки на написание сообщений и друзья по несчастью иногда помогают дельными советами :)
                                                                                                • 0
                                                                                                  Я вас что-то не понял. Вы жалуетесь на iOS5, но у вас при этом Андроид. Как так? оО
                                                                                                  • +1
                                                                                                    У человека не может быть одновременно iOS5 и Андроид? :)
                                                                                                    У меня сейчас два андроида (LG P990 и ZTE Blade, продам недорого) и от двух до пяти устройств с айос5.
                                                                                                    • 0
                                                                                                      Может, но отвечая на вопрос «какой у вас аппарат» в ветке про тормоза в iOS «у меня %androidphonename%» вы вгоняете собеседника в ступор.
                                                                                                      • +1
                                                                                                        Прочитайте ветку с начала — там цитата, что в iOS всё кучеряво, в то время как в Anrdoid — тормоза. Я написал, что это не так, и в iOS с пятой версии теперь тормоза, как в Android. Впрочем, вызваны они не тормозным GUI, а одновременным обновлением пары десятков приложений.

                                                                                                        Если вы подразумеваете ваш первый комментарий в этой ветке, и вы имели в виду не Android, а iOS5 в сравнении с iOS4, то где в iOS вообще автоматические обновления? Я их не видел, обновляться всегда приходится вручную с вводом пароля.
                                                                                                        • 0
                                                                                                          Блин, как-то упустил пару слов и неправильно понял комментарий и сам же запутался. Виноват.
                                                                                                          • +2
                                                                                                            Ничего, бывает, я запутался ещё пару часов назад — хотел ёлку нарядить, а вместо этого на хабре какую-то фигню про мобилы пишу.
                                                                                                            • –4
                                                                                                              Спасибо. Вы меня от души рассмешили :)
                                                                                            • 0
                                                                                              А где можно включить автообновление?
                                                                                              • 0
                                                                                                Настройки / Магазин / Автоматические загрузки — наверное, здесь. Откровенно говоря, я как-то не озадачивался вопросом включения автообновления.
                                                                                            • 0
                                                                                              вроде бы в iOS5 сделали, чтобы устанавливались/обновлялись одновременно только 2 программы, до этого было 1 ед.

                                                                                              + возможно труба ещё лезет в iCloud синхронизироваться.
                                                                                            • 0
                                                                                              На О1 зачастую приходилось жать звонилку до 5 секунд. А чтоб трубку поднять, иногда и того дольше (копка просто некоторое время не реагировала на нажатие). Вообще, Яблоко правильно все придумали.
                                                                                            • –1
                                                                                              Осталось только сравнить скорость выполнения того же кода в Dalvik VS Native Code.

                                                                                              Уверен, что различия в скорости выполнения будут в разы. Если не в десятки раз.
                                                                                              Ставлю 5 баксов против одного.

                                                                                              • –1
                                                                                                Я боюсь, что даже в разы не будет. Проблема не в управляемом коде — его можно сделать столь же быстрым, как и неуправляемый. Проблема в слоях абстракции, которые, наворачиваясь вокруг каркаса приложения, делают каждое действие максимально запутанным и сложным.
                                                                                                • –1
                                                                                                  Не надо бояться.
                                                                                                  Аж из любопытства вбил в гугл: Dalvik VS Native Code.

                                                                                                  Первые ссылки:
                                                                                                  marakana.com/forums/android/examples/96.html
                                                                                                  code.google.com/p/android-benchmarks/

                                                                                                  Разница в скорости — порядки.
                                                                                                  • +1
                                                                                                    там графики очень древние с тех пор только то что я знаю JIT + not stop world GC который в отдельном потоке, только эти две вещи должны сократить отставание в разы. Или вы думаете прям они там ерундой маются.
                                                                                                    • –1
                                                                                                      У меня новее тестов нет. У вас есть?
                                                                                                      • +2
                                                                                                        Так если у вас нет, так чего вы так уверенно утверждаете? Какие эмоциональные сообщения, а факты всего лишь в графиках годовой давности.
                                                                                                        • –2
                                                                                                          > Так если у вас нет, так чего вы так уверенно утверждаете?

                                                                                                          вы пожалуйста не приписывайте мне свои домыслы.

                                                                                                          > Уверен, что различия в скорости выполнения будут в разы. Если не в десятки раз.
                                                                                                          Ставлю 5 баксов против одного.

                                                                                                          У вас есть шанс заработать.
                                                                                                          • +1
                                                                                                            Вы я смотрю не помните что пишите? Ваш коммент:

                                                                                                            Я вам переведу: Сраный дальвик работает в 10 раз медленней чем должен. В 10 раз медленней чем Джава. Об чем тут можно говорить? Это факт. Если для вас это не тормоз, то для меня да.
                                                                                                            Дело вкуса, знаете ли.

                                                                                                            Тоесть вы на 100% утверждаете. заметьте — вы не пишите — возможно, вы именно утверждаете. Видите разницу?
                                                                                                            • –3
                                                                                                              У меня есть цифры на руках. У вас нет. Свободны.
                                                                                                              • +1
                                                                                                                У вас есть цифры годовой давности. Они не котируются. Свободны.
                                                                                                                • +1
                                                                                                                  Только что скачал программу NDKTest на Gingerbread.
                                                                                                                  Различая в скорости в 10-20 раз.

                                                                                                                  Интересно как это выглядит на ICS.
                                                                                                                  • 0
                                                                                                                    ТС проверил на скорость на ICS.
                                                                                                                    Различия в скорости опять же: 10-20 раз.
                                                                                                                  • +4
                                                                                                                    Цифры годовой давности — уже не цифры? О_о
                                                                                                          • 0
                                                                                                            нет, но сборщик мусора который не останавливает выполнение программы а выполняется паралельно+ дает разницу в паузах от сотен мс до едва порядка одного десятка. JIT тоже ускоряет очень сильно выполнение. Эти два улучшение дают ощутимый прирост. Единственное JIT жаден к памяти. Имеет смысл на конфигурациях от 512 мегабайт ОЗУ и выше. Даже на galaxy S он применятся не интенсивно. В 3.0 и 4.0 тоже было много улучшений.
                                                                                                      • +5
                                                                                                        То что вы сравниваете навряд ли интересно.
                                                                                                        Я переписывал большую библиотеку рендеринга используя Native Code VS Dalvik.
                                                                                                        Native code работал со Skia (http://code.google.com/p/skia/) напрямую, то есть Dalvik Canvas вообще не использовалась, а Dalvik работал с обычной canvas.

                                                                                                        На андроид 2.1 без GPU получил прирост самый большой 2-4 раза. После андроида 2.2, когда улучшили JIT и в телефонах появились GPU, некоторые жалуются, что вообще не сильно заметили ускорения, а в целом 1.5-2 раза.

                                                                                                        Просто когда начинал переписывать тоже читал много статей о том, что сортировка работает в 10-20 раз быстрее :) Хрен, только сортировка.

                                                                                                        Запросы на которых тестировал выполняются от 2-30 секунд, что достаточно для того, чтобы ощутить порядок.
                                                                                                        P.S.: наверное через год вообще выкину нафиг этот native, одни проблемы с конфигурацией, а Android действительно молодцы много делают для улучшения Dalvik (JIT, hardware acceleration).
                                                                                                        • 0
                                                                                                          новый gc в 2.3 как повлиял?
                                                                                                          • 0
                                                                                                            Вот это замечание по существу.
                                                                                                            Итого, один и тот же код выполняется с какой разницей в скоростях?

                                                                                                            Или вы не проверяли?
                                                                                                            • +3
                                                                                                              Проверок очень много было, но именно не лабораторных, а реальных.
                                                                                                              Естественно код выполняет абсолютно одно и тоже + на C++ я оптимизировал как мог (как знал) + на С++ нету GC :)
                                                                                                              HTC Wildfire дал самый заметный прирост (2.1 по-моему) от — 3-4 раз
                                                                                                              HTC Hero — 2-3 раза.
                                                                                                              HTC Desire — 1.5 -2 раза
                                                                                                              чем лучше устройство тем меньше разница :)
                                                                                                              Отрисовка очень зависит от количества отрисовываемых данных, для того, чтобы оценить специфику приложения, речь идет о долгой отрисовке!
                                                                                                              Примеры: 1 секунда, 2, 3, 5, 10 и иногда даже 20 при очень больших данных (на Wildfire). Поэтому GC занимает < 1% не существенно.

                                                                                                              Проблема в том, что рисование через Dalvik Canvas уже имеет очень много нативных методов к Skia! Да что-то теряется на переходе JNI, но не много :(

                                                                                                              Canvas самый быстрый Java способ для отрисовки на экране! В принципе все к нему сводится в Android. Потом появился Native, а сейчас широко распространяется RenderScript с LLVM оптимизацией. Но все это не решит проблем 60 FPS и отзывчивости User Interface, как абсолютно правильно замечает автор!
                                                                                                              • 0
                                                                                                                Спасибо.
                                                                                                                • 0
                                                                                                                  Речь об osmand?
                                                                                                                  Думаю там ещё раз в 10 можно ускорить вывод, пример google maps с векторами перед глазами.
                                                                                                        • 0
                                                                                                          И это абсолютно не мешает написанию нормальных приложений на Dalvik. По аналогии — если переписать, например, Eclipse или Idea на С++, то скорость наверняка увеличится, но это абсолютно не мешает популярности этих IDE.
                                                                                                          • –4
                                                                                                            Не нужно аналогий. Все проще: Андроид (сердечко) Далвик (равно) тормоза.
                                                                                                            • 0
                                                                                                              Вы хотите начать спор насчет Java vs C/C++...? Все прекрасно знают, что нейтив код работает быстрее (чаще всего), но это как бы не сильно мешает.
                                                                                                              • –5
                                                                                                                Вы хотя бы пробовали понять написанное?

                                                                                                                Я вам переведу: Сраный дальвик работает в 10 раз медленней чем должен. В 10 раз медленней чем Джава. Об чем тут можно говорить? Это факт. Если для вас это не тормоз, то для меня да.
                                                                                                                Дело вкуса, знаете ли.
                                                                                                      • +11
                                                                                                        Спасибо за статью. Надо отдать разработчикам Apple должное: приоритет прорисовки интерфейса на уровне ОС — это сильно. Ориентация на пользователей, в хорошем смысле.
                                                                                                        • +3
                                                                                                          Вот так новость, оказывается, андроид тормозит. После перехода на него с WM6 даже не задумывался о таком положении дел. IT-мир жесток…
                                                                                                          • +11
                                                                                                            А вы думаете, откуда у iOS столько поклонников?
                                                                                                          • +1
                                                                                                            Любопытно, какие шансы портировать WebOS на изначально андроидо-фоны? На тот же hd2, например, на который какой только зоопарк ОС не ставят.
                                                                                                            • 0
                                                                                                              Ну если аналогичные или похожие по хардверу будут и найдут способ подменить загрузчик.
                                                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                              • +2
                                                                                                                Подозреваю, это не так просто.
                                                                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                  • 0
                                                                                                                    Если вынести рендеринг в отдельный поток и повысить ему приоритет, то мы как раз и избавимся от конструктивных ограничений :)
                                                                                                                    • +1
                                                                                                                      Забываете, что было написано, что работает как система реального времени. А это я уже думаю относится к Linux ядру. Надо бы посмотреть, есть ли там конструктивные ограничения.

                                                                                                                      — Рендеринг интерфейса происходит на главном потоке приложения.
                                                                                                                      Просто уверен, что решат, потому что уже начали. Сейчас все контролы будут рендерить в DisplayList (то есть типа SVG элемента — сжатая графика), а уже потом их будут переносить на экран.

                                                                                                                      Хотя, главный поток, это единственный поток, где можно работать с UI! За исключением если вы рисуете на Canvas и вызываете tryLock. Здесь могут возникнуть конструктивные ограничения. Я к тому, что приложения переписывать многие придется :)
                                                                                                                  • 0
                                                                                                                    Вот интересно, есть процессы, что будет если я сейчас сделаю renice для системных процессов и поставлю высокий приоритет? Потом забить это в .sh скрипт и сделать автозапуск. Не подскажите какие процессы править?
                                                                                                                • –3
                                                                                                                  автор статьи умница, но копает не там.
                                                                                                                  есть Android от Самсунга, есть от HTC и т.д. У каждого девайса свой Android с наворотами и багами, со специфичными только на нем тормозами. И ничего не сделаешь, ибо политика у гугла такая — открытость и никакой сертификации. У основных конкурентов все наоборот.
                                                                                                                  • +5
                                                                                                                    Самсунг htc и другие производители меняют темы интерфейса, значки и т.д. но не методы отрисовки дисплея или API.
                                                                                                                    баги как правило связаны с чем
                                                                                                                    -ланчеры не заточены для ускорения через GPU
                                                                                                                    -встроенный софт занимает много оперативы или ест проц в фоне.
                                                                                                                    -криво написаны драйвера
                                                                                                                    Так вот если бы приоритет интерфейса был высоким и в реальном времени, тогда вся эта нагрузка не тормозила бы значительно интерфейс. Это хотел сказать автор а не все глюки разных производителей.
                                                                                                                    • +1
                                                                                                                      я внимательно читал, спасибо. но боюсь вы не в теме, это отнюдь не иконки и виджеты.
                                                                                                                      • 0
                                                                                                                        Ну, например, нативных реализаций для MediaPlayer в Андроиде существует не одна, и разные вендоры используют разный код. Так что и bug-set для каждого девайса свой. Поэтому можно считать, что и API затронут, если приходится писать воркэраунды, чтобы не получить по рукам граблями конкретного девайса.
                                                                                                                        • +1
                                                                                                                          При этом все реализации МПлеера — говно, а аудиотракт в андроиде — худший из всех, о котором программисты только слышали, пожалуй (из современных мобильных ос).
                                                                                                                          • 0
                                                                                                                            Не подскажете где об этом можно подробнее прочитать?
                                                                                                                            (Я всегда считал что качество аудиотракта определяется ЦАП-ом который используется)
                                                                                                                            • –1
                                                                                                                              Программная реализация, буфер, методы доступа к нему и прочие свистоперделки — говно, а уж чип — какой производитель поставит. Можете у habrahabr.ru/users/Kyborg2011/ спросить, сколько там геморроя.
                                                                                                                      • +1
                                                                                                                        А есть ещё от LG, который по сумме багов затмит Samsung и HTC вместе взятые.
                                                                                                                        Но тормоза интерфейса у всех андроидов, увы, наследственные от Гугла, и вендоры ничего изменить не смогут, разве что добавить мегагерц и ядер процессору и мегабайт в оперативную память.
                                                                                                                        • 0
                                                                                                                          c LG не знаком, а вот с двумя упомянутыми — очень даже. как-то Galaxy Tab обновился до 2.3.5 и после чего начали падать все приложения, даже почта и галерея. обвинял бы сейчас Android, если бы не телефон HTC, на котором нет ни глюков, ни тормозов с такой же прошивкой.
                                                                                                                          • 0
                                                                                                                            Это все равно не поможет, потому что гуйня не приоритетна :)
                                                                                                                        • 0
                                                                                                                          из-за определенного выбора, сделанного много лет назад…… С анимацией пользовательского интерфейса самая большая проблема


                                                                                                                          Перевожу на русский:
                                                                                                                          Мы когда делали, головой не думали, поэтому получилось фигня. Исправить ее теперь не можем.
                                                                                                                          • +5
                                                                                                                            это называется не с той ноги встал ).
                                                                                                                            а Джобс молодец всетаки, установил приоритет куда надо, и миллионны людей думают что iOS быстрая операционка.
                                                                                                                            • 0
                                                                                                                              Это было сделано еще в первых OSX, когда графику выделили в отдельный поток с приоритетом выше всех
                                                                                                                            • 0
                                                                                                                              Сегодня все считают, что телефоном надо пользоваться двумя руками и это правильно, а завтра эппл выпустит третью механическую руку и это будет революцией. Всё предсказать сложно.
                                                                                                                              • 0
                                                                                                                                Не логично же. Вам ясно сказали, что когда писался Андроид — он не имел сенсорного интерфейса, где отрисовка интерфейса имела бы столь высокий приоритет.
                                                                                                                                Позже, было необходимо быстро переписать его под сенсор и было решено, что механизм отрисовки допустимо оставить таким какой он есть. Да, это был не самый лучший выбор, но тогда он таким не казался.

                                                                                                                                Вот о чем вся статья, столько много букв, чтобы сказать, что Андроид тормозит, не потому, что он кривой, а потому, что в некоторых местах неправильно(для сегодняшних реалий) поставлены приоритеты.
                                                                                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                                  • 0
                                                                                                                                    Нет, это называется — нельзя всего знать заранее. К тому же не все криво, а только система интерфейса.
                                                                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                                      • 0
                                                                                                                                        С этим согласен. Возможно я не совсем верно отреагировал на слово «кривой», причислив его к Андроиду в целом.
                                                                                                                                      • 0
                                                                                                                                        Кнопочки или сенсор никакой роли не играет.
                                                                                                                                        Управление телефоном блокируется когда он нагружен. Телефон тупо затыкается и даже не пробует дозировать нагрузку.