Creando un emulador de Android, configurando AVD. Instalación de Android Studio, configuración del SDK

1. Debe instalar JDK (Java Development Kit) y JRE (Java Runtime Environment).
Anteriormente, el SDK de Android solo admitía la versión 6 de JDK, pero eso ahora es cosa del pasado. 7 e incluso 8 son compatibles (al menos indiqué la octava versión como JAVA_INICIO y en la configuración de Android Studio, y no experimenté ningún problema).
El JRE es necesario para ejecutar el estudio. Estoy usando la versión 7.
Puede descargar versiones JDK y JRE superiores a 6 desde el sitio web de Oracle.

Variable JAVA_INICIO Ahora parece que no es necesario instalarlo, ya que en Android Studio especificaremos la ruta al JDK en la configuración. Pero lo instalé. Para hacer esto necesitas:

  • Ir a , seleccione izquierda , en el cuadro de diálogo que se abre, busque el botón Variables de entorno.
  • Crear una variable de sistema o de usuario JAVA_INICIO y especifique la ruta al JDK para ello. Tengo este camino: C:\Archivos de programa\Java\jdk1.8.0_05.
2. Si tiene instalado el SDK de Android.
Android Studio viene con su propio SDK de Android. Y, si quieres utilizarlo, en algunos casos pueden suceder cosas extrañas. Por ejemplo, al actualizar el SDK a través del SDK Manager, algunos archivos se escribieron en una carpeta antigua y surgieron problemas cuando eliminé esta carpeta. Lo más probable es que esto se deba al hecho de que en el registro se almacenó una clave con la ruta a la carpeta anterior. Por tanto, tiene sentido limpiar el registro. Para hacer esto necesita ejecutar regedit.exe y buscar HKEY_LOCAL_MACHINE\Software\Herramientas SDK de Android para máquinas de 32 bits o HKEY_LOCAL_MACHINE\Software\Wow6432Node\Herramientas SDK de Android para máquinas de 64 bits y eliminar Herramientas del SDK de Android. Si no existen tales claves en el registro de su sistema, entonces todo está en orden.

Si tiene la variable de entorno configurada ANDROID_SDK_HOME y quieres que apunte a la instalación anterior, entonces, en teoría, esto no debería ser un problema, ya que al configurar Android Studio le apuntaremos a la ruta al SDK. Pueden surgir problemas si esta variable es utilizada por alguna de las aplicaciones incluidas en el SDK de Android.

3. Ahora pasemos a instalar Android Studio.
Debes descargar Android Studio para tu sistema desde la página oficial e instalarlo. De forma predeterminada, si selecciona "Instalar solo para mí", se coloca en \Usuarios\ \AppData\Local\Android\android-studio\, de lo contrario poner en \Archivos de programa (x86)\Android\android-studio\. También puede seleccionar otra carpeta.

Después de la instalación, inicie Android Studio.

Vemos este diálogo


En él hacemos lo siguiente:

Creando un proyecto

1. Nuevo Proyecto
Hacer clic Nuevo proyecto.

Aparece el siguiente diálogo


En él podrás configurar:
  • Nombre del proyecto (lo dejé por defecto: Mi aplicación)
  • Dominio de la empresa, predeterminado .ejemplo.com, en mi caso marcadoone.ejemplo.com
  • El nombre del paquete también se puede editar haciendo clic en Editar a la derecha. De forma predeterminada, se genera a partir del nombre del proyecto y el dominio de la empresa y tiene un aspecto similar a com.example. .<имя проекта в lowercase без пробелов>, я его изменил на com.ejemplo.markedone.miaplicación.
  • La ruta donde se guardará el proyecto. Especifiqué mi carpeta para todo tipo de proyectos de prueba.
Cuando todo esté ingresado, haga clic Próximo.
2.Factores de forma
En este cuadro de diálogo, seleccione las plataformas y API de destino.

El diálogo se ve así.


Aquí dejé todo por defecto: Teléfono y Tableta y 4.0.3 IceCreamSandwich. Si la API no está instalada para algunas plataformas, se muestra el mensaje No instalado. Por ejemplo, como puedes ver en la captura de pantalla, no tengo instaladas las bibliotecas para Google Glass (esto se puede hacer a través del SDK Manager).

También presta atención a Ayúdame a elegir, cosas interesantes.

Si presionas Ayúdame a elegir, entonces se abrirá este interesante diálogo


Contiene información sobre la cobertura del dispositivo al elegir una versión de API particular. Se puede hacer clic en los rectángulos de las versiones de API y a la derecha se mostrará una lista de las funciones disponibles en ellos. Por ejemplo, para el sándwich de helado predeterminado:



Hacer clic Próximo.
3.Agregar actividad

En la siguiente pantalla se nos pide que seleccionemos Actividad


Naturalmente, no podía dejar pasar la Actividad en pantalla completa y la elegí. Puede elegir otra Actividad, pero en este caso las fuentes de Java serán diferentes y tendrá que agregar usted mismo una llamada a un método nativo desde Java (sin embargo, no tiene nada de complicado).
Haga una elección, haga clic Próximo.

Aparece el siguiente cuadro de diálogo


Aquí se nos pide que configuremos la Actividad.
  • Nombre de la actividad- nombre de la clase, lo dejé por defecto: Actividad de pantalla completa.
  • Nombre del diseño- el diseño del nombre, para el editor de interfaz de usuario, también se deja como predeterminado.
  • Título- FullscreenActivity se ofrece por defecto, puse un espacio: Actividad en pantalla completa.
Hacer clic Finalizar.

Como resultado, el proyecto debería abrirse.

Construir y lanzar

1. Construya el proyecto
Iniciamos el montaje a través del menú: Construir->Crear proyecto(Los iconos y teclas de acceso rápido están indicados para los elementos del menú, por lo que no será difícil entenderlos).
Durante mi primera compilación recibí un error:

Esto sucedió en el archivo. MiAplicación/app/build.gradle
Para entender lo que está pasando, simplemente coloque el cursor sobre la línea subrayada:


Es simple, aquí se indica la versión 19, pero solo tenemos 20 instaladas y en la configuración del proyecto especificamos 20 como objetivo. Simplemente cambiemos el número:


Al parecer, el estudio no está satisfecho con esto y ofrece instalar una versión aún más nueva. Pero no necesitamos esto ahora.

lancemos de nuevo Construir->Crear proyecto. Esta vez lo reuní todo. Espero que ustedes también.

2. Configurar un dispositivo virtual
Para ejecutar el programa en el emulador, necesita configurar un dispositivo virtual. Vamos a Herramientas->Android->Administrador AVD(Esto, al igual que SDK Manager, es una utilidad del SDK de Android). Necesitamos la primera pestaña, Dispositivo virtual Android, está abierto de forma predeterminada. A la derecha encontramos el botón Crear... y presiónelo.

Aparecerá el cuadro de diálogo de configuración del dispositivo virtual.



En la parte inferior del cuadro de diálogo verá el error que cometió durante la configuración. Por ejemplo, no se pueden ingresar espacios en el nombre del dispositivo y algunos campos son obligatorios. Cuando no hay ninguna inscripción debajo, todo se ingresa correctamente. Hacer clic DE ACUERDO.

El dispositivo aparece en la lista.


Algunas palabras sobre la pestaña Definiciones de dispositivos


En él se especifican los dispositivos disponibles (los que luego se muestran en la lista desplegable Dispositivo al crear un nuevo dispositivo virtual). Para crear un nuevo dispositivo, debe hacer clic en el botón Crear dispositivo... y ocúpate de llenar el siguiente diálogo:



Cierre AVD Manager y regrese a la ventana principal de Android Studio.
3. Ejecutar en un emulador
realizamos Ejecutar->Ejecutar "aplicación".
Tendrá que esperar hasta que el proyecto esté construido para su lanzamiento.

Finalmente, aparecerá la ventana de selección de dispositivo.


Aquí la única opción disponible para elegir es nuestro dispositivo virtual. Se nos ofrece de inmediato, así que simplemente haga clic DE ACUERDO.

