Приложение go на андроид. Android Go и Android One: что это такое и в чём различия. Нынешнее положение Android One и её преимущества

В прошлом компания Google запустила несколько связанных с мобильной платформой Android проектов, между которыми легко запутаться. Изначально «корпорация добра» открыла программу Android One, но позже слегка изменила её суть и направление, в связи с чем создала Android Go. Если вышеописанное приложение показалось вам непонятным, то эта статья - как раз для вас. Далее мы всё разложим по полочкам, ответив на вопросы: что такое Android Go / One, каково их предназначение, чего Google надеется добиться с помощью них, в чём их преимущества и недостатки, какие популярные устройства выпущены на Android Go и запущены в рамках программы Android One. В конце мы подведём итог , выделив главные моменты из всей статьи.

Как зародились Android Go / One и что это такое

В 2014 году Google представила Android One - программу поддержки OEM-производителей, призванную мотивировать партнёров «корпорации добра» производить бюджетные устройства с «чистым» Android на развивающихся рынках (в основном в Индии и странах Африки). Суть проекта заключалась в том, чтобы производители выпускали максимально дешёвые смартфоны без всяких оболочек (наподобие MIUI, TouchWiz, Flyme), в связи с чем их можно было бы легко обновлять - грубо говоря, достаточно взять «готовую операционную систему» и разослать своим пользователям. Google же старалась всячески продвигать устройства данной серии на развивающихся рынках. Однако программа Android One в том виде, в каком её изначально задумывала «корпорация добра», не оказалась успешной.

Дело в том, что с целью удешевления стоимости смартфонов производители были вынуждены оснащать гаджеты слабой начинкой. Естественно, это негативно сказывалось на производительности устройств. Далее программа развития Android One «приутихла» - вплоть до 2017 года.


Осознав основную проблему Android One, в 2017 году Google анонсировала Android Go - облегчённую версию операционной системы. Грубо говоря, это тот же «зелёный робот» (основанный на версии Android 8.0 Oreo), но с убранными визуальными эффектами интерфейса, излишне нагружающими систему, а также со специальными легковесными приложениями (хотя Android Go поддерживает установку любых файлов для полноценного Android). Данную версию операционной системы устанавливают только в низкопроизводительные устройства (со слабыми процессорами и оперативной памятью на 1 ГБ и меньше). Цель создания Android Go (как и первоначальная задача Android One) - расширить экосистему «зелёного робота» ещё на один миллиард устройств за счёт малообеспеченных людей в развивающихся странах. Об этом Google заявляет открыто.

Преимущества и недостатки Android Go


Android Go стал единственным шансом на «жизнь» низкопроизводительных устройств, и вот почему:
Google делает большой акцент именно на lite-версии приложений, а не на оптимизацию работы системы, что может стать минусом для конечного пользователя. Программ, которые переделаны специально под Android Go, сейчас крайне мало. Поэтому пользователи, вероятнее всего, вынуждены устанавливать стандартные приложения из Google Play, которые отбирают довольно много ресурсов - это перечёркивает всю суть Android Go. Данный проект от Google добьётся успеха только в том случае, если разработчики популярных сервисов посчитают нужным оптимизировать свои программы для ультрабюджетных устройств.

Нынешнее положение Android One и её преимущества


На данный момент Android One является серией устройств от разных производителей, поставляемых с «голым» Android. Изначальная идея выпускать только бюджетные гаджеты на Android One ушла - теперь данная программа только объединяет любые устройства с «чистым зелёным роботом» (таким образом, данный проект пришел на смену существовавшей ранее линейке гаджетов Google Play Edition). За счёт того, что производители не переделывают пользовательский интерфейс своих устройств, их гаджеты всегда «готовы» к обновлениям - разработчикам не нужно тратить время и силы на оптимизацию новой версии операционной системы под свою оболочку. Это ускоряет выход обновлений для устройств программы Android One.


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

Установка «чистого» Android в теории может удешевить устройства, поскольку производителю не нужно тратить деньги на разработку и поддержку фирменной оболочки.


На данный момент Google всячески поддерживает инициативу производителей выпускать устройства на Android One, давая всем владельцам устройств с официальным «голым зелёным роботом» безлимитное облачное хранилище для фотографий в качестве бонуса.

Устройства на Android Go

Платформа Android Go представлена относительно недавно, поэтому смартфонов на базе упрощённой мобильной платформы крайне мало. Тем не менее некоторые именитые бренды анонсировали свои ультрабюджетные гаджеты в рамках выставки MWC 2018.


