Utilizamos cookies propias y de terceros para proporcionarte una buena experiencia de navegación. Si sigues navegando, entendemos que aceptas su uso. Acepto


Haciendo posible PHP sobre Android.

ASE (Android Scripting Environment) es una aplicación para Android desarrollada por Google gracias a la cual es posible editar y ejecutar scripts en tu terminal móvil. Con este sistema, gran parte de la API de Android, será accesible desde un script. Mediante una capa de interacción JSON RPC implementada en ASE, podremos por ejemplo, realizar llamadas, enviar mensajes o consultar la agenda de teléfonos de nuestros teléfono mediante un secillo script.

Actualmente, ASE da soporte a varios lenguajes de scripting: Python, Ruby o Lua. Como no podía ser de otra manera, desde Irontec echamos de menos el lenguaje de scripting que más utilizamos: PHP. Viendo la potencia de ASE, que permite que cierto tipo de aplicaciones como notificaciones o integraciones sean realizadas rápidamente con lenguajes de scripting, para nosotros era imprescindible que PHP estuviera ahí.

Irontec cuenta con cierta experiencia en el desarrollo de aplicaciones móviles. En los últimos meses, hemos realizado algún proyecto para Android, aunque en el pasado también se han hecho ciertas cosas con J2ME. A día de hoy, la apuesta en cuanto a plataformas móviles que realiza Irontec, se inclina claramente a favor de Android. Con sus limitaciones, es la opción del mercado que más se ajusta a nuestra filosofía. Es obivo que si además de la potencia de Java, disponemos de PHP para llevar a cabo desarrollos medianos, mejor que mejor.

La incidencia para añadir soporte PHP a ASE, lleva abierta más de un año y hasta ahora, no había habido aportación alguna en cuanto a desarrollo, aunque sí muestras de interés por parte de algunos usuarios.

Es por eso que, hacernos cargo de esa incidencia, nos ha parecido un reto interesante, no sólo de cara a futuros desarrollos internos, sino como algo interesante para una parte importante de la comunidad.

Primero ha sido necesario añadir ciertas clases Java que hacen que ASE tenga información acerca de las características particulares de PHP como intérprete (extensión del fichero, valores booleanos, inicio de script...).

Después ha venido la tarea de preparar un ejecutable de PHP. Se ha barajado utilizar Quercus, una implementación de PHP5.2 escrita en Java. A priori puede parecer la opción natural en ASE, viendo que existe soporte a JRuby. Finalmente nos hemos encontrado con bastante problemas en la conversión del bytecode a la máquina virtual de Android: Dalvyk.

Al final, nos hemos decantado por probar con la implementación oficial de PHP. Encontramos una referencia a una guía sobre compilar PHP para Android de Moshe Doron. Desgraciadamente la página web ya no se encontraba disponible ni cacheada así que contactamos con Moshe, y al de unas horas, respondió diciendo que había vuelto a poner la guía online (gracias moshe!). Hemos realizado una compilación cruzada 100% estática de PHP utilizando las herramientas de CodeSourcery. En la guía se realiza una compilación únicamente del core de PHP, pero como mínimo supusimos que necesitaríamos también las extensiones de "json" y "sockets" para poder interactuar con ASE. Esto nos hizo topar con un bug en la versión de producción actual de PHP 5.3 con lo cual por ahora usamos un snapshot del repositorio de PHP.

Superados ambos retos, nos encontramos con las nuevas clases Java que harían que ASE entendiera a PHP y un binario del intérprete PHP funcionando en Android. La nueva dificultad era poder probar el conjunto. Estudiando el mecanismo de ASE, nos damos cuenta de que éste, proveé los intérpretes que el usuario desea. Por esta vía, nos damos cuenta rápidamente de que no hay una forma evidente de probar nuestro conjunto. Es por eso por lo que optamos por fijar manualmente PHP como intérprete soportado en ASE, al igual que lo está una shell que viene instalada por defecto.

En este punto ya podíamos ejecutar scripts sencillos en PHP desde ASE, pero aún seguimos sin acceso a la API de Android. Dicha comunicación, es relativamente sencilla. Simplemente hace falta una capa de comunicación por sockets mediante mensajes JSON. Tirando de las clases análogas en Python y Ruby, hemos entendido el sistema, y portado la clase a PHP.

