Android (Español)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngEste artículo o sección necesita ser traducido.Tango-preferences-desktop-locale.png

Notas: Desactualizado. (Discusión en Talk:Android (Español)#)

Explorando dispositivos de Android

Cuando un dispositivo moderno de Android se conecta a un computador con el cable USB, se puede usar el Protocolo de transferencia de medios (MTP en ingles) para transferir archivos y el #Puente de depurado de Android[broken link: invalid section] (ADB en ingles) para depurar.

Archivos pueden ser transferidos con varios protocolos (SSH, FTP, Samba, HTTP). Solo es necesario establecer un servidor y un cliente, mediante aplicaciones Android puede convertirse en uno de estos.

Desarrollo en Android

Para desarrollar aplicaciones en Android necesita tres requisitos:

  • el componente básico de Android SDK
  • uno o múltiples paquetes de plataforma de Android SDK
  • interfaz de usuario

La interfaz oficial es #Android Studio, la cual contiene su propio gestor de SDK.

Android Studio

Android Studio es el entorno oficial de desarrollo de Android basado en IntelliJ Idea. Contiene herramientas de desarrollo y depuración de Android integradas.

Se puede instalar con el paquete android-studioAUR.

Nota:

Normalmente, aplicaciones son construidas en el GUI de Android Studio. Para construir desde una terminal de comandos usando por ejemplo ./gradlew assembleDebug), agregue lo siguiente a su archivo ~/.bashrc:

export ANDROID_SDK_ROOT=/opt/android-sdk

Instalación del SDK

Los paquetes del SDK de Android pueden ser instalados directamente usando #Android Studio y su gestionador de SDK, también es posible usar la herramienta de terminal sdkmanager (la cual hace parte de las herramientas del SDK de Android). Algunos paquetes del SDK también estan disponibles en el AUR.

Los paquetes del SDK requeridos son:

Paquete Android SDK Estilo del SDK Paquete en AUR Dummy en AUR Herramientas de terminal
SDK Tools tools android-sdkAUR android-sdk-dummyAUR sdkmanager, apkanalizer, avdmanager, mksdcard, proguard
SDK Build-Tools build-tools;version android-sdk-build-toolsAUR android-sdk-build-tools-dummyAUR apksigner, zipalign
SDK Platform-Tools platform-tools android-sdk-platform-toolsAUR android-sdk-platform-tools-dummyAUR adb, #fastboot y systrace
SDK Platform platforms;android-level android-platformAUR, older versions No se necesita

El paquete android-tools proporciona adb, #fastboot, e2fsdroid, mke2fs.android, mkbootimg y ext2simg.

Nota:  
  • El SDK de Android contiene binarios de 32-bit, debe habilitar el repositorio multilib. De lo contrario encontrara un error error: target not found: lib32-*.
  • Si ha decidido instalar los paquetes con el gestor interno de Android Studio, instale los paquetes en la columna Dummy en AUR para instalar los programas requeridos.

Emulator de Android

El Emulador de Android esta disponible como el paquete de SDK emulator o el paquete android-emulatorAUR. Un paquete dummy android-emulator-dummyAUR también.

Para iniciar el emulador de Android es necesario tener una imagen de sistema de Intel o ARM. Se pueden instalar desde AUR [1], con sdkmanager o usando el gestor AVD en Android Studio.

Otros paquetes de SDK en AUR

La Libreria de Soporte de Android esta disponible desde el repositorio Maven de Google. También lo puede instalar localmente a traves del paquete de SDK extras;android;m2repository, disponible en android-support-repositoryAUR.

Cambiar el dueño de /opt/android-sdk

El SDK de Android será instalado en /opt/android-sdk/. Esta carpeta tiene permisos de root, así que debe ejecutar el gestor de SDK como root, de lo contrario no podrá modificar nada en esta carpeta. Si desea usar su usuario regular, es necesario crear el grupo sdkusers:

# groupadd sdkusers

Agregue su usuario a este grupo:

# gpasswd -a <ususario> sdkusers

Cambie el grupo de la carpeta:

# chown -R :sdkusers /opt/android-sdk/

Cambie los permisos de la carpeta para que el usuario agregado a este grupo pueda hacer cambios:

# chmod -R g+w /opt/android-sdk/

