Antes de empezar a crear aplicaciones o servicios que ejecuten determinadas funcionalidad hay que tener muy claro cuales son las partes que pueden constituir un proyecto de android. A diferencia de cualquier programa desarrollado en un lenguaje de programación puro, las librerías de android tienen una serie de elementos que son utilizados sobre un marco común para poder dar funcionalidad conjunta. Los elementos que nos podemos encontrar en una aplicación android son:
Activity
Se trata del componente principal de la aplicación si esta tiene interfaz gráfica. Normalmente se suelen asociar a las pantallas que están dentro de una aplicación . De forma genérica tendremos una activity por cada una de las pantallas que formen la aplicación.
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
View
Son los componentes gráficos que están dentro de una pantalla. Podemos encontrar multitud de componentes con funcionalidades diversas: campos de texto, etiquetas, listas, desplegables, layouts, etc…
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />
Service
Los servicios son componentes que pueden formar parte de la aplicación y realizar un trabajo específico pero que no tienen interfaz gráfica, se ejecutan en segundo plano sin mostrar nada a priori.
public class DummyService extends Service { @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { return null; } @Override public IBinder onBind(Intent arg0) { return null; } @Override public void onDestroy() { } }
Content Provider
Los content provider o provedores de contenidos son los elementos encargados de actuar de nexo de unión entre dos aplicaciones que necesitan intercambiar datos de forma directa
public class DummyContentProvider extends ContentProvider { @Override public boolean onCreate() { return false; } @Nullable @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { return null; } @Nullable @Override public String getType(Uri uri) { return null; } @Nullable @Override public Uri insert(Uri uri, ContentValues values) { return null; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { return 0; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { return 0; }
Broadcast Reciver
Los broadcast reciver son los elementos encargados de escuchar si la aplicación ha recibido algún tipo de notificación desde otra aplicación o servicio y actuar ante dicha situación
public class DummyBroadcastReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } }
Intent
Los intent o acciones son tareas de comunicación que se producen entre pantallas de la misma activity o lanzadores de acciones sobre alguna aplicación instalada en nuestro teléfono móvil. Ejemplos como realizar una llamada, mandar un sms, abrir google maps con una localización específica, etc…
Intent i = new Intent(Intent.ACTION_CALL); i.setData( Uri.parse("tel:111111111")); startActivity(i);
La creación de la mayoría de estos elementos además de tener su clase propia o código dentro de la clase que extiende del tipo concreto (Service, Activity, ContentProvider, etc….) también tendrán que estar definido dentro del fichero AndroidManifest.xml ya que será el punto de entrada de la aplicación. Esto se irá tratando en cada uno de los elementos.