Французская компания первой представила смартфон с Android Go «на борту» - Alcatel 1X в базовой комплектации (в улучшенной модели установлен полноценный «зелёный робот»). Как и следовало ожидать, он получил довольно слабую начинку:
  • 5,3-дюймовый дисплей типа IPS с разрешением 960×480 пикселей;
  • четырёхъядерный процессор MediaTek MT6739 с тактовой частотой 1,28 ГГц;
  • 1 ГБ оперативной памяти;
  • основная камера на 8 Мп;
  • фронтальная камера на 5 Мп с фиксированным фокусом и вспышкой;
  • аккумулятор на 2 460 мАч;
  • сканер отпечатков пальцев (в некоторых версиях);
  • NFC (в некоторых версиях);
  • одна или две SIM-карты (в зависимости от модификации);
  • поддержка 4G;
  • цена: 6 490 рублей.


Компания HMD Global не могла пройти мимо интересного проекта «корпорации добра», представив своего «малыша» с Android Go под известным финским брендом. Новинка выделяется на фоне других подобных устройств ярким дизайном - всё благодаря красочным сменным панелям. Технические характеристики смартфона таковы:
  • 4,5-дюймовый дисплей типа IPS с разрешением 854×480 пикселей;
  • четырёхъядерный процессор MediaTek MT6737M с тактовой частотой 1,1 ГГц;
  • 1 ГБ оперативной памяти;
  • 8 ГБ пользовательской памяти с возможностью расширения с помощью карт MicroSD;
  • основная камера на 5 Мп;
  • фронтальная камера на 2 Мп;
  • аккумулятор на 2 150 мАч;
  • поддержка 4G;
  • цена: $80 (4 500 рублей).

ZTE Tempo Go


Китайская компания ZTE тоже решила не упускать рынок дешёвых гаджетов с Android Go. Её Tempo Go стал одним из самых доступных смартфонов среди всех устройств с упрощённой мобильной платформой, однако это практически не отразилось на начинке:
  • 5-дюймовый дисплей типа TFT с разрешением 854×480 пикселей;
  • четырёхъядерный процессор Snapdragon 210 с тактовой частотой 1,1 ГГц;
  • 1 ГБ оперативной памяти;
  • 8 ГБ пользовательской памяти с возможностью расширения с помощью карт MicroSD;
  • основная камера на 5 Мп;
  • фронтальная камера на 2 Мп;
  • аккумулятор на 2 200 мАч;
  • поддержка 4G;
  • цена: $80 (4 500 рублей).

Устройства программы Android One

Программа Android One существует уже довольно долго, а недавно ею заинтересовались крупные игроки мобильного рынка. В связи с этим, на рынке присутствуют множество достойных устройств с «чистым зелёным роботом».


Пожалуй, самым популярным смартфоном проекта Android One стал Xiaomi Mi A1. Устройство получилось удачным со всех сторон: хорошие технические характеристики, красивый дизайн и сравнительно невысокая стоимость.
  • 5,5-дюймовый дисплей типа IPS с разрешением 1920×1080 пикселей;
  • восьмиядерный Snapdragon 625;
  • оперативная память на 4 ГБ;
  • пользовательская память на 64 ГБ;
  • основная камера с двумя матрицами по 12 Мп;
  • фронтальная камера на 5 Мп;
  • аккумулятор на 3 080 мАч;
  • две SIM-карты;
  • сканер отпечатков пальцев;
  • цена: 15 990 рублей.

HTC U11 Life


Тайваньская компания HTC не обошла стороной Android One и выпустила упрощённую версию своего флагмана с приставкой Life на «чистом» Android. Смартфон получился довольно интересным:
  • 5,2-дюймовый дисплей с разрешением 1920×1080 пикселей;
  • восьмиядерный Snapdragon 630;
  • оперативная память на 3 или 4 ГБ (в зависимости от модификации);
  • пользовательская память на 32 или 64 ГБ (в зависимости от модификации);
  • основная камера на 16 Мп;
  • фронтальная камера на 16 Мп;
  • аккумулятор на 2 600 мАч;
  • сканер отпечатков пальцев;
  • цена: от $350 (20 тыс. рублей).

Почти все смартфоны новой Nokia


HMD Global оценила преимущества Android One и выпустила в рамках этой программы все свои смартфоны 2018 года: флагманcкий Nokia 8, а также середнячки Nokia 7 Plus и Nokia 6 (2018). Устройства финской компании и без того получали обновления операционной системы одними из первых, а теперь новые версии «зелёного робота» будут выходить на гаджеты от Nokia так же быстро, как и на устройства Google Pixel. Новые смартфоны от HMD Global были представлены сразу с Android One, в то время как её старые гаджеты (Nokia 3, Nokia 5 и Nokia 6) стали частью этой программы через некоторое время после выхода. Единственным устройством новой Nokia, которое не распространяется в рамках Android One, стал бюджетный Nokia 2.

Итог


Android One - линейка устройств различных производителей, представивших фирменные смартфоны с «голым» Android. Преимущества гаджетов, выпущенных по программе Android One:
  • Быстрые и гарантированные обновления.
  • Android в том виде, в котором его задумывала Google.
  • «Плюшки» от Google.
  • Возможное удешевление устройств.
Android Go - облегчённая версия операционной системы, основанная на Android 8.0 Oreo. Её особенности таковы:
  • Отсутствие «тяжёлых» визуальных эффектов в интерфейсе.
  • Наличие специальных приложений, оптимизированных под слабые процессоры и маленькие хранилища.
  • Поддержка всех приложений и функций «полноценного» Android.
  • Устанавливается только на низкопроизводительные устройства.
Возможный минус:
  • Нежелание разработчиков оптимизировать приложения под Android Go, что делает устройства на этой версии ОС подобием звонилок.

Игра в го у нас считается уделом интеллектуалов, страстно увлечённых Востоком. В принципе, большинство популярных игр, от шахмат до маджонга, каким-то образом да пришли с Востока, но это не так бросается в глаза, как в случае с го. Эта игра однозначно несёт японский колорит, и играть в неё иначе как под рюмочку нагретого сакэ, под суши и под звуки сямисэна считается чем-то не соответствующим Бусидо. Даже сейчас, когда игра в го становится заметно популярнее у отечественного игрока, рост её популярности большей частью происходит в среде поклонников аниме и манга.

Впрочем, кусочек Японии вполне уместится и в Вашем смартфоне (даже если он произведён не Sharp, не Toshibaи даже не Sony Ericsson, а какими-то гайдзинами с коровьими глазами!) Установить игру GOdroid - дело двух минут, а постигать тайны этой игры можно всю жизнь. Неслучайно в мире эта игра до сих пор является одной из популярнейших, а компьютерные программы, уже исследовавшие вдоль и поперёк шахматную доску, так и не могут превзойти «белковых» игроков в го.

Правила игры, если Вы их не знаете, можно посмотреть на любом специализированном сайте - или же внутри самой игры - на английском языке (слава богине Аматэрасу, что не на японском!). Если вкратце, то суть - в том, чтобы окружить своими камнями камни противника, взяв их в плен. Если объяснять их подробно, то стандартного объёма одной статьи не хватит.

В игре можно настроить размер доски (гобана) от 9х9 клеток до 19х19, можно выбрать уровень сложности. Если Вам достаточно повезло и Вы не только играете в го сами, но и имеете «живого» партнёра для этой игры, то есть возможность назначить обоих игроков людьми, таким образом смартфон будет служить для вас виртуальным гобаном. Чтобы выставить на доску камень, нужно обозначить касанием место его выставления. Для этого нужно двойное касание в нужном месте, а чтобы точнее попасть на нужное поле, можно воспользоваться увеличением. Перемещать уже поставленный камень на доске нельзя. Камень, попавший во вражеское окружение, снимается с доски.

Честно скажу, я сам не знаток го, поэтому не буду смущать мастеров этой игры своими дилетантскими комментариями по поводу оптимальных стратегий и нюансов игры. Однако себе я эту игру установил и намерен уделить ей некоторое время из числа тех дней, что отведены моему нынешнему воплощению. Как и положено вечным ценностям, эта игра уникальна и бесценна. Её рейтинг на Маркете - 4,5 из 5, установило себе её более ста тысяч человек.

Внимание! У Вас нет прав для просмотра скрытого текста.

Название: GOdroid
Версия игры: 1.2.5
Платформа: не ниже Android 1.5
Файл:

Игра GOdroid (игра GO - Го) предположительно подойдет для телефонов: Samsung Galaxy S II I9100, HTC EVO 3D + Incredible S + Desire HD, Motorola Atrix 4G + Milestone 2 + XT701, LG Optimus 3D P920, HTC Sensation, Sony Ericsson Xperia Arc S, Google Nexus S, Acer Liquid, Garmin-Asus A10, Huawei Ideos U8150 (и других моделей).