A estas alturas, podemos decir que hemos conseguido que PHP esté soportado como lenguaje de scripting en las plataformas Android. En próximos días prepararemos el commit, con lo cual esperamos que ASE tenga soporte para PHP pronto. Un granito de arena aportado desde Irontec, para que PHP (posiblemente de los lenguajes de scripting más popular del mundo), esté soportado en terminales Android. Dada la popularidad de PHP, y la expansión del sistema operativo de Google, esperamos que más gente se una al proyecto.

Queremos agradecer desde aquí a Moshe Doron su trabajo en la guía de compilación cruzada de PHP a Android.

Comparte esta información:
  • Twitter
  • Facebook
  • del.icio.us
  • Meneame
  • BarraPunto
  • Google Bookmarks
  • PDF
  • email
Leave a comment

50 Comments.

  1. Wow! Me quito el sombrero! Que buena ahí dándole al androide! Muy juanker el projecto :)

    Ahora a ver qué os sacáis de la manga con PHP ya rulando en Android ;)

  2. Sois más buenos que las madalenas de mi madre. Y encima liberando código :grin:

  3. También Perl esta disponible en ASE, quizás la parte que falte de php, se parezca más a perl que ha python ;)

    http://poisonbit.wordpress.com/2010/05/22/text-to-speech-hello-world-in-android-perl/

    (Lo siento, va en inglés)

  4. Ivan Mosquera Paulo

    @poisonbit De cara a ver ejemplos del uso de ASE tienes toda la razón. Perl es bastante más parecido en sintaxis a Php (o viceversa :-) ) que a Python.
    Es buena idea fijarse en ellos para entender cómo explotar ASE.

    De cara a lo que nos queda por hacer es más javismo que otra cosa.

    Gracias por comentar.

  5. Ivan Mosquera Paulo

    @Txus Muchas gracias!

  6. Ivan Mosquera Paulo

    Epa que se me olvidaba el gran saghul. :grin:
    @saghul Thanks.

  7. y se puede descargar esta version y/o guia con la que habeis hecho todo esto?

    Gracias.

  8. Ivan Mosquera Paulo

    @tony En realidad, este post ya es una guía en sí mismo, si tienes alguna duda puedes preguntar. Si lo que quieres es el resultado final, código incluido, próximamente.

  9. bastante interesante. todavia no entiendo la utilidad efectiva. si quiero escribir applicaciones web le escribo en php y los visualizo en el browser de android. si quiero escribir applicaciones directas de android esto no es un subsituto para application framwork en Java de android. me equivoco?

  10. Iván Mosquera Paulo

    Buena pregunta.

    “si quiero escribir applicaciones directas de android esto no es un subsituto para application framwork en Java de android. me equivoco?”

    Es discutible. El primer objetivo ha sido conseguir lo mismo que tienen los programadores de Python por ejemplo, que es un entorno para interactuar con el API de Android.
    Próximamente será posible distribuir scripts como APKs y dependiendo de la potencia del API de ASE conoceremos el alcance del tipo de aplicaciones que podemos hacer. Tampoco hay que menospreciar el recorrido que le puede quedar aún al proyecto ASE, que de hecho ahora pasa a llamarse SL4A (Scripting Layer for Android), toda una declaración de intenciones.

    Es decir, no se trata de todo o nada. Antes era nada, ahora hay algo y en poco tiempo, quizá muy poco, puede que haya bastante.

  11. A ver si lo he entendido, Una vez desarrollada la aplicación sobre esta plataforma ¿se compila y se instala en teléfonos android como una aplicación normal? ¿es necesario para ejecutar este tipo de plaicaciones tener “algo” instalado previamente en Android? (para ejecutar, no para desarrollar)

    Un saludo.

  12. Iván Mosquera Paulo

    Echa un vistazo a esta entrevista en phpclasses:
    http://www.phpclasses.org/blog/post/125-Developing-PHP-applications-to-run-natively-on-Android-phones.html

    Se responden esa y otras cosas.

  13. Simplemente brillante, ya no sólo lo conseguido, sino el interés en hacernos la vida más fácil… Veremos finalmente hasta dónde podemos llegar con PHP!

    Gracias mil :)

  14. se ve muy interesante el proyecto, estoy deseando probarlo, por fin podre programar aunque sea algo básico para android.

  15. Very exciting!! Looking forward to exploring the limits (or lack of) of what we can do with PHP on this platform.
    Long live PHP and the open source mindset!!

  16. [...]PHP en Android. La empresa Bilbaina Irontec, utilizando la aplicación ASE[...]

  17. Muchísimas gracias, ya tengo ganas de empezar a probar :grin:

  18. lo baje y lo instale, ya encontre en la memoria sd los archivos testnow.php y demas, pero no se como ejecutarlos. tengo un celular Dell Mini 3ix con android 1.5, por favor ayuda…. probe en el navegador el http://localhost pero no funciona ¿como pruebo los scripts?

  19. excelente… muy buen aporte…. gracias :)

  20. I found your blog, i think your website is awsome, keep writing.

  21. Bien amigos, su esfuerzo vale la pena, muy gustoso de que Androide soporte a php.

    Saludos.

  22. I am so happy to hear that we can make Php+Andriod application. But no updates after 2010.No news regarding releasing any applications. Friends any links regarding new applications or anything related to updations on php+Andriod appilcation.
    Wish you good luck irontec team.
    Thanks in advance.

  23. Hola! Soy senior web developer PHP en Uruguay.

    Hoy me levante temprando, pensando si ya había algo de PHP en Android, y me encontré con uds.

    Los quiero felicitar por su trabajo y el esfuerzo, instale la última versión del SL4A y de su código y funcionó perfecto!!.

    Creo que el siguiente paso será ver el tema de la UI.

    Donde puedo encontrar tutoriales, y/o manuales de como poder hacer cosas más potentes con esta API?

    Un saludo desde Uruguay, gracias.

    Nicolás

  24. I have been exploring for a little bit for any high quality articles or weblog posts in this kind of area . Exploring in Yahoo I finally stumbled upon this site. Studying this info So i’m happy to express that I have an incredibly good uncanny feeling I discovered just what I needed. I so much surely will make certain to do not omit this website and provides it a look regularly.

  25. Hello there, I discovered your internet site by the use of Google even as looking for a affiliated matter, your online site arrived up, it appears to be great. I’ve bookmarked it in my google bookmarks.

  26. I am just looking into net and wonder to read about PHP – Android , I tried to download stuffs & tried to get ride on that but didn’t get well as not finding much information about Installing PHP – Android SDK stuffs on Windows XP or Linux Ubuntu/CentOS.

    Please some one share some videos/helps or sample application?

  27. Excelente aportación. Pero mi duda es que si realizo un scrip PHP como lo ejecuto. que programas necesito para poder a empezar a programar.

  28. Excellent article! We are linking to this great article
    on our website. Keep up the great writing.

  29. Pr de la Constitution de 1946

    Tous les articles Instruction civique >>
    Cheap soccer Jerseys
    Au lendemain de la victoire remport par les peuples libres
    sur les r qui ont tent d et de d la personne humaine, le peuple fran
    proclame nouveau que tout humain, sans distinction de race, de religion ni de croyance, poss des droits inali et sacr Ces droits sont r dans le pr de la Constitution.

    Le pr de la Constitution r solennellement
    les droits et les libert de l et du citoyen consacr par la D des Droits de l’homme de 1789 et les principes fondamentaux reconnus par les lois de la R Lire la suite >>

    Le pr de la Constitution proclame, en outre, comme particuli n notre temps, les principes politiques, et sociaux ci-apr :

    La loi garantit la femme, dans tous les domaines, des droits ceux de l Tout homme pers en raison de son action en faveur de la libert a droit d sur les territoires de la R Chacun a le devoir de travailler et le droit d un emploi. Nul ne peut l dans son travail ou son emploi, en raison de ses origines, de ses opinions ou de ses croyances.

    Tout homme peut d ses droits et ses int par l syndicale et adh au syndicat de son choix.

    Le droit de gr s dans le cadre des lois qui le r Tout travailleur participe, par l de ses d la d collective des conditions de travail ainsi qu la gestion des entreprises.

    Tout bien, toute entreprise, dont l a ou acquiert les caract d service public national ou d monopole de fait, doit devenir la propri de la collectivit La Nation assure l et la famille les conditions n leur d Elle garantit tous, notamment l la m et aux vieux travailleurs, la protection de la sant la s mat le repos et les loisirs. Tout humain qui, en raison de son de son physique ou mental, de la situation se trouve dans l de travailler a le droit d de la collectivit des moyens convenables d La Nation proclame la solidarit et l de tous les Fran devant les charges qui r des calamit nationales.

    La Nation garantit l acc de l et de l l la formation professionnelle et la culture. L de l public gratuit et la tous les degr est un devoir de l La R fran fid ses traditions, se conforme aux r du droit public international. Elle n aucune discount bed sheets guerre dans des vues de conqu et n jamais ses forces contre la libert d peuple.

    Sous r de r la France consent aux limitations de souverainet n l et la ralph Lauren Poloshirts d de la paix.

    La France forme avec les peuples d une Union fond sur l des droits et des devoirs, sans distinction de race ni de religion.

    L fran est compos de nations et de peuples qui mettent en commun ou coordonnent leurs ressources et leurs efforts pour d leurs civilisations respectives, accro leur bien- et assurer leur s Fid sa mission traditionnelle, la France entend conduire les peuples dont elle a pris la charge la libert de s eux-m et de g d leurs propres affaires ; tout syst de colonisation fond sur l elle garantit tous l acc aux fonctions publiques et l individuel ou collectif des droits et libert proclam ou confirm ci-dessus.

    Nos sites :

    Avec la chandeleur qui approche c’est le moment
    de revoir la recette de la pâte à crêpe. Avant le carême,
    c’est le moment de profiter avec le carnaval !
    juicy Couture hadnbags
    Pour la Saint Valentin, découvrez sur Tête à Modeler des activités et des travaux manuels pour vos enfants.

    Vous pourrez également découvrir les bricolages et activités à faire pour la fête des grands mères et pour le nouvel an chinois.

    Avec un grand choix de bricolage enfant, de coloriage de noel, de chanson juicy Couture Watches enfant, d’activités pate
    a sel ou origami, vos enfants pourront apprendre à écrire, apprendre leur table
    de multiplication, faire un bracelet br réciter des chanson pour enfant ou même connaître le symptome grossesse.
    Tête à modeler c’est LE site pour occuper les enfants à la maison !

  30. Yo no estoy en linea con lo aqui reflejado, pienso sinceramente que hay muchos aspectos que no han podido ser considerados en cuenta. Pero valoro mucho vuestra opinion, es un buen post.

  31. Interesante proyecto. Todavía sigue en desarrollo?

  32. Despite the fact that people sometimes make use of some great benefits of extended warranty regarding device, put on good enough, lots of OEMs consider this an excellent postscript..
    découvrir gros chaussures air jordan http://www.jennymanbeck.com/node/3

  33. I’ve been surfing online greater than 3 hours lately, but
    I never found any interesting article like
    yours. It’s lovely worth enough for me. In my view, if all site owners and bloggers
    made good content material as you did, the net will be
    a lot more helpful than ever before.

  34. Hi, I think your site might be having browser compatibility
    issues. When I look at your blog site in Safari, it looks fine but when opening in Internet
    Explorer, it has some overlapping. I just wanted to give you a quick heads up!
    Other then that, amazing blog!

  35. You made some good points there. I looked on the internet for the subject and found most people will approve with your website.

  36. I’ve createt a new kind of art named Gubbe. In swedish it means old man o little man. I wanna know what ppl think about it. but I don’t know where to find interested ppl; so I decided to get help here. Can you please go and check my art and tell me what you think? They may look childinsh; but think about it’s name and you’ll find it’s deep meaning. Thank you. . http://www.gubbe.blogfa.com If the page wasn’t loaded completely, please refresh the page..

  37. I know thhis if off topic but I’m looking nto starting my
    own blog and was curious what all iss required to get setup?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very internet smart so I’m not 100% certain.
    Any suggestions or advice would be greatly
    appreciated. Appreciate it

  38. I pay a visit everyday a few web sites and sites to read posts, except this
    weblog offers quality based writing.

  39. I simply desired to appreciate you yet again. I am not sure the things I would have made to happen in the absence of the thoughts provided by you on that question. It was the difficult issue for me personally, nevertheless discovering your professional technique you treated it forced me to weep over fulfillment. I will be thankful for your guidance and in addition trust you know what a great job you’re carrying out instructing people by way of your webblog. I am sure you have never encountered all of us.

  40. I have not checked in here for some time because I thought it was getting boring, but the last few posts are great quality so I guess I will add you back to my daily bloglist. You deserve it my friend :)

  41. mivkzdpef, Hiv Early Symptoms, dVvqzzI, [url=http://symptompages.com/std-symptoms/hiv-symptoms]What are the symptoms of hiv or aids[/url], HrVjkZx, http://symptompages.com/std-symptoms/hiv-symptoms Signs And Symptoms Of Hiv, ajzPASi.

Leave a Reply


[ Ctrl + Enter ]

Trackbacks and Pingbacks: