Google только что выпустила последнюю версию операционной системы Android и новый телефон Nexus 5 для ее работы. Пока остальные из нас ждут появления обновлений, давайте посмотрим, что нового может быть важно для программиста.
Обратите внимание, что KitKat — это обновление только с десятичной запятой, поэтому не ожидайте радикальных изменений — и давайте посмотрим правде в глаза, радикальные изменения — это то, чего мы действительно не хотим. В то же время Google выпустил Google Play Services 4.0, который также добавляет функции.
Изменения в пользовательском интерфейсе почти по определению являются «косметическими». Новый шрифт и панель запуска в сочетании с прозрачными областями состояния и уведомлений делают общее впечатление более чистым. Это не такое большое изменение, как в iOS 7 от Apple, но все же заметно.
Также есть новый номеронабиратель, который упрощает поиск номера.
В Nexus 5 есть режим камеры HDR, который делает несколько снимков с разной экспозицией и объединяет их в одно изображение. Неясно, будет ли это доступно на других устройствах.
С точки зрения программиста, самая большая новая функция пользовательского интерфейса — это полноэкранный режим. Приложения, работающие в полноэкранном режиме, не отображают элементы управления, но пользователь может перетащить вниз, чтобы сделать видимой строку меню и т. Д. Это будет полезно для приложений, которым требуется полноэкранная область для отображения контента. Вы по-прежнему можете получить доступ ко всем событиям касания, чтобы обеспечить индивидуальное взаимодействие с пользователем.
Также есть новый API анимации — Transitions Framework. Вы можете использовать набор предопределенных переходов или создавать собственные для анимации сцен, которые представляют собой иерархии представлений. Вы также можете анимировать пользовательский интерфейс на лету, настроив изменения и используя TransitionManager для их анимации в представлении.
Отойдя от пользовательского интерфейса и графики, есть три больших новых фреймворка.
Платформа печати, по сути, запекает Google Cloud Print в Android, хотя в документации говорится, что можно использовать и другие службы. Система работает с подключениями к сети Wi-Fi или Bluetooth. Существует два метода печати: общий и изображение. Общий документ должен быть в формате pdf, и есть новые методы, которые помогут вам создать pdf. Методы печати изображений предназначены для работы с фотографиями, и, опять же, есть вспомогательные методы, облегчающие работу.
Помимо Google Cloud Print кажется, что производители принтеров должны добавить api на свои устройства. Будет интересно посмотреть, примет ли кто-нибудь вызов. Один интересный момент заключается в том, что услуги принтеров можно рекламировать через Google Play.
Кажется странным, что для настройки печати в качестве стандартной службы на Android потребовалось до 4.4, и то же самое можно сказать о структуре доступа к хранилищу. Android давно пытается игнорировать тот факт, что файлы существуют, и это часто вынуждает пользователей устанавливать сторонние файловые менеджеры и тому подобное.
Теперь у нас есть своего рода встроенный файловый менеджер. Новый класс поставщика документов подает файлы в стандартный компонент пользовательского интерфейса. В принципе это означает, что вы можете просматривать и получать доступ к файлам локального или сетевого хранилища. На стороне клиента вам просто нужно использовать новые намерения для создания или открытия документа, и он автоматически открывает стандартный пользовательский интерфейс, предоставляя доступ к тому, что выглядит как унифицированная файловая система. Как вы, наверное, догадались, по умолчанию используется Google Диск.
Третье большое дополнение, NFC Host Card Emulation (HCE), — это попытка оживить Google Wallet, который не так часто используется по ряду причин, но в основном операторы отключают его. С помощью HCE любое приложение может эмулировать смарт-карту NFC, позволяя пользователю прикладывать свой телефон к считывателю вместо карты. Системе необходим облачный защищенный элемент, в котором хранятся данные карты. На данный момент, похоже, единственная такая услуга предоставляется SimplyTapp (компания, которая первой предложила такой подход). Вы можете зарегистрироваться в SimplyTapp, чтобы создавать свои собственные карты лояльности или магазина, а затем вы можете создавать приложения, которые позволяют пользователю их использовать. Конечно, для того, чтобы это действительно стало популярным, эмитентам физических карт придется вступить в клуб.
Это основные изменения API, но Google утверждает, что организация ядра Linux изменилась, чтобы можно было работать только с 512 МБ ОЗУ, что позволяет Android работать на старых и менее мощных устройствах. Учитывая время, необходимое для появления новой версии на текущих телефонах, идея о том, что KitKat появится на старых устройствах, кажется маловероятной. Более вероятно, что Android теперь больше подходит для более дешевых телефонов и больше конкурирует с такими альтернативами, как Firefox OS.
Система использует ряд методов для уменьшения использования памяти, и есть новый ActivityManager.isLowRamDevice, который приложения могут использовать для минимизации использования памяти. Существуют также новые инструменты, позволяющие узнать, сколько памяти и ресурсов использует ваше приложение.
В попытке сэкономить батарею используется аппаратное группирование датчиков для группирования показаний датчиков. Вы должны использовать стандартный прослушиватель событий и установить интервал между пакетами — вы также можете запросить немедленную доставку.
Что касается датчиков, теперь есть поддержка датчиков шага и счетчика шагов. Конечно, это зависит от оборудования, доступного в устройстве, и на данный момент только Nexus 5 имеет соответствующие датчики.
Также есть много изменений в области мультимедиа, в том числе новый рекордер экрана, который значительно упростит создание пошаговых руководств.
Действительно приятным дополнением, которое может вызвать появление нового типа приложений, является API ИК-передатчика. Если в устройстве есть ИК-передатчик, теперь вы можете использовать API для отправки команд в стиле удаленного управления. Вам все еще предстоит решить, каков код каждой команды — так что это все еще низкий уровень, но не такой низкий, как необходимость самостоятельно модулировать ИК-передатчик.
Также есть действительно большое обновление, но оно повлияет на вас только в том случае, если вы создаете гибридные приложения или используете PhoneGap. Класс WebView теперь использует Chromium для рендеринга HTML и движок V8 для запуска JavaScript. Это должно заставить приложения HTML работать намного быстрее и дать им возможность почувствовать себя более похожими на нативные приложения.
Есть много других мелких изменений — смотрите полный список на Android 4.4.
Google заявил, что KitKat будет доступен для Nexus 4, 7 и 10 через несколько недель. Также в те же сроки ожидается выпуск Samsung Galaxy S4 и всех телефонов HTC One.