Reinicie sesión o como su <usuario> ejecute en una terminal:

$ newgrp sdkusers
Nota: Como una alternativa a la instalación global con los paquetes de AUR, el SDK pude ser instalado en la carpeta raíz del usuario con las siguientes instrucciones(en ingles). También se pueden usar los paquetes android-*-dummy del AUR para manejar dependencias del sistema.

Compilación

Nótese que estas instrucciones están basadas en instrucciones oficiales de AOSP. Otros sistemas derivados como LineageOS normalmente requieren mas pasos.

Paquetes requeridos

Para construir cualquier versión de Android, es necesario instalar lo siguiente:

El meta paquete aosp-develAUR provee todos estos paquetes para una instalación mas simple.

Adicionalmente, LineageOS requiere los siguientes paquetes: xml2AUR, lzop, pngcrush, imagemagick

Estos pueden ser instalados con el meta paquete lineageos-develAUR.

Kit de desarrollo de Java

La versión JDK requerida depende de la versión de Android que se quiere construir:

  • Para Android 7 y 8 (Nougat y Oreo), OpenJDK 8 es necesario, el cual esta disponible en el paquete jdk8-openjdk.
  • Para Android 5 y 6 (Lollipop y Marshmallow), OpenJDK 7 es necesario, el cual esta disponible en el paquete jdk7-openjdk.

Versiones anterires requieren Oracle JDK instalado en el sistema de construcción. Estas no funcionaran con OpenJDK.

  • Para Android 2.3 a 4.4 (Gingerbread a KitKat), Java 6 es necesario, el cual esta disponible en el paquete jdk6AUR.
  • Para Android 1.5 a 2.2 (Cupcake a Froyo), Java 5 es necesario, el cual esta disponible en el paquete jdk5AUR.
Nota: Android espera que Java este en /usr/lib/jvm/java-versión-openjdk-amd64.

Para evitar este requisito, la variable de entorno JAVA_HOME debe ser establecida:

$ export JAVA_HOME=/usr/lib/jvm/java-versión-openjdk
Este cambio solo sera valido para la sesión actual en esa terminal.

Configurando el entorno de Compilación

Instale el paquete repo.

Cree un directorio para la construcción:

$ mkdir ~/android
$ cd ~/android

El proceso de construcción de Android espera que python sea python2. Cree un entorno virtual con python2 y activelo:

$ virtualenv2 venv
$ source venv/bin/activate
Nota:
  • Esta activación solo es valida por la sesión actual en la terminal. El entorno virtual sera guardado en el directorio venv.
  • Durante la construcción es posible encontrar errores de módulos que no existen en python. Una solución es crear enlaces simbolicos de /usr/lib/python2.7/* a ~/android/venv/lib/python2.7/, cambie el directorio android si su directorio de construcción es diferente.

Ejemplo:

$ ln -s /usr/lib/python2.7/* ~/android/venv/lib/python2.7/

o, asumiendo que el directorio de construcción es Data/Android_Build:

$ ln -s /usr/lib/python2.7/* /Data/Android_Build/venv/lib/python2.7/

Descarga de código fuente

Esto clonara los repositorio. El usuario 'solo debe hacer esto la primera vez que se quiere construir Android, o si se quieren cambiar ramas.

  • El comando repo tiene la opción -j que funciona similarmente a la usada en make. Esta controla el numero de descargas simultaneas, se debe ajustar este valor dependiendo en la velocidad de descarga disponible.
  • Es necesario especificar una rama (lanzamiento de Android) con la opción -b. Si no se especifica ninguna rama, se obtendrá la rama maestra.
 $ repo init -u https://android.googlesource.com/platform/manifest -b master
 $ repo sync -j4
Nota: Para disminuir tiempos de sincronización aun mas, se puede usar la opción -c de tal manera:
$ repo sync -j8 -c

La opción -c solo sincronizara la rama especificada en el manifiesto, lo cual es definida por la rama seleccionada con la opción -b, o la rama por defecto que el mantenedor eligió.

Es necesario esperar un largo tiempo. Solo el código sin compilar, junto con los directorios .repo y .git son mas de 10GB. Desde Android 6.0.1, el código fuente completo es alrededor de 40GB.

Nota: Si desea actualizar su copia local del código de Android, en algún momento en el futuro, simplemente entre al directorio de construcción, active el entorno virtual y re-sincronice:
$ repo sync

Compilación del código

Esto debe funcionar para la construcción de AOSP:

$ source build/envsetup.sh
$ lunch full-eng
$ make -j4

Si se ejecuta lunch sin argumentos, preguntara que tipo de construcción se debe crear. Use la opción -j con un numero entre uno y el doble de núcleos disponibles.

La construcción va a tomar bastante tiempo.

Nota:
  • Asegúrese de tener suficiente RAM. Android usara bastante el directorio /tmp. Por defecto la partición donde el directorio /tmp esta montado debe ser la mitad del RAM disponible. Si esta se llena totalmente la construcción fallara. 4GB de RAM o más es recomendable. Alternativamente, se puede remover tmpfs del fstab.
  • Por ejemplo en una maquina dual-E5520 (2 CPUs, 4 núcleos por CPU, 2 hilos por nucleo), la construcción mas rápida se hace con comandos entre make -j16 and make -j32.

Probando la construcción

Cuando termine, ejecute/compruebe la imagen final:

$ emulator

Crear una imagen para instalar

Para crear una imagen que puede ser instalada es necesario ejecutar:

make -j8 updatepackage

Esto creara una imagen dentro de un archivo zip en el directorio out/target/product/hammerhead, asumiendo que hammerhead es su dispositivo. Este archivo zip ya se puede instalar.

Instalación

En caso que se desee instalar el sistema original en su dispositivo después de probar diferentes ROMs, busque las instrucciones para su dispositivo en el foro de XDA.

Fastboot

Fastboot así como ADB están incluidos en el paquete android-tools.

Nota: Restaurar el firmware de un dispositivo con fastboot puede ser complicado, una buena idea es revisar los foros de los desarrolladores de XDA por un firmware original, el cual normalmente es un archivo *.zip. Dentro de este generalmente se encuentran los archivos del firmware y un script flash-all.sh. Por ejemplo, para el Google Nexus o para el OnePlus One en XDA.

Dispositivos Samsung

Los dispositivos producidos por Samsung no se pueden (re-)instalar usando fastboot. La alternativa es usar Heimdall o Odin, usando una maquina virtual con Windows:

Heimdall

Heimdall es un set de herramientas que funciona en varias plataformas de codigo abierto usado para instalar firmware, también conocido como ROMs en dispositivos Samsung. Puede ser instalado con el paquete heimdallAUR.

Las instrucciones de instalacion se encuentran en repositorio de GitLab o en los foros de XDA.

Odin con Virtualbox

Nota: Esta sección solo cubre la preparación y no la instalación. Busque en los foros de XDA para encontrar las indicaciones exactas para su dispositivo. Por ejemplo el Samsung Galaxy S4.

Es posible restaurar el firmware de Android en el dispositivo de Samsung usando Odin, pero dentro de una maquina virtual, en este caso usando VirtualBox.

Preparacion del anfitrion Arch Linux:

  1. Instale el paquete virtualbox junto con el paquete de extensiones y adiciones de huésped.
  2. Instale su versión preferida, pero compatible con Odin de Windows.
  3. En la configuracion de VirtualBox de su sistema de Windows, navegue a USB, y asegúrese que la opción USB 2.0 (EHCI) esta habilitada.
  4. Cuando la maquina virtual inicie, vaya al menú de dispositivos > USB y seleccione su dispositivo Samsung en la lista. El cual esta conectado a su computadora via USB

Preparación del sistema huésped de Windows:

  1. Instale los controladores de Samsung.
  2. Instale Odin.
  3. Descargue el firmware de Samsung (Android) para su dispositivo.

Compruebe que su configuración funciona:

  1. Ponga su dispositivo en modo Download y conéctelo a su computadora con linux.
  2. En la ventana de la maquina virtual seleccione su dispositivo dispositivos > USB > ...Samsung...
  3. Inicie Odin en la maquina virtual, en la casilla blanca en la parte baja-izquierda de la ventana se debe leer algo similar a:
<ID:0/003> Added!!

lo cual indica que su dispositivo es visible para Odin y para el sistema operativo de Windows, ahora esta listo para instalar.