introducción
En estos días se está incrementando la demanda de teléfonos inteligentes y tenemos
diferentes tipos de clientes, por ejemplo, teléfonos táctiles, mesas, notas, etc.
Las demandas de las aplicaciones para estos clientes inteligentes son constantemente
Aumentando y tenemos varios sistemas operativos para estos clientes inteligentes.
Por ejemplo, Android, IOS y Windows, etc. Este artículo proporcionará una
Guía para el desarrollador .net o principiantes para desarrollar aplicaciones para Android.
Ambiente de desarrollo
Este artículo no se centra en cómo instalar / configurar
Entorno de desarrollo, puedes encontrar diferentes entornos de desarrollo.
en Internet. En este artículo, usaré el entorno de desarrollo ” eclipse mobile juno “.
Crear nuevo proyecto
Para crear un nuevo proyecto, haga clic en Archivo -> Nuevo -> Proyecto.

Se abre la nueva ventana del asistente donde puede seleccionar la aplicación.
Plantilla y establecer el nombre del proyecto y el nombre del paquete.

Al hacer clic en el botón Siguiente, se mueve al siguiente paso. aquí
proporcione el “Nombre de la aplicación”, el “Nombre del proyecto” y el “Nombre del paquete”.
“Nombre del paquete” es igual a “Espacio de nombre” en .Net y debe ser único.
El nombre del proyecto solo lo usa Eclipse y debe ser único en el
espacio de trabajo

También debe seleccionar “SDK mínimo requerido” del menú desplegable. Eso
Es la versión más baja de Android que tu aplicación soportará.
Luego seleccione “Target SDK”, que es la API más alta que la aplicación
Se sabe que trabaja con. A continuación, seleccione el SDK instalado para “Compilar con”
opción para compilar su código para el SDK seleccionado seleccionado.
En los siguientes pasos del asistente, debe seleccionar iconos, algunos
Otra información y en el último paso indique el nombre de su actividad.
y su tipo de navegación.

Proporcionaré el detalle de la actividad y el diseño más adelante, por ahora.
Puede decir que es el formulario de Windows como aplicación de escritorio o como página web.
en la aplicación web. Proporcione el nombre de Actividad y Diseño. Salir
Tipo de navegación “Ninguno” por ahora. Presione el botón de terminar. Eclipse lo hará
Generar automáticamente la actividad de inicio para usted.

Dentro del Eclipse, puedes ver tu proyecto en el “Paquete
Panel “Explorador” de la parte izquierda de la pantalla. El “HelloWorld”
La aplicación contiene varias carpetas y archivos generados automáticamente. Vamos a
discutirlo uno por uno
- / Src: contiene la fuente all java
Archivos que están asociados al proyecto. Por ejemplo el
El archivo MainActivity.java generado por Eclipse se almacena en este directorio
bajo el nombre del paquete “com.MyFirst.helloworld” que especificó en el
mago. Puede agregar más paquetes para su aplicación, por ejemplo
com.MyFirst.Fragments, CommonClasses etc.
- / gen: contiene los archivos fuente de java
y otros archivos de código generados por Eclipse. Usaremos el código del archivo R.java.
Más adelante en nuestro proyecto. Este archivo se genera para vincular su recurso.
archivos para usar en sus archivos java en la carpeta / src.
- Directorios de Andriod (/ Android 4.2 y / Dependencias de Android):
El directorio de Android 4.2 se genera contra tu Android seleccionado
Carpeta SDK y Dependencias, se genera el archivo de soporte para el
Compatibilidad con versiones anteriores de Android SDK.
- / assests: Por defecto esto está vacío
carpeta, pero puede poner sus recursos en bruto en ella y estos archivos se incluyen en
Tus proyectos tal como son. Por ejemplo es una buena ubicación para texturas y
datos del juego.
- / bin: Es el directorio de salida para la compilación. Puede encontrar el archivo .apk final y otros recursos compilados en esta carpeta.
- / libs: contiene las bibliotecas privadas (jar) que puede usar en su aplicación.
- / res: contiene todos los recursos
Archivos que están asociados a su aplicación. Todo el grafico
elemento, cadena y diseño de la aplicación existe una de las subcarpetas
de la res. Agregaremos algún recurso más adelante en este proyecto. El auto
el archivo de diseño generado “activity_main.xml” por Eclipse existe en el diseño
subcarpeta
- Project.properties: Este archivo es
generado por el asistente de proyectos de Android y se utiliza para la configuración de Eclipse.
Es muy raro cambiar este archivo directamente. En su lugar, haga clic derecho en
el proyecto en Eclipse y haga clic en propiedades y realice cualquier cambio que
Se requiere para su aplicación.
Ejecute su aplicación en el emulador
Primero necesitas configurar el emulador para probar tu
solicitud. Para configurar su emulador haga clic en la ventana -> Android
Administrador de dispositivos virtuales


Se abrirá una ventana emergente donde puede crear un nuevo dispositivo virtual,
Editar existe e inicia cualquier dispositivo virtual. Después de crear tu nuevo virtual
Dispositivo de cerrar esta ventana. Ahora haga clic derecho en la aplicación en “Paquete
Panel de “Explorador” en el lado izquierdo de la pantalla y haga clic en Ejecutar como
-> Aplicación para Android. Se compilará tu aplicación y se ejecutará.
En el emulador.

Después de unos minutos, se iniciará el emulador y podrá ver su aplicación HelloWorld en él.

En la pantalla se puede ver la barra de estado, la barra de acción y la navegación.
Bar. No tiene nada que ver con la barra de estado y la barra de navegación,
está siendo gestionado por el sistema. La barra de acción contiene el logo y el título.
de su aplicación y también puede abrir el menú haciendo clic en el botón Menú
(tres puntos verticales) en él. Área de diseño donde colocamos todos los controles de UI.
Patrón de diseñó
Como se mencionó anteriormente, Eclipse genera por defecto uno.
diseño. En el emulador, la aplicación solo muestra el texto “Hello World!”
en el medio de la pantalla. Abra el diseño de
/res/layout/activity_main.xml y puede ver el diseño en el diseñador en
El área media de Eclipse. Puede cambiar la vista desde el gráfico o xml según
tu deseo. Eclipse le ofrece ambas opciones en la parte inferior del diseño.
“Diseño gráfico” o “activity_main.xml”.

En el diseñador puedes ver todos los controles disponibles para el diseño de la interfaz de usuario
en diferentes pestañas, por ejemplo, campos de texto, diseños, etc. Crearé una interfaz de usuario
A continuación en la imagen para entender el componente básico de Android.
solicitud. Vamos a empezar a jugar con el diseño.

Este diseño está diseñado utilizando Diseño lineal. LinearLayout
es un grupo de vista que alinea a los niños en una sola dirección, horizontal o vertical. El atributo android:orientation
se utiliza para establecer la dirección. Ej. android:orientation="vertical"
. Eclipse proporciona una panorámica de propiedades en el lado derecho de la pantalla para configurar las propiedades del diseñador. TextView
control TextView
es un texto de solo lectura. Solo puedes verlo y no puedes editarlo. EditText
control EditText
se usa para obtener información del usuario. Button
es un control de botón estándar y, en el evento de clic, realizamos la acción correspondiente.
Ocultar Encogimiento

Copiar código
.
.
.
Una cosa que debes notar en esta interfaz de usuario, no he registrado ninguna
evento para los botones aquí en el diseño. Podemos hacer aquí usando el atributo onClick
,
Pero no es una buena manera de hacerlo aquí. Ahora es el momento de entender el
Algunas propiedades / atributos de diferentes elementos de la interfaz de usuario.
Propiedades
layout_width & layout_height: estas propiedades se utilizan para establecer el ancho y la altura del elemento. Los valores posibles son ” fill_parent
“, ” match_parent
“, ” wrap_content
” y cualquier número (por ejemplo, 100dp). El fill_parent
y match_parent
son iguales. fill_parent
nombre de match_parent
a match_parent
en el nivel de API 8 y superior, lo que significa que la vista quiere ser tan grande como la principal (menos el relleno). wrap_content
significa establecer el ancho o la altura de acuerdo con el contenido o el elemento secundario.
android: background = “@ drawable / header_bg_royal”:
Esta propiedad es similar a los otros lenguajes de programación para establecer
Fondo del elemento. El punto interesante aquí es establecer el
Fondo de los recursos de la aplicación de Android. header_bg_royal
es la imagen que pegué en res/drawable-hdpi
. Puedes ver la ruta completa en la imagen de abajo.

