Музыкальный тачпад

ASUS Transformer и Microsoft Surface — великолепные девайсы, сочетающие в себе планшет и полноценный ноутбук. В дороге такая вещь не занимает много места и отлично подходит и для работы, и для отдыха. Достал из сумки тоненькую клавиатуру, и у тебя в руках ноутбук, убрал обратно — планшет. Удобно. Но можно ли сделать нечто подобное из обычного Android-планшета? Легко!

Зачем?

Даже самые дешевые современные планшеты имеют чрезвычайно мощную начинку, производительности которой вполне хватает, чтобы посоревноваться с нетбуками. Однако у планшета совершенно другое назначение, которое ставит перед нами очевидную проблему: что взять с собой в дорогу? Удобный для чтения книг, веб-серфинга и игр планшет либо нетбук — прекрасный инструмент для общения и работы? И то и другое таскать с собой — занятие не самое веселое, но ведь мы можем пойти и по иному пути.

Коннектим планшет со смартфоном Другие статьи в выпуске:

Хакер #171. 3D-принтеры

  • Подписка на «Хакер»

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

Второе — это ОС. Казалось бы, Android совсем не предназначен для работы и без полноценного нетбука/ноутбука не обойтись. Но и здесь все в порядке, браузеры легко обслуживают по несколько вкладок, имеется множество клавиатурных комбинаций, полноценный набор UNIX-утилит, куча софта для администрирования, компиляторы, утилиты, веб-серверы и все, о чем ты только можешь подумать, кроме совсем уж профессионального софта типа Photoshop или ProTools. Но я сомневаюсь, что кто-то будет заниматься графическим артом или сведением композиции, сидя на пассажирском сидении автомобиля, движущегося по «великолепным» русским дорогам.

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

Базовый минимум

Итак, у нас есть планшет под управлением Android 4, клавиатура, мышь (опционально) и желание превратить все это в рабочую лошадку.

Сразу оговорюсь, что USB-клаву и мышь можно воткнуть только в планшет с поддержкой режима USB host (OTG), так что если этой опции в планшете нет, придется использовать более дорогие Bluetooth-аксессуары, а если нет и поддержки Bluetooth, то ничего не поделаешь — такой планшет не годится.

Если режим USB-хост поддерживается, клавиатуру или мышь следует подключать с помощью OTG-кабеля, который обычно идет в комплекте с планшетом и представляет собой кабель типа miniUSB-папа с одной стороны и полноценный USB мама — с другой (если в планшете полноразмерные USB-порты, можно выткать прямо в них). Если же в комплекте его не оказалось, OTG-кабель можно купить в любом магазине мобильной техники или заказать в Китае за один доллар (он ничем не хуже). Хочу предупредить, что обычно не все порты поддерживают режим хоста, поэтому втыкать надо в правильный (обычно он подписан Host или OTG).

Когда все будет на руках, цепляем к планшету мышь и клавиатуру — и вуаля, все работает. Можно было бы сказать, что этого будет достаточно, но Android может предложить гораздо более продвинутые возможности управления с помощью клавиатуры. Одна из основных — это довольно развитая и удобная система клавиатурных комбинаций, которая существует еще с первых версий ОС. Так, для навигации по рабочему столу и различным меню можно использовать «стрелки», и , клавиша заменяет кнопку «Назад», а <Win + Esc> — кнопку «Домой». Кроме них, есть еще целый набор других управляющих комбинаций, в том числе шорткаты для запуска приложений:

Клавиатурные комбинации Android

<Esc> — аналог кнопки «Назад» <Win + Esc> — аналог кнопки «Домой» <Ctrl + Esc> — аналог кнопки «Меню» <Alt + Tab> — переключение между приложениями <Ctrl + Space> — переключение раскладки <Ctrl + P> — открыть настройки <Ctrl + M> — управление установленными приложениями <Ctrl + W> — смена обоев <Win + E> — написать письмо <Win + P> — проигрыватель музыки <Win + A> — калькулятор <Win + S> — написать SMS <Win + L> — календарь <Win + C> — контакты <Win + B> — браузер <Win + M> — карты Google <Win + Space> — поиск <Ctrl + Alt + Del> — перезагрузка 🙂

