Android Go и Android One: что это такое и в чём различия

09.04.2019

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

Имеется возможность загружать коллекции задач в формате sgf, например, один из таких наборов - GoGameGuru (более 400 задач), доступен через меню "другие коллекции", либо может быть вручную загружен с сайта: https://github.com/gogameguru/go-problems и добавлен в программу.

Бесплатная версия программы Hactar Lite доступна по адресу:
https://play.google.com/store/apps/details?id=net.gowrite.hactarLite&hl=ru

В бесплатной версии программы доступна также игра в Атари-Го, игра в Го на доске 9x9 (на уровне новичок), просмотр начальных ходов по выборке из базы про-игроков (требуется интернет-соединение), а также имеется возможность создавать и редактировать sgf файлы.

В целом, интерфейс программы местами неудобен и не очевиден, но как сборник задач по Го, приложение Hactar Lite очень удобно!

Tsumego Pro - отличное приложение с задачками по Го на жизнь и смерть групп, содержащее бесплатный набор из 150 задач начального и среднего уровней + ежедневно обновляющиеся 6 задач (разного уровня сложности).

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

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

Интерфейс программы очень удобен, ничего лишнего в нем нет.

На просторах интернета нашел бота Pachi, который довольно хорошо играет в Го. Этот бот доступен для Android и Windows.

Версия под Андройд на моём планшете делает очень странные и нестандартные ходы в фусеки (видимо не хватает ему процессорного времени), но при этом программа очень сильна в локальных ситуациях (такое часто встречается у ботов). На моём планшете Pachi сильно задумывается, особенно это заметно в сравнении с движком GNU Go. Играет же, примерно, в ту же силу (во всяком случае, на самом простом уровне сложности).

Внешний вид Android-версии показан на скриншоте, сделан очень хорошо с использованием интерфейса программы ElyGo (про неё пока нет обзора на этом сайте, возможно в будущем появится). Постановка камней достаточно стандартна: быстрый клик - камень ставится в место клика, для более точной постановки камня (например, при игре с телефона), используется долгое нажатие на экран, при котором появляется интерфейс с перекрестными линиями.

Программа Pachi является бесплатной.

Сегодня поговорим о мобильном клиенте крупнейшего корейского сервера по игре в Го - WBaduk. Мобильный клиент был разработан в 2011 году как под Android, так и под iPhone и, к сожалению, с тех пор никак не развивается и не обновляется.

Удобно использовать клиент WBaduk для просмотра партий профессионалов (в том числе в режиме live) и для решения задач по Го. Задач в приложении много, более 3 тысяч, разделенные на группы по уровню сложности. В описании задач используются корейские (а не японские) термины го, что несколько осложняет понимание для тех, кто привык к японской терминологии.

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

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


Если вы ищете универсальную программу под Android, которая подошла бы для игры в Го вдвоем, игры с ботом, записи партий, игры "по переписке", тренировки запоминания партий, а также для изучения дзёсек, вам отлично подойдет набор программ из серии BW-Go.

Он включает в себя основную программу BW-Go или BW-Go Free и два дополнительных приложения: BW-GnuGo - для игры с ботом GnuGo (кстати, в этой программе бота можно запустить играть с любого места в партии) и BW-DGS - для игры "по переписке" на сайте Dragon Go Server . Дополнительные приложения не будут работать без основной программы.

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

В программе встроена энциклопедия дзёсек Kogo"s Joseki Dictonary.

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

Скачать можно c Google Play:

Agora Go - приложение для игры в Го вдвоем на одном устройстве. Также можно сохранять, экспортировать в.sgf и просматривать сыгранные партии. Мы протестировали как платную, так и бесплатную версию приложения. Отличия между версиями пока незначительны - в бесплатной версии вообще нет никаких настроек, в платной некоторые настройки есть, но их недостаточно.

Сразу стоит сказать про то, что на устройствах с маленьким экраном (телефонах, плеерах) сыграть полноценную партию 19x19 будет чрезвычайно трудно, из-за мелкого размера камней и отсутствия zoom-эффекта при их постановке. Варианты с полем 9x9 и 13x13 вполне приемлемы.
Постановка камней в бесплатной версии осуществляется двойным нажатием, в платной регулируется (одинарное или двойное). В целом процесс постановки камней менее удобен, чем, например, в , хотя на планшете это не так заметно, как на телефоне.

Для игры в Го в приложении Agora Go предлагается выбрать цвет и имена игроков, выбрать размер игрового поля (только стандартные размеры 9x9, 13x13 и 19x19) и величину форы до 9 камней. Автоматического розыгрыша цвета в программе нет. Величину коми выбрать ни в платной, ни в бесплатной версии также нельзя. В обычных партиях она всегда 7.5 очков (в форовых партиях 0.5).

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

Скачать приложения можно на Google Play:

Отлично сделанный официальный бесплатный IGS-клиент для игры в Го под Android и iOS. Для установки требуется регистрация на IGS (которую можно произвести по ссылке из приложения).

При входе в приложение можно видеть список всех пользователей, отсортированных по силе игры. Список можно фильтровать таким образом, чтобы было видно только свободных игроков. Самому можно выбрать одно из трех состояний - отклонять вызовы на партии, принимать вызовы и ожидать вызова (в таком случае напротив имени появляется специальная отметка). В списке можно выбирать пользователей и предлагать им игры. Настройка партий и времени довольно гибкая. Доску можно выбрать любого формата от 5x5 до 19x19 с нечетным количеством пересечений, даже весьма нестандартные, такие как 7x7 или 15x15. Время можно выбрать как абсолютное, так и японское или канадское беёми, а также выставить фору до 9 камней.

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

По каждому игроку ведется статистика о количестве выигранных и проигранных партий. Также можно просматривать играемые в настоящий момент партии.

В приложении также существует архив партий, в который можно сохранить сыгранные партии, либо записать произвольную партию (или даже сыграть вдвоем), с возможностью отправить её по e-mail в формате SGF.

Недостаток приложения в том, что нет российской локализации.

Официальный сайт приложения:
http://www.gentgo.be/tetsuki/

Скачать Panda-Tetsuki для Android в Google Play:
Go Free . При длительном нажатии на экран, включается увеличение доски. Отменить можно только последний ход.

Скачать бесплатно в Google Play:
https://play.google.com/store/apps/details?id=de.agrothe.go

Красивое приложение для Android, очень хорошо прорисована доска и камни. Несмотря на издержки сенсорного экрана, ходы в этой программе делать удобно, предусмотрен специальный механизм для этого. В программе представлены все размеры досок от 9x9 до 19x19. Игра на доске 19x19 в бесплатной версии ограничена первыми 60 ходами, поэтому особого смысла не имеет. На маленьких досках ограничений нет. Во время игры можно откатить партию назад на произвольное количество ходов и, при желании, сделать ход в другом месте.

В программе предусмотрено 10 уровней сложности, самый сильный из которых играет на уровне около 8-10 кю. Периодически программа делает непонятные слабые ходы, которые не дают ей преимущества, из-за этого её шансы проиграть увеличиваются. Помимо установки уровня сложности, можно взять фору до 9 камней (даже на доске 9x9). Возможна игра вдвоем на одном устройстве.

Приложение Go Free содержит небольшой учебник по основам игры Го, а также ведёт статистику по сыгранным партиям (процент выигрышных партий).

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

Скриншоты Pokemon GO →

Следует отметить, что на территории РФ такие места, по словам игроков, очень часто находятся возле отделений Сбербанка России. Как только покемон окажется поблизости от мобильного телефона, оно начнет вибрировать. Чтобы поймать обнаруженного персонажа, нужно воспользоваться покеболом, запускаемым при помощи классического свайп жеста. Скачать игру Pokemon GO бесплатно для Андроид вы сможете на этой странице.

Возможности игры Pokemon GO

  • Широкие возможности поиска покемонов и отдельных предметов. При этом определенные герои появляются неподалеку от тех или иных природных зон. Так, например, водяные представители обитают возле озер и океанов, а лесные – в парках и лесополосе. Кроме того, не стоит обходить вниманием музеи, художественные экспозиции, монументы и исторические достопримечательности, поскольку здесь нередко располагаются покестопы.
  • Участие в процессах поимки, появления на свет и развития персонажей. С каждым новым уровнем игроку становятся доступными все более мощные герои.
  • Тренировка своих покемонов в спортивных залах при условии достижения 5-го уровня. Победивший зверек сможет возглавить гим и окрасить его в цвет собственной команды.

Важнейшее преимущество игры Pokemon GO состоит в том, что игра заставляет пользователей меньше сидеть дома и больше гулять на свежем воздухе. Если ходить по ночному городу, то существенно увеличиваются шансы повстречать любопытного персонажа-призрака. Для того чтобы скачать Pokemon GO на Андроид бесплатно , перейдите прямой по ссылке ниже у нас на сайте.

Интересно и то, что покемоны будут попадаться в самых неожиданных местах. Некоторые из них начнут приветливо улыбаться в ответ, тогда как другие обозначат свое присутствие иным образом. Уже сегодня говорят более чем о 150 видах карманных монстров, однако их численность постоянно увеличивается. Среднестатистический пользователь в среднем тратит на игру Pokemon GO не менее 45 минут за сутки, тем более что поиски следует начинать уже возле своего дома.

В прошлом компания 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 Go, что делает устройства на этой версии ОС подобием звонилок.

Counter Strike GO - одна из самых популярных многопользовательских стрелялок, о которой, наверное, слышали все. Разработчиками этой игры является компания Global Offensive, и эти ребята смогли создать игру, которая ни чем не хуже оригинала, и даже лучше его, а все благодаря нововведенной статистике боя и наград и адаптации графической составляющей. Теперь гораздо проще разобраться в кое-каких игровых моментах. К тому же, теперь все команды сортируются на сервере и к Вам в поединок попадут игроки, которые приблизительно такого же уровня, что и Вы.

В целом, разработчики доработали некоторые текстуры, провели косметический ремонт и сделали игру более современной и приятной для игры. Теперь механика более правдива и реалистична, это очень заметно при взрывах. Появились новый награды, к примеру, можно получить награду за нестандартное убийство врага. Такое нововведение помогает зарабатывать новую игровую валюту. С управлением никаких правок не произошло, да и что здесь менять? Сюжет остался таким же, он разворачивается вокруг отряда спецназовцев и группы террористов. В Counter Strike GO реализована возможность игры, как в многопользовательском, так и одиночном режиме. Разработчики предлагают большое количество интересных карт, но если этих карт Вам мало, то можно сгенерировать собственную и играть на своей.

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

Установка:

  • Скачать Xash3D;
  • Скачать CS16Client;
  • Скачать КЭШ и распаковать его во внутреннюю память телефона;
  • Запустить CS16Client на рабочем столе;
  • Ищите в списке папку с кэшем;
  • После этого нажмите на кнопку выбрать текущий каталог, игра должна запуститься!

Разработка мобильных приложений - это всегда компромисс между тем, что хочется сделать и тем, что позволяет сделать платформа устройства. В этой статье рассказывается о том, как увеличить возможности приложения 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 в библиотеку 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-х команд.

Похожие статьи