GO лончер EX 2016:Тема & Обои – приложение для того, чтобы кардинально изменить внешний образ и функциональность рабочего стола вашего телефона. У него высокая скорость работы, приятное оформление, имеются виджеты и самое главное изысканные, необычные темы.

Другими словами, это приложение, которое создавалось для изменения дизайна и оформления всех окон на смартфоне с системой Андроид. Разновидность Лаунчера с серией EX является продолжением прошлой версий программы, при этом в данном пакете был значительно увеличен предел функциональных возможностей, что, несомненно, радует. Кроме некоторых доработок внешнего оформления, пользователи так же сумеют подстроить под свои нужды визуальные эффекты, и основной вид главного экрана. Огромной выбор спецэффектов при переходе с одного окна в другое, ретуширования дизайна основного меню и так далее. Для вас будет доступно огромное многообразие виджетов, которые в значительной мере ускорят доступ к опциям этого пакета дополнений. Абсолютно любой пользователь сможет настроить смартфон на свое усмотрение, а для этого были разработаны все возможности. GO launcher EX приводит оболочку смартфона к формату: основной экран с виджетами программного обеспечения и основной каталог со всеми остальными приложениями. Оказался очень полезным магазин с дополнительными темами - огромное число тем любого характера, все темы быстро загружаются с Плей Маркета и автоматически ставятся на смартфон, их можно будет стереть как обычную программу, или через каталог с названием "Темы".

Работать с программой очень просто – она воспринимает управление жестами, которые также можно будет подстраивать! В опциях визуальных эффектов можно выбрать интересующую анимацию перехода страниц и другие возможности, включая запуск программ. Для тех, кто наиболее ответственно относится к безопасности своего аппарата, в программе был задействован блокировщик несанкционированного входа. Вам следует ввести ключ, ввести его два раза и выбрать программу, которую желаете сделать неприступной. Теперь, когда кто-либо захочет зайти в любой сервис - придется набрать пароль. GO launcher EX открывает для своих обладателей полный доступ к множеству интересных программ и проектов. Тысячи скинов ожидают вас на просторах в плей маркета, блокировщик, виджеты для времени и погоды, поддержка жестикуляционных команд, сортировка файлов, и даже свой встроенный оптимизатор энергопотребления. Занимая на карте памяти немного места, продукт будет потреблять для своей работы не более тридцати мегабайт. Если же загрузить программу на все сто процентов, то потребления оперативной памяти возрастет до ста мегабайт.

Особенности GO launcher EX:

  • Имеется возможность выбора красивых тем;
  • Появляется плавная прокрутка рабочих столов;
  • Есть контекстное меню иконок (чтобы его активировать, нужно использовать длительное нажатие);
  • Можно создавать папки и управлять задачами в AppDrawer (чтобы активировать программу также используется длительное нажатие);
  • Имеется экран предварительного просмотра;
  • Возможна настройка виджетов по вашему желанию.

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

Здесь вы не найдете утечки секретного api android. Используемые механизмы - это стандартные (или почти стандартные) инструменты android и golang, описание которых есть на официальных сайтах и профильных форумах. Но в виде единого плана действий, да еще и на русском языке - такое публикуется впервые и эксклюзивно для Хабра.

Предыстория

По многочисленным просьбам пользователей одного из приложений были разработаны предсказания текста. Предсказания обслуживал алгоритм radix tree , реализованный в отдельной android-библиотеке. Алгоритм показывал хорошую производительность наряду с экономным потреблением ресурсов - выдавал результат за десятки миллисекунд при потреблении 1,5 Мб памяти. Вполне рабочие показатели. Но так было только при изолированном тестировании библиотеки на JVM.

Проблемы начались при подключении библиотеки к приложению. На android алгоритм предсказаний стал тормозить, выдача результатов затянулась до 7-ми секунд. Ничего себе! Да за 7 секунд можно вручную набрать слово, стереть и набрать его правильно. Такие предсказания никуда не годились.

Проведенный анализ не выявил проблем кода. Алгоритм работал безупречно, памяти потреблял в строго отведенных количествах, не отвлекался на посторонние процессы, все асинхронно, аппаратных ресурсов предостаточно. Вывод напрашивался только один - виртуальная машина android dalvik имеет производительность, отличную от JVM, и в рамках dalvik данный код обречен на тормоза.

Тогда и было решено, что алгоритм предсказаний нужно выносить из dalvik. Для этого существует JNI - Java Native Interface . Механизм, позволяющий вызывать из java методы библиотек, написанных на C/C++. И обратно, - из библиотеки C/C++ вызывать методы java.

