Olá pessoal,
Este post é resultado de um experimento rápido que eu realizei nestas semanas sobre uma curiosidade que me alimentava há um certo tempo: " É possível desenvolver com Python na plataforma Android ?"
E a ótima notícia é que sim, é possível! Eu estava brincando com meu N900 da Nokia que vem com o Maemo OS e este tem suporte total ao Python nativo. Mas, é difícil no mercado brasileiro você comprar um N900, especialmente depois que a Nokia divulgou o seu preço oficial que fica acima da faixa de R$ 1000 reais. E ultimamente tenho visto uma tendência positiva de aparelhos embarcados com a plataforma Android da Google e suportada por fabricantes bastante populares no mercado brasileiro como a Motorola, Samsung, HTC, LG, etc. Como sou um fã da linguagem Python e pelas suas particularidades que fazem desta linguagem ser uma ferramenta para construção rápida de aplicativos, fiquei curioso para saber se o Android suportava desenvolvimento com Python.
Mas calma, nem tantas alegrias! De fato a plataforma oficial de desenvolvimento para o Android é a linguagem Java e que permite total integração com o sistema operacional e consequentemente a construção de aplicativos completos que possuam GUI e ao mesmo tempo instaláveis. Por enquanto assim como Python e outras linguagens de script é necessário que você instale um interpretador runtime para o Android e assim você poderá rodar seus scripts Python. De acordo com alguns forums que venho acompanhado, parece que há uma movimentação no Google para tornar possível a construção de aplicativos completos com linguagens de script como Python, inclusive disponibilizando-os via a loja virtual Android Market.
Agora que sabemos que é possível desenvolver pequenos aplicativos Python no Android, vamos para a próxima etapa que é como e por onde começamos a desenvolver. A resposta para esta pergunta está no projeto extra-oficial android-scripting (ASE).
Este projeto apresentado oficialmente em meados de 2009 agora conhecido como SL4A (Scripting Layer for Android) trouxe ao sistema Android o suporte a linguagens baseado em scripts como Python, Perl, JRuby, Lua, JavaScript, Tcl, e até o Shell. De acordo com o wiki do projeto, ele pode ser executado via terminal ou em background.
Tela de Edição do ASE |
Existem 2 maneiras de instalar o interpretador e executá-lo: Por meio de um aparelho que tenha o sistema operacional Android ou pelo uso do emulador. Neste tutorial focarei na instalação no emulador, pois mesmo você não tendo um aparelho em mãos pode já começar a escrever códigos Python para executar no emulador e no futuro com seu aparelho em mãos vê-los em tempo real. Deixo claro que nem todas funcionalidades estarão ativas por meio do emulador como conexão bluetooth, speech-to-text, câmera e outras funcionalidades avançadas. Você pode ter mais detalhes sobre o emulador no site oficial do Android.
Vamos ao passo - a - passo (neste tutorial foi usado o sistema operacional Mac OS 10.5)
1 - Instalar o Android SDK
Por meio deste post (existem diversos pela internet (Windows)) eu consegui instalar o SDK do Android (neste tutorial a última versão era a 2.2). Com apenas o passo 2: Download the Android SDK, já é possível ter o emulador pronto para uso.
2 - Configurar o Android Virtual Device (AVD)
O próximo passo é criar uma dispositivo virtual (AVD), com este é possível simular o dispositivo com a versão do Android desejado. Para isso navego até a pasta onde eu extraí o android sdk:
Crio um novo AVD, nomeado 'ASE_test', conforme a imagem abaixo:
Selecione o AVD criado e clique no botão 'Start..'
3 - Instalação do ASE (Android Scripting Enviroment)
Você pode instalar por via console, baixando os pacotes no seu browser e depois instalando mediante comandos no console (ver este link) ou você pode fazer toda a instalação dentro do próprio emulador! Muito mais fácil, pois o Google permite instalar aplicativos no seu emulador como se fosse um dispositivo real! Para facilitar esta a visualização desta etapa, preparei um vídeo passo-a-passo ilustrando a instalação completa e inclusive como editar e executar scripts python com o ASE no emulador Android (serve também no dispositivo móvel).
Running Python on Android OS Emulator from Marcel Caraciolo on Vimeo.
O que está acontecendo por baixo ? Para simplicar, o ASE provê uma classe facade (fachada) que permite a integração via API por meio JSON RPC que funciona como um proxy. Assim funcionalidades nativas podem ser acessadas por meio desta fachada em interpretadores como Python e Lua. Claro que estas devem estar encapsuladas pelas classes AndroidFacade e AndroidProxy que de acordo com os autores do projeto são simples de extender.
4- Só programar e se divertir!
Pronto pessoal, vocês podem ter agora o Python rodando no seu emulador ou até no seu aparelho (os mesmos passos podem ser feitos em um dispositivo real). No emulador, embora limitado, já dá uma prévia do que é capaz a plataforma Android que abrange milhares aparelhos de diversas fabricantes. Vale ficar de olho nela, em especial no Brasil! Pode tomar o lugar da Nokia na categoria Smartphones, se a Nokia não acelerar seu desenvolvimento com o MeeGo.
Há mais informações no site oficial do projeto do ASE-Android e se quiser acompanhar a lista de dicussão do mesmo, também se encontra neste link.
Espero ter ajudado a todos a conhecerem mais uma plataforma que Python está presente: A plataforma Android da Google!
Até a próxima,
Atenciosamente,
Marcel Caraciolo
Vamos ao passo - a - passo (neste tutorial foi usado o sistema operacional Mac OS 10.5)
1 - Instalar o Android SDK
Por meio deste post (existem diversos pela internet (Windows)) eu consegui instalar o SDK do Android (neste tutorial a última versão era a 2.2). Com apenas o passo 2: Download the Android SDK, já é possível ter o emulador pronto para uso.
2 - Configurar o Android Virtual Device (AVD)
O próximo passo é criar uma dispositivo virtual (AVD), com este é possível simular o dispositivo com a versão do Android desejado. Para isso navego até a pasta onde eu extraí o android sdk:
- /android-sdk-mac_86/tools (meu caso no Mac)
- C:\android-sdk-windows\tools\android.bat (possível no Windows)
./android (no Mac OS) , C:\android-sdk-windows\tools\android.bat (no Windows).
Crio um novo AVD, nomeado 'ASE_test', conforme a imagem abaixo:
Selecione o AVD criado e clique no botão 'Start..'
3 - Instalação do ASE (Android Scripting Enviroment)
Você pode instalar por via console, baixando os pacotes no seu browser e depois instalando mediante comandos no console (ver este link) ou você pode fazer toda a instalação dentro do próprio emulador! Muito mais fácil, pois o Google permite instalar aplicativos no seu emulador como se fosse um dispositivo real! Para facilitar esta a visualização desta etapa, preparei um vídeo passo-a-passo ilustrando a instalação completa e inclusive como editar e executar scripts python com o ASE no emulador Android (serve também no dispositivo móvel).
Running Python on Android OS Emulator from Marcel Caraciolo on Vimeo.
O que está acontecendo por baixo ? Para simplicar, o ASE provê uma classe facade (fachada) que permite a integração via API por meio JSON RPC que funciona como um proxy. Assim funcionalidades nativas podem ser acessadas por meio desta fachada em interpretadores como Python e Lua. Claro que estas devem estar encapsuladas pelas classes AndroidFacade e AndroidProxy que de acordo com os autores do projeto são simples de extender.
4- Só programar e se divertir!
Pronto pessoal, vocês podem ter agora o Python rodando no seu emulador ou até no seu aparelho (os mesmos passos podem ser feitos em um dispositivo real). No emulador, embora limitado, já dá uma prévia do que é capaz a plataforma Android que abrange milhares aparelhos de diversas fabricantes. Vale ficar de olho nela, em especial no Brasil! Pode tomar o lugar da Nokia na categoria Smartphones, se a Nokia não acelerar seu desenvolvimento com o MeeGo.
Há mais informações no site oficial do projeto do ASE-Android e se quiser acompanhar a lista de dicussão do mesmo, também se encontra neste link.
Espero ter ajudado a todos a conhecerem mais uma plataforma que Python está presente: A plataforma Android da Google!
Até a próxima,
Atenciosamente,
Marcel Caraciolo
7 comentários:
Bacana demais, parabéns pelo post ;)
Mas eu ainda acho que no caso do Android, vale mais a pena trabalhar com Java mesmo, se for para algo profissional =)
Concordo Francisco, ainda não é profissional trabalhar com python em cima do Android, mas vejo um futuro positivo se a Google manter este porting de linguagens para o desenvolvimento na plataforma.
Valeu!
Post muito interessante e esclarecedor, parabens!
Obrigado Arilson pelo post!
Valeu cara! Bom post..
Pow tenho problemas com palavras acentuas no python/android...
Sabe como me ajudar??
Afonso, usa este cabeçalho nos teus códigos:
# -*- coding: utf8 -*-
Postar um comentário