Разработчик Google развеивает мифы о «полном аппаратном ускорении» в Ice Cream Sandwich

http://www.xda-developers.com/android/googles-dianne-hackborn-dispels-android-hardware-acceleration-myths/
  • Перевод


Доброе утро, Хабр!

Обнаружил на xda-developers.com интересную для себя новость, которая является пересказом свежего поста «Разрушаем мифы о полном аппаратном ускорении в ICS» из Google+ профиля разработчика Google Дианы Hackborn. Взял на себя смелость сделать краткий перевод-пересказ по мотивам этих двух публикаций, который и привожу ниже под хабракатом. Первый вариант этой публикации уже был опубликован мной этой ночью в блоге R2-D2: Android с пользой, но тема показалась мне достойной освещения и на Хабрахабре (я надеюсь тут не нужно поднимать повторно обсуждение того факта, что раздел «Ссылки» после осеннего хабраобновления практически и фактически умер).



Разработчик из Google Диана Hackborn на своей странице в Google+ поделилась информацией касательно аппаратного ускорения интерфейса в Android 4.0 Ice Cream Sandwich. Ажиотаж который поднялся вокруг этой функции возник не просто так — слишком много упреков звучало в адрес плавности отрисовки 2D-элементов в Android в сравнении с другими мобильными ОС.

Безусловно, аппаратное ускорение в Android это позитивная вещь, но есть много неправильных представлений о том что на самом деле представляет из себя эта возможность. Во-первых, Android уже много лет поддерживает аппаратное ускорение для задач отрисовки множества окон (речь идет о композиции окон — панель задач, оповещения, панель меню, появление и скрытие элементов интерфейса). Это означает что вся анимация элементов интерфейса в Android всегда использовала аппаратное ускорение.

В отличии от отрисовки композиции окон, рендеринг изображения внутри окна традиционно осуществлялся при помощи процессора в Android 2.X и ниже. Однако, в Android 3.0 Honeycomb, эти функции могут быть переложены на графический ускоритель, но только в том случае если в манифесте приложения это прямо указано опцией android:hardwareAccelerated=”true”. Единственное отличие Android 4.0 ICS в том, что при разработке, используя последнее доступное API level 14 (и во всех будущих), эта опция для приложений включена «по умолчанию».
Казалось бы, теперь у нас есть возможность «заставить» работать все приложения в Android 4.0 ICS с включенным аппаратным ускорениям независимо от его манифеста, разве это не прекрасно? На самом деле это не совсем так. В случае, например, с видеоускорителем PowerVR драйвера, используемые в Nexus S и даже в Galaxy Nexus, «отъедают» по 8Мб оперативной памяти за каждый процесс который использует аппаратное ускорение. Вроде бы не так много? Не тут-то было, ведь такое активное потребление оперативной памяти сразу множеством процессов значительно повышает потребление памяти в целом, что сразу сказывается на скорости мультизадачности — вплоть до значительного ее замедления. В итоге, команда разработчиков Google сейчас тратит значительные усилия на тонкую настройку того, какие именно части пользовательского интерфейса действительно нуждаются в аппаратном ускорении на Nexus S.

Что же в итоге? По сравнению с Android 2.X, Ice Cream Sandwich имеет больше возможностей, в том числе благодаря более широкому использованию аппаратного ускорения. Тем не менее, кроме наличия опции включенного ускорения «по умолчанию», использование аппаратного ускорения в ICS ничуть не более «полное», чем это было ранее. И, кроме всего прочего, не стоит забывать что аппаратное ускорение это не магия и не чудо, как считают многие, но его присутствие это конечно плюс, а не минус.