Решение

Для создания нативной библиотеки был выбран язык Go. Просто потому что имеется опыт работы с ним, в отличие от C/C++. Golang восхитителен, но этот путь имеет свои трудности, поскольку мы получаем дополнительный уровень сложности. Для чистого C/C++ достаточно использовать NDK и следовать инструкциям, описанным на сайте android developers . Для Golang придется изучить еще и компиляцию golang под android, начать можно .

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

План

Среда разработки android:
  • ОС: Windows 7.
  • IDE: Eclipse with ADT. Но этот план подойдет и для Android Studio.
Среда разработки golang:
  • ОС: Для компиляции golang под android используется linux. Я использую Ubuntu 14.04, запущенную на VirtualBox.
  • Android SDK.
    - Cкачать архив с официального сайта android
    - Распаковать, допустим, в
    $HOME/android/android-sdk-linux
  • Java JDK.
    $ apt-get default-jdk
  • Go 1.5.
    Текущая версия релиза Go - 1.4. Но у меня не получилось скомпилировать библиотеку с его помощью, где-то ошибся при сборке toolchain. Поэтому использовал пакет gomobile из девелоперской версии Go 1.5, релиз которой еще только планируется. Пока нет релиза, установка Go 1.5 описана :
    - Установить Go 1.4 golang.org/doc/install
    - Клонировать текущий репозиторий golang:
    $ git clone https://go.googlesource.com/go $HOME/go - Скомпилировать текущую версию Go с помощью Go 1.4
    $ export GOROOT_BOOTSTRAP=/usr/local/go $ cd $HOME/go/src && ./make.bash $ export PATH=$PATH:$HOME/go/bin
  • Установить и инициализировать пакет gomobile.
    $ go get golang.org/x/mobile/cmd/gomobile $ gomobile init Инициализация пакета занимает приличное время
Разработка библиотеки golang.
  • Разрабатывается обычный golang package, никаких дополнительных рекомендаций. Экспортные методы будут доступны из android.
Компиляция библиотеки golang в библиотеку android *.aar.
  • Использовать команду gomobile bind с указанием пути до android sdk
    $ cd $ ANDROID_HOME=$HOME/android/android-sdk-linux gomobile bind
Подключение библиотеки *.aar к приложению:
Прежде всего, передать библиотеку *.aar на машину разработки android. Далее в зависимости от IDE.

Для Eclipse:

  • Распаковать библиотеку *.aar во временный каталог
  • В Eclipse создать новый проект из существующего кода, указав временный каталог из п.1
  • Отметить, что данный проект является библиотекой android
  • Подключить каталог jni и файл classes.jar в Build Path нового проекта
  • Подключить новый проект как библиотеку в проект приложения
  • Скопировать содержимое папки jni в папку libs проекта приложения.
  • Скопировать содержимое proguard.txt библиотеки в proguard.txt проекта приложения (защита классов go* от обфускации)
  • При последующих обновлениях библиотеки *.aar достаточно обновить файлы в папках jni, libs и файл classes.jar
для Android Studio:
  • Подключить готовую библиотеку *.aar к проекту, используя стандартные средства Android Studio. К сожалению, у меня нет такого опыта, поэтому оставляю это в качестве домашнего задания.
Вызов методов нативной библиотеки из android.
  • Перед использованием нативной библиотеки в приложении, нужно выполнить её инициализацию. Подходящее для этого место - в методе onCreate:

    Public class MyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Go.init(getContext()); } }

  • Методы библиотеки golang доступны через package, одноименные с теми, что вы определили в golang. Например:
    golang:

    Package radix … func Suggest(params string) string { … }
    java:
    suggestions = Radix.Suggest(params);

Результат

После переноса алгоритма в нативную библиотеку, предсказания стали работать даже быстрее, чем в JVM - результат отдается менее чем за 10 мс. Также уменьшилось количество garbage collection, потому что часть ресурсов была передана на сторону нативного кода.

Эффект от внедрения JNI превзошел ожидания. С такими показателями клавиатура и отправилась в релиз.

Заключение

Ускорить приложение android с помощью golang - это вовсе не теория, а реальная возможность, которая уже используется в приложениях маркета.

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

С выходом Go 1.5 ожидается, что интеграция android-golang станет еще доступнее, за счет инструментария gomobile, который сокращает весь процесс до 2-х команд.

Статьи по теме: