Новости

Забезпечуємо злагоджену роботу декількох Android-девайсів

  1. Зміст статті Сьогодні мобільний гаджет - це вже не розкіш і не іграшка гику, призначення якої відомо...
  2. дані додатків
  3. файли
  4. Монтування SMB-куля
  5. UPnP / DLNA
  6. Chromecast
  7. Пульт / джойстик
  8. INFO
  9. Висновки

Зміст статті

Сьогодні мобільний гаджет - це вже не розкіш і не іграшка гику, призначення якої відомо тільки йому самому, а така ж звичайна річ, як телевізор або мікрохвильова піч. Більшість з нас володіють не тільки смартфоном, але і планшетом, ноутбуком, портативної ігрової приставкою, а у багатьох є розумні HDMI-стики під управлінням Android. Проблема всього цього різноманіття тільки в тому, що в мобільних ОС немає коштів для синхронізації і віддаленого взаємодії безлічі пристроїв.

Google і Apple зробили багато для того, щоб їх девайсами було користуватися настільки зручно, наскільки це можливо. Єдиний аккаунт для доступу до сервісів, прозора синхронізація даних, хмарне сховище для налаштувань - це тільки частина реалізованих софтверними гігантами функцій, які роблять гаджети надзвичайно зручними у використанні і економлять багато часу.

Проте, коли мова заходить про синхронізацію кількох пристроїв між собою, виникають серйозні проблеми. У жодній ОС просто немає такої функціональності. Звичайно, ми можемо прив'язати всі пристрої до єдиного Google- і Apple-аккаунту, який дозволить нам встановлювати останні версії софта, отримувати листи, повідомлення та інші примітки відразу на всі девайси. Однак ні про яку синхронізації налаштувань, списків встановлених додатків і даних на карті пам'яті мови не йде, кожен пристрій - це «річ у собі», яка може мати доступ до одного хмарі-сховища, але не більше того.

Ми не будемо розбиратися, чому склалася така ситуація, а замість цього обговоримо способи вирішення проблеми, тобто спробуємо знайти інструменти і модифікації, які допомогли б нам налаштувати синхронізацію і взаємодія різних пристроїв. Android-пристрої різного призначення в наших широтах поширені набагато сильніше iOS, тому мова піде про зелений роботі.

Що до чого

Коли ми говоримо «синхронізація декількох пристроїв», то найчастіше маємо на увазі смартфон і планшет, саме ці два пристрої користуються найбільшою популярністю. Однак, крім них, на ринку існує маса інших Android-девайсів, включаючи розумні телевізори, які набрали популярність китайські HDMI-донгла, а також більш екзотичні речі, такі як ігрова приставка OUYA і кишенькова консоль NVIDIA Shield.

Особисто у мене є в цілому шість різних Android-девайсів, з яких я щодня користуюся трьома і ще одним як мінімум кілька разів в тиждень. Це смартфон, планшет, ігрова консоль і HDMI-донгл. Пристрої, як видно, сильно різняться за призначенням, функціональності, а також встановленим версіями Android. Тому завдання їх синхронізації і взаємодії була досить нетривіальною, потрібно забезпечити загальний доступ усіх пристроїв до файлового сховища, синхронізацію додатків між потрібними девайсами, зробити зі смартфона універсальний пульт управління, а також підняти DLNA-сервер, з якого всі пристрої могли тягнути мультімедіафайли.

дані додатків

Перше, що слід зробити, - це організувати синхронізацію налаштувань і даних додатків між пристроями. По суті, це головна проблема, яка містить в собі найбільшу кількість підводних каменів. Справа в тому, що в Android зробити синхронізацію налаштувань і даних додатків далеко не так просто, як в класичних настільних ОС. Якщо в тій же Windows або Linux досить просто скопіювати файли і каталоги налаштувань програми на іншу машину, то тут ми, по-перше, зіткнемося з проблемою розмежування прав, яка не дозволяє одному з додатком отримати доступ до даних іншого, а по-друге, можемо отримати проблему несумісності пристроїв між собою.