Особое место среди них занимает комбинация <Win + Space>, которая открывает окно поиска, которое в Android аналогично окну поиска OS X или Ubuntu, то есть позволяет искать не только в интернете, но и среди установленных приложений, контактов и закладок браузера. Очень удобный инструмент управления с клавиатуры.

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

Комбинации браузера

<Ctrl + N/T> — новая вкладка <Ctrl + I/O> — увеличить/уменьшить масштаб <Ctrl + J> — менеджер закачек <Ctrl + R> — перезагрузить страницу <Ctrl + F> — поиск <Ctrl + B> — закладки <Ctrl + H> — история <Ctrl + D> — добавить в закладки <Ctrl + S> — поделиться <Ctrl + G> — информация о странице <Ctrl + P> — окно настроек <Ctrl + W> — закрыть вкладку <Ctrl + L> — фокус на адресную строку <Space/Shift + Space> — перемотка на экран вниз/вверх <Ctrl + С/V> — копирование/вставка <Ctrl + Tab> — переключение между вкладками

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

AIDE позволяет создавать полноценные Java-приложения для Android в самом Android

Раз уж мы заговорили о браузере, то нужно позаботиться и о подключении к интернету. Далеко не все планшеты оснащены модулем 3G, поэтому интернет тебе, скорее всего, придется забирать другими способами. Два стандартных решения — это 3G-модем или интернет с телефона. Первый вариант более предпочтителен, однако на планшетах с одним хост-портом (как у меня) он не позволит воткнуть еще и клавиатуру. Вариант с раздачей интернета с телефона по Wi-Fi очень удобен, но выжирает батарею смарта с невероятной скоростью, поэтому гораздо лучше для этой цели использовать более экономичный Bluetooth.

Ситуация с синим зубом в Android довольно странная, и его поддержка сильно разнится от версии к версии. Тем не менее раздача интернета по Bluetooth (профиль PAN) поддерживается уже давно, и, скорее всего, она уже есть в смартфоне (искать следует где-то в районе «Беспроводные сети -> Дополнительно -> Режим модема»). Чтобы подключиться к такому «транслятору», Google рекомендует выбрать нужное Bluetooth-устройство в списке в разделе «Профили» и отметить пункт «Использовать для доступа в интернет». Но на практике такого пункта зачастую просто не существует, поэтому для подключения придется использовать независимую реализацию профиля PAN, например «Bluetooth PAN» из маркета. Она требует root, но зато пользоваться ей проще простого: запустил, нажал на огромную круглую кнопку посередине экрана.

Чтобы в дороге иметь доступ ко всем необходимым данным, можно заранее скинуть их на флешку или использовать облачные диски вроде Dropbox или Google Drive. Оба подхода неудобны, так как не позволяют выполнять синхронизацию автоматически. Зато приложение Dropsync это умеет и делает очень хорошо. Фактически Dropsync выполняет ту же задачу, что и настольная версия Dropbox: позволяет хранить файлы на флешке, периодически синхронизируя их с облачным хранилищем. Что немаловажно, каталоги для синхронизации можно выбирать индивидуально, отправляя и получая из облака только то, что реально нужно на планшете, например книги, музыку, исходные тексты.

Пользоваться Dropsync довольно просто, надо лишь выбрать каталог для синхронизации, каталог в Dropbox и выбрать метод синхронизации: в одну сторону или в обе. После этого софтина повиснет в фоне и будет периодически выполнять синхронизацию. Сразу рекомендую купить Pro-версию, в ней реализована поддержка Linux-технологии inotify для моментальной синхронизации сразу после изменения файлов, а также убрано ограничение на размер файла в 5 Мб и на один синхронизируемый каталог.

Виртуальная клавиатура для Android-планшетов

Эффективно работать в эмуляторе терминала можно и без хардварной клавиатуры. Для этого нужно просто установить клавиатуру Hacker’s keyboard, на которой есть клавиши <Ctrl>, <Alt> , стрелки навигации, отдельная строка с цифрами, а также отдельная панель с клавишами <F1–F12>.

Продвинутый вариант

