portaldacalheta.pt
  • Основен
  • Подвижен
  • Дизайн На Марката
  • Възходът На Дистанционното
  • Жизнен Цикъл На Продукта
Подвижен

Управлявайте лаптопа си с телефон с Android, използвайки Python, Twisted и Django



Въведение

Винаги е забавно да поставите вашия Android или Умения за програмиране на Python на дисплея. Преди известно време си помислих, че би било страхотно да се опитам да контролирам лаптопа си чрез мобилното си устройство с Android. Помислете за това: отдалечен достъп до лаптоп, включително възможност за възпроизвеждане и пауза на музика, стартиране и спиране на задания за програмиране или изтегляне и т.н., всичко чрез изпращане на съобщения от вашия телефон. Подредено, а?

Преди да продължите да четете, моля, имайте предвид, че това е проект за домашни любимци, който все още е в начален етап, но основната платформа е налице. Чрез залепване на някои основни инструменти успях да настроя телефона си с Android да контролира моя лаптоп чрез интерпретатор на Python.



Между другото: проектът е с отворен код. Можете да проверите клиентския код тук и кода на сървъра тук .



Колан за инструмент за отдалечен достъп до лаптоп: Python, Twisted, Django и Amarok

Този проект включва следните технологии, някои от които може да сте запознати, някои от които са доста специфични за съответната задача:



  • Python 2.7+
  • Усукана : отлична рамка, управлявана от събития, специално създадена за мрежови хакери.
  • Джанго : Използвах v1.4, така че ще трябва да коригирате местоположението на някои файлове, ако искате да стартирате по-ниска версия.
  • Амарок : D-BUS (повече за това по-долу) управляем медиен плейър. Това може да бъде предоставено на други подобни медийни плейъри ( Клементин , VLC или нещо, което поддържа MPRIS ), ако познавате техните структури за съобщения. Избрах Amarok, защото по подразбиране идва с моята KDE дистрибуция. Освен това е бърз и лесно конфигурируем.
  • Телефон с Android с Python за Android инсталиран (повече за това по-долу). Процесът е доста ясен - дори за Py3k !
  • Дистанционно Amarok и Отдалечен Amarok Web .

На високо ниво

На високо ниво ние считаме, че телефонът ни с Android е клиент, а лаптопът - сървърът. Ще разгледам подробно тази архитектура за отдалечен достъп по-долу, но основният поток на проекта е следният:

  1. Потребителят въвежда някаква команда в интерпретатора на Python.
  2. Командата се изпраща до екземпляра на Django.
  3. След това Django предава командата на Twisted.
  4. След това Twisted анализира, командата изпраща нова команда чрез D-Bus до Amarok.
  5. Amarok взаимодейства с действителния лаптоп, контролирайки възпроизвеждането / паузата на музиката.

Използвайки този инструмент, научете как да управлявате лаптоп с Python, Twisted и Django.



Сега нека да копаем.

c corp срещу корпоративно данъчно облагане

Python на Android

Така че един добър ден започнах да разглеждам интерпретатори на Python, които мога да стартирам на телефона си с Android (Droid 2, тогава). Скоро след това открих отличното Пакет SL4A това оживи Python For Android. Това е наистина чудесен пакет: щракнете върху няколко бутона и изведнъж имате почти напълно функционална среда на Python на вашето мобилно или таблетно устройство, която може едновременно да изпълнява вашия добър стар код на Python и да осъществява достъп до Android API (казвам почти защото някои неща вероятно липсват и API на Android не е 100% достъпен, но за повечето случаи на употреба е достатъчно).



Ако предпочитате, можете също да създадете своя собствена дистрибуция на Python, която да се изпълнява на вашето устройство с Android, което има предимството, че след това можете да стартирате всяка версия на интерпретатора, която желаете. Процесът включва кръстосано компилиране на Python, на който да се изпълнява РЪКА (архитектурата, използвана на устройства с Android и други таблетки ). Не е лесно, но със сигурност е изпълнимо. Ако сте готови за предизвикателството, проверете тук или тук .

След като настроите вашия интерпретатор, можете да правите основно каквото искате, като комбинирате Python с Android API, включително дистанционно управление на вашия лаптоп. Например можете:



  • Изпращайте и четете SMS.
  • Взаимодействайте с API на трети страни в Интернет чрез urllib и други библиотеки.
  • Показвайте естествени подкани за външен вид и усещане, въртящи се диалогови прозорци и други подобни.
  • Променете мелодията на звънене.
  • Пускайте музика или видеоклипове.
  • Взаимодействайте с Bluetooth - този по-специално проправя пътя за много възможности. Например, веднъж се заиграх с използването на телефона си като приложение за отключване на шкафче за моя лаптоп (например, отключване на лаптопа ми чрез Bluetooth, когато телефонът ми беше наблизо).

Как работи използването на вашия телефон за управление на вашия лаптоп

Архитектурата

Съставът на нашия проект е както следва:

  • Клиентско приложение, изградено на Twisted, ако искате да тествате кода на сървъра (по-долу), без изобщо да се налага да стартирате приложението Django.



  • Приложение Django от страна на сървъра, което чете команди от устройството с Android и ги предава на Twisted. В настоящия си вид Amarok е единственото приложение за лаптоп, с което сървърът може да взаимодейства (т.е. да контролира музиката), но това е достатъчно доказателство за концепция, тъй като платформата е лесно разширяема.

  • Усукан „екземпляр“ от страна на сървъра, който комуникира с медийния плейър на лаптопа чрез D-Bus, изпращайки команди, когато идват от Django (в момента поддържам „next“, „previous“, „play“, „pause“, „стоп“ и „заглушаване“). Защо просто не предадете командите директно от Django на Amarok? Управляваните от събитията, неблокиращи атрибути на Twisted отнемат цялата упорита работа с резби (повече по-долу). Ако се интересувате да се ожените за двете, вижте тук .



Twisted е отличен, управляван от събития и универсален. Той работи с помощта на система за обратно извикване, отложени обекти и някои други техники. Определено бих препоръчал да го изпробвате: количеството работа, което избягвате, като използвате Twisted, е сериозно впечатляващо. Например, той обслужва шаблонния код за много протоколи, включително IRC, HTTP, SSH и др., Без да се налага да се занимавате с неблокиращи механизми (потоци, избор и т.н.).
  • Клиентският код на Android, качен на вашето устройство с персонализиран URL адрес, за да достигне до вашето приложение Django. Струва си да се спомене, че тази част от кода работи на Python 2.7+, включително Py3k.

Какво е D-Bus?

Споменах D-Bus няколко пъти, така че си струва да го обсъдим по-подробно. Най-общо казано, D-Bus е система за обмен на съобщения за комуникация между приложения (например на преносим компютър и телефон с Android) лесно чрез специално създадени съобщения.

елементите, към които се призовава за дизайн във Вселената, включват кое от следните

Състои се главно от две шини: системната шина, за общосистемни неща; и шината на сесията, за неща от потребителските страни. Типичните съобщения към системната шина биха били „Хей, добавих нов принтер, уведоми моите приложения с активиран D-Bus, че нов принтер е онлайн“, докато типичната междупроцесова комуникация (IPC) между приложенията ще отиде в сесията автобус.

Използваме сесийна шина за комуникация с Amarok. Много е вероятно повечето съвременни приложения (поне под Linux среди) да поддържат този тип съобщения и като цяло всички команди / функции, които могат да обработват, са добре документирани. Тъй като всяко приложение с поддръжка на D-Bus може да се контролира под тази архитектура, възможностите са почти безкрайни.

Повече информация може да бъде намерена тук .

Зад сцената:

След като настроите цялата инфраструктура, можете да изключите Приложение за Android и той ще влезе в безкраен цикъл, за да прочете входящите съобщения, да ги обработи с някои проверки за здравословно състояние и, ако е валиден, да ги изпрати на предварително дефиниран URL (т.е. URL на вашето приложение Django), който от своя страна ще обработи входа и действайте съответно. След това клиентът на Android маркира съобщението като прочетено и цикълът продължава, докато се обработи съобщение с точното съдържание „exitclient“ (умно, а?), В който случай клиентът ще излезе.

На сървъра приложението Django взема команда, която трябва да бъде обработена, и проверява дали тя започва с валидна инструкция. Ако е така, той се свързва с Twisted сървъра (използвайки Telnetlib за свързване чрез telnet ) и изпраща командата заедно. И накрая, Twisted анализира входа, трансформира го в нещо подходящо за Amarok и позволява на Amarok да направи магията си! И накрая, вашият лаптоп реагира чрез възпроизвеждане на песни, пауза, пропускане и т.н.

По отношение на „предварително дефинирания URL“: ако искате да контролирате компютъра си отдалеч, това ще трябва да бъде публичен URL адрес (достъпен през Интернет). Имайте предвид, че понастоящем кодът не прилага никакъв слой сигурност (SSL и т.н.) - подобни подобрения са упражнения за читателя в момента.

Какво друго мога да направя с това?

Засега всичко изглежда наистина просто, а? Може би се питате: „Може ли това да бъде разширено, за да поддържа изящна функция [X]?“ Отговорът е: Да (вероятно)! Като се има предвид, че знаете как да взаимодействате с компютъра си, като използвате телефона си правилно, можете да добавите кода от страна на сървъра, за да правите каквото искате. Преди да се усетите, ще изстреляте отдалечено продължителни процеси на компютъра си. Или, ако можете да се справите с електрониката, можете да изградите интерфейс между вашия компютър и вашия любим уред, контролиращ че чрез SMS инструкции („Направи ми кафе!“ ми идва на ум).

Какво следва

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

Ако имате някакви въпроси, моля, изпратете ми имейл на [имейл защитен] и ще се радвам да помогна.

Асоцииран продуктов мениджър

Други

Асоцииран продуктов мениджър
Новини за дизайна - Иновации от цял ​​свят

Новини за дизайна - Иновации от цял ​​свят

Ui Design

Популярни Публикации
Създавайте данни от случаен шум с генерални състезателни мрежи
Създавайте данни от случаен шум с генерални състезателни мрежи
Миналото все още присъства - преглед на вечния дизайн
Миналото все още присъства - преглед на вечния дизайн
Финансово бедствие в криза: Не можете да предскажете, можете да подготвите
Финансово бедствие в криза: Не можете да предскажете, можете да подготвите
Бруталистки уеб дизайн, минималистичен уеб дизайн и бъдещето на Web UX
Бруталистки уеб дизайн, минималистичен уеб дизайн и бъдещето на Web UX
Разширени съвети и хакове за презентация на PowerPoint
Разширени съвети и хакове за презентация на PowerPoint
 
Архитект отпред
Архитект отпред
Студената технологична война: все още тук и все още се използва
Студената технологична война: все още тук и все още се използва
Въведение в Apache Spark с примери и случаи на употреба
Въведение в Apache Spark с примери и случаи на употреба
Комодитизирани смартфони: Привеждане на 4G в развиващите се страни
Комодитизирани смартфони: Привеждане на 4G в развиващите се страни
Как да създам API за Secure Node.js GraphQL
Как да създам API за Secure Node.js GraphQL
Популярни Публикации
  • технологии в Студената война
  • какво е t9 клавиатура
  • какво търсят ангелските инвеститори
  • какво прави финансовият директор
  • как да изградим двигател за препоръки
Категории
  • Подвижен
  • Дизайн На Марката
  • Възходът На Дистанционното
  • Жизнен Цикъл На Продукта
  • © 2022 | Всички Права Запазени

    portaldacalheta.pt