SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Ivan Mosquera <ivan@ivanmosquera.net>
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en Android
$self
● Iván Mosquera
– ZCE
– PHP, Java, C.
– Fundador proyecto PHP for Android.
– @ivmos
● Irontec
– Consultoría software libre.
– Desarrollo/Sistemas/VoIp/Formación.
– @irontec
PHP for Android: scripting PHP en Android
Presentación
● http://www.slideshare.net/ivmos
● http://www.slideshare.net/irontec
PHP for Android: scripting PHP en Android
Index
● Android.
– Introducción.
– Arquitectura.
● PHP en Android
● Compilación PHP.
● SL4A y PhpForAndroid.
● Ejemplo: script “DondeEstoy”.
– PFAf
● Desarrollo y distribución.
● Ruegos y preguntas.
PHP for Android: scripting PHP en Android
Android
● OS móvil.
● Libre
● 200.000 activaciones/día.
● Hacia el tablet?
PHP for Android: scripting PHP en Android
Android
PHP for Android: scripting PHP en Android
Android
PHP for Android: scripting PHP en Android
PHP en Android
● Android “es” Linux.
● php debería funcionar...
– Y claro que funciona.
● Compilación cruzada ARM.
● Método 1 (sencillo):
– Compilación estática gnu libc (> 7MB)
PHP for Android: scripting PHP en Android
PHP en Android
● Método no tan fácil:
– Linkado a bionic.
● Bionic: libc de Android
– BSD.
– sizeof(gnu_libc) * 0.5
– Ciertas carencias.
● PHP en Android.
– Php-cli sapi
– Agcc
– Tweaks por bionic.
– =~ 2MB
– Sockets, json.
PHP for Android: scripting PHP en Android
El problema
● API php → OK
● UI? (php-gtk?)
● Llamar?
● Mensajes?
● Geolocalización?
● Sensores?
● ...
● Web móvil...
PHP for Android: scripting PHP en Android
La solución
● Proyecto Google (Damon Kohler), libre.
● SL4A (Scripting Layer For Android) (antes ASE)
● Aplicación Android (APK).
● Capa intermedia para lenguajes scripting.
● Expone parte del API de Android.
● Muy activo, releases frecuentes.
PHP for Android: scripting PHP en Android
La solución
● Lenguajes soportados oficialmente:
– Python.
– Perl.
– Ruby.
– Lua...
● Cada intérprete → instalador APK.
● PHP? → incidencia #40 → phpforandroid.net
http://code.google.com/p/android-scripting/issues/detail?id=40
PHP for Android: scripting PHP en Android
The PFA project
● Http://www.phpforandroid.net
● @phpforandroid
● Soporte PHP a SL4A.
● Mantener APK.
● Mantener binario PHP para Android.
● Mantener framework.
● Comunidad, libre.
PHP for Android: scripting PHP en Android
APKs
● Dos APKs:
– SL4A
– PFA
● SL4A detecta
PFA con un
intent filter.
PHP for Android: scripting PHP en Android
PHP for Android
● Instalador:
– Binario PHP.
● php_rX.zip
– Scripts
● php_scripts_rX.zip
– Otros
● Android.php
● php.ini
● php_extras_rX.zip
PHP for Android: scripting PHP en Android
SL4A
● Administración de scripts.
● Android Facades.
● Instalación intérpretes.
PHP for Android: scripting PHP en Android
PHP for Android y SL4A
● 0.1 (ASE r26 unofficial, php 5.3.3rc2)
● 0.2 (SL4A_r0, php 5.3.3rc3)
● 0.3 (SL4A_r2+, php 5.3.3)
PHP for Android: scripting PHP en Android
La clase Android
<?php
include 'Android.php';
$droid = new Android();
public function __call($name, $args) {
return $this->rpc($name, $args);
}
Json RPC
PHP for Android: scripting PHP en Android
La clase Android
public function rpc($method, $args) {
$data = array(
'id'=>$this->_id,
'method'=>$method,
'params'=>$args
);
$request = json_encode($data) . “n”;
$sent = socket_write($this->_socket, $request,
strlen($request));
PHP for Android: scripting PHP en Android
La clase Android
$response = socket_read($this->_socket, 1024,
PHP_NORMAL_READ) or die("Could not read
inputn"); $this->_id++;
$result = json_decode($response);
return array ('id' => $result->id,
'result' => $result->result,
'error' => $result->error
);
}
PHP for Android: scripting PHP en Android
La clase Android
<?php
require “Android.php”;
$droid = new Android();
$droid->viewContacts();
PHP for Android: scripting PHP en Android
Un ejemplo: script “DondeEstoy”
● Detectar geolocalización.
● Construir SMS || Email.
PHP for Android: scripting PHP en Android
Un ejemplo: script “DondeEstoy”
$droid->startLocating();
– Received: {"id":24,"method":"startLocating","params":[]}
– Sent: {"error":null,"id":24,"result":null}
$location = $droid->readLocation();
– Received: {"id":25,"method":"readLocation","params":[]}
– Sent: {"error":null,"id":25,"result":{"network":
{"provider":"network","time":1288215482448,"longitud
e":-
3.0339431,"latitude":43.3319985,"speed":0,"accuracy"
:76,"altitude":0}}}
PHP for Android: scripting PHP en Android
Un ejemplo: script “DondeEstoy”
$droid->stopLocating();
– Received: {"id":26,"method":"stopLocating","params":[]}
– Sent: {"error":null,"id":26,"result":null}
$longitude =
$location["result"]->network->longitude;
$latitude =
$location["result"]->network->latitude;
$mapLink = sprintf('http://maps.google.com/maps?
q=%s,%s', $latitude, $longitude);
PHP for Android: scripting PHP en Android
Un ejemplo: script “DondeEstoy”
$data .= "Google maps : $mapLink";
$droid->sendEmail('', 'Donde estoy', $data );
– Received: {"id":29,"method":"sendEmail","params":
["","Donde estoy","admin_area : Pau00eds Vasco
nfeature_name : 3 nsub_admin_area : Vizcaya
npostal_code : 48980 nlocality : Santurtzi
nthoroughfare : Calle del Puerto Pesquero
ncountry_code : ES ncountry_name : Espau00f1a
nnGoogle Maps: http://maps.google.com/maps?
q=13.3319985, 6.0339431"]}
– Sent: {"error":null,"id":29,"result":null}
PHP for Android: scripting PHP en Android
PFAf
● Maciej Wilgucki @wilgucki
● Framework incluido en PFA desde 0.3.
● Extender ScriptAbstract, implementar init.
● Organizar script como MAE (estados).
● Desde cada FooAction
– $this->setNextAction('bar');
PHP for Android: scripting PHP en Android
PFAf
start
locate
credicts
info
PHP for Android: scripting PHP en Android
Entorno desarrollo
● Desde SL4A...
– Emulador: adb.
● [allow_url_fopen, allow_url_include] → ON
– testnow.php
– testcache.php
● Ejecución remota.
PHP for Android: scripting PHP en Android
Distribución de scripts
● Carpeta scripts de SL4A.
● Barcode (<4296 chars)
● Script en APK:
– Parametrización proyecto Plantilla.
– ANT
PHP for Android: scripting PHP en Android
Roadmap
● SL4A
– Ampliación API.
● GUI
– Estabilización.
● PFA
– Sqlite,... phpize.
– Siguiendo SL4A.
PHP for Android: scripting PHP en Android
?????
Ruegos y preguntas
Logo @Workoholics_

Contenu connexe

Tendances

Desarrollando Extensiones en OpenOffice.org
Desarrollando Extensiones en OpenOffice.orgDesarrollando Extensiones en OpenOffice.org
Desarrollando Extensiones en OpenOffice.orgAlexandro Colorado
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDDEmergya
 
WeLoveJS 2014: Un paseo por FirefoxOS
WeLoveJS 2014: Un paseo por FirefoxOSWeLoveJS 2014: Un paseo por FirefoxOS
WeLoveJS 2014: Un paseo por FirefoxOSFrancisco Jordano
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 

Tendances (13)

Java poliglota
Java poliglotaJava poliglota
Java poliglota
 
Desarrollando Extensiones en OpenOffice.org
Desarrollando Extensiones en OpenOffice.orgDesarrollando Extensiones en OpenOffice.org
Desarrollando Extensiones en OpenOffice.org
 
¿Conoces swift?
¿Conoces swift?¿Conoces swift?
¿Conoces swift?
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDD
 
WeLoveJS 2014: Un paseo por FirefoxOS
WeLoveJS 2014: Un paseo por FirefoxOSWeLoveJS 2014: Un paseo por FirefoxOS
WeLoveJS 2014: Un paseo por FirefoxOS
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Primeros Pasos en PyQt4
Primeros Pasos en PyQt4Primeros Pasos en PyQt4
Primeros Pasos en PyQt4
 
ASP.NET 5 - DotNetters
ASP.NET 5 - DotNettersASP.NET 5 - DotNetters
ASP.NET 5 - DotNetters
 
Cómo contribuir en Proyectos de Código Abierto
Cómo contribuir en Proyectos de Código AbiertoCómo contribuir en Proyectos de Código Abierto
Cómo contribuir en Proyectos de Código Abierto
 

Similaire à PHP for Android: scripting PHP en Android

Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Daniel González Cerviño
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanJose Manuel Ortega Candel
 
Lima gtug startupandroidworkshopaol4
Lima gtug startupandroidworkshopaol4Lima gtug startupandroidworkshopaol4
Lima gtug startupandroidworkshopaol4Lima GTUG
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 
5 Ideas con Silverlight para tu Empresa
5 Ideas con Silverlight para tu Empresa5 Ideas con Silverlight para tu Empresa
5 Ideas con Silverlight para tu EmpresaSoftware Guru
 
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5Smad IT
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en androidEscurra Walter
 
PHPAJAX
PHPAJAXPHPAJAX
PHPAJAXrodasc
 
Html 5
Html 5Html 5
Html 5Tensor
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Desarrollo de apps móviles desde cero
Desarrollo de apps móviles desde ceroDesarrollo de apps móviles desde cero
Desarrollo de apps móviles desde ceroInitsogar
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Ignacio Muñoz Vicente
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonManuel Pérez
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y GoJM Robles
 

Similaire à PHP for Android: scripting PHP en Android (20)

Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
 
ADWA Desarrollo Web con Open Source
ADWA Desarrollo Web con Open SourceADWA Desarrollo Web con Open Source
ADWA Desarrollo Web con Open Source
 
Lima gtug startupandroidworkshopaol4
Lima gtug startupandroidworkshopaol4Lima gtug startupandroidworkshopaol4
Lima gtug startupandroidworkshopaol4
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 
5 Ideas con Silverlight para tu Empresa
5 Ideas con Silverlight para tu Empresa5 Ideas con Silverlight para tu Empresa
5 Ideas con Silverlight para tu Empresa
 
Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
Api rest client en Android
Api rest client en AndroidApi rest client en Android
Api rest client en Android
 
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
Smad TI - Phonegap Aplicaciones Nativas Móviles con HTML5
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
 
Symfony Parte 3
Symfony Parte 3Symfony Parte 3
Symfony Parte 3
 
PHPAJAX
PHPAJAXPHPAJAX
PHPAJAX
 
Html 5
Html 5Html 5
Html 5
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Recursos open source y networking colaborativo
Recursos open source y networking colaborativoRecursos open source y networking colaborativo
Recursos open source y networking colaborativo
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Desarrollo de apps móviles desde cero
Desarrollo de apps móviles desde ceroDesarrollo de apps móviles desde cero
Desarrollo de apps móviles desde cero
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con Python
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
 

Plus de Irontec

Gestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoGestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoIrontec
 
Sobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPSobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPIrontec
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderIrontec
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCIrontec
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Irontec
 
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17Irontec
 
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...Irontec
 
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / KamailioEscalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / KamailioIrontec
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerIrontec
 
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec
 
Comparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseComparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseIrontec
 
Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Irontec
 
Curso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecCurso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecIrontec
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskIrontec
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanIrontec
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPIrontec
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosIrontec
 
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraEuskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraIrontec
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Irontec
 
Irontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec
 

Plus de Irontec (20)

Gestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajoGestion de proyectos con GitLab en tiempos de teletrabajo
Gestion de proyectos con GitLab en tiempos de teletrabajo
 
Sobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIPSobre cómo gestionamos centenares de despliegues de VoIP
Sobre cómo gestionamos centenares de despliegues de VoIP
 
Presente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ ProviderPresente y futuro del nuevo IVOZ Provider
Presente y futuro del nuevo IVOZ Provider
 
Automated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTCAutomated Testing para aplicaciones VoIP, WebRTC
Automated Testing para aplicaciones VoIP, WebRTC
 
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
 
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
 
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
 
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / KamailioEscalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
 
VoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz providerVoIP2DAY 2015 - Workshop comercial ivoz provider
VoIP2DAY 2015 - Workshop comercial ivoz provider
 
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
 
Comparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSenseComparativa Firewall: IPCop vs. pfSense
Comparativa Firewall: IPCop vs. pfSense
 
Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)Introducción a varnish cache (@irontec)
Introducción a varnish cache (@irontec)
 
Curso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | IrontecCurso de introducción a Sphinx | Irontec
Curso de introducción a Sphinx | Irontec
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: Dialplan
 
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIPCurso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 02: SIP
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzados
 
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskeraEuskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Irontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IPIrontec - Presentación de servicios de telefonía IP
Irontec - Presentación de servicios de telefonía IP
 

Dernier

El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 

Dernier (20)

El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 

PHP for Android: scripting PHP en Android

  • 1. Ivan Mosquera <ivan@ivanmosquera.net> PHP for Android: scripting PHP en Android
  • 2. PHP for Android: scripting PHP en Android $self ● Iván Mosquera – ZCE – PHP, Java, C. – Fundador proyecto PHP for Android. – @ivmos ● Irontec – Consultoría software libre. – Desarrollo/Sistemas/VoIp/Formación. – @irontec
  • 3. PHP for Android: scripting PHP en Android Presentación ● http://www.slideshare.net/ivmos ● http://www.slideshare.net/irontec
  • 4. PHP for Android: scripting PHP en Android Index ● Android. – Introducción. – Arquitectura. ● PHP en Android ● Compilación PHP. ● SL4A y PhpForAndroid. ● Ejemplo: script “DondeEstoy”. – PFAf ● Desarrollo y distribución. ● Ruegos y preguntas.
  • 5. PHP for Android: scripting PHP en Android Android ● OS móvil. ● Libre ● 200.000 activaciones/día. ● Hacia el tablet?
  • 6. PHP for Android: scripting PHP en Android Android
  • 7. PHP for Android: scripting PHP en Android Android
  • 8. PHP for Android: scripting PHP en Android PHP en Android ● Android “es” Linux. ● php debería funcionar... – Y claro que funciona. ● Compilación cruzada ARM. ● Método 1 (sencillo): – Compilación estática gnu libc (> 7MB)
  • 9. PHP for Android: scripting PHP en Android PHP en Android ● Método no tan fácil: – Linkado a bionic. ● Bionic: libc de Android – BSD. – sizeof(gnu_libc) * 0.5 – Ciertas carencias. ● PHP en Android. – Php-cli sapi – Agcc – Tweaks por bionic. – =~ 2MB – Sockets, json.
  • 10. PHP for Android: scripting PHP en Android El problema ● API php → OK ● UI? (php-gtk?) ● Llamar? ● Mensajes? ● Geolocalización? ● Sensores? ● ... ● Web móvil...
  • 11. PHP for Android: scripting PHP en Android La solución ● Proyecto Google (Damon Kohler), libre. ● SL4A (Scripting Layer For Android) (antes ASE) ● Aplicación Android (APK). ● Capa intermedia para lenguajes scripting. ● Expone parte del API de Android. ● Muy activo, releases frecuentes.
  • 12. PHP for Android: scripting PHP en Android La solución ● Lenguajes soportados oficialmente: – Python. – Perl. – Ruby. – Lua... ● Cada intérprete → instalador APK. ● PHP? → incidencia #40 → phpforandroid.net http://code.google.com/p/android-scripting/issues/detail?id=40
  • 13. PHP for Android: scripting PHP en Android The PFA project ● Http://www.phpforandroid.net ● @phpforandroid ● Soporte PHP a SL4A. ● Mantener APK. ● Mantener binario PHP para Android. ● Mantener framework. ● Comunidad, libre.
  • 14. PHP for Android: scripting PHP en Android APKs ● Dos APKs: – SL4A – PFA ● SL4A detecta PFA con un intent filter.
  • 15. PHP for Android: scripting PHP en Android PHP for Android ● Instalador: – Binario PHP. ● php_rX.zip – Scripts ● php_scripts_rX.zip – Otros ● Android.php ● php.ini ● php_extras_rX.zip
  • 16. PHP for Android: scripting PHP en Android SL4A ● Administración de scripts. ● Android Facades. ● Instalación intérpretes.
  • 17. PHP for Android: scripting PHP en Android PHP for Android y SL4A ● 0.1 (ASE r26 unofficial, php 5.3.3rc2) ● 0.2 (SL4A_r0, php 5.3.3rc3) ● 0.3 (SL4A_r2+, php 5.3.3)
  • 18. PHP for Android: scripting PHP en Android La clase Android <?php include 'Android.php'; $droid = new Android(); public function __call($name, $args) { return $this->rpc($name, $args); } Json RPC
  • 19. PHP for Android: scripting PHP en Android La clase Android public function rpc($method, $args) { $data = array( 'id'=>$this->_id, 'method'=>$method, 'params'=>$args ); $request = json_encode($data) . “n”; $sent = socket_write($this->_socket, $request, strlen($request));
  • 20. PHP for Android: scripting PHP en Android La clase Android $response = socket_read($this->_socket, 1024, PHP_NORMAL_READ) or die("Could not read inputn"); $this->_id++; $result = json_decode($response); return array ('id' => $result->id, 'result' => $result->result, 'error' => $result->error ); }
  • 21. PHP for Android: scripting PHP en Android La clase Android <?php require “Android.php”; $droid = new Android(); $droid->viewContacts();
  • 22. PHP for Android: scripting PHP en Android Un ejemplo: script “DondeEstoy” ● Detectar geolocalización. ● Construir SMS || Email.
  • 23. PHP for Android: scripting PHP en Android Un ejemplo: script “DondeEstoy” $droid->startLocating(); – Received: {"id":24,"method":"startLocating","params":[]} – Sent: {"error":null,"id":24,"result":null} $location = $droid->readLocation(); – Received: {"id":25,"method":"readLocation","params":[]} – Sent: {"error":null,"id":25,"result":{"network": {"provider":"network","time":1288215482448,"longitud e":- 3.0339431,"latitude":43.3319985,"speed":0,"accuracy" :76,"altitude":0}}}
  • 24. PHP for Android: scripting PHP en Android Un ejemplo: script “DondeEstoy” $droid->stopLocating(); – Received: {"id":26,"method":"stopLocating","params":[]} – Sent: {"error":null,"id":26,"result":null} $longitude = $location["result"]->network->longitude; $latitude = $location["result"]->network->latitude; $mapLink = sprintf('http://maps.google.com/maps? q=%s,%s', $latitude, $longitude);
  • 25. PHP for Android: scripting PHP en Android Un ejemplo: script “DondeEstoy” $data .= "Google maps : $mapLink"; $droid->sendEmail('', 'Donde estoy', $data ); – Received: {"id":29,"method":"sendEmail","params": ["","Donde estoy","admin_area : Pau00eds Vasco nfeature_name : 3 nsub_admin_area : Vizcaya npostal_code : 48980 nlocality : Santurtzi nthoroughfare : Calle del Puerto Pesquero ncountry_code : ES ncountry_name : Espau00f1a nnGoogle Maps: http://maps.google.com/maps? q=13.3319985, 6.0339431"]} – Sent: {"error":null,"id":29,"result":null}
  • 26. PHP for Android: scripting PHP en Android PFAf ● Maciej Wilgucki @wilgucki ● Framework incluido en PFA desde 0.3. ● Extender ScriptAbstract, implementar init. ● Organizar script como MAE (estados). ● Desde cada FooAction – $this->setNextAction('bar');
  • 27. PHP for Android: scripting PHP en Android PFAf start locate credicts info
  • 28. PHP for Android: scripting PHP en Android Entorno desarrollo ● Desde SL4A... – Emulador: adb. ● [allow_url_fopen, allow_url_include] → ON – testnow.php – testcache.php ● Ejecución remota.
  • 29. PHP for Android: scripting PHP en Android Distribución de scripts ● Carpeta scripts de SL4A. ● Barcode (<4296 chars) ● Script en APK: – Parametrización proyecto Plantilla. – ANT
  • 30. PHP for Android: scripting PHP en Android Roadmap ● SL4A – Ampliación API. ● GUI – Estabilización. ● PFA – Sqlite,... phpize. – Siguiendo SL4A.
  • 31. PHP for Android: scripting PHP en Android ????? Ruegos y preguntas Logo @Workoholics_