Desarrollo de su primera aplicación para Android
¿Por qué nos preocupamos por Android? Nos preocupamos por la plataforma Android porque es la plataforma móvil más distribuida del planeta y es accesible para consumidores de todo el mundo. En economías donde la propiedad de una computadora personal es un lujo, el uso de dispositivos móviles es la norma, y Android está desempeñando un papel importante en la conexión de las personas entre sí. Como aprenderás en este tutorial, Android tiene un enfoque distinto para las aplicaciones. La arquitectura de Android permite un entorno de software altamente personalizable gracias a su enlace en tiempo de ejecución de las acciones solicitadas y el código para satisfacer esas solicitudes. Ya se trate de consideraciones impulsadas por el mercado o los aspectos técnicos de Android, es una plataforma que vale la pena examinar. Además, si está considerando seriamente tener una experiencia móvil para su plataforma, no puede ignorar Android.
Requisitos previos
Este tutorial requiere varias tecnologías que funcionen juntas. Necesitas todos ellos para este tutorial.
- Android Studio: Android Studio es el punto de partida principal para construir aplicaciones Android
- Dispositivo o Emulador Android: querrá un dispositivo Android físico o el Emulador de Android. De cualquier manera, leer este tutorial le ayudará a comprender los puntos de conexión básicos de una aplicación Android.
-
Código fuente-Los fragmentos de código fuente de este tutorial incluyen:
- AndroidManifest.fragmento xml: este archivo es el descriptor de implementación de aplicaciones para aplicaciones Android.
- Actividad principal.java: Implementa una actividad de Android, el punto de entrada principal de la aplicación de ejemplo de este tutorial.
- Activity_main.xml: contiene definiciones de los elementos visuales, o recursos, para uso de las actividades de Android.
- AndroidManifest.xml completo: enumera un AndroidManfest completo.archivo xml, junto con una descripción de cada uno de los elementos importantes.
Presentamos la arquitectura de Android
Antes de adentrarnos en los entresijos de Android Studio y desarrollar aplicaciones para Android, echemos un vistazo a la arquitectura de Android y algunos de los términos clave que serán útiles en el tutorial y más adelante, a medida que comienzas a crear aplicaciones para Android por ti mismo.
Terminología de Android
Comprender los siguientes términos es útil para el desarrollo de aplicaciones de Android con Android Studio.
- Android es un entorno operativo de código abierto dirigido a dispositivos móviles. Cada vez más, Android se encuentra en aplicaciones más allá de los»teléfonos inteligentes». Estos incluyen tecnología portátil, electrodomésticos como proyectores, altavoces y televisores, e incluso automóviles.
- Emulador es una herramienta de software representativa de otro sistema. A menudo, un emulador es un entorno que se ejecuta en una computadora personal (PC, Mac, máquina Linux) que emula otro entorno, como un dispositivo de computación móvil.
- Linux es un núcleo de sistema operativo de código abierto en el corazón de muchas plataformas informáticas, incluidos servidores, computadoras de escritorio, dispositivos de red y dispositivos de computación móvil. Android se ejecuta sobre un núcleo Linux.
- El tiempo de ejecución de Android (ART) es un entorno operativo que se encuentra en la pila de Android y que ejecuta código de aplicación en tiempo de ejecución. El tiempo de ejecución de Android reemplaza a la Máquina virtual (VM) Dalvik» heredada » de versiones anteriores de Android, que funcionaba de manera similar a una VM Java compatible.
La intención
Desde su creación, Android se ha convertido en una fuerza dominante en el espacio de los teléfonos móviles. Su modelo de aplicación es único en el sentido de que las aplicaciones no son monolíticas, aplicaciones cargadas de menús que requieren una gran cantidad de clics y toques para funcionar. Claro, hay menús y botones para tocar, pero Android tiene un elemento de diseño innovador en su arquitectura conocido como una intención.
Una intent es una construcción que permite a una aplicación emitir una solicitud, que es algo así como un signo de ayuda requerida. Podría parecerse a estos:
- «Se busca: Una aplicación para ayudarme a buscar un contacto «
- «Se busca: Una aplicación para ayudarme a mostrar esta imagen»
- » Se busca: Una aplicación para realizar esta búsqueda geográfica.»
De manera similar y complementaria, las aplicaciones pueden registrarse como capaces e interesadas en satisfacer diversas solicitudes o intenciones. Para seguir el paradigma de la publicidad clasificada, estos podrían verse así:
- «Disponible: Aplicación lista y dispuesta a presentar registros de contactos de manera clara y concisa»
- » Disponible: Aplicación lista y dispuesta a realizar una búsqueda geográfica.»
Estos son ejemplos de IntentFilters, que se discuten a continuación.
Las aplicaciones IntentFilter
anuncian su disponibilidad para realizar este tipo de operaciones a través de una construcción conocida como IntentFilter
. IntentFilter
se registra en tiempo de ejecución o se enumera en el AndroidManifest.archivo xml. El siguiente fragmento proviene de una aplicación para Android que responde a los mensajes SMS (texto) entrantes:
<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Mostrar más icono Mostrar más
IntentFilter, la siguiente sección presenta los cuatro tipos principales de aplicaciones Android.
Tipos de aplicaciones Android
Tomemos un momento para examinar los cuatro tipos principales de aplicaciones Android:
- Actividad
- Servicio
- Receptor
- ContentProvider
También echaremos un vistazo a las vistas para mostrar los elementos de la interfaz de usuario (UI).
Aplicaciones de actividad
La actividad es la forma más visible y destacada de una aplicación Android. Una actividad presenta la interfaz de usuario a una aplicación, junto con la asistencia de una clase conocida como vista. La clase view se implementa como varios elementos de interfaz de usuario, como cuadros de texto, etiquetas, botones y otras interfaces de usuario típicas de las plataformas informáticas, móviles o otherwise.An la solicitud puede contener una o más actividades. Por lo general, una actividad se define en una relación uno a uno con las pantallas que se encuentran en una aplicación.
Una aplicación se mueve de una actividad a otra llamando a un método conocido como startActivity ()
o startSubActivity ()
. El método anterior se utiliza cuando la aplicación desea simplemente «cambiar» a la nueva actividad. Este último se utiliza cuando se desea un paradigma de llamada/respuesta sincrónica. En ambos casos, se pasa una intent como argumento al método llamado.
Es responsabilidad del sistema operativo determinar la actividad mejor calificada para satisfacer la intención especificada.
Aplicaciones de servicio y receptor
Al igual que otros entornos informáticos multitarea, hay aplicaciones que se ejecutan «en segundo plano» y que realizan diversas tareas. Android llama a este tipo de servicios de aplicaciones. El servicio es una aplicación para Android que no tiene interfaz de usuario.
El receptor es un componente de aplicación que recibe solicitudes para procesar intents. Al igual que el servicio, un receptor, en la práctica normal, no tiene un elemento de interfaz de usuario. Los receptores normalmente se registran en el AndroidManifest.archivo xml.
El siguiente fragmento de código (que es el mismo que se muestra para IntentFilter) es un ejemplo de una aplicación receptora que se está definiendo. Tenga en cuenta que el atributo name del receptor es la clase Java responsable de implementar el receptor.
<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Mostrar másmostrar más icono
El ContentProvider
es el Android mecanismo de almacenamiento de datos de abstracción. Veamos un tipo específico de datos que se encuentran en un dispositivo móvil: la libreta de direcciones o la base de datos de contactos. La libreta de direcciones contiene todos los contactos y números de teléfono que una persona puede necesitar cuando usa un teléfono móvil.
El ContentProvider
es un mecanismo para abstraer el acceso a un almacén de datos en particular. En muchos sentidos, el ContentProvider
actúa como un servidor de base de datos. Las operaciones para leer y escribir contenido en un almacén de datos en particular deben pasarse a través de un proveedor de contenido adecuado, en lugar de acceder a un archivo o base de datos directamente. Puede haber tanto «clientes» como «implementaciones» de
ContentProvider
.
Vistas de Android
Las vistas de Android son el mecanismo de interfaz de usuario para colocar cosas en la pantalla de un dispositivo Android. La actividad de Android emplea vistas para mostrar elementos de la interfaz de usuario. Algunos de los diseños de diseño más populares incluyen:
- Linevertical-Cada elemento posterior sigue a su predecesor fluyendo debajo de él en una sola columna.
- LinearHorizontal-Cada elemento posterior sigue a su predecesor fluyendo hacia la derecha en una sola fila.Tabla
- : Una serie de filas y columnas, similar a una tabla HTML. Cada celda puede contener un elemento de vista.
- Restricción: Cada elemento está «restringido» a un aspecto de la pantalla, como la parte superior o lateral de la pantalla u otro elemento. Este diseño ayuda en la construcción de aplicaciones «receptivas» y es el heredero del Diseño Relativo heredado introducido en versiones anteriores de la plataforma Android.
Después de seleccionar un diseño en particular (o una combinación de diseños), se utilizan vistas individuales para definir la interfaz de usuario.
Los elementos de vista consisten en elementos de interfaz de usuario conocidos, incluidos:
- Botón
- ImageView
- EditText para recopilar la entrada con varios filtros, como Fecha o Numérico
- TextView (similar a una etiqueta, muestra texto estático)
- Casilla de verificación
- Botón de opción
- Spinner (similar a un cuadro combinado «desplegable»)
- Autocompletar (Texto de edición con función de texto completo automático)
Las vistas se definen en un archivo XML. Por ejemplo, esto muestra una vista lineal vertical simple, con botones y vistas de texto definidas:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" ><TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Activity 1!" /><TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Activity 1, second text view!" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch To Activity 2" /></LinearLayout>
Mostrar más icono Mostrar más
https://developer.android.com/, y desplázate hacia abajo para descargar Android Studio. Android Studio está disponible para Windows, Mac y Linux.
Android Studio se basa en la plataforma IntelliJ IDE. Si eres el tipo de desarrollador que es interesante para aprovechar los atajos de teclado, podrías considerar aprender más sobre IntelliJ en el sitio web de jetbrains.
Primeros pasos con el SDK de Android
Ahora que tenemos instalado Android Studio, es hora de obtener el Kit de Desarrollador de Software (SDK) para Android.
Pero, antes de ir más lejos, necesitamos tener una discusión sobre las versiones de Android.
Versiones de Android
Desde su creación, Android se ha lanzado bajo una ruta paralela de revisiones numéricas de versiones, niveles de API y también nombres «dulces», incluidos Jelly Bean, KitKat, Oreo y otros favoritos de dulces.
es fácil sentirse abrumado por las opciones disponibles. Por ahora, solo necesita un poco de comprensión de este «panorama de versiones» para comenzar como desarrollador de Android.
Hay muchas versiones, o revisiones, de Android en la naturaleza. Si va a escribir una aplicación para su lanzamiento comercial, necesitará saber a qué dispositivos se dirige. Wikipedia tiene un bonito resumen de las versiones de Android, los nombres, las fechas de lanzamiento, así como un gráfico que representa el número aproximado de cada dispositivo en el mercado.
Los dispositivos más nuevos ejecutan el código más reciente, y los dispositivos más antiguos pueden verse limitados en su capacidad de actualizar a una versión más reciente de Android. A veces, las versiones más nuevas admiten capacidades que los teléfonos más antiguos no son capaces de soportar (piense en una segunda cámara, Comunicaciones de campo cercano, etc.). Otra razón no trivial por la que los teléfonos más antiguos pueden no ser capaces de ejecutar la última versión de Android es que tanto el fabricante como el operador de telecomunicaciones (Verizon, AT&T, etc.) necesitan admitir el software que se ejecuta dentro de su ecosistema. El soporte de un nuevo sistema operativo requiere recursos por parte del fabricante del dispositivo y del operador. Las fuerzas del mercado sugieren que estos participantes en el mercado están más preocupados por las ventas futuras que por apoyar las ventas anteriores e invertir su capital humano en consecuencia.
Como desarrollador de software, ¿qué importa que haya nuevas versiones del sistema operativo? Esto se divide en dos grandes categorías cuando se trata de programar aplicaciones:
- Una nueva versión del sistema operativo a menudo introduce nuevas características que podemos aprovechar y / o nuestra base de usuarios espera que nuestras aplicaciones sean compatibles.
- Las características más antiguas (o heredadas) del entorno pueden estar obstaculizando las características más nuevas y/o representar un enfoque inferior para proporcionar un conjunto específico de funcionalidades. A veces es necesario eliminar el código de las definiciones de la API. Hay un término especial para esta» eliminación «de código que anteriormente funcionaba – lo llamamos»obsolescencia de código». Cuando se ha marcado una API para su eliminación, decimos que se trata de una API obsoleta. Esto es esencialmente un mensaje para el desarrollador que dice algo como esto: «Advertencia» este código se eliminará en el futuro, planifique en consecuencia.»
La plataforma Android ha sido bastante liberal (es decir, favorable para el desarrollador) con su enfoque de código obsoleto al permitir que las aplicaciones continúen usando API antiguas durante bastante tiempo después de ser marcadas como obsoletas. (Este enfoque contrasta con el enfoque de Apple con código obsoleto en iOS, donde el código antiguo simplemente puede dejar de funcionar en la próxima versión del sistema operativo. Con iOS, incluso el lenguaje de programación parece cambiar mientras no estamos buscando!)
Mientras que Android puede ser un poco más indulgente con su código obsoleto, necesitamos vigilar la etiqueta de documentación que dice que una API en particular está obsoleta. Si algún código que estamos usando está marcado como obsoleto, tendremos que cambiar nuestro enfoque en una versión futura de nuestra aplicación, ya que cualquier API que esté marcada como obsoleta se puede eliminar en una versión futura. Los marcadores de obsolescencia en el SDK son nuestra hoja de ruta hacia futuras oportunidades de mejora y posibles dolores de cabeza. A veces, la» nueva » forma de hacer las cosas es simple y directa, ¡pero no en todos los casos!
Ser un desarrollador de aplicaciones móviles exitoso requiere una inversión continua durante la vida útil de una aplicación donde el tiempo tiende a pasar como años de perro very ¡muy rápidamente!
Con esta introducción básica a las versiones de Android, es hora de obtener el SDK de Android.
Obtener e instalar el SDK de Android
Iniciar Android Studio. En el menú Herramientas, seleccione SDK Manager. Esta opción de menú carga el cuadro de diálogo de preferencias de Android Studio y selecciona previamente el submenú del SDK de Android. Este menú es nuestro principal medio para interactuar con los diversos SDK disponibles para las muchas versiones de Android.
Con cada versión del sistema operativo, el nivel de API aumenta. Observe que la revisión aumenta más lentamente que el nivel de API. Puede pensar en la revisión como una «generación» de la plataforma, o como un número de versión «Principal». Cuando navegues por la documentación de Android, asegúrate de tener en cuenta qué nivel de API se introdujo una capacidad en particular. Cada API está disponible en el nivel de API indicado y superior, a menos que la API haya sido obsoleta y posteriormente eliminada. Por ejemplo, la API ContactsContract se introdujo en el nivel 5, que es bastante «antigua» en este punto.
Seleccione uno o dos niveles de SDK para trabajar por ahora. Posteriormente, el SDK Manager descargará los archivos relacionados y los pondrá a disposición para su uso en Android Studio.
También en el menú Herramientas hay una opción para el Administrador de AVD. AVD significa Dispositivo Virtual Android. Este es el emulador. El emulador es útil porque nos permite probar aplicaciones en varios tipos, tamaños y versiones de dispositivos. Las capturas de pantalla de este tutorial se toman del emulador. Más sobre esto más adelante.
Crear tu primera aplicación para Android
Este tutorial te guiará a través de la creación de una aplicación básica para Android, llamada SaySomething
, usando Android Studio y demostrándolo en el emulador de Android.
Obtener el código
Paso 1: Crear un nuevo proyecto
- Seleccionar Archivo > Nuevo proyecto.
-
Rellene el cuadro de diálogo Crear proyecto de Android y haga clic en Siguiente.
Los requisitos para el nuevo proyecto incluyen:
- Nombre de la aplicación
- Dominio de la empresa (esto se invierte en com.dominio) para mantener las aplicaciones particionadas incluso si tienen el mismo nombre de aplicación.
- Ubicación del proyecto: dónde almacenar los archivos
- El nombre del paquete se sugiere desde el Nombre de la aplicación y el dominio de la empresa
- De forma predeterminada, las aplicaciones de Android se escriben en Java. Si desea admitir lenguajes alternativos, como C++ (para código nativo) o Kotlin, active las casillas correspondientes.
-
En el cuadro de diálogo Dispositivos Android de destino, especifique el nivel de API y las plataformas de destino. Como se mencionó anteriormente, Android es para algo más que teléfonos, aunque para nuestros propósitos simplemente seleccionaremos el factor de forma del teléfono y la tableta para este tutorial. A continuación, haga clic en Siguiente.
-
En el cuadro de diálogo Agregar una actividad al móvil, seleccione el tipo de actividad vacía. A continuación, haga clic en Siguiente.
Esto creará una aplicación predeterminada lista para compilarse y ejecutarse directamente desde Android Studio.
-
En el cuadro de diálogo Configurar actividad, asigne un nombre a los archivos de la aplicación.
Paso 2: Revisar el código
La siguiente figura muestra los componentes de nuestro nuevo proyecto:
Hay dos carpetas: app
y Scripts de Gradle
.
- La carpeta
app
contiene todo el código de nuestra aplicación. - La carpeta
manifests
en la carpetaapp
contieneAndroidManifest.xml
, que es el descriptor de implementación de esta aplicación. Este archivo le informa al dispositivo Android sobre cómo interactuar con la aplicación, qué actividad mostrar cuando se inicia la aplicación, qué Intenta los servicios de la aplicación, qué iconos mostrar y mucho más. - La carpeta
java
contiene el código fuente de la aplicación. En este caso, el archivo que implementa nuestra actividad más un par de archivos de clase para realizar pruebas automatizadas (que ignoraremos en este tutorial). - La carpeta
res
contiene los recursos para la aplicación, incluidos iconos, archivos de diseño, cadenas, menús, etc. - La carpeta
Scripts de Gradle
contiene todos los elementos de scripts para crear la aplicación. El sistema de compilación de Gradle es un tema en sí mismo. Por ahora, comprenda que estos scripts gobiernan el proceso de creación de la aplicación y, lo que es más importante, para proyectos y equipos más maduros, cada uno de estos pasos se puede ejecutar desde la línea de comandos. Esto es importante porque este enfoque admite la automatización y entra en la categoría de Integración Continua.
Ahora, examinemos el código fuente con más detalle.
Actividad principal para la aplicación
Nuestra aplicación de ejemplo consiste en una sola actividad, denominada Actividad principal
.
package com.navitend.saysomething;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.util.Log;import android.widget.Button;import android.widget.TextView;import android.widget.EditText;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("IBM","Hello there logcat!"); setContentView(R.layout.activity_main); final Button btnHitMe = (Button) findViewById(R.id.hitme); final Button btnMapMe = (Button) findViewById(R.id.mapme); final TextView tvLabel = (TextView) findViewById(R.id.thelabel); final EditText etLatitude = (EditText) findViewById(R.id.etLatitude); final EditText etLongitude = (EditText) findViewById(R.id.etLongitude); btnHitMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tvLabel.setText("Ouch!"); } } ); btnMapMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String coords = etLatitude.getText()+","+etLongitude.getText(); Log.i("IBM",coords); Uri mapsIntentUri = Uri.parse("geo:" + coords); Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapsIntentUri); startActivity(mapIntent); } } ); }}
Mostrar más Mostrar más icono
MainActivity es una clase Java normal, con un paquete e importaciones, como se esperaba.
MainActivity
extiende una clase base de Android llamada AppCompatActivity
, que se encuentra en el paquete llamado android.apoyo.v7.aplicación
. onCreate ()
es el punto de entrada a esta actividad, recibiendo un argumento de tipoBundle
. El Bundle
es una clase que es esencialmente un envoltorio alrededor de un mapa o hashmap. Los elementos necesarios para la construcción se pasan en este parámetro. setContentView(..)
es responsable de crear la interfaz de usuario principal utilizando el diseño R.argumento principal
. Este es un identificador que representa el diseño principal que se encuentra en los recursos de la aplicación. Tenga en cuenta que cualquier identificador en la clase «R» se genera automáticamente por el proceso de compilación. Básicamente, se accede a todos los archivos fuente xml de la carpeta res
descrita anteriormente con la clase R.Los recursos para la aplicación
Los recursos de Android se organizan en un subdirectorio del proyecto llamado res, como se describió anteriormente. Los recursos se dividen en varias categorías. Tres de estas categorías son:
-
Elementos de diseño
– Esta carpeta contiene archivos gráficos, como iconos y mapas de bits -
Diseños
– Esta carpeta contiene archivos XML que representan los diseños y las vistas de la aplicación. A continuación se examinan en detalle estas cuestiones. -
Valores
– Esta carpeta contiene un archivo llamadocadenas.xml
. Este es el medio principal para la localización de cadenas para la aplicación. Los colores del archivo.xml es útil para definir códigos de colores utilizados por la aplicación. Este archivo es análogo a una hoja de estilo css para aquellos familiarizados con las técnicas de programación web.
Recursos de interfaz de usuario primarios en la actividad principal.archivo xml
La aplicación de ejemplo contiene una sola actividad y una sola vista. La aplicación contiene un archivo llamado main_activity.xml
que representa los aspectos visuales de la interfaz de usuario principal de la actividad. Tenga en cuenta que no hay ninguna referencia en main_activity.xml
donde se utiliza el diseño. Esto significa que puede usarse en más de una actividad, si se desea. Consulte la siguiente lista de códigos
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="301dp"> <Button android:id="@+id/hitme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hit Me!" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="383dp" /> <Button android:id="@+id/mapme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Map Me!" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="460dp" /> </LinearLayout> <TextView android:id="@+id/thelabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Hello World, Say Something!!!!!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/etLatitude" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Latitude" android:inputType="numberDecimal" android:text="40.9241164" /> <EditText android:id="@+id/etLongitude" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Longitude" android:inputType="numberDecimal" android:text="-74.7213913" /></LinearLayout>
Show moreShow more icon
LinearLayout, hay un segundo LinearLayout
organizado como un diseño horizontal. Este diseño interior contiene un par de widgets de botones. Debajo de la horizontal LinearLayout
hay un único elemento TextView, que se puede comparar con una etiqueta en otros entornos de desarrollo. A TextView
representa texto estático que no es editable. Debajo de TextView
, hay dos widgets EditText
, configurados para tomar entradas numéricas. Estos elementos de entrada se utilizan para capturar un valor de Latitud y Longitud que posteriormente se transmitirá a una aplicación de cartografía, como se muestra a continuación.
Ten en cuenta que cada elemento de vista tiene atributos en el espacio de nombres de Android. Algunos atributos son comunes a todas las vistas, por ejemplo, los atributos android:layout_width
y android:layout_height
. Los valores disponibles para estos atributos son:
- Emparejar Padre: esto extiende el elemento view para ocupar el máximo espacio disponible. Esto también se puede considerar como «estirar».»
- Ajustar contenido: Esta opción da como resultado que el elemento se expanda lo suficiente para contener sus vistas secundarias o atributos, como texto o imagen.
Descriptor de implementación para una aplicación Android (AndroidManifest.xml)
El AndroidManifest.el archivo xml representa el descriptor de implementación de una aplicación Android. El archivo enumera cualquier actividad, servicio, proveedor de contenido o receptor contenido en la aplicación, junto con los filtros de intención adecuados compatibles con la aplicación. Aquí está el AndroidManifest completo.archivo xml para la aplicación de ejemplo:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.navitend.saysomething"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
Mostrar más Mostrar más icono
<manifest> está importando clases de este paquete. Todas las clases no totalmente calificadas de este archivo se encuentran en el paquete identificado en el atributo package.
<aplicación>
tiene un atributo que hace referencia a un recurso de los recursos de la aplicación. Anote el símbolo @ que precede a los distintos identificadores. Esta es una sugerencia para que la cadena de herramientas busque en la carpeta respectiva de los recursos de la aplicación para cada recurso. La etiqueta <activity>
contiene los siguientes atributos y valores de nota:
-
android: name
representa la clase Java que implementa esta actividad -
android: label
contiene el nombre de la aplicación. Tenga en cuenta que hace referencia a uno de los recursos de cadena. La cadena.el archivo xml
contiene cadenas localizadas para la aplicación. -
<intent-filter>
representa elIntentFilter
disponible en la aplicación de ejemplo. Este conjunto específico de atributos de acción y categoría son losIntentFilter
más comunes en aplicaciones Android. Este filtro esencialmente dice que implementa la acción principal (o punto de entrada) y está disponible en la pantalla de inicio que funciona actualmente para el sistema operativo. En términos simples, esto significa que se puede iniciar como una aplicación de la lista principal de aplicaciones en un dispositivo Android.
Paso 3: Compilar la aplicación
Para compilar la aplicación, selecciona el icono de llave inglesa (para mí se parece más a un martillo) en el menú de Android Studio.
El proceso de compilación, como se introdujo anteriormente, es un proceso de varios pasos que se puede personalizar para cualquier aplicación en particular. Para este tutorial, no modificamos el proceso de compilación. El resultado del proceso de compilación debería ser algo como esto:
Para demostrar el proceso de compilación, hemos introducido un error en el código fuente; agregamos un espacio adicional en el nombre del método findViewById
, que se muestra en la siguiente figura:
Esto crea un error de sintaxis o de análisis que detecta el proceso de compilación y se muestra en los detalles de la ventana de resultados de compilación en Android Studio. Al corregir el error en el código fuente, la aplicación se compila correctamente y los errores se eliminan de la lista de problemas.
Paso 4: Ejecutar la aplicación
Ahora que la aplicación se ha compilado correctamente, es hora de ejecutar la aplicación de ejemplo.
Anteriormente en este tutorial, el Administrador de AVD se introdujo como el medio para configurar el emulador para probar aplicaciones sin la necesidad de un dispositivo real. Ejecutar una aplicación usando el emulador es particularmente útil porque permite realizar pruebas sin la necesidad de comprar numerosos dispositivos costosos.
Para configurar un emulador o, más correctamente, un Dispositivo Virtual Android (AVD), seleccione Herramientas > Administrador de AVD. O simplemente haz clic en el icono Reproducir (Ejecutar).
Esto abre una ventana que le permite seleccionar un dispositivo real conectado mediante un cable USB o una instancia AVD disponible, como se muestra en la siguiente figura:
Si hay dispositivos conectados, cada uno se muestra en el menú desplegable debajo de Dispositivos conectados. También puede seleccionar uno de los dispositivos virtuales disponibles. En la figura anterior, hay un único AVD definido con el título Nexus One API P
. Para crear un nuevo AVD, seleccione el botón Crear nuevo dispositivo virtual.
Finalmente, haga clic en Aceptar para iniciar la aplicación en el destino de implementación seleccionado. El AVD o emulador se inicia con nuestra aplicación de ejemplo ejecutándose en él.
Paso 5: Pruebe la aplicación en el emulador
Ahora que la aplicación se está ejecutando en el emulador, echemos un vistazo a lo que está sucediendo detrás de escena. En Android Studio, selecciona Ver Ventanas de herramientas >. Destacaremos solo un par de estas opciones de herramientas, aunque cada una de ellas es un tema en sí mismo.
Herramientas de Android Studio
En primer lugar, mire el generador de perfiles de Android, que muestra un gráfico en ejecución de CPU, Memoria y tráfico de red. El generador de perfiles de Android nos permite alternar entre diferentes instancias de dispositivos/emuladores y los respectivos procesos en ejecución. La siguiente figura muestra las métricas de nuestra aplicación de ejemplo que se ejecuta en una instancia de emulador.
El registro es una herramienta útil para cualquier desarrollador en cualquier plataforma. Para los desarrolladores de Android, el nombre de la herramienta es LogCat.
El LogCat es un archivo de registro en ejecución de la actividad que tiene lugar en la máquina virtual. Las aplicaciones pueden hacer sus propias entradas a esta lista con una simple línea de código de la siguiente manera: Log.i (etiqueta, mensaje); 1
, donde etiqueta
y mensaje
son cadenas Java. La clase Log
es parte de android.útil.Paquete Log
.
Otra herramienta útil es el explorador de archivos, que permite el acceso al sistema de archivos del Emulador. La siguiente figura muestra dónde se implementa la aplicación de ejemplo del tutorial en el Emulador.
Las aplicaciones de usuario se implementan en / data / app
, mientras que las aplicaciones integradas de Android se encuentran en el directorio /system/app
.
La depuración a gran escala de una aplicación Android está más allá del alcance de este tutorial, aunque tenga la seguridad de que Android Studio es compatible con todas las herramientas modernas de depuración de aplicaciones que podemos esperar con cosas como Intervenir y sobrepasar las llamadas a funciones.
Probar la aplicación de muestra
Toque en el Golpéame! botón, y el contenido de la etiqueta cambia a » Ouch!»
¡Toque en el mapa Me! se inicia una aplicación de asignación con la latitud y longitud especificadas que figuran en los widgets EditText.
El cableado de los botones está en la actividad principal.código xml. En particular, tenga en cuenta cómo se extraen los valores de latitud y longitud y se empaquetan en una Intent, que se utiliza posteriormente para iniciar la aplicación de asignación.
Este tutorial presentó la plataforma Android, Android Studio y los elementos clave del desarrollo de Android. Ahora deberías estar listo para crear tus propias aplicaciones de Android.
¿estás listo para algo más? Pruebe este tutorial en el que utiliza las API de Bluetooth de baja energía (BLE) para crear dispositivos conectados al IoT.