[Android] Swype: сделай сам – небольшой взгляд изнутри

3663 / 3

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

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

Подробнее обо всех проблемах и недостатках новой версии приложения писал мой коллега Alex Shvarz в своей недавней статье [Зачем убивают Swype?].

Сама процедура установки новой версии Swype beta достаточно забавная – необходимо зарегистрироваться на официальном сайте, скачать программу installer, установить сначала ее, затем запустить, ввести email и пароль для подключения, и только после этого скачается и установится сама клавиатура. Т.е. нужно установить одну программу для установки другой. Масло масляное. Тем не менее, основным преимуществом новой версии Swype beta является тот момент, что она универсальна – подстраивается под любые разрешения, поэтому доступна для любого устройства – смартфона или планшета, в отличие от старых версий, которые рассчитаны под определенное разрешение.

Но вернемся к недостаткам Swype beta. Попользовавшись несколько дней новой версией Swype, непреодолимо хочется ее сменить. Ведь главное преимущество клавиатуры – быстрый ввод – здесь почти отсутствует. Вернее, ввод-то остался таким же быстрым, но время, которое вы тратите на переключение языков и корректировку введенного текста, нивелирует все преимущества. Именно поэтому многие пользуются старыми версиями Swype, где вышеописанных недостатков нет – языки переключаются одним кликом по специально выделенной для этого кнопке, при нажатии на клавишу backspase удаляется только последняя буква, а не все слово. Но и тут есть несколько моментов, которые препятствуют нормальной эксплуатации. Одним из факторов, усугубляющих ситуацию, является, как ни странно, многообразие версий старой клавиатуры. Да, ведь есть официальные варианты клавиатуры и версии от ОЕМ, которые лицензировали в свое время клавиатуру для применения на своих устройствах. В старых версиях клавиатуры есть ряд багов и недоработок, которые проявляются частично или в полном составе в зависимости от версии. Причем обычно, если работает одно, то не работает другое. Основные проблемы, которые могут встречаться все сразу или в различных комбинациях:

  • Прыгающая строка подсказок (она появляется, когда ставишь курсор, и исчезает после того, как заканчиваешь ввод), из-за которой прыгает поле ввода – особенно бесит в мессенджерах.
  • Глюк, возникающий при автоподстановке в некоторых твиттер-клиентах, например Plume – вы вводите первые несколько букв, потом выбираете имя пользователя или тег из предложенных (обычно на английском языке), и когда после этого переключаете язык ввода на русский, то клавиатура добавляет к имени пользователя еще те несколько символов, которые вы до этого успели набрать, чтобы сработала подсказка.
  • Отсутствие нормального голосового ввода на языках отличных от английского в версиях клавиатуры, когда Google Voice был заменен собственным движком Dragon.

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

  

Короче, некоторое время я промаялся на версии Swype, выдернутой мной из стоковой самсунговской прошивки для Galaxy Note, и тут присутствует и глюк автоподстановки и прыгающая строка – но это лучше, чем переключение языков длинным тапом (проверено, долго выдержать такое издевательство невозможно), зато работает русский голосовой ввод. Вот такие компромиссы. В один прекрасный момент я решил – хватит это терпеть! И взялся за данный вопрос серьезно. Я перерыл всю любимую помойку 4pda в поисках сборки для Note, но так и не смог найти ничего подходящего – то сборка с теми же багами, то без голосового ввода, то скин ядовитый, выжигающий глаза.  Тут стоит отметить, что 4pda, конечно, интересный и полезный ресурс, и там есть ВСЁ. Но найти что-либо крайне сложно. Поиск вообще дурацкий. Не в обиду, помойка она и есть помойка. Но там же я наткнулся на несколько инструкций, как можно адаптировать любую версию клавиатуры под нужное  разрешение. И это работает! Все достаточно просто. Я быстренько состряпал для себя нормальную сборку клавиатуры и спешу поделиться данным опытом с другими пользователями.

Решение проблемы – настраиваем Swype под себя

Итак, что необходимо сделать.

1. Скачиваем файл swype.apk на ПК.

В данном случае я использую версию для Galaxy Nexus, любезно предоставленную мне Саней Шварцем. Вот ссылка на исходный файл. Данная сборка не содержит всех описанных мной недостатков и имеет приятный серо-голубой скин. Однако, к сожалению, тут только английский и русский языки. Поэтому, если кто-то имеет подобный исходный файл с другими языками (например мне нужен украинский, кто-то в твиттере просит французский или итальянский), то я буду весьма рад вашей ссылке на такой файл в комментариях. Как вы понимаете, подойдет версия под любое разрешение, главное, чтобы там было много языков и отсутствовали описанные мной баги.

2. Открываем файл в любом архиваторе.

Да, на самом деле, apk это просто подписанный zip-архив. Лично я использую для этой цели программу 7-zip, которая позволяет работать с архивом, не распаковывая его, но вы можете использовать WinRAR или WinZip, или какой-либо другой архиватор для Windows, неважно.

3. Переходим в папку:

В проводнике архиватора выбираем папку с адресом assets\files и находим там файл display0_SwypeScreen.ini

Если у вас в этой папке имеются файлы ini с другими числами после слова display, например display1_SwypeScreen (обычно от 1 до 8) – просто удаляем их.

4. Открываем файл в текстовом редакторе.

Вы увидите следующее:

5. Исправляем текущие значения.

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

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

  • QVGA (240х320)
  • WQVGA (240×400)
  • HVGA (320х480)
  • WVGA (480×800)
  • WVGA854 (480х854)
  • qHD (540×960)
  • SVGA (600×800)
  • WSVGA (600×1024)
  • HD720 (720×1280)

После редактирования просто сохраняем файл со всеми изменениями.

5. Подписываем полученный apk-файл.

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

Для этого можно использовать утилиту Signare, которую я скачал с XDA-developers – ссылка на тему.

Работа с утилитой очень проста.

Распаковываем архив в любое место на вашем ПК и видим следующее:

Кладем наш измененный файл в папку Input и запускаем утилиту.

Далее, мы видим меню, где можем сделать выбор действия:

Вводим 1 и нажимаем Enter. Процесс пошел…

По его окончании вы получите готовый подписанный файл. Он будет находиться в папке Output – копируете apk на свое устройство, устанавливаете его обычным образом и наслаждаетесь клавиатурой Swype без багов.

Ниже публикую ссылки на полученные мной таким образом сборки для Galaxy Note:

C высотой 450 пикселей в портретном режиме – swype_SV_Note

С высотой 400 пикселей в портретном режиме – swype_SV_Note_h400

Вариант для планшетов с высотой, увеличенной до 450 пикселей – swype_SV_Note_tab_h450

  

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

Как удалить встроенный Swype с вашего устройства

В случае, если вы имеете предустановленную версию Swype на своем устройстве, вам не удастся установить другую версию из файла apk. Сначала необходимо удалить исходную клавиатуру из прошивки. Для этого, вам обязательно нужно иметь root-права на своем устройстве.

При помощи любого файлового менеджера с доступом к системным разделам (я использую Root Explorer), удаляем несколько файлов:

Основной файл apk находится по адресу: system/app/swype.apk

Кроме того, необходимо удалить несколько файлов из папки system/lib – это libSwypeCore.so и возможно libnmsp_speex.so (второго файла может и не быть – это зависит от конкретной версии Swype). После этого перезагрузите смартфон или планшет. Теперь вы можете спокойно устанавливать и в дальнейшем обновлять Swype с заменой исходной сборки и без потери настроек и словаря.

На этом все. Задавайте вопросы и делитесь ссылками на готовые сборки Swype для конкретных устройств и различных разрешений экранов в комментариях. До новых встреч!


РЕКОМЕНДУЕМ! СВЕЖЕЕ ВИДЕО НА НАШЕМ YOUTUBE-КАНАЛЕ:

  • Очень полезная статья! Спасибо!
    Ушел экспериментировать :)

  • VVUrlov

    Да заради такого я готов на Андроид метнуться! Где тут у вас Ноты вторые раздают?)))

  • Супер, только я не понял до конца момент с исходным .apk. С украинской раскладкой и всеми вышеописанными плюшками есть? Я так понял, что в приложенном файле только русский и английский.

    • Что есть то есть. Сам бы хотел найти исходник без багов и с украинским. Но пока только русский и английский. Если найдешь другой, дай знать. Т.е. катит для любого аппарата, как ты понимаешь. Разрешение поправим.

  • LastDanmer

    Что за twitter клиент?

  • maxnatiy

    а я, промудохавшись недельку, поставил SlideIT – и понял, что его-то мне и не хватало. Там все прекрасно и без издевательств над пользователем. Цена вопроса без распродажи – 4 бакса, если мне не изменят память. Периодически распродают за бакс. Темы для него оч красивые и много.

    • а покажите плиз скриншот этой клавиатуры. Спасибо!

      • Там плохой украинский словарь, проблем тоже хватает, клавиатура давно не обновлялась.

        • спасибо за разъяснения. все-таки альтернативы swype пока не видно… жаль :(

        • Оказывается, клавиатура (SlideIt) существенно обновилась недавно, в конце сентября. Многое взяли у свайпа :) есть свои интересные “фичи” – рекомендую хотя бы поюзать демку.

  • EDWARD

    Спасибо за подробную инструкцию! С ее помощью сваял себе на Ноут-2 привычную клаву.

  • Хочу хардовую клаву.. а из вменяемых вариантов – только Дройд4, с английскими буквами ((

  • Дмитрий

    Мега-статья! На мои 480х735 нормальный свайп не встал. По этой статье всё получилось! Спасибо!

  • Очень благодарю за статью. До этого юзал данную клаву только на WM, омг, как же она была ужасна…

  • Ivan

    Большое спасибо! Для моего ноута перерыл и перепробовал половину сборок с 4pda, плюнул, вбил в гугле и нашёл Вашу статью. ИМХО её надо на том самом 4pda добавить в шапку, если там ещё нет..

    • Статья старая, уже можно использовать официальный swype, который скачивается с сайта swype.com после регистрации. Подходит под любые разрешения. Там многое исправили, в т.ч. можно переключаться между последними 2-мя языками свайпом от служебной кнопки к пробелу. также есть синхронизация словарей между устройствами.