Programación

Introducción y primera APP en Android

ScreenAndroid es un sistema operativo basado en Linux, diseñado principalmente para móviles con pantalla táctil como teléfonos inteligentes o tabletas inicialmente desarrollados por Android, Inc., que Google respaldó económicamente y más tarde compró en 2005,  Android fue presentado en 2007 junto la fundación del Open Handset Alliance: un consorcio de compañías de hardware, software y telecomunicaciones para avanzar en los estándares abiertos de los dispositivos móviles.

Kernel de Linux

En la base tenemos el kernel 2.6 de Linux, Android lo utiliza por su robustez demostrada y por la implementación de funciones básicas para cualquier sistema operativo, por ejemplo: seguridad, administración de memoria y procesos, implementación de conectividad de red (network stack) y varios interpretes (drivers) para comunicación con los dispositivos físicos(hardware).

Android utiliza como base el kernel de Linux pero los dos sistemas no son lo mismo, Android no cuenta con un sistema nativo de ventanas de Linux ni tiene soporte para glibc (libería estándar de C) ni tampoco es posible utilizar la mayoría de aplicaciones de GNU de Linux.

Además de todo lo ya implementado en el kernel de Linux, Android agrega algunas cosas específicas para plataformas móviles como la comunicación entre procesos (lograda a través del binder), la forma de manejar la memoria compartida (ashmem) y la administración de energía (con wakelocks). De las características únicas del kernel utilizado por Android encuentran más información en Android Kernel Features.

Bloques básicos de una aplicación

Una vez vista la arquitectura, empezaremos con lo fundamental para desarrollar una aplicación. Los componentes básicos de una aplicación son: activities, intents, views, services, content providers y broadcast receivers. Si dominan bien estos términos pueden saltar directo al código.

1) Antes de comenzar, asegúrese de que tiene el entorno de desarrollo establecido. Es necesario:

– Descargue el SDK de Android.
– Instalar el plugin ADT para Eclipse.
– Descargar las últimas herramientas de SDK y plataformas usando el Administrador de SDK.

Una alternativa a todo eso es descargar el ADT Bundle.

2)  Crear un teléfono virtual y luego un nuevo proyecto llamado Test (Más info: AquiAqui)

3)

– Modificar el archivo activity_main.xml que se encuentra en res/layout/:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal">
 <EditText android:id="@+id/edit_message"
 android:layout_weight="1"
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:hint="@string/edit_message" />
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/button_send" />
</LinearLayout>

– Modificar el archivo string.xml que se encuentra en res/values/:


<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">Mi primera APP</string>
 <string name="edit_message">Ingrese un mensaje</string>
 <string name="button_send">Enviar</string>
 <string name="action_settings">Configuraciones</string>
 <string name="title_activity_main">Mi primera APP</string>

</resources>

4) Ejecutar nuestra primera APP para probar si todo salió bien. (El tutorial es sacado de Aqui)

Agregando funcionalidad al botón Enviar:

1) Modificar el archivo activity_main.xml que se encuentra en res/layout/ y agregar el evento onClick:


<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/button_send"
 android:onClick="sendMessage" />

2) Abrir MainActivity.java (ubicado en src/ ) y dejarlo así:


package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.content.Intent;
import android.widget.EditText;

public class MainActivity extends Activity {

 public final static String EXTRA_MESSAGE = "com.example.test.MESSAGE";

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 }

@Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.main, menu);
 return true;
 }

 /** Called when the user clicks the Send button */
 public void sendMessage(View view) {
 Intent intent = new Intent(this, DisplayMessageActivity.class);
 EditText editText = (EditText) findViewById(R.id.edit_message);
 String message = editText.getText().toString();
 intent.putExtra(EXTRA_MESSAGE, message);
 startActivity(intent);
 }

}

2) Crear la actividad DisplayMessageActivity y abrir dicho archivo para dejarlo así:


package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;
import android.content.Intent;
import android.widget.TextView;

public class DisplayMessageActivity extends Activity {

@Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

// Traer el mensaje del intento
 Intent intent = getIntent();
 String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

// Crear el text view
 TextView textView = new TextView(this);
 textView.setTextSize(40);
 textView.setText(message);

// Poner el text view como actividad del layout
 setContentView(textView);
 }

@Override
 public boolean onOptionsItemSelected(MenuItem item) {
 //Para navegación
 switch (item.getItemId()) {
 case android.R.id.home:
 NavUtils.navigateUpFromSameTask(this);
 return true;
 }
 return super.onOptionsItemSelected(item);
 }
}

3) Modificar el archivo string.xml que se encuentra en res/values/ y agregar lo siguiente:


<?xml version="1.0" encoding="utf-8"?>
<resources>

...

 <string name="title_activity_display_message">Pantalla 2</string>

</resources>

4) Ejecutar nuevamente la APP y ver si todo está bien, si tienen alguna duda o necesitan más funcionalidad ir a este link.

Salir de la versión móvil