Как стать автором
Обновить

Комментарии 40

Мне вот интересно, а что мешает дать OpenGL доступ напрямую к GPU? Это же просто стандарт, а конкретную реализацию уже делают разработчики системы.
Или OpenGL является универсальной прослойкой между приложением и GPU?
Раньше программировали напрямую GPU, грубо говоря. Потом появились различного вида прослойки, упрощающие разработку: DirectX, OpenGL из этой оперы. Они создают уровень абстракции, а уже разработчики железа на уровне драйвера обеспечивают трансляцию вызовов OpenGL или DX в хардвёрные преобразования над массивами данных. Долгое время вычисления и спецэффекты упирались в «грубую силу» вычислительной мощности видеоядра и количество памяти, но их было ДОСТАТОЧНО для поддержания приемлемой производительности на актуальных в то время разрешениях. Сейчас дошли до такой стадии развития железа и графики, что снова требуется прямой доступ к железу для написания самых высокоэффективных вычислялок для сложнейших эффектов на высоком разрешении (сложность расчётов растёт геометрически из-за количества точек). Собственно, появился Vulkan. Он пока не настолько низкоуровневый, как PS4-API для общения с GPU, но и не настолько сложный / муторный. Максимально close-to-metal с сохранением какого-никакого, но уровня абстракции.

Это если в очень общих чертах.
Думаю, код для Vulcan и код для OpenGL несовместимы. Как думаете (вопрос всем), насколько популярным он окажется? Высокая производительность — это круто, но ведь приложения и на айфонах хотят выпускать. Тот же Cocos2d на iOS популярен только из-за встроенных из коробки фич в Xcode, но он все равдо проигрывает OpenGL из-за никакой кроссплатформенности.
OpenGL естественно напрямую в Vulkan транслироваться не будет, но с точки зрения железа технологии совместимы: в частности, Vulkan единственное, что сейчас требует от железа — совместимость с OpenGL ES 3.1 или 4.x. Ну и соответсвующих драйверов от GPU.

Крупнейшие игроки рынка GPU и игростроя делают ставку на Vulkan сейчас, думаю, без поддержки эта штука не останется. Другое дело, что пока это удел энтузиастов, ААА-тайтлов и настроек «играем на все деньги», т.к. писать вулкан-код сложнее и «дороже», чем DX/OGL. Подробнее можно вот тут почитать. К слову, DX12 имеет схожие с Vulkan возможности по части close-to-metal программирвоанию. Но DX12 не кросплатформенный. А мы все знаем, какая платформа на ПК сейчас «игровая». Так что без конкуренции технологии не останутся.
Аааа, так это все таки универсальный API. А мне казалось, что Vulcan сделали ребята из гугла и только для андроида. Тогда вопрос отпадает.
ОТА так же будут рассылаться хз как? Критические обновления безопасности приходят через 2 недели после релиза. Просто замечательно.
Будут ли выходить обновления безопасности для 6 после выхода N, вы ведь кинули владельцев Nexus 5 и даже не потрудились обьяснить почему.

Какие шаги были предприняты Google чтобы обязать вендоров выпускать аппараты с новой ОС и гарантировать обновление аппаратам в течении 2-3 лет?

Через сколько месяцев после выхода, N займёт хотя бы 10% рынка?

Как обстоят дела с поддержкой сканера отпечатка в сторонних приложениях?
Nexus 5 был выпущен осенью 2013 года. На дворе 2016 год, к сожалению, это означает, что N5 вышел за рамки поддержки. (2 года)

Сам являюсь владельцем сего девайса и очень жаль, что придется перебиваться кастомами :(
Свежие стоковые андройды были не так уж и плохи, потому желания ставить цианоген особо не было.
У меня Nexus 4. Очень классный телефон, но вот гугл конечно же отказалась поддерживать его и даже 6.0 пришлось ставить обходными путями. Очень обидно. Конечно компанию понять можно, но могли бы хоть предоставлять более простой способ установки новых версий систем на старые телефоны (пусть на свой страх и риск, без поддержки)
А Google уже заявил что не будет обновлять Nexus 5? Или Вы это решили из-за отсутсвия beta-прошивки на N5?
НЛО прилетело и опубликовало эту надпись здесь
JIT частичный, только для простых кусков кода. Для тех, где важна производительность, компиляция происходит на этапе установки.
Насколько мне известно, приложения не будут компилироваться при установке, даже частично. Компилироваться полностью будет только фреймворк.
Да, писали, что теперь они не будут компилировать на устройстве при установке и после установки update'а пропадёт шаг Optimizing app. Есть подозрение, что теперь Ahead-of-time компиляция происходит на серверах гугл, а JIT-компилятор работает на самих устройствах. Это было бы вполне логично, так как Ahead-of-time компиляции на самих устройствах не даёт наверное существенного прироста, а вот JIT при работе на самом устройстве даёт. Но поживём увидем и да, тоже присоединяюсь, что очень интересно было бы прочитать какой технический отчёт по этой теме.
Могу сказать немного информации, которую можно почерпнуть из публичного репозитария гугл. Приложения будут интерпретироваться и, для каждого метода будет собираться количество вызовов, при достижении определенного значения, метод будет отправлен в очередь на компиляцию, которая осуществляется в выделенном потоке. Как только метод откомпилирован, он отправляется в jit-кэш и становится доступен для вызова. Статистика вызовов сохраняется и, при долгом простое устройства, вызывется AOT-компилятор, который компилирует горячие методы. При повторном запуске эти методы уже не придется интерпретировать, но JIT все равно работает, т.к. могут появиться новые горячие методы.

Больше информации можно найти в исходниках: https://android.googlesource.com/platform/art/+/master/runtime/jit/

Нужды в AOT нет, насколько показывают данные бенчмарков от Google. Так что, в компиляции на серверах Google необходимости нет (да и технически это сложно из-за большого разнообразия железа).
То есть Dalvik VM снова в деле? =)
В целом похоже, но тут не трейсы компилируются, а методы целиком. Я бы сказал, что ART во много раз эффективнее Dalvik. Интерпретатор тоже был переписан и стал более эффективным.
То есть как я понял, вначале приложение запускается на Dalvik VM, после чего начинает собираться его профиль и как и раньше для горячих кусков запускается JIT, но в отличие от старой связки Dalvik + JIT, теперь после сбора определённого кол-ва статистики на приложении запускается AOT-компилятором и после этого работает связка ART + JIT (возможно с последующим AOT-компилятором).
В общих чертах да. Но там много деталей и нюансов и было бы хорошо, если бы кто-нить написал про это статью.

Еще замечу, что когда мы говорим о JIT и AOT-компиляторах, мы имеем ввиду один и тот же компилятор. Разница только в сценарии вызова.
ну я очень жду книгу от Jonathan Levin'a про Android Internals, думаю там он должен это осветить. Правда он её обещал ещё в Январе зарелизить, но до сих пор не вышла) Правда как говорит сайт его http://newandroidbook.com/index.php, теперь всё зависит от Amazon'a, хотя может он сам ещё что-то допиливает.
AOT для некоторых приложений может занимать очень много времени и даже приводить к срабатыванию таймера, убивающего процесс установки. Плюс JIT в том, что можно собирать дополнительную информацию о выполняющемся коде и оптимизировать его на основе данной информации.
НЛО прилетело и опубликовало эту надпись здесь
А язык Си в Андроид есть?
А система отображения файлов в память есть?
А язык Си в Андроид есть?
C/C++ есть. Ещё с Android 2.3 версии можно было писать приложения без Java вообще.
Расширенная поддержка нового компилятора JACK / Java 8;

Java 8 будет доступна только для N или всех платформ? Если второе — то это очень хорошо.

First Preview of Android N: Developer APIs & Tools
you can now use many popular Java 8 language features, including lambdas and more, on Android versions as far back as Gingerbread

Естественно, не все плюшки Java 8 будут доступны, но, всё же, двигаются в верном направлении.
Когда уже в андроиде появится многоканальный звук?
Когда появится поддержка USB Audio Class 2.0?
Когда появится работа с несколькими мониторами?
Зачем вся эта фигня большинству людей на телефонах/планшетах?
НЛО прилетело и опубликовало эту надпись здесь
Так и знал, что здесь это спросят. Дело в том, что систему делают не только для большинства. Посмотрите на винду. Там целый ворох разных штук, которыми пользуется очень мало людей, но пользуются ведь. И это не мешает ей оставаться самом популярной осью на компьютерах.
На самом деле, все, что нужно большинству, в андроиде уже есть. Теперь осталось сделать то, чего не хватает продвинутым пользователям, а также то, что позволит системе выйти на другой рынок. Собственно, уже началось движение в сторону рынка ПК, где без многооконности, работы с несколькими мониторами и еще других фишек система не сыщет успеха.
Я продвинутый пользователь и разработчик под Андроид. Как писали выше — лучше бы они придумали как вендоров заставить обновлять девайсы и ускоряли распространение каждой новой версии на рынке, а не 5% девайсов через 1 год… А наличие таких полезных фич необходимых малому кол-ву «продвинутых» — дополнительная нагрузка на вендоров по их поддержке и, соответсвенно, доп. задержки для выпуска обновлений.
Насколько я знаю, Андроид — ос не только для телефонов и планшетов.
Всевозможные андроид приставки к телевизорам (или сами телевизоры на андроиде), автомобильные мультимедиа на андроиде, набирают популярность, а готовых решений для качественного звука/мультимедиа операционная система до сих пор не предоставляет.

Нужно признать, что по аудио части андроид сильно проигрывает как айфонам/макбукам, так и виндовсу, линуксу. Если в айоси присутствует тот же самый UAC2.0 из коробки, то в виндовс это решается наличием большого количества драйверов/софта для его поддержки.
Где то читал тест, где слепое тестирование показало проигрыш андроид устройств по качества звука устройствам на других операционках.

К тому же из моих наблюдений телефоны и планшеты одни из самых популярных устройств для прослушивания музыки и просмотров фильмов. Производители смартфонов/планшетов добавляют возможность подключать устройства к телевизорам, к различным док стнциям и т.д., и весь этот функционал неполноценен без соответствующей поддержки ос.
В Интернете мелькают слухи о добавлении возможности писать ПО на Swift, это так?
Если до то можно подробнее об этом и сроках
На гитхабе есть поделка, позволяющая запускать swift на андроид устройствах.
https://github.com/apple/swift/blob/master/docs/Android.md

Тут есть другая проблема. Java и Swift совершенно несовместимы и очень много разных библиотек и проектов уже написано на Java. Поэтому, придется городить костыли.
Лично я куда больше за Kotlin. Он так же использует JVM, так что в системе ничего менять не надо. Его можно легко совмещать с Java кодом. Он в целом упрощает разработку и в том числе имеет кучу упрощений для Android специфичного кода. Для него уже есть полная поддержка в Android Studio. Плюс, у гугла уже есть опыт общения с командой JetBrains, так как они сделали Intelij IDEA, на которой основан Android Studio.
Осталось только обучить разработчиков новому языку, и это будет проще, чем изучать Swift
Android N, O, P, Q…
Когда наконец появится возможность свернуть входящий вызов, не сбрасывая звонок и не отвечая на него? Нереально бесит, когда входящий звонок выбивает из клиент-банка или прерывает какой-то другой в разы более важный для меня в этот момент процесс.
Свайп по всплывающему уведомлению вверх именно это и делает.
Только что попробовал на своём 4.1.1 — предлагается отправить смс в ответ, но просто сбросить вызов в фон и «забить» на него — не удаётся. С какой версии искать то, чего я так неистово желаю?
С 5. Зачем тогда спрашивать про «N, O, P, Q...», когда сам даже не пробовал те, которым уже пара лет?
А на 4.1.1 попробуй нажать клавишу громкости.
Про клавишу громкости я знаю, не то она делает. Зачем спрашивать?
Затем что это несколько дешевле и проще, чем покупать телефоны или шаманить с прошивками только ради попробовать (здесь смайл). Вы скажете — «мог бы спросить у друзей, знакомых и т.д.». Мог бы, но есть более приоритетные проблемы. А то, что нашел время спросить здесь — считайте криком души в 23.12.
И да, таки спасибо за ответ по существу. У меня были сомнения что это было вообще реализовано, и до сих пор «звонок превыше всего».
Зарегистрируйтесь на Хабре, чтобы оставить комментарий