El emulador arranca, tarda bastante.


se puede abrir Herramientas->Android->Monitor de dispositivo Android(una utilidad del SDK de Android) para ver los registros del emulador. Debería recoger automáticamente el dispositivo virtual e inmediatamente comenzar a generar registros.

Monitor de dispositivo Android


Pero después de iniciar el emulador, la aplicación no se abrió la primera vez, tuve que hacer clic nuevamente Ejecutar->Ejecutar "aplicación".

Apareció un diálogo ligeramente cambiado.

Aquí el dispositivo ha pasado de la lista a iniciar a la lista de ya iniciados. Esta lista, por supuesto, también incluye dispositivos reales.

Después de eso, todo salió bien y la aplicación se instaló y se inició con bastante rapidez.

Modo de pantalla completa

Y si tocas la aplicación, se ve así

Este no es un comportamiento del sistema; el procesamiento de clics ocurre en la aplicación (archivo FullscreenActivity.java):
// Configure la interacción del usuario para mostrar u ocultar manualmente la interfaz de usuario del sistema. contentView.setOnClickListener(new View.OnClickListener() ( @Override public void onClick(Ver vista) ( if (TOGGLE_ON_CLICK) ( mSystemUiHider.toggle(); ) else ( mSystemUiHider.show(); ) ) ); Después del lanzamiento, Android Studio me pidió que apagara Android Device Monitor para poder integrar la salida directamente en el IDE.

Así es la integración

4. Inicie en modo de depuración
Ejecutar->Depurar "aplicación"

De nuevo el diálogo familiar.

Estamos esperando que se inicie la aplicación y se conecte el depurador. Establecí un punto de interrupción cuando se hace clic en el botón ficticio.

Android Studio en depuración


Un poco molesto es la falta de paneles con todo tipo de Step Into, Step Out, etc.

Todo esto está en el menú Ejecutar.

5. Inicie en 4.0.3
Durante el proceso de creación y ejecución del proyecto, es posible que hayas notado que creamos una aplicación que era compatible con la versión 4.0.3, pero solo la ejecutamos en la última versión de Android. Lo arreglaremos ahora. Para hacer esto necesita instalar la versión 4.0.3 a través de Herramientas->Android->Administrador de SDK.

Los elementos necesarios están marcados con marcas de verificación en la captura de pantalla.


Este Plataforma SDK, Imagen del sistema ARM EABI v7a Y Imagen del sistema Intel x86 Atom. De hecho, estábamos ejecutando un emulador ARM y no tenemos que instalar Intel ahora. Lo instalé simplemente porque también está instalado para Android L.
Ahora creemos otro dispositivo para la nueva versión anterior de Android (o puedes editar la anterior).

Nueva configuración del dispositivo


Lanzamiento ( Ejecutar->Ejecutar "aplicación").

En el cuadro de diálogo, seleccione un nuevo dispositivo para iniciar


Y veamos cómo se ve el nuevo emulador: es claramente más brutal.

Lanzamiento

Modo de pantalla completa

Después de hacer clic

5. Inicie en el dispositivo
Antes de comenzar con el NDK, ejecutemos el proyecto en un dispositivo real. Lo ejecutaré en mi teléfono

Huawei Ascend G300 con Android 4.0.3


Lo primero que debe hacer es instalar el controlador adb. Para mí todo es bastante sencillo, el controlador se encuentra directamente en el teléfono, lo único que hay que hacer es enchufar el cable a la computadora, ir al disco montado y ejecutar el archivo ejecutable, que instalará el controlador adb. Para otros dispositivos, las cosas pueden ser más complicadas. Por ejemplo, para la tableta Prestigio una vez tuve que registrar el ID del proveedor en un archivo especial (para poder usar el controlador estándar de Google), Samsung necesitaba su propio Kies, había un controlador separado para HTC, etc. En general, tendrá que descubrir usted mismo cómo instalar el controlador para su dispositivo.

Una vez instalado el controlador, debe habilitar la depuración USB en el dispositivo. En mi teléfono para hacer esto necesito ir a Configuración->Para desarrolladores->Depuración USB. Pero para diferentes dispositivos, así como para compilaciones y versiones de Android, la ubicación de este elemento del menú puede diferir.

Ahora el teléfono tendrá el SDK de Android y se instalarán las aplicaciones que se están desarrollando. Sin embargo, para Huawei esto no es todo: no hay registros provenientes del teléfono, es necesario habilitarlos.

Cómo habilitar registros en Huawei

Marcar como número de teléfono: *#*#2846579#*#*
Aparecerá el menú de servicio.
Ir a Menú Proyecto->Configuración de fondo->Configuración de registro
Abierto Cambio de registro e instalar allí EN.
Abierto Configuración del nivel de registro y establezca el nivel de registro que necesita (yo configuré verboso).
Reinicia tu teléfono.


Ahora puedes ejecutar la aplicación en tu dispositivo: Ejecutar->Ejecutar "aplicación"

Aparece un dispositivo real en el cuadro de diálogo de selección de dispositivo.


Empecemos por teléfono.

Resultado del lanzamiento.

Aplicación en retrato:

Aplicación en paisaje:

Instalación y configuración del NDK de Android

1. Instalación de NDK
El SDK de Android, como ya hemos descubierto, está incluido en Android Studio, pero el NDK no. Descargue el NDK adecuado para su sistema desde aquí. Descomprimimos el archivo y lo colocamos en alguna carpeta, por ejemplo, en D:\ndk, para que el archivo ndk-build.cmd yacía justo en él. Importante: Es necesario que no haya espacios en la ruta al NDK.
2. Agregue la variable ANDROID_NDK_HOME
Vamos a Panel de control\Sistema y seguridad\Sistema, seleccione a la izquierda Configuración avanzada del sistema, en el cuadro de diálogo que se abre, haga clic en el botón Variables de entorno. Crea una variable con el nombre ANDROID_NDK_HOME y significado D:\ndk(ruta a su NDK).

Alternativamente, en lugar de especificar una variable global, puede especificar la ruta a ndk en el archivo propiedades.locales de su proyecto (directamente en la carpeta raíz: MiAplicación\local.properties). El contenido del archivo se verá así (preste atención a las barras invertidas dobles, ya que esto es fundamental para Windows):
## Este archivo lo genera automáticamente Android Studio. # No modifique este archivo: ¡SUS CAMBIOS SE BORRARÁN! # # Este archivo *NO* debe registrarse en los sistemas de control de versiones, # ya que contiene información específica de su configuración local. # # Ubicación del SDK. Esto solo lo usa Gradle. # Para personalizar cuando utilice un sistema de control de versiones, lea la nota del encabezado #. sdk.dir=C:\\Usuarios\\ \\AppData\\Local\\Android\\android-studio\\sdk ndk.dir=D:\\ndk
No crea en el descargo de responsabilidad sobre "sus cambios serán desechados", en este caso no es cierto. Tenga en cuenta que se recomienda excluir este archivo del control de versiones, ya que solo contiene información local para el usuario. Para variar, no nos mintieron sobre esto. Bueno, por supuesto, este cambio no afectará a tus otros proyectos de ninguna manera. Cuando está instalado ANDROID_NDK_HOME No es necesario especificar la ruta en local.properties.

3. Instale la versión requerida de la API de Android.
Ir a NDK\plataformas(Tengo esto D:\ndk\plataformas) y ver la versión máxima de las API disponibles. En mi caso, la versión máxima es 19. Pero al mismo tiempo, solo tenemos instaladas las versiones 20 y 15 en el SDK, así que vamos al SDK Manager y descargamos la versión 19 de SDK Platform, de lo contrario nada funcionará.

que descargar

4. Configure gradle para que funcione con NDK
Tomé la información de muestras, puedes descargarlas. Descargué muestras para la versión 0.11. Tomé ndkSanAngeles como ejemplo principal.

Cómo ejecutar ndkSanAngeles

Una vez descargadas las muestras, es necesario descomprimirlas. Luego debes abrir el proyecto ndkSanAngeles. Para Android Studio, un proyecto es una carpeta, por lo que debes abrirla. Para ello realizamos Archivo->Abrir o, si está en el cuadro de diálogo Bienvenida, Proyecto abierto. Buscamos la carpeta ndkSanAngeles a través del diálogo de apertura de archivos.

Después de abrir el proyecto, debes mirar el archivo. construir.gradle. Aquí está el original:
buildscript ( repositorios ( mavenCentral() ) dependencias ( classpath "com.android.tools.build:gradle:0.11.0" ) ) aplicar complemento: "android" android ( compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig ( ndk ( moduleName ") sanangeles" cFlags "-DANDROID_NDK -DDISABLE_IMPORTGL" ldLibs "GLESv1_CM", "dl", "log" stl "stlport_static" ) // Este es el código de versión actual de la aplicación. Dándonos 1.000.000 de valores versionCode = 123 ) buildTypes.debug.jniDebugBuild true productFlavors ( x86 ( ndk ( abiFilter "x86") // esta es la parte de sabor del código de versión. // Debe ser más alta que la del brazo para dispositivos que admitan // ambos, ya que se prefiere x86. versionCode = 3 ) arm ( ndk ( abiFilter "armeabi-v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips " ) versionCode = 1 ) fat ( // fat binario, el código de versión más bajo será // la última opción versionCode = 0 ) ) // crear código de versión por variante applicationVariants.all (variante ->
Y aquí hay una versión modificada para que el proyecto pueda construirse en mi sitio:
buildscript ( repositorios ( mavenCentral() ) dependencias ( classpath "com.android.tools.build:gradle:0.12.+" ) ) aplicar complemento: "android" android ( compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig ( ndk ( moduleName ") sanangeles" cFlags "-DANDROID_NDK -DDISABLE_IMPORTGL" ldLibs "GLESv1_CM", "dl", "log" stl "stlport_static" ) // Este es el código de versión actual de la aplicación. Dándonos 1.000.000 de valores versionCode = 123 ) buildTypes.debug.jniDebugBuild true productFlavors ( x86 ( ndk ( abiFilter "x86") // esta es la parte de sabor del código de versión. // Debe ser más alta que la del brazo para dispositivos que admitan // ambos, ya que se prefiere x86. versionCode = 3 ) arm ( ndk ( abiFilter "armeabi-v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips " ) versionCode = 1 ) fat ( // fat binario, el código de versión más bajo será // la última opción versionCode = 0 ) ) // crea el código de versión por variante applicationVariants.all (variante -> // obtiene el sabor único def saborVersion = variante.productFlavors.get(0).versionCode // establece el código compuesto variante.mergedFlavor.versionCode = saborVersion * 1000000 + defaultConfig. código de versión ) )
Los cambios son los siguientes:

  • Acerca de la discrepancia en la versión del complemento Gradle ( ruta de clases "com.android.tools.build:gradle:0.11.0") se dirá cuando intente compilar y ofrecer el número de versión correcto. Para mí es 0,12.+.
  • compilarSdkVersion 19 permanece ya que es la versión máxima para el NDK actual.
  • buildToolsVersión cambiado a 20. Las versiones instaladas se pueden ver en el SDK Manager y otras se pueden instalar allí.
Después de esto, ndkSanAngeles debería volver a ensamblarse. Ten cuidado y comprueba las versiones que tienes instaladas.

En nuestro proyecto, debemos seleccionar el archivo build.gradle correcto, ya que hay dos. La cuestión es que MyApplication es un proyecto y la aplicación es un módulo de proyecto (o subproyecto) y tienen su propio build.gradle para cada uno. Primero veamos el archivo del proyecto.

MiAplicación->build.gradle

// Archivo de compilación de nivel superior donde puede agregar opciones de configuración comunes a todos los subproyectos/módulos. buildscript ( repositorios ( jcenter() ) dependencias ( classpath "com.android.tools.build:gradle:0.12.+" // NOTA: No coloque las dependencias de su aplicación aquí; pertenecen // a los archivos build.gradle del módulo individual ) ) todos los proyectos ( repositorios ( jcenter() ) )


De los comentarios en el código se deduce claramente que necesitamos un archivo de módulo.

MiAplicación->aplicación->build.gradle

aplicar complemento: "com.android.application" android ( compileSdkVersion 20 buildToolsVersion "20.0.0" defaultConfig ( applicationId "com.example.markedone.myapp" minSdkVersion 15 targetSdkVersion 20 versionCode 1 versionName "1.0" ) buildTypes (release ( runProguard false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) ) ) dependencias (compilar fileTree(dir: "libs", include: ["*.jar"]) // Debes instalar o actualizar el Repositorio de soporte a través del administrador de SDK para usar esta dependencia. //compilar "com.android.support:support-v4:19.+" compilar "com.android.support:support-v4:20.+")


Configurémoslo para que funcione con NDK, usando build.gradle de ndkSanAngeles como "donante".

Primero, reemplacemos
compilarSdkVersión 20
en
compilarSdkVersión 19
ya que NDK está limitado a la versión 19.

EN configuración predeterminada agregaremos configuraciones no sé, y también reemplazar targetSdkVersion a las 19:
defaultConfig ( applicationId "com.example.markedone.myapp" minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk ( moduleName "myapp" cFlags "-DANDROID_NDK" ldLibs "log" stl "stlport_static" ) ) La configuración de NDK incluye

  • Nombre del módulo- nombre del módulo, se utilizará para nombrar el archivo *.so
  • cBanderas- banderas C
  • ldLibs- bibliotecas que desea conectar al código nativo
  • stl- Versión de la biblioteca STL
En buildTypes habilitaremos el ensamblado de depuración JNI para la depuración:
buildTypes ( lanzamiento ( runProguard false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) debug.jniDebugBuild true )
Ahora agreguemos productoSabores. Aquí indicamos qué bibliotecas *.so incluir en la compilación para una arquitectura específica. Por lo tanto, *.apk compilado para arm contendrá una versión de la biblioteca solo para arm, para x86 - para x86, y así sucesivamente. Esta pieza está completamente copiada de ndkSanAngeles. Explicación de significados código de versión de los comentarios: para x86 establecemos el valor máximo código de versión, ya que si el dispositivo admite tanto x86 como arm, entonces es preferible el ensamblaje x86 (aparentemente, como tiene una versión más grande, se instalará), y el mínimo código de versión prescrito para gordo(En teoría, debería ser un *.apk “grueso”, que contenga todas las versiones posibles de las bibliotecas a la vez).
productFlavors ( x86 ( ndk ( abiFilter "x86" ) // esta es la parte de sabor del código de versión. // Debe ser más alta que la del brazo para dispositivos que admitan // ambos, ya que se prefiere x86. versionCode = 3 ) arm ( ndk ( abiFilter "armeabi-v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips " ) versionCode = 1 ) fat ( // fat binario, el código de versión más bajo será // la última opción versionCode = 0 ) )
“Recolectando” el significado código de versión para cada opción de compilación:
// crea el código de versión por variante applicationVariants.all (variante -> // obtiene el sabor único def saborVersion = variante.productFlavors.get(0).versionCode // establece el código compuesto variante.mergedFlavor.versionCode = saborVersion * 1000000 + defaultConfig.versionCode)
Finalmente, la última sección, dependencias. Si recuerdas, aquí cambiamos. compilar "com.android.support:support-v4:19.+" en compilar "com.android.support:support-v4:20.+", para compilar con la única versión de la biblioteca instalada en nosotros. Ahora tienes que volver a cambiarlo a 19.
dependencias (compilar fileTree(dir: "libs", incluir: ["*.jar"]) // Debes instalar o actualizar el repositorio de soporte a través del administrador de SDK para usar esta dependencia. compilar "com.android.support:support- v4:19.+" )

Listado completo del archivo build.gradle modificado

aplicar complemento: "com.android.application" android ( compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig ( applicationId "com.example.markedone.myapp" minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk ( moduleName "myapp" cFlags " -DANDROID_NDK" ldLibs "log" stl "stlport_static" ) ) buildTypes ( lanzamiento ( runProguard false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) debug.jniDebugBuild true ) productFlavors ( x86 ( ndk ( abiFilter "x86" ) // esta es la parte de sabor del código de versión. // Debe ser superior a la del brazo para dispositivos que admitan // ambos, ya que se prefiere x86 versionCode = 3 ) arm ( ndk ( abiFilter "armeabi). " -v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips" ) versionCode = 1 ) fat ( // fat binario, el código de versión más bajo será // la última opción versionCode = 0 ) ) // hacer por variante código de versión applicationVariants.all ( variante -> // obtiene el sabor único def saborVersion = variante.productFlavors.get(0).versionCode // establece el código compuesto variante.mergedFlavor.versionCode = saborVersion * 1000000 + defaultConfig.versionCode ) sourceSets ( main ( jni.srcDirs = ["src/main/jni", "src/main/jni/"] ) ) ) dependencias (compilar fileTree(dir: "libs", incluir: ["*.jar"]) // Debe instalar o actualizar el repositorio de soporte a través del administrador de SDK para utilizar esta dependencia. compilar "com.android.support:support-v4:19.+")

5. Crea la carpeta jni
Guardaremos los archivos C/C++ en la carpeta jni. Esto es lo que NDK espera de nosotros. Necesitamos crear una carpeta en MiAplicación/app/src/main. Esto se puede hacer directamente desde Android Studio y de dos formas.
En primer lugar, puede hacer clic derecho en principal y simplemente crear una carpeta a través de

Nuevo->Directorio


En segundo lugar, puede utilizar un elemento de menú especial.

Nuevo->Carpeta->Carpeta JNI

Lanza el asistente de creación de carpetas.




En el primer cuadro de diálogo seleccionamos para qué parte del módulo se creará la carpeta jni, y en el segundo podemos cambiar su ubicación.

6. Agregue archivos C++
No existe un asistente para archivos C++, por lo que para crear un archivo hacemos clic derecho en la carpeta. jni y elige

Nuevo->Archivo


Primero, creemos un archivo de encabezado. miaplicacion.h:
#pragma una vez #incluir #ifdef __cplusplus extern "C" ( #endif JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz); #ifdef __cplusplus ) #endif

Descripción

  • #pragma once - en lugar de la protección estándar (#ifndef/#define/#endif) contra la reactivación. Ahora la mayoría de los compiladores de C++ entienden #pragma once.
  • #incluir - incluya el encabezado JNI para que pueda utilizar los tipos declarados allí.
  • #ifdef __cplusplus ... #endif: el código interno se compilará solo en C++ (pero no en C).
  • "C" externa (...): elimine la alteración de nombres (qué es y por qué).
  • JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz); - declaración de la función que implementaremos.
    Veamos este anuncio con más detalle.
    • JNIEXPORTAR necesario para una correcta vinculación.
    • JNICALL para la convención de llamada correcta.
    • jstring- el tipo de retorno de la función, en este caso una cadena compatible con la cadena Java.
    • Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI- nombre de la función, consta de:
      Java- el lenguaje que evoca.
      com_example_markedone_myapp- esta es la identificación de la aplicación ( com.ejemplo.markedone.miaplicación).
      Actividad de pantalla completa es el nombre de una clase Java que contiene una declaración de método que representa una función nativa.
      cadenaDeJNI- en realidad, el nombre de la función (así será en Java).
    • JNIEnv* env, jclass clazz: parámetros requeridos pasados ​​desde Java.
      JNIEnv* env es un puntero a un objeto que representa el entorno JNI.
      jclass clazz es la clase propietaria de la declaración del método nativo en Java. Aquí debemos hacer una reserva de que jclass clazz es para nativo estático ( nativo estático) método. Para un método no estático necesitarás escribir jobject obj.

Ahora creemos un archivo de implementación, myapp.cpp. En él escribiremos el siguiente código:
#incluir #incluir #include "myapp.h" JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz) ( std::string tag("SALUDO"); std::string message("¡Hola desde C++!"); __android_log_print(ANDROID_LOG_INFO, tag .c_str(), "%s", message.c_str()); std::string jniMessage("¡Hola desde JNI!" return env->NewStringUTF(jniMessage.c_str());

Descripción

  • #incluir - conecte el registro, para el cual incluso agregamos la biblioteca ( ldLibs "registro")
  • #include - para std::string, que usamos para verificar la presencia de STL.
    #include "myapp.h": incluimos nuestro archivo de encabezado.
    JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz) (...): implementa la función declarada en "myapp.h".
    std::string tag("SALUDO"); std::string message("¡Hola desde C++!"); - crear líneas para enviar al registro.
    __android_log_print(ANDROID_LOG_INFO, tag.c_str(), "%s", mensaje.c_str()); - salida para iniciar sesión. Tenga en cuenta que debe especificar 4 parámetros: el tipo de mensaje en el registro, la etiqueta, el formato de la cadena y, finalmente, el mensaje en sí.
    std::string jniMessage("¡Hola desde JNI!"); - la cadena que pasaremos a Java.
    devolver entorno->NewStringUTF(jniMessage.c_str()); - valor de retorno, usando JNIEnv creamos un jstring a partir de una cadena C. Tenga en cuenta que no necesitamos una construcción como (*env)-> ya que estamos escribiendo en C++, no en C.
Ahora crearemos otro archivo: stub.cpp y lo dejaremos vacío. El hecho es que si deja solo un archivo *.cpp en la carpeta jni, ndk-build generará el error "no hay regla para hacer el objetivo".
7. Agregue una llamada de función nativa desde Java
Abriendo el archivo MiAplicación/app/src/main/java/com.example.markedone.myapp.FullscreenActivity. De hecho, tiene una extensión de Java y com, por ejemplo, marcado uno y myapp son carpetas, pero Android Studio las oculta.

Contenido del archivo

paquete com.ejemplo.markedone.myapp; importar com.example.markedone.myapp.util.SystemUiHider; importar android.annotation.TargetApi; importar android.app.Activity; importar android.os.Build; importar android.os.Bundle; importar android.os.Handler; importar android.view.MotionEvent; importar android.view.View; /** * Un ejemplo de actividad de pantalla completa que muestra y oculta la interfaz de usuario del sistema (es decir, * barra de estado y barra de navegación/sistema) con la interacción del usuario. * * @see SystemUiHider */ public class FullscreenActivity extends Activity ( /** * Si la interfaz de usuario del sistema debe ocultarse automáticamente después de * (@link #AUTO_HIDE_DELAY_MILLIS) milisegundos. */ private static final boolean AUTO_HIDE = true; /* * * Si se establece (@link #AUTO_HIDE), el número de milisegundos que se deben esperar después de * la interacción del usuario antes de ocultar la interfaz de usuario del sistema */ private static final int AUTO_HIDE_DELAY_MILLIS = 3000 /** * Si se establece, alternará la interfaz de usuario del sistema. . Visibilidad tras la interacción. * Mostrará la visibilidad de la interfaz de usuario del sistema. */ private static final boolean = true; ** * La instancia de (@link SystemUiHider) para esta actividad */ private SystemUiHider mSystemUiHider; @Override protected void onCreate(Bundle saveInstanceState) (super.onCreate(savedInstanceState); setContentView(R.layout .activity_fullscreen); controles de vista finalView = findViewById(R.id.fullscreen_content_controls); Vista final contentView = findViewById(R.id.fullscreen_content); // Configurar una instancia de SystemUiHider para controlar la interfaz de usuario del sistema para // esta actividad. mSystemUiHider = SystemUiHider.getInstance(this, contentView, HIDER_FLAGS); mSystemUiHider.setup(); mSystemUiHider .setOnVisibilityChangeListener(new SystemUiHider.OnVisibilityChangeListener() ( // Valores en caché. int mControlsHeight; int mShortAnimTime; @Override @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public void onVisibilityChange(boolean visible) ( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) ( // Si la API ViewPropertyAnimator está disponible // (Honeycomb MR2 y posterior), utilícela para animar los // controles de interfaz de usuario en el diseño en la parte inferior de // la pantalla. if (mControlsHeight == 0) ( mControlsHeight = controlesView.getHeight(); ) if (mShortAnimTime == 0) ( mShortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime); ) controlesView.animate() .translationY(visible? 0: mControlsHeight).setDuration(mShortAnimTime); ) else ( // Si las API ViewPropertyAnimator no // están disponibles, simplemente muestre u oculte los // controles de la interfaz de usuario en el diseño. controlesView.setVisibility(visible ? View.VISIBLE: View.GONE); ) if (visible && AUTO_HIDE ) ( // Programar un hide(). delayHide(AUTO_HIDE_DELAY_MILLIS); ) ) ) // Configurar la interacción del usuario para mostrar u ocultar manualmente la interfaz de usuario del sistema contentView.setOnClickListener(new View.OnClickListener() ( @Override public. void onClick(Ver vista) ( if (TOGGLE_ON_CLICK) ( mSystemUiHider.toggle(); ) else ( mSystemUiHider.show(); ) ) ) // Al interactuar con los controles de la interfaz de usuario, retrasa cualquier operación hide() // programada para evitar la el comportamiento discordante de los controles desaparece // mientras interactúa con la interfaz de usuario findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener ) @Override protected void onPostCreate(Bundle saveInstanceState) ( super.onPostCreate(savedInstanceState); // Activa el ocultamiento inicial. () poco después de // crear la actividad, para indicar brevemente al usuario que los controles de UI // están disponibles. retrasadoOcultar(100); ) /** * Toque el oyente que se utilizará en los controles de la interfaz de usuario en el diseño para retrasar la ocultación de la * interfaz de usuario del sistema. Esto es para evitar que el comportamiento discordante de los controles desaparezca * mientras interactúan con la interfaz de usuario de actividad. */ View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(Ver vista, MotionEvent motionEvent) ( if (AUTO_HIDE) (delayHide(AUTO_HIDE_DELAY_MILLIS); ) return false; ) ); Controlador mHideHandler = nuevo Controlador(); Ejecutable mHideRunnable = new Runnable() ( @Override public void run() ( mSystemUiHider.hide(); ) ); /** * Programa una llamada a hide() en milisegundos, cancelando cualquier * llamada previamente programada. */ privado vacío retrasadoHide(int delayMillis) ( mHideHandler.removeCallbacks(mHideRunnable); mHideHandler.postDelayed(mHideRunnable, delayMillis); ) )


Agreguemos el siguiente código a la clase FullscreenActivity:
estático ( System.loadLibrary("miaplicación"); ) privado estático nativo String stringFromJNI(); Aquí primero se carga la biblioteca y luego se declara el método. cadenaDeJNI, que corresponde a nuestra función en C++. Tenga en cuenta que se declara como estático (esto afecta lo que (jclass o jobject) será como segundo parámetro de la función C++) y nativo. No es necesario implementar un método nativo, ya lo hemos hecho en C++ y JNI hará el resto por nosotros.

Ahora, en general, ya podemos llamar a nuestra función. Si usted, como yo, elige FullscreenActivity, entonces tenemos un botón ficticio que esencialmente no hace nada. E incluso ya tenemos un oyente táctil, aunque no es el mejor (se llamará muchas veces mientras el dedo está en la pantalla), pero para no generar código innecesario, lo usamos.

Primero, agreguemos a la lista de importación:
importar android.widget.Button;
para que puedas trabajar normalmente con el botón.

Busquemos el siguiente código:
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(Ver vista, MotionEvent motionEvent) (if (AUTO_HIDE) (delayHide(AUTO_HIDE_DELAY_MILLIS); ) devuelve falso; ) );
y agregue algunas líneas antes de devolver false.
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (AUTO_HIDE) ( delayHide(AUTO_HIDE_DELAY_MILLIS); ) final String message = stringFromJNI(); final Button button = (Button )findViewById(R.id.dummy_button); final String actualText = button.getText().toString(); if(message.equals(actualText)) ( button.setText("Botón ficticio"); ) else ( button.setText (mensaje); devolver falso;

Descripción del código agregado

  • mensaje de cadena final = stringFromJNI(); - obtenemos una cadena de C++. Llamar a un método nativo es el motivo por el que empezó todo.
  • Botón final botón = (Botón)findViewById(R.id.dummy_button); - encuentra el objeto del botón.
  • cadena final texto actual = botón.getText().toString(); - extrae el texto del botón actual.
  • if(message.equals(actualText)) - compara la cadena obtenida de C++ con el texto del botón.
    • button.setText("Botón ficticio"); - Si son iguales, cambia el texto del botón a Dummy Button.
    • botón.setText(mensaje); - si difieren, los cambiamos por texto obtenido de C++.

Listado completo de clases de la clase modificada

paquete com.ejemplo.markedone.myapp; importar com.example.markedone.myapp.util.SystemUiHider; importar android.annotation.TargetApi; importar android.app.Activity; importar android.os.Build; importar android.os.Bundle; importar android.os.Handler; importar android.view.MotionEvent; importar android.view.View; importar android.widget.Button; /** * Un ejemplo de actividad de pantalla completa que muestra y oculta la interfaz de usuario del sistema (es decir, * barra de estado y barra de navegación/sistema) con la interacción del usuario. * * @see SystemUiHider */ public class FullscreenActivity extends Activity ( static ( System.loadLibrary("myapp"); ) private static native String stringFromJNI(); /** * Si la interfaz de usuario del sistema debe ocultarse automáticamente o no después de * (@link #AUTO_HIDE_DELAY_MILLIS) milisegundos */ private static final boolean AUTO_HIDE = true; /** * Si se establece (@link #AUTO_HIDE), el número de milisegundos que se deben esperar después de * la interacción del usuario antes de ocultar la interfaz de usuario del sistema */ private static final int AUTO_HIDE_DELAY_MILLIS = 3000; /** * Si está configurado, alternará la visibilidad de la UI del sistema al interactuar. De lo contrario, * mostrará la visibilidad de la UI del sistema al interactuar. */ private static final boolean TOGGLE_ON_CLICK = true; (@link SystemUiHider#getInstance). */ private static final int HIDER_FLAGS = SystemUiHider.FLAG_HIDE_NAVIGATION /** * La instancia de (@link SystemUiHider) para esta actividad protegida void onCreate(Bundle saveInstanceState) ( super.onCreate(savedInstanceState). ); setContentView(R.layout.activity_fullscreen); controles de vista finalView = findViewById(R.id.fullscreen_content_controls); Vista final contentView = findViewById(R.id.fullscreen_content); // Configurar una instancia de SystemUiHider para controlar la interfaz de usuario del sistema para // esta actividad. mSystemUiHider = SystemUiHider.getInstance(this, contentView, HIDER_FLAGS); mSystemUiHider.setup(); mSystemUiHider .setOnVisibilityChangeListener(new SystemUiHider.OnVisibilityChangeListener() ( // Valores en caché. int mControlsHeight; int mShortAnimTime; @Override @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public void onVisibilityChange(boolean visible) ( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) ( // Si la API ViewPropertyAnimator está disponible // (Honeycomb MR2 y posterior), utilícela para animar los // controles de interfaz de usuario en el diseño en la parte inferior de // la pantalla. if (mControlsHeight == 0) ( mControlsHeight = controlesView.getHeight(); ) if (mShortAnimTime == 0) ( mShortAnimTime = getResources().getInteger(android. R.integer.config_shortAnimTime); ) controlesView.animate() .translationY(visible? 0: mControlsHeight) .setDuration(mShortAnimTime); ) else ( // Si las API ViewPropertyAnimator no // están disponibles, simplemente muestre u oculte los // controles de la interfaz de usuario en el diseño. controlesView.setVisibility(visible ? View.VISIBLE: View.GONE); ) if (visible && AUTO_HIDE ) ( // Programe un hide(). delayHide(AUTO_HIDE_DELAY_MILLIS); ) ) ) // Configure la interacción del usuario para mostrar u ocultar manualmente la interfaz de usuario del sistema contentView.setOnClickListener(new View.OnClickListener() ( @Override public void onClick. (Ver vista) ( if (TOGGLE_ON_CLICK) ( mSystemUiHider.toggle(); ) else ( mSystemUiHider.show(); ) ) ) // Al interactuar con los controles de la interfaz de usuario, retrasa cualquier operación hide() // programada para evitar el comportamiento discordante de controles desaparecen // mientras interactúa con la interfaz de usuario findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener ) @Override protected void onPostCreate(Bundle saveInstanceState) ( super.onPostCreate(savedInstanceState); // Activa el hide() inicial. poco después de // crear la actividad, para indicar brevemente al usuario que los controles de UI // están disponibles. retrasadoOcultar(100); ) /** * Toque el oyente que se utilizará en los controles de la interfaz de usuario en el diseño para retrasar la ocultación de la * interfaz de usuario del sistema. Esto es para evitar que el comportamiento discordante de los controles desaparezca * mientras interactúan con la interfaz de usuario de actividad. */ View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (AUTO_HIDE) ( delayHide(AUTO_HIDE_DELAY_MILLIS); ) final String message = stringFromJNI(); final Button button = (Botón)findViewById(R.id.dummy_button); final String actualText = button.getText().toString(); if(message.equals(actualText)) ( button.setText("Botón ficticio"); ) else ( botón .setText(mensaje); devolver falso; Controlador mHideHandler = nuevo Controlador(); Ejecutable mHideRunnable = new Runnable() ( @Override public void run() ( mSystemUiHider.hide(); ) ); /** * Programa una llamada a hide() en milisegundos, cancelando cualquier * llamada previamente programada. */ privado vacío retrasadoHide(int delayMillis) ( mHideHandler.removeCallbacks(mHideRunnable); mHideHandler.postDelayed(mHideRunnable, delayMillis); ) )

17. Montamos y lanzamos el proyecto.
Primera compilación->Crear proyecto. En esta etapa, la parte de Java está ensamblada.
Luego Ejecutar->Ejecutar "aplicación". Y aquí, antes de que comience la aplicación, se ensamblará la parte de C++. Si hay algún error en él, se mostrará un mensaje al respecto. Si no hay errores, aparecerá un cuadro de diálogo de selección de dispositivo estándar y, después de hacer clic en Aceptar, se iniciará la aplicación.

Trabajando en un dispositivo real

Enviar un mensaje al registro

Conclusión

En general, me gustó Android Studio. La integración del SDK de Android se realiza de forma bastante estricta, a veces incluso olvidas que se trata de programas separados que se inician. Hay todo tipo de cosas interesantes, como Ayúdame a elegir. Me gustó el nuevo sistema de compilación, Gradle, pero también tiene un inconveniente: hay muy poca información al respecto.

También está claro que el apoyo al NDK sigue siendo débil, pero hay movimientos en esta dirección. Realmente espero que eventualmente brinden soporte completo para el desarrollo de C++.

PD Aún no se ha encontrado ninguna depuración de código C++.

Etiquetas:

  • estudio androide
  • gradle
  • android ndk
  • androide
Agregar etiquetas

Android es un sistema operativo gratuito basado en Linux con una interfaz de programación Java.

Si desea desarrollar aplicaciones para teléfonos con Android, debe preparar e instalar cuidadosamente todas las herramientas necesarias para el trabajo.

Instalación de Android Studio

Los artículos a menudo se modifican porque algunas cosas quedan obsoletas rápidamente. Pero no puedo hacer un seguimiento de todo, por lo que tendrás que resolver las cosas por tu cuenta si encuentras diferencias.

Es importante comprender que la aplicación en sí está escrita en Java (y ahora también en Kotlin) y que el entorno de desarrollo se elige según sus gustos. Lo que se puede hacer en Android Studio (o su hermano mayor IntelliJ IDEA) se puede hacer en Eclipse y otros editores. Aunque desde 2016 cesó el soporte oficial para Eclipse.

Puede descargar el paquete de instalación del estudio desde la página https://developer.android.com/studio/index.html

La instalación en sí no debería causar ningún problema. El paquete de instalación incluye el mínimo requerido. A veces es necesario iniciar Android SDK Manager y buscar nuevas versiones del SDK a través del menú. Herramientas | Androide | Administrador de SDK:

Con el tiempo, descubrirá por sí mismo qué necesita instalar y qué no. Al principio, acepte los términos que el administrador le ofrece de forma predeterminada.

Un usuario de Bulgaria escribió que Win64 requiere derechos de administrador al instalar o actualizar. Tenga en cuenta. En un sistema limpio no me preguntó nada.

En la versión Studio 2.3 (quizás anterior) está instalado el paquete OpenJDK, que es una alternativa al JDK de Oracle. Hay una nota en la configuración del estudio de que OpenJDK es la opción recomendada, aunque puede especificar la ruta al JDK estándar. En cualquier caso, tendrás Java 8 sin importar la opción que elijas.

Creando emuladores

Para depurar aplicaciones utilizamos un emulador de teléfono, una máquina virtual en la que se ejecutará nuestra aplicación. También puedes utilizar un dispositivo real.

Ahora, en el momento de la instalación, el estudio crea un dispositivo para el emulador. Si este no es el caso, siempre puedes instalar manualmente. También puedes agregar otros dispositivos para diferentes versiones de Android, resoluciones de pantalla, etc.

Para crear un emulador de teléfono, seleccione del menú Herramientas | Androide | Administrador de AVD. Cuando lo inicie por primera vez, aparecerá un cuadro de diálogo del asistente.

presiona el botón Crear un dispositivo virtual y en una nueva ventana vemos un conjunto de posibles emuladores, incluso para relojes. Descarga los emuladores necesarios. Para empezar, un emulador es bastante adecuado.

Ingrese cualquier nombre descriptivo, por ejemplo, Android4. Seleccione la versión de Android deseada, el tamaño de pantalla, etc.

Si es necesario, puede crear emuladores para cada versión del sistema operativo y comprobar la funcionalidad del programa. Las configuraciones restantes se pueden dejar sin cambios. Siempre puedes volver a la configuración y editar nuevamente. A menudo se recomienda utilizar la opción Usar GPU anfitriona para aprovechar las capacidades de la GPU. Esto aumenta la velocidad del emulador. presiona el botón DE ACUERDO.

Los emuladores agregados se almacenarán en el administrador del emulador.

Si ha creado varios emuladores, seleccione el que necesita y presione el botón con un triángulo verde para iniciar el emulador. El icono de lápiz le permite editar la configuración. Pero normalmente el emulador no se inicia por separado. Cuando inicie la aplicación, el propio estudio le ofrecerá iniciar el emulador.

Recuerde que las máquinas virtuales se guardan en la carpeta del usuario de forma predeterminada y la ruta a la carpeta no debe contener caracteres rusos para evitar problemas.

Si aun así caes en esta trampa, te daré un enlace para cambiar la carpeta de usuario al inglés: http://www.cherneenet.ru/lokalnaj_zapis.html (gracias al lector Evgeny Stepanov por la pista). También puede corregir el archivo ini y escribir la ruta al dispositivo virtual de tal manera que no haya letras rusas en la ruta (en consecuencia, el archivo *.avd también debe moverse a otra ubicación).

Dependiendo de la potencia de su computadora, es posible que deba esperar un poco para que se cargue primero el emulador. El emulador Intel se carga mucho más rápido. También puedes usar un teléfono real. Normalmente uso un teléfono antiguo y un emulador para las nuevas versiones de Android.

Prueba en un dispositivo real

Es recomendable probar la versión final de la aplicación en un dispositivo real. A partir de Android 4.4, debes activar el modo desarrollador en tu dispositivo (tableta, teléfono, reloj). Para hacer esto, vaya a Configuración, abra la página "Acerca del teléfono" y haga clic siete veces en la línea con el número de compilación. Número de compilación. Después de esto, aparecerá un nuevo elemento en la configuración. Para desarrolladores o algo así si el fabricante usa su propio caparazón.

Una vez que abra la página del desarrollador, debe habilitar la depuración de USB. También incluyo la opción No apagues la pantalla. Algunos dispositivos requieren la instalación de un controlador independiente; busque información en el sitio web del fabricante.

Trabajando en modo terminal

Studio también le permite ejecutar comandos de línea de comandos en una ventana separada. Para mayor comodidad, debe personalizar ligeramente el sistema.

Tengo instalada una versión no traducida de Windows, por lo que algunos de los puntos se darán en inglés.

Para Windows 7/8 abierto Panel de control | Sistema, presiona el botón Configuración avanzada del sistema. En la nueva ventana, haga clic en el botón Variables de entorno.

Encuentra la variable Camino en la lista variables del sistema

Haga clic en el botón Editar para editar una variable. Agregue un punto y coma al final de la línea y luego especifique las rutas de las carpetas herramientas de plataforma Y herramientas, que están incluidos en el SDK. En mi caso quedó así:

;D:\Android\SDK\plataforma-herramientas;D:\Android\SDK\herramientas

Cierra todas las ventanas (mejor reiniciar). Comprueba si todo funciona correctamente. Inicie un símbolo del sistema e ingrese el comando:

Eco %ruta%

Debería ver una línea que enumera todas las rutas incluidas en la variable Camino, incluido el tuyo.

Para la siguiente verificación, ingrese el comando:

Aparecerá una lista de parámetros de comando.

Pruebe también el comando:

Se abrirá la ventana del Administrador de SDK.

Si escribió algo mal, los comandos no serán reconocidos y deberá corregir el error al escribir la ruta.

Ahora hagamos estas operaciones en el propio estudio. Inicie Studio y abra el proyecto (consulte la siguiente lección). Hay una pestaña en la parte inferior de la barra de estado. Cambie a eso. En una ventana de terminal, ingrese cualquiera de los dos comandos anteriores.

Documentación

La documentación más reciente siempre se puede encontrar en desarrollador.android.com. Si tiene problemas con Internet, entonces en la subcarpeta /docs Puede encontrar una copia local en la carpeta SDK de Android instalada (si no se negó a instalarlo).

Instalación de gato

Este punto no es obligatorio, pero como muestra la práctica, tener un gato te permite lograr resultados rápidos en el aprendizaje de Android. Puedes recoger un gato en la calle, adoptarlo en un refugio o comprarlo a través de un anuncio. Cualquier tipo servirá: rojo, rayado, negro. El gato debe ser lavado, alimentado y colocado cerca. Tu karma está creciendo en este momento y el proceso de dominar el material será más rápido.

Se han completado los preparativos para el desarrollo. Ahora el siguiente paso es crear la primera aplicación.

Siéntese y abróchese el cinturón: nos espera un emocionante viaje al mundo del desarrollo de aplicaciones para Android.

Este artículo le dirá cómo instalar Android Studio, para esto necesitará un paquete Java ya instalado, si aún no lo ha instalado, léalo. También le informará sobre la configuración cuando inicie y actualice por primera vez los paquetes del SDK de Android.

Descargue el paquete de Android Studio

La mayor parte del trabajo involucrado en el desarrollo de aplicaciones de Android se realizará utilizando el entorno de Android Studio. Se puede descargar desde la página: http://developer.android.com/sdk/index.html. Bajo el título "Otras opciones de descarga" hay una lista de paquetes para diferentes plataformas.

Antes de comenzar a descargar, deberá aceptar el acuerdo de licencia.


Instalación de Android Studio

El proceso de instalación varía según los diferentes sistemas operativos. A continuación se muestran instrucciones para Windows, Mac OS X, Linux.

Instalación bajo Windows

Ejecute el archivo exe descargado, se abrirá el asistente de instalación con pasos estándar, como la ubicación de instalación y el acuerdo de licencia, después de lo cual aparecerá un botón para iniciar el proceso de instalación. Nada complicado.



También se le pedirá inmediatamente que instale otros componentes, como SDK Manager y Android Virtual Device. Márcalos, los necesitaremos todos.


Si la versión del sistema operativo lo permite, se puede iniciar Android Studio desde el menú Inicio. En el caso de Windows 8, el inicio se produce mediante un archivo ejecutable en la carpeta bin del directorio de instalación del entorno, la ruta al mismo se ve así: C:\Program Files\Android\Android Studio\bin; El método no es el más conveniente, pero siempre puedes mover este archivo a la barra de tareas. Tenga en cuenta que pueden estar presentes al mismo tiempo diferentes versiones de archivos exe para un sistema de 32 y 64 bits.

Instalación bajo Mac OS X

Android Studio para MAC OS X se descarga como un archivo de imagen de disco (.dmg). Haga doble clic en él, aparecerá una ventana:


Para instalar el paquete, simplemente arrastre y suelte el ícono de Android Studio en su carpeta de Aplicaciones. El paquete se instalará en la carpeta Aplicaciones del sistema; el proceso suele tardar varios minutos.

Para iniciar Android Studio, ubique el archivo ejecutable en la carpeta Aplicaciones y haga doble clic en él. Puede aparecer un cuadro de diálogo de error indicando que no se puede encontrar la JVM. Si recibe este error, debe descargar e instalar el paquete Java JRE de Mac OS X. Se puede descargar desde el sitio web de Apple en http://support.apple.com/kb/DL1572. Después de esto, el error ya no debería aparecer.

Para facilitar aún más el acceso a la herramienta, arrastre el ícono de Android Studio fuera de la ventana del Finder y al Dock.

Instalación bajo Linux

Después de descargar el paquete, vaya a la carpeta en la terminal donde debe instalarse Android Studio y ejecute el siguiente comando:

Descomprimir / /android-studio-ide- -linux.zip

Tenga en cuenta que el kit de Android Studio se instalará en un subdirectorio llamado android-studio.

Para iniciar el IDE, abra una ventana de terminal, cambie el directorio a android-studio/bin y ejecute el siguiente comando:

./estudio.sh

Configuración inicial de Android Studio

Cuando inicie Android Studio por primera vez, aparecerá un cuadro de diálogo que le dará la opción de importar configuraciones de una versión anterior de Android Studio. Si tiene configuraciones de una versión anterior y desea importarlas a la nueva instalación, seleccione la opción adecuada y especifique la ubicación de las configuraciones. En caso contrario, indica que no necesitas importar la configuración anterior y haz clic en el botón Aceptar para continuar.

Una vez que Android Studio termine de descargarse, aparecerá el asistente de instalación como se muestra en la imagen a continuación.


Haga clic en el botón "Siguiente", seleccione la instalación estándar y haga clic en el botón "Siguiente" nuevamente, acepte los acuerdos de licencia y haga clic en el botón "Finalizar" para completar el proceso de instalación. Aparecerá la pantalla de bienvenida de Android Studio.


Instalación de los últimos SDK de Android

Anteriormente, ya habíamos instalado Java, un IDE de Android y un conjunto de paquetes SDK de Android actuales suministrados de forma predeterminada. Antes de continuar, vale la pena tomarse un tiempo para verificar qué paquetes están instalados e instalar los paquetes que faltan. Esto se puede hacer usando Android SDK Manager, que se puede iniciar desde Android Studio a través de Configurar -> SDK Manager o desde la ventana de bienvenida de inicio.


En Android SDK Manager, asegúrese de que los siguientes paquetes estén marcados en la columna Estado:

  • Herramientas > Herramientas del SDK de Android
  • Herramientas > Herramientas de la plataforma SDK de Android
  • Herramientas > Herramientas de compilación del SDK de Android
  • Plataforma SDK (versión más reciente)> Plataforma SDK
  • Plataforma SDK (versión más reciente) > Imagen del sistema ARM EABI v7a
  • Extras -> Repositorio de soporte de Android
  • Extras > Biblioteca de soporte de Android
  • Extras -> Repositorio de Google
  • Extras -> Controlador USB de Google (requerido solo en sistemas Windows)
  • Extras > Acelerador emulador Intel x86 (instalador HAXM)

Si alguno de los paquetes anteriores no está instalado (la columna Estado es No instalado), simplemente marque las casillas junto a ellos y haga clic en el botón Instalar paquetes para comenzar el proceso de instalación. En el cuadro de diálogo que aparece, acepte los términos del acuerdo de licencia, haga clic en el botón Instalar, después de lo cual SDK Manager comenzará a descargar e instalar los paquetes marcados. Durante la instalación, aparecerá un indicador en la parte inferior de la ventana del administrador que indica el estado de la instalación.

Conclusión

Esto completa la instalación de Android Studio y terminaremos de prepararnos para desarrollar aplicaciones para Android.

Para escribir aplicaciones para el sistema operativo Android, deberá instalar el entorno de desarrollo Android Studio (en adelante, AS). Quizás se pregunte, ¿por qué AS y no Eclipse? El entorno de desarrollo de Eclipse es mucho más rápido y ligero que Android Studio.

pero Google “recomienda” usar AS, ya que en el futuro ya no dejará (o más bien ya ha) dejado de soportarlo. Android Studio es el futuro, por así decirlo. Debes tener una computadora bastante potente, preferiblemente x64 bit, ya que AS usa alrededor de 3 GB de RAM, agrega otros 3 GB para el emulador de dispositivo Android... Mi PC tiene un procesador win 8.1 pro x64, dual-core Intel 3.3 GHz, con 8 GB de RAM y me siento bastante libre...

Vamos al sitio web oficial a través del enlace https://developer.android.com/studio, descargamos la última versión de la profundidad de bits requerida. La versión actual para hoy es android-studio-2-1-2,

pesará aproximadamente 1,2 GB. Así que tenga paciencia si su Internet es lento.

Después de la descarga, ejecute el instalador android-studio-2-1-2.exe,

El asistente de instalación le pedirá paso a paso que determine la composición de la instalación,

aceptar la licencia

seleccione la ubicación de instalación,

Nuevamente esperamos a que se complete la instalación.

Después de eso lanzaremos Estudio Android desde el escritorio, o desde el menú,

y haga clic en el botón Configurar para configurar el SDK. Verá una lista de versiones de Android instaladas,

para las cuales puedes crear aplicaciones, preferiblemente todas. Si algunas versiones no están instaladas, haga clic en el enlace Inicie el Administrador de SDK independiente para instalar y actualizar paquetes.

Se abrirá el administrador del SDK,

Marque las casillas que sean necesarias, ¿cómo saber cuáles? Gerente SDK Le ayudará con esto marcando los paquetes de versión requeridos. Luego haga clic en el botón en la esquina inferior derecha que dice Instalar paquete 1 (1..100).

En su caso, la cantidad de paquetes será diferente. Si usted personalmente, o el lugar donde vive, está bajo “sanciones occidentales”, entonces para actualizar los paquetes, vaya al menú Herramientas->Opciones...,

donde puede especificar la dirección y el puerto del servidor proxy,

Hace algún tiempo el funcionario IDE para Android estaba Eclipse (como estándar de facto para Java) con el complemento ADT. Algún tiempo después, el IDE de JetBrains comenzó a ganar popularidad entre los programadores de Java, luego apareció un complemento para el desarrollo de Android y la gente comenzó a cambiar lentamente a él desde Eclipse.

Un poco más tarde, Google anuncia lo que hará Android Studio basado en IDEA. Y ahora se acerca la segunda versión de Android Studio, y Eclipse se recuerda solo como un mal sueño :)

Estudio Android— entorno de desarrollo oficial para Android. Básicamente, Android Studio es el famoso IDE de Java IntelliJ IDEA con complementos.

Actualmente, existen las siguientes opciones a la hora de elegir un IDE de Android:

  1. Eclipse. El IDE para Java más popular hace algún tiempo, ahora úsalo para el desarrollo de Android altamente no recomendado.
  2. IDEA IntelliJ. Gran IDE, bueno para Android.
  3. Estudio Android. El mejor IDE para Android. Se diferencia de IDEA en pequeñas cosas, pero estas pequeñas cosas son muy, muy agradables y facilitan mucho nuestro trabajo :) Aquí es donde nos centraremos.

En primer lugar, debe asegurarse de tener instalado el JDK (Java Development Kit). Este es un componente necesario para el desarrollo en Java y, dado que el desarrollo para Android se realiza en Java, también es necesario para el desarrollo para Android.

En segundo lugar, marque las casillas "mostrar números de línea" y "mostrar separadores de métodos":

El primero mostrará números de línea a la izquierda del texto, el segundo dibujará separadores entre métodos en el código.

Estas dos opciones son increíblemente importantes, especialmente para principiantes, y no entiendo por qué están deshabilitadas de forma predeterminada.

Tercero, configure el autocompletado. Para hacer esto, seleccione "Ninguno" en "Finalización que distingue entre mayúsculas y minúsculas":

Déjame explicarte por qué esto es así. La opción predeterminada significa que el autocompletado se activa solo si la primera letra se escribe en mayúsculas y minúsculas correctas. La opción Ninguno provocará el autocompletado sin importar en qué caso comience a escribir el código.

El significado estándar de esta opción, como las dos anteriores, me desconcierta.

Creando el primer proyecto

Bueno, hemos resuelto la configuración e instalación de Android Studio, es hora de crear nuestro primer proyecto.

En la ventana principal de Android Studio, haga clic en " Iniciar un nuevo proyecto de Android Studio«:

Aparecerá una nueva ventana en la que debemos realizar varias acciones.

En el primero, debe especificar el nombre de la aplicación, el dominio de la empresa (el nombre del paquete se creará a partir de estos dos parámetros) y la ubicación del proyecto en el disco:

En Android, al igual que en Java, el identificador principal de una aplicación es el nombre del paquete. Si ha trabajado con Java antes, sabe lo que es. Para el que no lo sepa, recomiendo Google o, por ejemplo, aquí.

A continuación, Android Studio nos preguntará qué y qué versiones del SDK queremos utilizar. Por ahora, el SDK "Teléfono y tableta" será suficiente para nosotros; establezca la versión de API en 16 en lugar de la 15 recomendada, ya que API 15 ya no es relevante y no está muy extendida:

En la siguiente pantalla se nos preguntará qué componentes de la aplicación queremos crear. Seleccione "Actividad vacía":

En el siguiente paso, simplemente haga clic en "Finalizar" sin cambiar nada.

Al finalizar este proceso, finalmente verá su primer proyecto:

Ya es bastante funcional, pero para ejecutarlo necesitamos un emulador de Android.

Creando un emulador de Android

Para crear un emulador de Android necesitamos Administrador AVD de Android(AVD = Dispositivo virtual Android). No te preocupes, no necesitarás instalar nada más. Simplemente haga clic en este botón:

Luego en este botón:

Y luego simplemente haga clic en "Siguiente" varias veces y finalmente en "Finalizar".

Lanzamiento de Hola Mundo

Es hora de lanzar nuestro primer proyecto creado en Estudio Android!

Haga clic en este botón (o Shift-F10):

Después de esto, verá un cuadro de diálogo en el que se le pedirá que seleccione el dispositivo en el que el IDE debe ejecutar la aplicación ensamblada:

Marque la casilla resaltada por la flecha y haga clic en Aceptar. El proyecto comenzará a construirse, se iniciará el emulador, la aplicación se instalará en el emulador y se iniciará la aplicación.

Esto llevará algún tiempo (cuanto más potente sea tu ordenador, menos tiempo llevará), ya que el emulador es bastante lento, a pesar de las enormes mejoras de los últimos años.

Y ahora, después de 1 a 10 minutos (después de iniciar el emulador, los proyectos, por supuesto, se ensamblarán y ejecutarán más rápido), ¡finalmente verás tu Hello World en la pantalla del emulador!

Eso es todo, y lo veremos en la próxima lección.

¡Se agregan nuevas lecciones todos los días! Para asegurarte de no perderte nada, suscríbete a nuestro




Arriba