По мотивам Google+ Дианы и обсуждения на xda-developers.com
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 58
  • +1
    Тем не менее менюшки летают, а это самое главное :)
    • +3
      Безусловно :) На моём Nexus S сейчас установлен Android 4.0.1, и при включении опции «использовать аппаратное ускорение в 2D принудительно» действительно нет заметного эффекта (в статье поясняется почему). Все что можно — уже летает и так, эту опцию оставил отключенной.
      • 0
        Охотно верю! Мой Galaxy Nexus все еще на почте, но я везде где ролики смотрел про ICS, все плавно, как по маслу.
        • 0
          Оно и в 2.3.х было плавно. Но ровно до тех пор, пока в озу есть свободное место, в т.ч. и в кеше.
        • 0
          А откуда брали? Все ли работает?
          • +1
            4pda.ru/forum/index.php?showtopic=208616

            Всё основное работает.
            • +2
              forum.xda-developers.com, раздел Nexus S Android Development, сборка из исходных кодов AOSP, их уже почти десяток, выбирайте на свой вкус :) от альфы CyanogenMod 9 на ICS, до модифицированных сборок от известных ROM'оделов.

              Работает уже практически все. Практически из багов остались только «замирание» при проигрывании видеороликов средствами аппаратного декодирования (с любым сторонним видеоплеером и программном декодировании все ок), и нерабочие «видеоэффекты» в фотокамере (рыбий глаз, искажение видео, и т.п.)

              Признаюсь, никогда раньше мне не приходилось столько раз перепрошивать аппарат, пока билды не доработали до существующего уровня. Восемь бета-версий из SDK сборки, шесть — из AOSP, и еще почти десяток менее удачных сборок. Скоро вводить девайс в рекавери смогу с закрытыми глазами :) Я уже две недели пытаюсь написать подробный обзор о впечатлениях от использовании ICS в реальной жизни, но катастрофически не хватает времени :(

            • 0
              У меня тоже=) Но когда эта галочка включена часть программ (на 2 из 100) отображаются неверно, в уменьшенном виде, с артефактами, выключил пока.
            • +1
              Вы наверное 80 процентов времени проводите в менюшках? :)
              Надо было им и набор номера в виде менюшки сделать :)
            • +4
              А как я надеялся, что эти нелепые тормоза в скроллинге меню например, пропадут.
              • –1
                Что за аппарат, что за операционка?
                Тормоза появляются и через несколько секунд пропадают? — Тогда это Garbage Collector посередине запускался.
                Многое зависит от самого приложения — если оно неправильно работает с длинными списками: то есть не переиспользует память, а постоянно выделяет новую.

                + Далеко не у всех телефонов на Android есть GPU!
                • 0
                  Google Maps на Tegra 2, страшно удручают тормоза при прокручивании уже закешированной карты. Также, наблюдается легкий лаг, когда переходишь с одного рабочего стола на другой.
                  • +2
                    Galaxy 9003, OMAP 3630.
                    Тормоза веде, не сильные чуть заметные подмораживания почти любых скролов, любых карт, браузера.
                    Вобщем-то так же как и на любом андроиде (у меня уже на втором, первый был с arm v6), но когда у тебя был до этого айфон, с его безупречным скролом и абсолютно плавным интерфейсом, то все эти мелкие фризы бесят изрядно.
                    • +5
                      В общем, часто слыша о тормозах, провел сравнительный анализ IPhone4 и какого-то последнего Android. Стоит сказать, что у андроида есть 3 момента.
                      1) Время от времени появляющиеся заметные тормоза.
                      Это скорее всего сборщик мусора, хотя вполне может быть прогноз погоды обновился. Сборщик мусора до какого-то андроида вообще блокировал все потоки, по-моему в 3.0 он стал параллельным. Конечно есть еще криворукость программистов, которая создает огромное количество объектов из-за чего часто запускается сборщик мусора. А если учесть, что все приложения ограничены 16 Мб (!) памяти, то понятно что это усугубляет проблему.

                      2) Визуальные эффекты тормозов и артефакты анимации. На самом деле это заметно при скроллинге текста, создается ощущение расплываемости текста. Именно поэтому кажется, что Iphone работает четче. Конечно может быть виновата и хардварная часть (сэкономили на экране), видел на некоторых дешевых телефонах, что все отрисовывается по скорости нормально, но некоторые элементы текста расплывается.
                      Хотя тут тонкость в самом механизме отрисовки. В IPhone это обычный OpenGL везде. То есть либо рисуется весь экран либо не рисуется. Получается если достичь приемлимого 40FPS, то все будет казаться плавным. При чем важно если промежутки между отрисовкой будут постоянными. Это даже важнее количества фреймов, устройство может считать и быстрее — эффект кино. В Андроиде модель эффективная, но не для анимации. Модель как Windows окно -> Layout -> invalidateRect. В общем получается, что некоторые части Android просто не перерисовывает, а некоторые такое ощущение перерисовывает очень часто. Из-за этого возникает ощущение что текст плывет! Хотя на самом деле он не тормозит, а наоборот очень часто перерисовывается. Но что еще хуже рывками! Особенно скроллинг, обычная анимация (прогрес-бар) выглядит получше.

                      3) Google vs Apple программисты. Ну пора уже смириться, что Гугл не нанимает программистов для работы с анимацией, да и вообще их программисты с дизайнерами не очень дружат. Потому что можно и в Android все вылизать так, что будет работать изумительно. Но нет же сразу бросается в глаза, что IPhone алгоритм анимации скролинга, какой-то не обычный и поведение физики непонятное. То есть при маленьких скоростях наблюдается отсутствие трения, как на хорошем, «дорогом» бильярдном столе :) А у Андроида все проще AcceleratingDecelerating. Кто работал с анимацией-физикой поймет какой это колоссальный труд и Гугла нет на это времени и желания :)

                      ИМХО, мои наблюдения.
                      • +1
                        Да конечно, все так и есть, но из вашего сообщения создается ощущение, что OpenGL это что-то плохое, тогда как спрайты андроида — правильное.
                        • +1
                          > В Андроиде модель эффективная, но не для анимации.

                          Простите?

                          Модель анимации в Андроиде эффективная, но не для анимации? (:
                          • 0
                            Паралельный сборщик уже в 2.3. Размер приложения далеко не 16 мб уже давно, сейчас есть уже 48. Про анимацию ничего не скажу. Сама тема, как я понял, больше касается сторонних приложений. почему они не перепишут драйвер, если он ест так много озу;-)
                    • +1
                      В итоге? Пробелмы TI OMAP и их PowerVR, а не андроида. Кривые дрова != проблема системы, кривые дрова — проблемы кривых драйверописцев производителя.
                      • 0
                        Насколько я понимаю и итоге — других драйверов нет, и вероятно не будет (иначе разве бы в Galaxy Nexus не использовались бы более улучшенные версии драйверов?). Скорее эта новость актуальна именно для владельцев устройств текущего поколения, от разных производителей, которые ждут обновления до ICS. В частности как раз проблемы\особенности этого вопроса и задерживают выход ICS для Nexus S.
                        • 0
                          Может и будут, в любом случае, вопрос не к андроиду и не к гуглу, а к товарищам из TI OMAP, которые сделали то, что сделали :)

                          А использовали TI OMAP в основном моторолы и LG. У самсунга Hummingbird'ы, Теперь появились тегры и Qualcomm'ы, у HTC — только Qualcomm, SE вроде тоже на Qualcomm сидят.
                        • +5
                          Это, скорее, проблема пользователя. К сожалению.
                          • +3
                            Это проблемы моего телефона. На нем написано samsung и этот ваш андроид плохо работает. Постоянно виснет, глючит, тормозит, вылетает и делает другие странные вещи.

                            Если никто не хочет брать ответственности за то что они производят, то зачем мне такой продукт? Больше не куплю. Вот и все.
                            • –1
                              На моём телефоне написано самсунг, на нём процессор Exynos и нет проблем с производительностью, аппарат ни разу не завис и не тормозил. Не помню ни одного вылета приложения (что на родной прошивке, что на MIUI. Может, вопрос прямоты рук?
                              • +7
                                Вопрос прямоты рук надо ставить производителям. У меня стандартная прошивка и я не понимаю почему я должен платить своим временем (ставить прошивки дивные и т.д.) за то, чтобы телефон работал чуть стабильней.
                                • +3
                                  Не гику наплевать, какой фирмы процессор и какого поколения arm, какая там тегра или куалком и какой чип графики, если стоковая прошивка из коробки подтормаживает. Обычные люди не видят смыслом своей жизни каждую неделю заливать свеженькую новенькую вкусненькую прошивочку с 4pda от каждого из десятка сборщиков.

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

                                • –1
                                  Подождите, чей андроид?
                                  Лучше бы изучили вопрос и рассказали нам, чья проблема — это же IT-ресурс.
                                  • 0
                                    Я прекрасно знаю вопрос. Это проблема всей цепочки.
                                    Зоопарк нестабильных операционных систем Андроид, умноженные на нестабильные java машины (далвик), умноженные на зоопарк драйверов к железу, умноженные на зоопарк разных модификаций от операторов и в результате получаем результат.

                                    Писал на эту тему

                                    Процитирую одного человека:

                                    Откровение: Вчера Истинный Учитель Истины (то есть я) получил ответы Космоса на два извечных русских вопроса. Позволю себе процитировать его дословно:

                                    «1) Все. 2) Работать.»
                                  • –1
                                    вы купили бюджетный девайс, совершенно понятно что это не хай енд могут быть недоработки. Увидели эти проблемы, вернули через неделю, взяли другого производителя. у самсунга ряд девайсов были выпущенны с кучей недописанного софта, который они так и не дописали! К чему желчь? Мир не идеален. Насколько он идеален для вас, зависит во многом как ни странно от вас. Даже пользователи того же нексуса с кривоватым драйвером наслаждаются плавным 2.3 кстати. Из коробки. Есть galaxy sII который тоже очень плавный. Есть новые мидл енд девайсы того же самсунга. А есть еще много других производителей ;-)
                                    • +1
                                      Дорогой товарищ телепат и экстрасенс,

                                      простите, но я не знал что флагманские модели телефонов которые расположены на золотой полке магазина и стоят как хорошая месячная зарплата (после вычета налогов) это уже «бюджетный» телефон.
                                      • –1
                                        Название модели которая глючит постоянно вылетает и тормозит ;-) аж смешно. Это самсунг. У самсунга топовые galaxy s, s2, nexus s, galaxy nexus. Вы писали самсунг. Все эти модели я либо пользовал либо у родственников, друзей. Больше топовых девайсов самсунга на андроиде не было. Какой у вас? И даже совсем недавно топовый nexus s and galaxy s стоит 400 долларов. Не бог весть какие деньги.
                                        • +1
                                          Товарищ телепат, у меня galaxy s, ваш топовый телефон. Это сейчас он может и 400 стоит. Когда он был флагманом он чуть дороже стоил. Но дело не в этом.

                                          Дело в том, что это штука глючит, а вы мне доказываете что я купил «неправильный» телефон.

                                          Это не я купил «неправильный» это такой произвел самсунг.
                                          • –1
                                            поздравляю с отличным выбором, я тоже счастливый владелец данного девайса. Из того что раздражает это две вещи. Долго ловит gps и необходимость ставить специальную програмку что бы иметь хорошую громкость на наушниках с большим сопротивлением. Ничего не крешится не падает. ЧЯДНТ? Да я обновился на официальную 2.3.
                                            • +1
                                              У меня тоже официальная 2.3.3 или 2.3.4. Лень смотреть.

                                              Ведет себя как описал выше.

                                              И мне отчетливо видно (просто лень описывать) что это очень часто внутренние баги самой ОС. Не драйверов, а именно архитектуры ОС.
                                              • –1
                                                Вам подсказать как это называется? Или сами догадаетесь. Писать несколько постов а когда дошли до сути, ляпнуть невнятное мне лень писать и уйти от разговора. А уж если вы видите архитектурные недостатки(а не крики «нужно ограничить всех и вся это панацея») Андроид предложил свою модель и она работает. Galaxy S отменное устройство с несколькими софтовыми, и хардварными недостатами. Но они есть даже на айфоне. Откройте вики багов айфона 4 к примеру.
                                                • 0
                                                  И да, возьмите в руке galaxy sII, и сравните скорость работы. Там ускорен даже браузер. Но это описанный выше драйвер.
                                                  • +1
                                                    Повторю, мне не сложно:

                                                    > Постоянно виснет, глючит, тормозит, вылетает и делает другие странные вещи.

                                                    Смысл мне описывать вам 15 багов если:

                                                    а) Вы их не решите.
                                                    б) Это не поменяет факта что телефон глючной. Глючной и это не бюджетная модель как вы меня пытались убедить.

                                                    Был galaxy sII. При браузинге телефон адски грелся. 20 минут онлайн и телефон превращался в сковородку. После чего телефон был успешно отдан по гарантии. Понимаю что это брак или чей-то региональный недосмотр, но это подбешивает.
                                                    • –1
                                                      Иначе это превращается в безсмысленный разговор. Для примера говорят хотя бы два три бага, кроме тех которые я описал. Софтовый там один и это настройки самсунга, это не архитектрура андроида. Это топик где обсуждаются решения архитектурные решения. И не проблемы типа touchwiz кнопка зеленая тормозит иногда. Это все из-за драйвера touch wiz 4.0 ускорен. Конкретно что вы видите проблемного в андроиде.
                                                      • +1
                                                        Прочитайте внимательно об чем ведется разговор.

                                                        Лично у меня нет особого рвения говорить про архитектурные баги андроида. Это вы начали меня расспрашивать, а я отказываюсь отвечать.
                                                        • –1
                                                          вы сказали что прекрасно знаете вопрос, ну так поделитесь )
                                                          • +1
                                                            в другой раз.
                                                            • +1
                                                              Меня в HTC Wildfire ужасно бесит тормозные:
                                                              1. История звонков.
                                                              2. СМСки

                                                              1. Я звоню человеку, скажем, девушке, договариваюсь о встрече, а потом сразу же хочу позвонить маме и сказать, что домой я сегодня не приду. Девушка у меня в истории была третьей. Когда я ей набрал и положил трубку она секунд 5 остаётся третьей, а потом поднимается вверх по истории. Допустим, мама у меня была первой. Я после звонка нажимаю на имя мамы, оно несколько секунд висит, потом перерендеривается, с девушкой наверху и звонит опять девушке. Круто =)

                                                              2. Намного хуже это смски. За год у нас с девушкой >2500 смсок. Около 10-ти секунд открывается список с смсками и около тридцати секунд открывается сам разговор. Иногда бывает оно бажит и перекидывает в истории вверх, тогда мне приходится ещё около минуты листать ужасно тормозящий список смсок вниз. Для меня смски стали карой какой-то. Последнее время я в них даже не захожу, а сразу иду в интернет, спросить, что писали — у меня Линукс быстрее запустится, чем смски откроются.

                                                              Аналогичная претензия к браузеру.

                                                              Ещё меня ужасно бесит, что во всех моих андроидах (у меня есть ещё Galaxy Tab 10.1) муз. проигрыватели по-умолчанию почему-то ставят треки в алфавитном порядке, как мудаки какие-то =)

                                                              На самом деле мне говорили, что эти тормоза — проблема Дикого Огня и я вижу, что, скажем, Галахи Таб вообще не тормозит. Но и пользуюсь я им меньше, чем телефоном…

                                                              • 0
                                                                ваши проблемы это проблемы htc sense. Galaxy Tab 10.1 как раз тормозит. Особенно до апдейта на 3.2. но тройка это не официально бета 4ой версии посмотрим. Как раз планшетом я своим не доволен в отличии от телефона
                                                                • 0
                                                                  Проблема Андроида в том, что обвиняют в тормозах Андроид, а не HTC Sence.
                                    • +10
                                      Никаких мифов нет. Все кому нужно, давно уже курсе что и как можно ускорять в ICS.

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

                                      Во вторую очередь производители, которые:
                                      1) забивают прошивки кривым фирменным или «региональным» говнософтом и кривыми драйверами, а после это забивают на обновления.
                                      2) экономят на спичках (ставят мало памяти, которая стоит копейки)
                                      3) сливают сотни миллионов на бездарный маркетинг, вместо чтобы оплатить качественный r&d и нанять нормальных программистов.

                                      Есть правда, ложь и статистика. А еще есть маркетинг для потребителя.
                                      Потребителю все равно будут ездить по ушам, чтобы впарить ему дешевый смартфон.
                                      Или дорогой, но с кривым софтом без вменяемых обновлений.
                                      • 0
                                        Включение по умрлчанию для всех программ ускорения это разве не ограничение? Хочешь не хочешь а заставь ЭТО работать ;-) гугл сделал это не явно, вот и все. Помоему здорово. Мало памяти это htc который непонятно за что любят, у них и батарейка и то и се. Китайцы, что с них возьмешь, только живут на острове ;-)
                                        • 0
                                          У htc очень красивый дизайн. Реально загляденье. Мне он нравится больше, чем Самсунги и Ифоны.
                                      • 0
                                        Какая прекрасная фамилия у девушки-разработчика из Гугл — Hackborn
                                        Она кагбы рождена для этого.
                                        • 0
                                          Или в результате этого.
                                        • +1
                                          Просро тут много людей опыт андроида у которых до 2.3. Начиная с 2.3 и до 4 версии идет целая серия улучшений направленных на перфоманс. А есть еще серия бюджетных телефонов и телефонов среднего диапазона 2010 года, которые поступили в продажу просто без драйверов видеоускорителя :-( ну тут ничего кроме возврата не могу посоветовать, это откровенное хамство где андроид стал заложником ажиотажа и производители закрывали спрос чем попало. Сейчас с этим получше. И новые бюджетники порой лучше подогнаны чем мой топ 2010 года.
                                          • 0
                                            А еще вы упустили главное. Включением ускорения по умолчанию в 4.0 производителей заставили думать, а как же оно будет включаться, черт возьми. Это и есть требование но без четких рамок. Поэтому эта статья касается только некоторых железок для которых я думаю все же перепишут драйвер, надеюсь. На новых таких проблем не будет. Очень сильный ход гугла. И заметим, без всяких ограничений, принуждений. Хочешь сладкий ICS, думай как ускорить. Нет — пользуй 2.3 но это уже не будет хай енд как это сейчас у lg nitro ;-) Очень позитивная статья!
                                            • 0
                                              Жаль что массово это будет в лучшем случае через полгода. А огромная масса проданного железа не будет обновлена выше чем до 2.3
                                            • 0
                                              Могу сказать как пользователь, когда достал из коробки планшет galaxy tab (последний) — он тормозил из коробки. Если бы до этого небыло опыта работе с ipad, возможно не обратил бы внимания. А так реально напрягает. Неприятно, покупая продукт, сопоставимый по стоимости с ipad, получать продукт худшего качества.
                                              Что касаемо samsung galaxy s2 — все работает чисто и без нареканий, баги есть, но терпимые.
                                              Очень странно, что до сих пор никак не могут решить проблему на уровне производителя о которой уже на каждом углу кричат.
                                              • 0
                                                по поводу таблеток тут согласен, посмотрим что выход четверки решит. с телефонами проблема надумано имхо. Мелкие баги есть везде.
                                                • +1
                                                  Когда тебе надо срочно позвонить а эта скотина зависает, потом перезагружется, и вместо того чтобы наконец-то дать возможность звонить начинает «сканировать медиа» чем еще оттягивает время.
                                                  Брр.

                                                  Простите, накипело :(
                                                • 0
                                                  Я игрался с ипадом. Единственное, где Galaxy Tab в сравнении с ним тормозит — это HTML5 Canvas, имхо, что меня очень сильно огорчает =(
                                                  • +1
                                                    надо не играться, а владеть.

                                                    на выходных сравнивал качество просмотра поста с лепры который содержит сотни картинок и анимированных гиф. на ipad2 и galaxy tab 10.1 основой измерения служили скорость скролла страницы + рендера, итого выигрыш ipad-а был 2:1. и это с прошивкой 4.3, а если поставить 5.0, где у браузера нет tiled рендеринга, то боюсь даже представить
                                                    • 0
                                                      Реально зайдите в любой магазин где можно положить рядом друг с другом ipad и любой андроид планшет и сравните какая разница в плавности переключения между рабочими столами. Это самая наинативнейшая функция, так вот даже она «из коробки» отрабатывается не плавно. Андроид — планшет, имхо, очень сырой продукт.
                                                  • НЛО прилетело и опубликовало эту надпись здесь

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