En el archivo XML de diseño, podemos acceder a los recursos utilizando el signo @
al comienzo del nombre del recurso. @drawable
significa obtener el recurso de la carpeta dibujable. Puedes ver más de
una carpeta dibujable p. ej. drawable-hdpi, drawable-ldpi etc. La razón
para varias carpetas es que tenemos una gran veracidad de la máquina cliente es cierto
usando tablas, notas, móviles, etc. El tamaño de la pantalla y la resolución varían
cliente a cliente Puedes crear tus iconos, imagen para diferentes.
Resolución y ponerlo en la carpeta correspondiente. Sistema operativo Android
Seleccionar automáticamente la mejor imagen adecuada para su visualización.
@ drawable / header_bg_royal
significa obtener header_bg_royal
imagen / recurso desde drawable
.
android: text = “@ string / intent_title”: Espero que hayas entendido qué propósito de @
sign es y qué significa string después de eso y qué intent_title
es. Antes de explicarlo de nuevo, déjame explicarte por qué necesito poner todos mis
cadenas en los archivos de recursos. Si codifico el texto de cualquier control.
en el archivo xml, el Eclipse advierte que se mueva al recurso
expediente. Puede ver una advertencia en la imagen que se muestra a continuación, cuando configuro
la propiedad del texto del botón es “Botón”, Eclipse está enviando un mensaje de advertencia a
moverlo en el archivo de recursos de string
.

La pregunta es por qué debería ser un recurso de cadena. Aunque tú
Puede codificarlo, pero no es una buena práctica de programación. Supongamos que usted
Tiene 10 apariciones de texto en diferentes actividades o maquetación. por
cambiando el texto que necesitas para entrar en cada actividad / diseño y cambiar
ahí. Si pones ese texto en la cadena de recursos entonces el cambio
requiere solo un lugar. También puedes crear tu aplicación.
multilingüe utilizando estos archivos de recursos.
@string/intent_title
significa obtener el valor de intent_title
del recurso de string
.
android: textColor = “@ color / white_color”: Para
configurando el primer plano del texto, obtenga el valor de color del archivo de recursos.
En la siguiente sección, conocerá cómo podemos agregar valor en el recurso.
expediente.
android: id = “@ + id / btn_phone_call”: Si desea acceder a cualquier control en el código, asígnele un ID. El signo +
con @
significa que si el recurso existe, utilícelo, de lo contrario, créelo. @+id/btn_phone_call
significa usar btn_phone_call
en el recurso id y, si existe, btn_phone_call
.
Archivo de recursos

Eclipse le proporciona una provisión para agregar recursos usando
diseñador. También puede utilizar la vista XML para agregar recursos. Puedes añadir
diferentes tipos de recursos, por ejemplo, cadena, color, matriz, etc. No iré
En el detalle de recursos en este artículo. Puedes leer más sobre esto
En diferentes tutoriales.
Actividad
Es un concepto muy importante del desarrollo de Android. Un
La actividad representa la pantalla en una aplicación. Puedes usarlo en
Diferentes formas como ventana flotante o incrustada dentro de otra actividad.
La clase debe ser heredada de la clase de Activity
para su actividad. extends
palabra clave se utiliza para la herencia en Java.
Ocultar código de copia
Clase pública MainActivity extiende la actividad {
@Anular
void protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
}
@Anular
público booleano onCreateOptionsMenu (menú del menú) {
// Inflar el menú; esto agrega elementos a la barra de acción si está presente.
getMenuInflater (). inflate (R.menu.activity_main, menu);
devuelve verdadero
}
}
onCreate
método onCreate
se utiliza para inicializar su actividad. Por lo general, llamamos al método setContentView()
para definir el diseño de la actividad y también para obtener los controles de la IU utilizando findViewByid()
que se requieren para interactuar mediante programación.
super.onCreate()
significa llamar al método onCreate
de la clase base. Super
se utiliza para acceder a la clase base en java. El diseño que está asociado con esta actividad está en activity_main.xml . Puede obtener el ID de ese recurso utilizando R.layout.activity_main
. R
es la clase generada automáticamente que mantiene los recursos y la usamos para acceder a los recursos en el código. setContentView(R.layout.activity_main)
establece el diseño para la actividad.
onCreateOptionsMenu()
método onCreateOptionsMenu()
se utiliza para manejar el menú para esa actividad. Te lo explicaré más tarde.
Control de Acceso / Ver en Actividad
Después de configurar la vista de contenido de la actividad, puede obtener el control mediante el findViewById(viewId)
. Toma el id de vista / control como un parámetro y devuelve la vista que se encuentra. View
es
la clase base para widgets, que se utilizan para crear una interfaz de usuario interactiva
Componentes (botones, campos de texto, etc.). Tenemos que convertir la view
en los widgets originales.
Ocultar código de copia
Botón btnPhoneCall = (Botón) findViewById (R.id.btn_phone_call);
EditText txtName = (EditText) findViewById (R.id.txt_name);
En el código de ejemplo anterior, findViewById(R.id.btn_phone_call)
encuentra el botón que tiene el ID pasado como parámetro y encuentra el
por id. Ahora, después de encontrarnos, podemos usar estas Vistas / Controles en nuestro código.
Ahora necesitamos registrar un evento de clic del botón y al hacer clic haremos
Abrir vista de llamada de teléfono de Android.
Ocultar código de copia
btnPhoneCall.setOnClickListener (nuevo OnClickListener () {
@Anular
vacío público onClick (ver v) {
onPhoneCallClick ();
}
});
Hay tres formas de implementar oyentes en java y
Tienen sus propias ventajas y desventajas. Estas tres formas son
- Implementación en línea
- Usando la palabra clave implementa
- Mediante el uso de variables
Puedes estudiar sobre estas diferentes formas en internet. En el
El ejemplo anterior registro el oyente para el botón usando Inline
implementación. Llame setOnClickListener()
método setOnClickListener()
del botón y pase OnClickListener
como parámetro. En el controlador OnClickListener
anula el evento onClick
. Cuando el usuario haga clic en el botón, se activará el evento onClick
. Puedes escribir tu código dentro de onClick
.
Intención
Intent
es el mensaje asíncrono que permite.
componentes de Android para solicitar la funcionalidad del otro componente de
El sistema Android. Representa la “Intención de hacer algo” de una aplicación. Nosotros
puede usar intenciones para diferentes tareas, por ejemplo, hacer llamadas, abrir mapa, abrir
actividad etc. Pero la mayoría de las veces se utilizan para iniciar otra actividad.
Cómo iniciar otra actividad
Hasta aquí, has aprendido acerca de la actividad, los recursos de diseño y la intención. Cree otro nombre de actividad ” LifeCycleActivity
” y cree su diseño ” activity_life_cycle.xml
”
en la carpeta de diseño. Es mejor usar Eclipse para agregar actividad a su
Aplicación que genera automáticamente el diseño para esa actividad y
Coloca automáticamente la información necesaria de la actividad en el archivo ” AndroidManifest.xml “. De lo contrario hay que hacerlo manualmente. Haga clic derecho en su aplicación en el panel ” Explorador de paquetes ” en el lado izquierdo y haga clic en Nuevo> Otro . Se abrirá una ventana emergente donde debe seleccionar ” Actividad de Android ” y, después de completar el asistente, creará una Actividad y un diseño predeterminado para usted.

Cree el objeto de la clase Intent y páselo al método startActivity()
. Intent
clase de Intent
tiene un tipo diferente de constructor, para iniciar el contexto de la actividad y la clase de actividad para el objeto. Clase de Activity
es la subclase de contexto, así que pase esto como un primer parámetro y la
Pase la clase a la cual el sistema debe entregar la intención. Entonces
pase esta intención al método startActivity()
y se iniciará su segunda actividad.
Ocultar código de copia
Intención intención = nueva Intención (esto, LifeCycleActivity.class);
startActivity (intención);
Hay algunos otros métodos para iniciar la actividad. Puedes estudiar sobre ellos también.
- startActivityForResult (intent, requestCode)
- startActivityFromChild (child, intent, requestCode)
- startActivityFromFragment (fragmento, intención, requestCode)
Abrir el marcador del teléfono
Lanzar el marcador del teléfono también es bastante fácil en Android, puedes hacerlo.
envía un mensaje al sistema operativo Android para ejecutar una aplicación específica con la intención
Ocultar código de copia
Uri uri = Uri.parse ("tel: 03361122334");
Intención intención = nueva Intención (Intent.ACTION_VIEW, uri);
startActivity (intención);
Cuando crea un mensaje asíncrono (intentos) desde el Uri
, le dice al sistema que abra una actividad que pueda manejar el esquema de Uri
. En el ejemplo anterior, Uri
start from tel: carga una actividad desde la aplicación de marcación telefónica con el número cargado.
Pasar datos a otra actividad
Puede pasar datos fácilmente con su mensaje asíncrono (intención)
Como pasamos a la actividad del marcador telefónico. Pero pasamos al teléfono.
Actividad del marcador utilizando Uri
. También puede poner una cadena, un entero u otros valores en la intención y también puede poner su objeto de clase personalizado. Use el método intent.putExtra()
para poner información adicional en su intento. Este método tiene muchos métodos sobrecargados, use el método apropiado para sus datos.
Ocultar código de copia
Estudiante std = getStudent ();
Intención intención = nueva Intención (esto, DetailActivity.class);
intent.putExtra ("student", (Serializable) std);
startActivity (intención);
La actividad ” DetailActivity
” que está recibiendo la intención expone el método para recuperar la información adicional. El método getIntent()
devuelve la intención y luego puede obtener información adicional utilizando getExtras()
método. Este método devuelve el paquete y del paquete puede obtener
Su información deseada utilizando métodos de obtención según su tipo de información.
En este ejemplo, estoy llamando ” (Student)bundle.getSerializable("student");
”Porque mi información era un objeto capaz de ser serializado y luego lo estoy devolviendo a mi objeto de clase concreto.
Ocultar código de copia
Bundle bundle = this.getIntent (). GetExtras ();
Student std = (Student) bundle.getSerializable ("student");
Nombre de cadena = std.getName ();
Ciclo de vida de la actividad
Para una correcta comprensión de las actividades, es necesario
Comprender el ciclo de vida de la actividad. Las actividades se gestionan en el
El sistema como una pila de actividades. Cuando comienza una nueva actividad se coloca en
La parte superior de la pila y se convierte en la actividad en ejecución. El anterior
Las actividades siempre permanecen debajo de él en la pila y no vendrán a la
Frente hasta que exista la nueva actividad. A continuación se muestra la lista de métodos.
Lo que llama a cada estado de la actividad.
Ocultar Encogimiento

Copiar código
@Anular
void protegido onCreate (Bundle savedInstanceState) {
}
@Anular
void protegido onStart () {
}
@Anular
void protegido onRestart () {
}
@Anular
nulo protegido onResume () {
}
@Anular
nulo protegido onPause () {
}
@Anular
void protegido enStop () {
}
@Anular
void protegido onDestroy () {
}
onCreate()
llamado cuando se crea la actividad por primera vez. onStart()
llamado cuando la actividad es visible para el usuario y onResume()
llamado cuando la aplicación inicia la interacción con el usuario. En este punto, su actividad se encuentra en la parte superior de la pila de actividades.
onPause()
llamado cuando el sistema está a punto de
empezar a reanudar la actividad anterior. Normalmente se utiliza para guardar el
datos no guardados para persistir, detener la animación u otro trabajo que pueda
consumir CPU.
onStop()
llamado cuando la actividad es no
Más visible para el usuario, porque se ha reanudado otra actividad.
y está cubriendo este.
onRestart()
llamado después de que se haya detenido su actividad. Llamó antes de comenzar de nuevo.
onDestroy()
llamado antes de que tu actividad sea destruida.
Crear menú

Para crear un menú, abra res / menu / activity_main.xml
archivo y añadir sus elementos de menú en él. Establecer id y título para cada elemento del menú
y luego puede manejar este elemento de menú por ID en la clase de actividad.
Ocultar código de copia
Para manejar el método de clic del elemento del menú, anule el
onOptionsItemSelected (elemento MenuItem)
Método en tu actividad. Este método se dispara cada vez que el usuario
haga clic / seleccione cualquier elemento del menú. Para el manejo de diferentes acciones para cada uno.
el elemento obtiene el ID del elemento de menú seleccionado utilizando el método getItemId()
y realiza la acción para cada elemento de menú.
Ocultar Encogimiento

Copiar código
@Anular
public boolean onOptionsItemSelected (elemento MenuItem) {
booleano manejado = falso;
int id = item.getItemId ();
interruptor (id)
{
caso R.id.menu_settings:
{
Toast.makeText (esto, "Haga clic en el elemento del menú de configuración.", Toast.LENGTH_SHORT) .show ();
manejado = verdadero;
descanso;
}
caso R.id.menu_other
{
onOpenActivity ();
manejado = verdadero;
descanso;
}
caso R.id.menu_exit:
{
terminar();
manejado = verdadero;
descanso;
}
defecto:
{
manejado = super.onOptionsItemSelected (item);
}
}
devolución manejada;
}
Cada actividad puede tener su propio menú. Puedes poner diferentes elementos de menú para
Cada actividad y manejarla de manera diferente. Alguna actividad no puede tener ninguna
menú. Para esto, no onCreateOptionsMenu
método onCreateOptionsMenu
en su actividad. En este método menuInflater
elementos del menú a menuInflater
.
Leer más: empresa de desarrollo de aplicaciones Android