You are on page 1of 5

EL SISTEMA OPERATIVO ANDROID

José Francisco Henríquez Jiménez

HERRAMIENTAS DE PROGRAMACIÓN MÓVIL


Instituto IACC
01-10-2017
INSTRUCCIONES: Lea atentamente el planteamiento y responda a lo solicitado.

Ud. ha sido contratado por la empresa de tecnología Manzana. Históricamente Manzana ha


desarrollado aplicaciones para plataformas distintas a Android (como por ejemplo Mora y
yoFono). Como Ud. es el desarrollador experto en Android, un compañero se ha acercado y le ha
preguntado qué significa el siguiente archivo AndroidManifest.xml:

<?xml version="1.0" encoding="uft-8"7'>


<manifest xmls:android="http://schemas.android.com/apk/res/android"
package="com.example.iacc.myaplication">

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application
android:allowBackup="true"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">

<activity
android:name=".MainActivity"
android:label="@string/app_name"
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</activity android:name="Calendario">
</activity>

</application>

</manifest>

Explíquele, qué hace cada sección del archivo.

Al momento de iniciar un nuevo proyecto Android, uno de los muchos archivos generados en la
carpeta de proyecto es el manifest. Este archivo es el que une las piezas y explica en qué consiste
la aplicación completa, de qué y cuántas aplicaciones está compuesta, qué permisos necesita,
etc.
El archivo manifest contiene información esencial para el sistema operativo. Esta información
debe tenerla el sistema antes que pueda ejecutar el código de la aplicación

<?xml version="1.0" encoding="uft-8"7'>


<manifest xmls:android="http://schemas.android.com/apk/res/android"
package="com.example.iacc.myaplication">

Nombra el paquete Java de la aplicación. El nombre del paquete sirve como identificador único para
la aplicación y a través de este puede ser ejecutada por otras aplicaciones.
Además describe los componentes de la aplicación, ya sean actividades, servicios, recepción de
mensajes push y proveedores de contenidos, nombra las clases que implementa cada uno de los
componentes y publica sus capacidades (por ejemplo, el tipo de mensajes que pueden enviar o
recibir). Estas declaraciones le permiten saber al sistema operativo qué componentes existen y bajo
qué condiciones pueden ser ejecutados.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

Declara los permisos que debe tener la aplicación para acceder a partes protegidas de la API e
interactuar con otras aplicaciones, declara los permisos que otras aplicaciones deben tener para
interactuar con los componentes de esta aplicación.

<application
android:allowBackup="true"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">

Lista los instrumentos que otorgan información de profiling2 mientras la aplicación está en ejecución.
Estas declaraciones están presentes solamente mientras la aplicación está siendo desarrollada.

El primer elemento dentro del elemento manifest (llamado raíz) corresponde a la configuración de
los elementos del sistema operativo que van a ser utilizados durante la ejecución.

 android:allowBackup: especifica si se puede o no hacer un respaldo de la aplicación. Los


respaldos son permitidos solamente cuando este valor es true. En caso contrario, el valor es
false.
 android:icon: es el valor que corresponde al ícono de la aplicación. @drawable es un
llamado a los componentes visuales del paquete de la aplicación. En semanas sucesivas se
verá esto con mayor profundidad.
 android:label: corresponde al nombre que aparece bajo el ícono en el “escritorio” del
dispositivo Android.
 android:theme: es el esquema visual de la aplicación. El valor por defecto es
@style/AppTheme y se construye automáticamente al momento de crear un nuevo
proyecto Android.
android:name=".MainActivity"
android:label="@string/app_name"
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</activity android:name="Calendario">
</activity>


Lista las bibliotecas que deben ser incluidas en la aplicación.

Dentro del elemento application, existe el elemento activity que se encarga de la configuración de
cada uno de los archivos Java (clases) dentro del proyecto. Una explicación más acabada también se
verá en semanas posteriores. Los atributos de activity pueden ser los siguientes:

 android:name: corresponde al nombre del archivo que contiene el código Java a ejecutar.
Siempre se inicia con un “.”.
 android:label: es el nombre que se verá en el borde superior de la pantalla del teléfono.
Cada clase contenida dentro de una aplicación puede tener un nombre distinto.

Su compañero además tiene dudas respecto a algunos elementos del archivo. Él supone que
los valores “ACCESS_COARSE_LOCATION” y “ACCESS_FINE_LOCATION” pueden tener que ver
con el GPS, pero no sabe la diferencia ni comprende por qué irían ambos en el Manifest.
Explíquele la diferencia.

ACCESS_COARSE_LOCATION: Permite que una aplicación acceda a una ubicación aproximada.


Alternativamente, es posible que desee ACCESS_FINE_LOCATION.

 Nivel de protección: peligroso

 Valor constante: "android.permission.ACCESS_COARSE_LOCATION"

ACCESS_FINE_LOCATION: Permite que una aplicación acceda a una ubicación precisa.


Alternativamente, es posible que desee ACCESS_COARSE_LOCATION.

 Nivel de protección: peligroso

 Valor constante: "android.permission.ACCESS_FINE_LOCATION"

Finalmente, su compañero le dice que está un poco preocupado porque aún no saben cuál va
a ser el nombre final de la aplicación. Cuéntele por qué no tiene que preocuparse mientras
“@string/app_name” sea una variable definida en otro archivo y dígale en qué partes de
la interfaz de usuario puede aparecer.

@string/app_name porque es una variable definida y no debería preocuparse ya que está


declarada en un android:label, como se ha escrito en la parte superior de este control los label
son modificables en el código, se encuentran en 2 parte en la application del código y en el activity
ya son tema de la interfaz que uno elige cuando elige el activity en unproyecto.

BIBLIOGRAFÍA

CONTENIDO DE LA SEMANA 1,2, UTILIZACIÓN MATERIAL DE APOYO, HERRAMIENTAS DE


PROGRAMACIÓN MÓVIL, IACC 2017.

You might also like