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.
- Asegurese de establecer su ambiente de java de lo contrario Android Studio no arrancara.
- Si Android Studio muestra una ventana en blanco, intente exportar
_JAVA_AWT_WM_NONREPARENTING=1
, vea issue #57675.
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
.
- 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
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:
- lib32-gcc-libs git gnupg flex bison gperf sdl wxgtk2 squashfs-tools curl ncurses zlib schedtool perl-switch zip unzip libxslt python2-virtualenv[enlace roto: package not found] bc rsync ncurses5-compat-libsAUR lib32-zlib lib32-ncurses lib32-readline lib32-ncurses5-compat-libsAUR
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[enlace roto: package not found].
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.
/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-openjdkEste cambio solo sera valido para la sesión actual en esa terminal.
Configurando el entorno de Compilación
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
- 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 enmake
. 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
-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.
$ 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.
- 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
andmake -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.
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 heimdall.
Las instrucciones de instalacion se encuentran en repositorio de GitLab o en los foros de XDA.
Odin con Virtualbox
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:
- Instale el paquete virtualbox junto con el paquete de extensiones y adiciones de huésped.
- Instale su versión preferida, pero compatible con Odin de Windows.
- 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.
- 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:
- Instale los controladores de Samsung.
- Instale Odin.
- Descargue el firmware de Samsung (Android) para su dispositivo.
Compruebe que su configuración funciona:
- Ponga su dispositivo en modo Download y conéctelo a su computadora con linux.
- En la ventana de la maquina virtual seleccione su dispositivo dispositivos > USB > ...Samsung...
- 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.