Унаслідок першого обмеження синхронізація налаштувань додатків можлива тільки при наявності прав root на обох пристроях, через другого не обійтися без спеціалізованих інструментів, які можуть виправити проблеми в разі їх виникнення. Всього існує два типи інструментів, які нам підійдуть, це додатки для бекапа типу Titanium Backup і Helium, а також спеціалізовані додатки для синхронізації, на кшталт DataSync і AppSync. Перевага перших в асинхронности роботи: скопіював налаштування сьогодні, відновив на іншому девайсе завтра. Перевага друге в можливості настройки синхронізації за часом, наприклад щоночі.

На щастя, є інструмент, який поєднує в собі переваги обох підходів. DataSync не тільки вміє копіювати настройки додатків і файли на карті пам'яті на будь-який девайс в тій же локальній мережі, але і дозволяє робити бекап в Dropbox або Box.com, а в якості доповнення має підтримку Bluetooth і NFC, яка стане в нагоді в дорозі.

com, а в якості доповнення має підтримку Bluetooth і NFC, яка стане в нагоді в дорозі

Дві черги в DataSync

Алгоритм використання DataSync наступний. Встановлюємо додаток на всі пристрої, які повинні брати участь у синхронізації, запускаємо його. Далі на тому пристрої, який має прийняти або передати свої налаштування іншому, вибираємо потрібні програми і файли. Всі вони будуть додані в чергу (Queue), отримати доступ до якої можна, висунувши панель знизу. Після цього натискаємо на іконку синхронізації зверху (дві стрілки) і вибираємо потрібний пристрій зі списку. Тап по влаштуванню відкриє діалог вибору типу синхронізації: в обидві сторони (можливість доступна тільки в платній версії), туди або сюди. Після вибору почнеться процес синхронізації.

Само собою зрозуміло, що кожен раз запускати додаток і включати синхронізацію не найцікавіше заняття, тому в DataSync є можливість налаштувати синхронізацію за розкладом. Для цього досить зберегти чергу за допомогою іконки дискети у верхній частині екрану, потім довго утримувати палець на її імені в списку і вибрати в меню пункт Schedule Queue. Так ти отримаєш можливість налаштувати вибіркову синхронізацію потрібних додатків на різних пристроях.

За принципом своєї роботи DataSync - це типовий бекапер. Він бере пакет з додатком, потім копіює всі його налаштування і файли і відправляє на віддалений пристрій. Тому він може бути також використаний для: а) власне бекапа додатків, б) встановлення потрібних додатків разом з настройками на нове / перепрошитого пристрій з іншого пристрою і в) для асинхронної синхронізації: один пристрій зберігає в Dropbox, інше (інші) - відновлює.

DataSync: вибираємо додатки

файли

Крім синхронізації додатків, DataSync цілком можна використовувати для обміну файлами між девайсами. У разі рідкісних копіювань невеликих обсягів даних (книги, наприклад) його можливостей буде цілком достатньо, а от якщо мова йде про постійні синхронізації файлів в обидві сторони, а також про доступ до великих сховищ даних (домашній медіаархів), DataSync не підійде.

Після безлічі експериментів з різними утилітами синхронізації я прийшов до висновку, що найбільш зручні CifsManager, що дозволяє підключати SMB-диски до будь-якого каталогу на карті пам'яті (бачимо всіх програм), SSHFSAndroid, що включає кулі по протоколу SSH, і DropSync, який автоматично синхронізує вказаний каталог з диском Dropbox.

Монтування SMB-куля

Щоб підключити розшарений Windows-папку вручну, потрібно виконати таку послідовність команд:

$ Insmod /sdcard/ko/dns_resolver.ko $ insmod /sdcard/ko/md4.ko $ insmod /sdcard/ko/cifs.ko $ insmod /sdcard/ko/nls_utf8.ko $ mount -t cifs -o iocharset = utf8 , username = юзер, password = пароль, file_mode = 0777, dir_mode = 0777 // IP / share / sdcard / cifs

На відміну від багатьох інших SMB, SSH і Dropbox-клієнтів, які можна знайти в маркеті, ці три програми не обмежують доступ до куль тільки через себе, а замість цього монтують їх до загальнодоступних каталогах, так що з даними можна працювати з будь-якої програми. CifsManager і SSHFSAndroid це зручний спосіб доступу до домашньої файлопомойка; підключаємо мережевий диск і працюємо з файлами, як з локальними (правда, медиасервер їх індексувати не буде).

DropSync ідеально підходить для синхронізації невеликих обсягів даних між різними пристроями і ПК: щоб, наприклад, поширити електронну книгу на всі пристрої, досить завантажити її на ноутбук і покласти кудись в ~ / Dropbox / Books, буквально через кілька секунд вона з'явиться на всіх девайсах з встановленим і налаштованим DropSync. І ніякої залежності від локальної мережі та інтернет-з'єднання як такого (синхронізація відбудеться, як тільки з'явиться доступ до мережі).

Тепер про те, як все це налаштувати. Почнемо з CifsManager. Тут все дуже просто і складно водночас. З одного боку, досить запустити додаток, натиснути кнопку «Add New Share ...» і в віконці вбити адресу сервера в форматі IP / ім'я-кулі, вказати ім'я користувача: пароль і точку монтування, наприклад / sdcard / cifs, створивши каталог заздалегідь. Потім натискаємо по сконфигурированной кулі, і вона змонтують.

Включаємо автозагрузку модуля cifs.ko в CifsManager

Але це тільки теорія, на практиці все дещо складніше. По суті, CifsManager - це всього лише оболонка для запуску приблизно такої команди:

$ Mount -t cifs -o username = юзер, password = пароль, file_mode = 0777, dir_mode = 0777 // IP / ім'я-кулі / sdcard / cifs

Однак вона спрацює тільки в тому випадку, якщо в ядро ​​вшитий модуль cifs.ko, або його можна знайти за адресою /system/lib/cifs.ko. Якщо це не так, файлова система підключена не буде, а «не так» це на дуже багатьох смартфонах. Що робити, якщо модуля немає? Тут два варіанти: або прошити ядро ​​з підтримкою cifs, або знайти / скомпілювати відповідний для свого ядра модуль.

Про те, як вибирати і прошивати ядра, у нас вже була ціла стаття, тому зупинимося на другому варіанті. В цілому, крім модуля cifs.ko, для нових версій Android нам знадобляться також модулі md4.ko, dns resolver.ko, а також опціонально nls utf8.ko, якщо в кулі будуть файли з російськими іменами. При цьому всі модулі повинні бути скомпільовані саме для тієї версії ядра Linux, яка прошита в девайс. Знайти їх вдасться далеко не для кожного пристрою, але спробувати варто, використовуючи пошукові запити на кшталт galaxy s3 cifs.ko. Зазвичай всі необхідні модулі запаковані в один zip-архів, який досить розгорнути і скопіювати на карту пам'яті. Далі заходимо в налаштування CifsManager, ставимо галочку навпроти опції Load vid insmod, а в поле Path to cifs.ko перераховуємо шляху до всіх модулів через двокрапку, наприклад: «/sdcard/md4.ko:/sdcard/dns resolver.ko: / sdcard / nls utf8.ko: /sdcard/cifs.ko ». Після цього програма повинна почати нормально монтувати кулі.

Якщо ж подібні збочення заради можливості отримати доступ кулі тебе зовсім не радують, то я хотів би звернути увагу на SSHFSAndroid, який дозволяє монтувати віддалені ФС по протоколу SSH. Фактично це просто обгортка навколо відомої файлової системи простору користувача sshfs, що використовує модуль Linux-ядра FUSE, включений в усі стічні ядра починаючи з Android версії 2.2 (за допомогою FUSE в Android відбувається монтування встановлених на карту пам'яті додатків і віртуальних карт пам'яті).

Користуватися SSHFSAndroid досить просто. Після запуску головне вікно програми буде порожньо, за винятком кнопок «+» і «Налаштування» у верхній частині вікна. Щоб підключити нову ФС, натискаємо кнопку «+» і послідовно заповнюємо всі поля виведеного на екран меню: Name - довільне ім'я, Host - IP або ім'я хоста (наприклад, 192.168.0.100), Remote path - шлях до каталогу на віддаленій стороні (наприклад , / home / vasya), Mount point - точка монтування (/ sdcard / share), Username - ім'я користувача і Password - пароль відповідно. Далі натискаємо кнопку «Зберегти» (піктограма у вигляді дискети) і, повернувшись на головний екран, просто натискаємо на пункті з ім'ям з'єднання. Після запиту прав root файлова система буде змонтована до зазначеного каталогу, з яким можна працювати за допомогою будь-якого файлового менеджера.

Тепер про DropSync. По суті, це додаток виконує ту ж задачу, що і настільна версія Dropbox: дозволяє зберігати файли на флешці, періодично синхронізуючи їх з хмарним сховищем. Синхронізація відбувається тільки щодо змінених файлів, а каталоги для синхронізації можна вибирати індивідуально, надсилаючи та приймаючи з хмари тільки те, що реально потрібно на смартфоні, без необхідності качати кілька гігабайт.

DropSync закінчив чергову синхронізацію

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

UPnP / DLNA

Головна проблема всіх перерахованих способів обміну файлами в необхідності отримання root, настройки і навіть установки різних модулів. У XXI столітті, коли смартфони мало не заварюють тобі каву, це виглядає дещо архаїчно. Деякий час тому була придумана технологія UPnP (Universal Plug and Play), яка дозволяє з'єднати всі доступні «розумні» пристрої в загальну мережу з можливістю доступу до різних функцій. На жаль, розробники софта і операційних систем недооцінили можливості UPnP, і сьогодні технологія в основному використовується тільки для обміну та віддаленого програвання мультімедіафайлов в складі технології DLNA, яка стала ідеологічним спадкоємцем і розширенням UPnP. Ці дві технології (часто вони згадуються як єдиний стек технологій) сьогодні використовуються всюди, включаючи різні медіапрогравачі та телевізори. В Android підтримки UPnP / DLNA як такої немає, але її можна знайти у великій кількості мультимедійних додатків, а також спеціалізованому софт, начебто BubbleUPnP і торрент-клієнтів.

У своїй основі стек UPnP / DLNA базується на класичній клієнт-серверної моделі взаємодії, в якій сервер виступає в ролі роздавальника мультімедіаконтента, а клієнт отримує його і програє. Відмінність від інших технологій тільки в тому, що кожен пристрій тут часто носить універсальний характер, виступаючи в ролі як сервера, так і клієнта, а також може бути контролером, який управляє іншими пристроями і дозволяє визначати, що, де і звідки буде програватися (хоча все залежить від реалізації, звичайно).

Така архітектура в поєднанні з автоматичним об'єднанням пристроїв в мережу дозволяє реалізовувати найрізноманітніші схеми взаємодії пристроїв. У нашому випадку ми можемо буквально в кілька тапов зробити так, щоб фільм, що зберігається в пам'яті планшета, почав програватися на HDMI-донгла, використовуючи в якості пульта управління смартфон. А ще в кілька тапов - щоб музика з донгла заграла на смартфоні.

А ще в кілька тапов - щоб музика з донгла заграла на смартфоні

інтерфейс BubbleUPnP

Є три основних Android-додатки, що підтримують UPnP / DLNA. Це VPlayer (через VPlayer uPnP DLNA Plugin), XBMC і BubbleUPnP. Перший дозволяє програвати контент з DLNA-сервера, другий - роздавати і програвати, а третій - це комбайн в стилі «все в одному», який грає, роздає і управляє іншими клієнтами і серверами. Вбудована підтримка клієнтського DLNA є також в HDMI-донгла на базі чіпів Rockchip 3066 і Rockchip 3166 (це практично будь-який сучасний донгл).

Включаємо підтримку UPnP / DLNA в XBMC

У моїй домашній конфігурації, що включає в себе TV-приставку OUYA з підключеним жорстким диском, а також HDMI-донгл, телефон і планшет, використовуються наступні програми: на OUYA, яка, крім відтворення медіаконтенту на телевізорі, також відповідає за зберігання всіх мультімедіаданних, встановлений XBMC, в настройках якого включені всі режими роботи DLNA (Служби -> UPnP -> всі опції). На телефон і планшет встановлені BubbleUPnP, HDMI-стик йде з вбудованим клієнтом DLNA.

Панель управління відтворенням в BubbleUPnP

Для того щоб програти той чи інший мультимедійний на будь-якому пристрої, тепер достатньо запустити BubbleUPnP, вибрати на вкладці Devices пристрій для відображення контенту (RENDERERS), в якості роздавальника контенту вибрати XBMC - і все. Далі знаходиш потрібний файл в бібліотеці (вкладка «LIBRARY») і Тапа по ньому. У будь-який момент я можу змінити пристрій для відображення або роздачі контенту, і відтворення продовжиться на ньому. Ніяких налаштувань, ніяких IP-адрес і номерів портів.

Програємо локальні файли на зовнішньому XBMC-сервері за допомогою BubbleUPnP

Chromecast

DLNA - прекрасна технологія, але вона не розрахована на стрімінг потоків з мережі Інтернет. Іншими словами, якщо ми захочемо подивитися відео в YouTube, доведеться запускати клієнт сайту на самому пристрої, хоча набагато зручніше було б вибрати потрібне відео на смартфоні, а потім автоматично запустити його на телевізорі.


Спеціально для таких цілей Google винайшла аналог Apple AirPlay, названий Chromecast. Офіційно ця технологія підтримується тільки однойменною HDMI-донглом виробництва самої Google, але протокол виявився настільки простий, що дуже скоро ентузіасти його розібрали і створили альтернативну реалізацію в складі додатка CheapCast.

Тепер, щоб перетворити будь-який Android-девайс в Chromecast, досить встановити на нього додаток CheapCast з маркету, запустити і натиснути кнопку запуску у верхній частині екрану. Після цього у всіх підтримують Chromecast додатках автоматично з'явиться кнопка у формі прямокутника з логотипом Wi-Fi в кутку. Натискаємо на кнопку, вибираємо пристрій, і відео програється на ньому.

Єдина проблема в тому, что в Сейчас Chromecast-стрімінг підтрімують только YouTube и вбудований медіаплеєр, но Google обіцяла Додати підтрімку в PLay Фільми, Netflix и кілька других. Над можливістю стрімінга з усіх програм працював Kush з команди CyanogenMod, однак Google швидко загорнула цю розробку, відключивши можливість стрімінга будь-яким стороннім додаткам.

Над можливістю стрімінга з усіх програм працював Kush з команди CyanogenMod, однак Google швидко загорнула цю розробку, відключивши можливість стрімінга будь-яким стороннім додаткам

CheapCast на OUYA

Пульт / джойстик

Для управління різними TV-приставками, HDMI-стиками і в деяких випадках планшетом знадобиться «віддалений» пульт. Я не пропоную купувати спеціальні Bluetooth-пульти або обладнати девайси інфрачервоними приймачами, замість цього перетворимо в пульт смартфон. З усього різноманіття додатків-пультів, які можна знайти в Google Play, єдиний гідний варіант - це DroidMote. Клієнт у нього безкоштовний, однак за сервер для Android-пристрої доведеться заплатити 80 рублів.

Клієнт у нього безкоштовний, однак за сервер для Android-пристрої доведеться заплатити 80 рублів

RKRemoteControl: офіційний пульт управління для HDMI-стіків на базі чіпів RK3066 і RK3166

Клієнт і сервер знаходять один одного і з'єднуються в автоматичному режимі, тому налаштовувати нічого не доведеться. З інструментів управління доступні: тачпад, клавіатура, мультімедіапульт і джойстик. Останній, до речі, особливо цікавий тим, що дозволяє створити маппинг клавіш до точок на екрані керованого пристрою, так що з його допомогою можна грати в абсолютно будь-які ігри, навіть якщо вони не підтримують джойстик.

INFO


SSHFSAndroid не працює в Android 4.2, однак автор обіцяє виправити проблему найближчим часом.

Функціональність сервера доступна тільки в платній версії BubbleUPnP, вартістю 140 рублів.

Для розшарювання карти пам'яті будь-якого гаджета можна використовувати додаток SambaDroid. Воно не вимагає настройки і запускає Samba-сервер автоматично після старту програми.

Висновки

Об'єднання гаджетів в одну злагоджено працюючу мережу - непросте завдання, і описані в даній статті прийоми не ідеальні і підійдуть не всім. Однак поки у нас немає інших інструментів, і доводиться тільки чекати, коли сама Google або розробники CyanogenMod додадуть такі можливості в Android. У тому, що це станеться, я впевнений на 100%, питання тільки коли.

Що робити, якщо модуля немає?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: