Приложение-эмулятор мыши для Android-устройств
Краткое описание проекта
Исследование возможности реализации следующего функционала на платформе Android: Поверх всех приложений отображается картинка “мыши”, которую можно перемещать по экрану. Мышь содержит большую кнопку, по нажатию на которую выполняется нажатие в соответствующую позицию экрана. Такая мышь может быть полезна, к примеру, девушкам с длинным маникюром, которым из-за этого не удобно пользоваться сенсорным экраном, либо людям с толстыми пальцами, которые не могут нажать на маленькие иконки интерфейса Android.
Технологии
Java, Android, Android NDK, JNI, Eclipse, Linux
Особенности проекта
- Системное программирование под Android
- 100% Research & Development
- Короткие итерации, постоянное проведение brainstorming
В рамках исследования были сделаны следующие задачи:
- Создание прозрачного приложения, при нажатии на определённую точку отправляется событие нажатия на указанные координаты. Для этого пришлось использовать специальные классы Android, которых нет в API: ServiceManager и IWindowManager. Были созданы классы-заглушки с пустыми методами, код компилировался с ними. При сборке приложения данные классы не включались, поэтому после установки на android-устройство приложение использовало системные классы.
- Был найден способ по отправке сообщений в ядро Linux на Android. Для этого была использована технология JNI и библиотека на языке C. Был сделан пример приложения, взаимодействующего с ядром Linux и отправляющим touch-события на определённые координаты. Был найден способ получения списка всех устройств ввода c помощью linux-команды. Был найден способ перехватывания значений, полученных с сенсора.
- Была исследована возможность программного получения root-доступа к устройству для запуска перечисленных выше возможностей. Проблема состоит в том, что получить root доступ нужно по разному для разных девайсах, и для этого используются специальные хаки. Некоторые девайсы вообще не могут быть рутированы.
Результаты исследования:
- Была выявлена проблема: для реализации требований заказчика, приложение должно быть подписано сертификатом производителя телефонов. Это накладывает ограничение на выкладывание приложения в маркет.
- Также для отправки тач-событий необходим рутированный доступ к устройству. Это не позволит выкладывать приложение в маркетах и существенно ограничит множество устройств, на которых приложение может быть запущено.
- Также для использования нужных нам событий необходимо, чтобы приложение было установлено, как системное.
Достижения компании на проекте:
- Было проведено исследование о возможности создания приложения — мыши для android-устройств.
- Команда разобралась с системными нюансами платформы Android.
- Заказчику был сделан обоснованный отчёт о проблемах и трудностях подобной разработки.
Отзывы клиентов
Борис Мамоненко, CEO, EleganceIt, Информационные технологии и услуги, Беларусь
Дмитрий открытый человек, он полон идей, с ним очень легко работать. Его команда (Jazzteam) выполняла технически довольно сложный исследовательский проект. Дима проявил себя не только как опытный Java разработчик, но и как невероятно талантливый руководитель. Он никогда не скажет вам “НЕТ”, его ответ будет: — «Дайте мне время и я скажу вам, как это сделать”. Большое ему спасибо!
Свяжитесь с нами, чтобы обсудить Ваш IT-проект