Разработка софта на Nexus 7

от автора

В недавнем посте Планшет — не роскошь зашла речь про использование планшетов под управлением Android не только для развлечений, но и в рабочих целях. Хочу продолжить эту тему и рассказать о том, как я использую свой Nexus 7 во время долгих поездок и программирую на нём приложения под этот самый Android.

Вот список задач, которые должен решать планшет для меня во время данного времяпрепровождения:

  • редактирование исходного кода с подсветкой синтаксиса для языков Java, XML и C;
  • компиляция простейшего C кода в нативные для Android бинарики (то есть использовать Bionic вместо libc и т.д.);
  • сборка Java проекта в APK приложение;
  • git, ssh, привычные консольные GNU тулзы во всём их многообразии.

И вот что у меня получилось.

Редактирование кода

Пожалуй, это самый важный момент. Без возможности комфортно (на сколько это возможно на таблетке с 7" экраном и без железной клавиатуры) писать код, все остальные пункты не имеют никакого смысла. Пробовать различные текстовые редакторы я начал ещё во времена Android 1.6 на телефоне с 3.5" экраном. В итоге свой выбор остановил на платной версии DroidEdit, чем она отличается от бесплатной я уже и не помню. Внутри есть действительно удобный UI, подсветка кучи языков, поддержка шорткатов, миллион всяких плюшек, и даже частичная поддержка ZenCoding/Emmet для любителей HTML. Вобщем, я даже и не знаю, как можно сделать мобильный текстовый редактор лучше.

Следующее важное приложение для редактирования кода — это клавиатура. Опять же после многочисленных тестов я свой выбор остановил на Thumb Keyboard (кстати, сейчас у них скидка 50%). Плюсы данной клавиатуры: большое количество настроек, раскладки под разные устройства, наличие вспомогательных клавиш типа стрелочек, таба и прочих, плюс пользовательский ряд клавиш, куда можно добавить дополнительные клавиши и такие функции как Copy и Paste. Также есть клавиша вызова пользовательского словаря, куда лично я запихал часто используемые в Java выражения. Например, public void () {}. В итоге двумя тапами я вставляю обьявление нового метода. Вобщем, получилось весьма комфортно. Учитывая то, что DroidEdit принимает клавишу увеличения громкости за Ctrl (настраивается в приложении), то у меня теперь также работают привычные шорткаты: ctrl+s, ctrl+o и т.д.

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

Компиляция и сборка

Мне потребовалось компилировать код на C и Java. Для первого я сначала думал использовать GCC в chroot, но разбираться с тулчейном под Android было лень. В итоге поставил CCTools-free. Внутри есть какой-то примитивный редактор кода, а также уже настроенный под Android окружение компилятор. Для небольших утилит подошёл как нельзя кстати. Собирать большие проекты не советую — в виду медленной скорости работы памяти, компиляция чего-то крупного займёт много времени. Если есть необходимость такой сборки, то лучше поднять удалённый билд-сервер, заливать на него код и собирать там.

Для сборки Android-приложений использую AIDE. Бесплатная версия имеет кучу ограничений, поэтому сразу был куплен «активатор всех фишек». В комплекте идёт весьма убогий редактор кода и даже рабочее авто-дополнение кода с поддержкой git его не спасает. Поэтому использую исключительно как компилятор. Он умеет собирать практически любые Android приложения, подписывать их дебаг-ключом и запускать на устройстве. Кроме того есть экспорт приложений в режиме релиза с нормальный ключом. Вобщем, с помощью AIDE можно приложение не только написать и оттестировать, но и выложить в маркет. Ах да, понимает Eclipse-проекты. Это полезно.

Вывод: на планшете можно не только написать прототип, но и сделать полностью рабочее приложение и даже выложить в маркет.

Утилиты GNU

Лучший способ использовать утилиты GNU — это поставить полноценный дистрибутив Linux. Так как мне нужны были только консольные утилиты, то я ставил минимальную инсталляцию Ubuntu. В этом мне сильно помогло приложение Linux Deploy (автор, кстати, русский). На форуме 4pda есть тема, где можно узнать всю информацию о том, как пользоваться Linux Deploy и пообщаться с автором. Поэтому вдаваться в подробности не буду. Я ставил себе Ubuntu Quantal под архитектуру armhf, никакие сервера и GUI не ставил. Кроме того указал в настройках монтировать папку SD карты, чтобы можно было получить доступ к файлам с которыми работаю в Android.

Пару слов об архитектурах. Есть два вида: armel и armhf. Первая — это ARM без поддержки операций с плавающей точкой на железном уровне. Обычно, это старые устройства с чипами ARMv6, однако Tegra2 так же не поддерживает числа с плавающей точкой, хотя чип не такой уж и старый. Я ставил себе armhf — Tegra3 такие операции поддерживает и благодаря этому весь Linux софт работает в разы быстрее.

После установки вход в chroot выполняет консольной командой /data/local/linux/chroot и в нашей консоли высвечивается приветствие Ubuntu, а у нас сразу права root (в пределах Ubuntu, конечно же). Теперь можно доставить недостающие утилиты через apt-get и спокойно пользоваться ими в консоли.

Стоит отметить, что установка Linux в chroot требует прав root в Android.

Вывод: утилиты GNU доступны и готовы к работе.

Заключение

На данный момент я написал всего одно приложение используя планшет Nexus 7. Однако его продажи в Play Market уже окупили цену планшета. В процессе написания также использовался ноутбук дома для доводки приложения до ума. Однако первая версия была целиком и полностью написана на планшете. Единственная серьёзная проблема на данный момент заключается в том, что AIDE не умеет собирать проекты с референсными зависимостями (фишка ADT в Eclipse). Поэтому собрать приложение, использующее библиотеки типа ActionBarSherlock весьма проблематично. Решение проблемы я могу себе представить, но пока не углублялся. Если вы не используете референсы, то проблем не будет никаких.

Вывод: современные планшеты под Android полностью готовы для использования в роли рабочих инструментов для программистов и админов в условиях максимальной мобильности.

ссылка на оригинал статьи http://habrahabr.ru/post/168769/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *