portaldacalheta.pt
  • Principal
  • Investidores E Financiamento
  • Gerenciamento De Projetos
  • Noticias Do Mundo
  • Processo De Design
Móvel

Controle seu laptop com um telefone Android usando Python, Twisted e Django



Introdução

É sempre divertido colocar seu Android ou Habilidades de programação Python na tela. Um tempo atrás, achei que seria legal tentar controlar meu laptop por meio do meu dispositivo móvel Android. Pense nisso: acesso remoto ao laptop, incluindo a capacidade de reproduzir e pausar música, iniciar e interromper a programação de trabalhos ou downloads, etc., tudo através do envio de mensagens de seu telefone. Legal, hein?

Antes de continuar lendo, lembre-se de que este é um projeto favorito, ainda em seus estágios iniciais - mas a plataforma básica está lá. Ao juntar algumas ferramentas convencionais, fui capaz de configurar meu telefone Android para controlar meu laptop por meio de um interpretador Python.



A propósito: o projeto é open source. Você pode verificar o código do cliente Aqui , e o código do servidor Aqui .



O cinto de ferramentas de acesso remoto de laptop: Python, Twisted, Django e Amarok

Este projeto envolve as seguintes tecnologias, algumas das quais você pode estar familiarizado, algumas das quais são bastante específicas para a tarefa em questão:



  • Python 2.7+
  • Torcido : uma excelente estrutura orientada a eventos especialmente criada para hackers de rede.
  • Django : Eu usei a v1.4, então você terá que ajustar a localização de alguns arquivos se quiser executar uma versão anterior.
  • Amarok : um reprodutor de mídia gerenciável D-BUS (mais sobre isso abaixo). Isso poderia ser substituído por outros reprodutores de mídia ( Clementine , VLC , ou qualquer coisa que suporte MPRIS ) se você conhece suas estruturas de mensagens. Eu escolhi o Amarok porque ele vem com minha distribuição do KDE por padrão. Além disso, é rápido e facilmente configurável.
  • Um telefone Android com Python para Android instalado (mais sobre isso abaixo). O processo é bastante simples, mesmo para Py3k !
  • Amarok Remoto e Amarok Web remoto .

Em alto nível

Em um alto nível, consideramos nosso telefone Android como o cliente e nosso laptop, o servidor. Abordarei essa arquitetura de acesso remoto em detalhes abaixo, mas o fluxo básico do projeto é o seguinte:

  1. O usuário digita algum comando no interpretador Python.
  2. O comando é enviado para a instância Django.
  3. Django então passa o comando para Twisted.
  4. O Twisted analisa o comando e envia um novo comando via D-Bus para o Amarok.
  5. O Amarok interage com o laptop real, controlando a reprodução / pausa da música.

Usando este conjunto de ferramentas, aprenda a controlar um laptop com Python, Twisted e Django.



Agora, vamos nos aprofundar.

Python no Android

Então, um bom dia, comecei a procurar interpretadores Python que eu pudesse executar em meu telefone Android (Droid 2, naquela época). Logo depois descobri o excelente Pacote SL4A que deu vida ao Python For Android. É um pacote muito bacana: você clica em alguns botões e de repente você tem um quase ambiente Python totalmente funcional em seu dispositivo móvel ou tablet que pode executar o seu bom e velho código Python e acessar a API do Android (eu digo quase porque provavelmente algumas coisas estão faltando e a API do Android não está 100% acessível, mas para a maioria dos casos de uso, é suficiente).



Se preferir, você também pode construir sua própria distribuição Python para rodar em seu dispositivo Android, o que tem a vantagem de poder rodar qualquer versão do interpretador que desejar. O processo envolve compilação cruzada de Python para ser executado em BRAÇO (a arquitetura usada em dispositivos Android e outros tablets ) Não é fácil, mas certamente é possível. Se você está pronto para o desafio, verifique Aqui ou Aqui .

Depois de configurar o interpretador, você pode fazer basicamente o que quiser combinando o Python com a API do Android, incluindo controlar seu laptop remotamente. Por exemplo, você pode:



  • Envie e leia SMS.
  • Interaja com APIs de terceiros na Internet via urllib e outras bibliotecas.
  • Exibe prompts de aparência e comportamento nativos, diálogos giratórios e semelhantes.
  • Mude o seu toque.
  • Reproduza música ou vídeos.
  • Interaja com o Bluetooth - este em particular abre caminho para muitas oportunidades. Por exemplo, uma vez eu brinquei usando meu telefone como um aplicativo de desbloqueio de armário para meu laptop (por exemplo, desbloquear meu laptop via Bluetooth quando meu telefone estava por perto).

Como funciona o uso do telefone para controlar o laptop

A arquitetura

Nossa composição de projeto é a seguinte:

  • Um aplicativo do lado do cliente construído no Twisted se você quiser testar o código do servidor (abaixo) sem ter que executar o aplicativo Django.



  • Um aplicativo Django do lado do servidor, que lê comandos do dispositivo Android e os passa para o Twisted. Da forma como está, o Amarok é o único aplicativo de laptop com o qual o servidor pode interagir (ou seja, para controlar a música), mas isso é uma prova de conceito suficiente, já que a plataforma é facilmente extensível.

  • Uma 'instância' torcida do lado do servidor que se comunica com o reprodutor de mídia do laptop via D-Bus, enviando comandos conforme eles vêm do Django (atualmente, suporte 'próximo', 'anterior', 'reproduzir', 'pausa', 'parar' e 'mudo'). Por que não apenas passar os comandos diretamente do Django para o Amarok? Os atributos não bloqueadores e orientados por eventos do Twisted eliminam todo o trabalho árduo de threading (mais abaixo). Se você estiver interessado em se casar com os dois, veja Aqui .



Twisted é excelente, voltado para eventos e versátil. Ele opera usando um sistema de retorno de chamada, objetos adiados e algumas outras técnicas. Eu definitivamente recomendo que você experimente: a quantidade de trabalho que você evita usando o Twisted é seriamente impressionante. Por exemplo, ele serve código clichê para muitos protocolos, incluindo IRC, HTTP, SSH, etc., sem ter que lidar com mecanismos não bloqueadores (threads, select, etc.).
  • O código Android do lado do cliente, carregado em seu dispositivo com uma URL personalizada para acessar seu aplicativo Django. Vale a pena mencionar que esta parte específica do código é executada em Python 2.7+, incluindo Py3k.

O que é D-Bus?

Eu mencionei o D-Bus várias vezes, então provavelmente vale a pena discuti-lo com mais detalhes. De um modo geral, o D-Bus é um sistema de barramento de mensagens para a comunicação entre aplicativos (por exemplo, em um laptop e telefone Android) facilmente por meio de mensagens especialmente criadas.

É composto principalmente de dois ônibus: o barramento do sistema, para todo o sistema; e o barramento de sessão, para coisas do userland. As mensagens típicas para o barramento do sistema seriam “Ei, eu adicionei uma nova impressora, notifique meus aplicativos habilitados para D-Bus que uma nova impressora está online”, enquanto a comunicação entre processos (IPC) típica entre os aplicativos iria para a sessão ônibus.

Usamos o barramento de sessão para nos comunicarmos com o Amarok. É muito provável que a maioria dos aplicativos modernos (em ambientes Linux, pelo menos) suporte este tipo de mensagem e geralmente todos os comandos / funções que eles podem processar estão bem documentados. Como qualquer aplicativo com suporte D-Bus pode ser controlado sob esta arquitetura, as possibilidades são quase infinitas.

Mais informações podem ser encontradas Aqui .

Por trás das cenas:

Depois de configurar toda a infraestrutura, você pode disparar o Aplicativo Android e entrará em um loop infinito para ler as mensagens recebidas, processá-las com algumas verificações de sanidade e, se válido, enviá-las para uma URL predefinida (ou seja, a URL do seu aplicativo Django), que por sua vez processará a entrada e agir de acordo. O cliente Android então marca a mensagem como lida e o loop continua até que uma mensagem com o conteúdo exato “exitclient” (inteligente, hein?) Seja processada, caso em que o cliente sairá.

No servidor, o aplicativo Django pega um comando a ser processado e verifica se ele inicia com uma instrução válida. Nesse caso, ele se conecta ao servidor Twisted (usando Telnetlib para se conectar via telnet ) e envia o comando junto. Finalmente, o Twisted analisa a entrada, transforma-a em algo adequado para o Amarok e permite que o Amarok faça sua mágica! Finalmente, o seu laptop responde tocando músicas, pausando, pulando, etc.

Quanto ao “URL predefinido”: se pretende controlar o seu computador à distância, deverá ser um URL público (acessível através da Internet). Esteja ciente de que, atualmente, o código não implementa nenhuma camada de segurança (SSL, etc.) - tais melhorias são exercícios para o leitor, no momento.

O que mais posso fazer com isso?

Tudo parece muito simples até agora, hein? Você pode estar se perguntando: “Isso pode ser estendido para suportar o recurso bacana [X]?” A resposta é: Sim (provavelmente)! Como você sabe como interagir com o computador usando o telefone de maneira adequada, pode complementar o código do servidor para fazer o que quiser. Antes que você perceba, você estará disparando processos demorados em seu computador remotamente. Ou, se você pode lidar com a eletrônica, você pode construir uma interface entre o seu computador e seu aparelho favorito, controlando este via instruções SMS (“Faça-me café!” vem à mente).

Qual é o próximo

Vou continuar brincando com meu brinquedo de controle do laptop Android por um tempo, melhorando seus recursos, consertando bugs, etc. Mas se você estiver interessado, eu adoraria ver sua ajuda! Apenas bifurque o repositório e envie todas as solicitações pull.

Se você tiver alguma dúvida, envie-me um e-mail para [email protegido] e ficarei feliz em ajudar.

Um professor de ciências explica: O que é um vírus? Quase 1.031 tipos existem na terra

Aprendendo

Um professor de ciências explica: O que é um vírus? Quase 1.031 tipos existem na terra
Buscando vazamentos de memória Java

Buscando vazamentos de memória Java

Tecnologia

Publicações Populares
Violência explode em protesto contra o despejo do campo de Berlim
Violência explode em protesto contra o despejo do campo de Berlim
Introdução ao Docker: simplificando o DevOps
Introdução ao Docker: simplificando o DevOps
Ideia brilhante de Donald Trump: uma parede solar na fronteira EUA-México
Ideia brilhante de Donald Trump: uma parede solar na fronteira EUA-México
Uma visão geral completa das melhores ferramentas de visualização de dados
Uma visão geral completa das melhores ferramentas de visualização de dados
O valor do design thinking nos negócios
O valor do design thinking nos negócios
 
Introdução aos microsserviços: um tutorial do Dropwizard
Introdução aos microsserviços: um tutorial do Dropwizard
Com 21 anos e raízes de Kerala, é o mais jovem na lista de MBE do Queen
Com 21 anos e raízes de Kerala, é o mais jovem na lista de MBE do Queen
Um bebê pode ouvir sons no útero?
Um bebê pode ouvir sons no útero?
Os desafios da aprendizagem remota para crianças pequenas
Os desafios da aprendizagem remota para crianças pequenas
ASSISTIR: A sessão de fotos do casamento de noivas captura o momento em que a explosão rasgou a cidade de Beirute
ASSISTIR: A sessão de fotos do casamento de noivas captura o momento em que a explosão rasgou a cidade de Beirute
Publicações Populares
  • como realizar testes de unidade
  • como construir plugin wordpress
  • construir api com node js
  • como usar bootstrap em html
  • sempre que você usar o novo operador, é uma boa prática
Categorias
  • Investidores E Financiamento
  • Gerenciamento De Projetos
  • Noticias Do Mundo
  • Processo De Design
  • © 2022 | Todos Os Direitos Reservados

    portaldacalheta.pt