Plataformas Android de Intel

18
Android* en plataformas Intel® Xavier Hallade, Technical Marketing Engineer, Intel @ph0b - ph0b.com

description

Plataformas Android de Intel presentadas por Xavier Hallade en el Android Day celebrado en Madrid el 06/06/2014

Transcript of Plataformas Android de Intel

Page 1: Plataformas Android de Intel

Android* en plataformas Intel® Xavier Hallade, Technical Marketing Engineer, Intel

@ph0b - ph0b.com

Page 2: Plataformas Android de Intel

Qué estamos haciendo con Android*

Page 3: Plataformas Android de Intel

En qué está trabajando Intel en Android*

Colaborador

Clave en en

AOSP y Kernel

Drivers &

Firmware

Optimizados

Runtimes

extremadamente

afinados

Portando y

optimizando

Browser y Apps

Tecnología de

acercamiento en

NDK Apps

64-Bit

64 bit

Page 4: Plataformas Android de Intel

Colaboración de Intel al paquete de SW Android*

Colaborador de Webkit

Colaborador externo de Chrome

Colaborador externo de Android

Código fuente del kernel de Linux APLICACIONES

FRAMEWORK DE

APLICACIONES

LIBRERÍAS RUNTIME

CAPA DE ABSTRACCIÓN DE

HARDWARE

KERNEL LINUX

Librerías clave

Dalvik VM / ART

Webkit / Chromium

Page 5: Plataformas Android de Intel

Android* en plataformas x86

Page 6: Plataformas Android de Intel

Android* en plataformas x86 – alguna novedad?

• 2009: android-x86.org (empujado por la comunidad)

• 2010: Google TVs

• 2011: AOSP

• 2012: primeros dispositivos de consumo

Page 7: Plataformas Android de Intel

Dispositivos Android* con Intel Inside Motorola* RAZR i

ZTE* Grand X IN

Lava* Xolo X900

Megafon* Mint

Lenovo* K800

Orange* San Diego

2012…

Intel® Yolo

Acer* Liquid C1 Etisalat E-20*

2013… Lenovo* K900

ASUS

Fonepad™ Note

FHD - 6”

ZTE* Geek

ASUS* MeMO

Pad FHD 10

ASUS* Fonepad™

7” Dell* Venue 7/8

Samsung*

Galaxy™ Tab 3

10.1”

LTE in option

2014…

Asus* Zenfones, PadFone Mini, Memo Pad, y más…

Page 8: Plataformas Android de Intel

Estos dispositivos son completamente compatibles con el ecosistema Android* ARM* Android* SDK apps

− Éstas van a funcionar directamente. Estamos optimizando los

Runtimes para plataformas Intel®.

Android* NDK apps − La mayoría corre sin ninguna recopilación en plataformas de consumo.

− Android NDK prove herramientas x86 desde 2011

− Una simple re-compilación usando el Android NDK produce la mejor performance

− Si existe código específico que depende del procesador, puede ser necesario portar

Android Runtime

Core Libraries

DVM / ART

La mayoría de las veces ¡simplemente funciona!

Page 9: Plataformas Android de Intel

Plataformas de desarrollo Android* con Intel Inside

$99: Intel® Atom E3815

(single-core, 1.46 GHz)

$129: Intel® Atom E3825

(dual-core, 1.33 GHz)

Código fuente y BSP:

https://github.com/android-ia

MinnowBoard MAX Intel NUC DN2820FYKH

125 €: Intel® Celeron N2820

(dual-core, 2.13GHz)

Builds y documentación:

https://01.org/android-ia

Page 10: Plataformas Android de Intel

Futuras plataformas Android* basadas en microarquitectura Intel* Silvermont

22nm tri-gate process SSE4.2, AES-NI y Extensiones de Virtualización OpenGL ES 3.1 con extensiones, OpenCL 1.2

Apto 64-bit

Intel® Atom™ Processor Z36xx, Z37xx Series (Bay Trail) Intel® Atom™ Processor Z34xx, Z35XX

Series (Merrifield, Moorefield)

con Gen7 Intel® HD Graphics™ GPU con PowerVR™ Series 6 GPU

La PRÓXIMA plataforma: CherryTrail,

presentando proceso de 14nm

4 cores 2 cores, 4 cores

Page 11: Plataformas Android de Intel

Mejorando la compatibilidad de las aplicaciones que usan Android* NDK

Page 12: Plataformas Android de Intel

Qué es una aplicación NDK?

Estas librerías son archivos .so, hallados

normalmente en libs/CPU_ABI/.

Una aplicación puede hacer algunos llamados a

estas librerías nativas o apoyarse casi

exlcusivamente en éstas.

Estas librerías pueden ser generadas de Fuentes

nativas dentro de la carpeta jni, game engines, o

requeridas por librerías de terceros.

No existe una aplicación 100% nativa. Hasta una

aplicación escrita completamente en C/C++, usando

native_app_glue.h será ejecutada en el contexto de la

Dalvik Virtual Machine o ART.

Es una aplicación Android* que usa librerías dependientes de la CPU.

Page 13: Plataformas Android de Intel

Si tienes el código fuente de tus librerías nativas, puedes compilarlo para diferentes arquitecturas de CPU seteando APP_ABI a all en la Makefile “jni/Application.mk”:

APP_ABI=all

El NDK generará el código optimizado para todas las ABIs objetivo

Inclusive puedes pasar la variable APP_ABI directamente a ndk-build, y

especificar cada ABI:

ndk-build APP_ABI=x86

NDK: configurando los ABIs objetivo

Se construyen las libs ARM v7a

Se construyen las libs ARM v5

Se construyen las libs x86

Se construyen las libs mips

Pon APP_ABI=all dentro de

Application.mk

Corre ndk-build…

Page 14: Plataformas Android de Intel

APKs “gordos” Por defecto, un APK contiene librerías por cada ABI soportada.

Instala librerías

lib/armeabi

Instala librerías

lib/armeabi-v7a

Instala librerías

lib/x86

libs/armeabi-v7a

libs/x86

libs/armeabi

APK file

Se instalan las librerías para la ABI seleccionada, y las otras permanecen dentro del APK

que fue bajado.

Page 15: Plataformas Android de Intel

Múltiples APKs

Google Play* soporta múltiples APKs para la misma aplicación.

Qué APK compatible será elegido para un dispositivo depende por completo de android:VersionCode

Si tienes múltiples APKs para múltiples ABIs, lo mejor es prefijar tu version actual del código con un dígito representando la ABI:

2310 6310

Puedes tener más opticones para múltiples APKs: he aquí una convención que funcionará si estás usando todas éstas:

x86 ARMv7

Page 16: Plataformas Android de Intel

Subiendo múltiples APKs a la tienda

Cambia a modo avanzado antes de

subir el segundo APK.

Page 17: Plataformas Android de Intel

Soporte de terceros a librerías x86

Game engines/librerías con soporte x86:

• Havok Anarchy SDK: android x86 target disponible

• Unreal Engine 3: android x86 target disponible

• Marmalade: android x86 target disponible

• Cocos2Dx: set APP_ABI in Application.mk

• FMOD: librería x86 incluída, configura ABIs en Application.mk

• AppGameKit: librería x86 incluída, configura ABIs en Application.mk

• libgdx: x86 soportada por defecto en las últimas versiones

• AppPortable: soporte x86 disponible

• Adobe Air: soporte x86 en versiones beta

• …

No soportan x86 pero funcionan en dispositivos de consumo:

• Corona

• Unity

Page 18: Plataformas Android de Intel

Q&A

[email protected]

@ph0b – ph0b.com