Поговорим о более продвинутом использовании планшета. Для гика, а тем более человека, выполняющего администрирование удаленных серверов, стандартной функциональности и обычных приложений будет, конечно же, недостаточно для ощущения себя полноценным. Поэтому нам необходимо обзавестись джентльменским набором линуксоида, а именно эмулятором терминала, набором утилит командной строки, а также разными SSH-клиентами и rsync’ами. Всего этого для Android полно, спасибо ядру Linux.

Перво-наперво получим на планшете root. Как это сделать, мы уже рассказывали, тем более что для каждого устройства своя методика, включающая в себя много нюансов. Поэтому Google в помощь. Далее ставим Android Terminal Emulator из маркета, это стандартный VT102-эмулятор с поддержкой всего, что нужно. Он поддерживает все управляющие последовательности, а значит, все комбинации клавиш, которые ты будешь набирать на клавиатуре.

Эмулятор терминала и Hacker’s keyboard

Стандартная инсталляция Android включает в себя ограниченный набор утилит командной строки (в котором нет даже команды сp), но его легко расширить до полного, просто установив BusyBox с помощью одного из многих инсталляторов, доступных в маркете. После этого можно обзавестись и нормальным bash вместо убогого sh, идущего в комплекте. Для этого устанавливаем GNU bash 4.2 Installer, запускаем и нажимаем кнопку «Install». Чтобы эмулятор терминала знал, что мы хотим при запуске сразу попасть в bash, идем в настройки терминала и в опции «Командная оболочка» указываем путь «/system/xbin/bash -«.

Устанавливаем BusyBox

Отныне у нас есть полноценная командная строка, но нет SSH-клиента и хорошего текстового редактора. Решить эту проблему можно, установив старый добрый ConnectBot и Vim Touch. Как независимые инструменты они выполняют свою работу великолепно, но использовать их продуктивно при наличии клавиатуры и при необходимости править различные файлы прямо из терминала не получится. Поэтому мы установим нативные версии этих программ. Консольный Vim для Android можно получить по этой . Его следует распаковать, перекинуть на карту памяти планшета, а затем положить в каталог /system/xbin. Вот как это сделать прямо в Android:

Старый добрый Vim в новой графической упаковке

Установка консольного vim

$ su # cp /sdcard/путь-до-бинарника /system/xbin # chmod +x /system/bin/vim

SSH-клиент, в свою очередь, есть в приложении SSHDroid. Все, что нужно сделать, — это установить SSHDroid и скопировать SSH-клиент в каталог /system/xbin:

Установка ssh

$ su # cp /data/data/berserker.android.apps.sshdroid/dropbear/ssh /system/xbin # chmod +x /system/xbin/ssh

Можно пойти еще дальше и установить целый Linux-дистрибутив, в котором будет все, что ты хочешь. Особенно удобно для этого использовать Arch Linux Installer, который устанавливает в образ минимальный Arch Linux без всяких ненужных иксов и прочего хлама. А благодаря арчевой философии rolling-релизов ты всегда будешь иметь наисвежайший софт, без необходимости устанавливать новую версию дистрибутива. Сам инсталлятор невероятно прост, поэтому не буду описывать его использование.

Понятно, что во время удаленной работы нам, скорее всего, придется выходить в Сеть через VPN, поскольку открытые Wi-Fi в разных кафетериях и гостиницах доверия не вызывают просто по определению. В новом Android теперь есть поддержка VPN прямо из коробки, поэтому никаких проблем настройка проксирования не вызовет. Просто идем в настройки «Беспроводные сети -> Еще…», жмем VPN, Android предлагает задать PIN или пароль, это придется сделать, так как иначе дальше нас не пустят. Далее жмем «Добавить профиль VPN» и указываем тип VPN (стандартный PPTP, L2TP/IPSec, IPSec Xauth или IPSec Hybrid), вбиваем имя профиля, адрес сервера и ключи, если необходимо (для PPTP, естественно, не нужно). Сохраняем, тапаем на имя профиля, вбиваем логин и пароль, и весь трафик начинает идти через туннель.

Настраиваем VPN

Если ты собираешься заняться в пути кодингом, то в Google Play для этого есть масса инструментов. Для создания небольших подсобных утилит и скриптов можно использовать среду SL4A (code.google.com/p/android-scripting), которая позволяет выполнять скрипты, написанные на sh, Python, Ruby, Perl, Lua и других языках. Среда оснащена редактором и простым API, позволяющим получить доступ к основным функциям планшета.

Для более серьезных разработок можно использовать среду QPython, которая, кроме API SL4A, предлагает доступ к нативному Android API, а также кросс-платформенной библиотеке графических виджетов Kivy. Созданные с помощью QPython приложения почти не будут визуально отличаться от нативных. Среда Ruboto IRB вообще предлагает полный доступ к Android Java API, но для языка Ruby.

Особо хотелось бы отметить среду AIDE, позволяющую создавать полноценные Java-приложения для Android в самом Android. Среда очень развитая, с полным набором всех необходимых функций, включая подсветку синтаксиса, автодополнение, онлайн-подсказки, компилирование и запуск одним нажатием. AIDE полностью совместима с проектами Android SDK, поэтому ее действительно можно использовать для серьезной разработки. Особо хардкорные товарищи могут установить GNU GCC C/C++ Compiler, тот самый GCC и набор binutils, которые позволяют собирать софт в консоли.

HDMI

Таская с собой планшет, да еще и имея подключаемую к нему клавиатуру и мышь, ты наверняка захочешь подцепить его к HDMI-порту телевизора или AV-ресивера. В принципе, здесь все просто и до скучного удобно: воткнул кабель и получил картинку на большом экране. Но есть несколько интересных моментов, о которых я хотел бы рассказать.

Планшет, HDMI и телевизор

Гашение экрана. Одна из наиболее удручающих особенностей реализации поддержки HDMI в Android — это необходимость держать экран включенным. Как только ты нажимаешь кнопку выключения планшета, HDMI обесточивается и «большая картинка» исчезает. Отключить такое поведение средствами самого Android не получится, но можно воспользоваться великолепной программой Screen Standby, которая принудительно отключает заднюю подсветку экрана, так что можно спокойно смотреть видео, играть в игры или серфить инет, не отвлекаясь на копию изображения на планшете.

Screen Standby имеет множество весьма полезных настроек, например отключает подсветку самостоятельно при втыкании HDMI-кабеля. Для этого достаточно включить опцию «Auto HDMI/MHL Detection» в разделе «HDMI Detection» (там же есть и настройки отключения при запуске приложения или помещения в док). Еще одна очень интересная функция — это перевод планшета в режим тачпада, когда на экране монитора появляется курсор, а экран планшета превращается в большой тачпад. Включается в меню «Settings -> Touchpad setting -> Use touchpad function», но у меня эта функция не заработала, что предсказуемо, учитывая ограниченную поддержку моделей.

Джойстик и пульт управления. Планшетом, подключенным к монитору или телевизору, можно управлять не только с помощью клавиатуры и мыши, но и используя смартфон на том же андроиде. Не обязательно для этого заходить на планшет по SSH или другими средствами. Можно воспользоваться виртуальным джойстиком BT Controller из маркета. Эта программа позволяет превратить смартфон в виртуальный синезубый джойстик, пульт управления или даже клавиатуру — тут уже кому что необходимо.

BT Controller следует устанавливать на оба девайса, которые уже связаны между собой по Bluetooth. Далее на одном из устройств нажимаем кнопку «Connect», после чего на экране появится сообщение с просьбой выбрать функцию устройства: Controller или Host. Нажимаем на планшете Host, после чего в правом верхнем углу появляется информационная табличка, символизирующая удачное подключение и работоспособность компонентов. Тап по строке «KB Enabled» на табличке перебросит нас в меню настроек способов ввода, в котором следует выбрать BTController, а тап по «KB Active» позволит переключиться на BT Controller вместо стандартной клавиатуры.

Когда все эти операции будут выполнены, можно использовать появившийся на экране джойстик. В бесплатной версии приложения только один вариант интерфейса — это джойстик SNES, с помощью которого довольно удобно играть в игры, но для других целей он не годится. Платная версия BT Controller позволяет выбрать между более чем тридцатью различными джойстиками, пультами и клавиатурами и, что еще более важно, создать новый пульт самому с помощью специального редактора.

Чехол со встроенной клавиатурой оказался велик…

Выводы

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