Usuario:ManuelRomero/Manifest

De WikiEducator
Saltar a: navegación, buscar



Componentes en una aplicación Android

  1. ACTIVITY
  2. INTENT
  3. SERVICE
  4. BROADCAST RECEIVER
  5. CONTENT PROVIDER
  6. VIEW
  7. WIDGET
  • Los cuantro primeros son muy importantes
  • Casi siempre van a estar presente en una aplicación o desarrollo

Activity

  • Componente principal de la interfaz gráfica
  • Representa cada una de las pantalla de nuestra aplicación

Service

  • Son servicios o procesos ejecutados en segundo plano
  • No disponen de interfaz gráfica
  • Por ejemplo un objeto reloj o cargar información en una base de datos

Content Provider

  • Permite compartir datos entre aplicaciones
  • No necesitamos mostrar la forma en la que hacemos las cosas a otras aplicaciones

Broadcast Receiver

  • Detecta mensajes y eventos generados por el sistema y reacciona ante ellos
  • Pueden recibir mensajes de objetos Intends
  • Por ejemplo batería baja o se ha recibido un mensaje

View

  • Componentes básicos con los construimos nuestras aplicaciones
  • Existen muchos componentes de este tipo: Botones, Listas desplegables

Widget

  • Elementos visuales interactivos
  • Tienen comportamiento propio

Intent

  • Elementos u objetos que permiten que exista comunicación entre actividades de una aplicación
  • También se pueden comunicar otros objetos descritos anteriormente

El fichero Manifest

  • Cada proyecto tiene un fichero AndroidManifext.xml
  • Definiremos información sobre nuestra aplicación
  1. Datos de versionado y nombre de nuestra aplicacion
  2. Los componentes de nuestra aplicación y como reaccionan.
  3. Permisos
  4. Perfiles de Hardware
  5. Veriones de Android que soporta
  • Sirve para que el sistema antes de ejecutar la aplicación concozca los componentes que va a tener cargados
  • Es un fichero XML, por lo tanto tendrá elementos, atributos y valores para los atributos
  • Sólo se pueden incluir elementos definidos, el usuario no puede incorporar elementos propios (listados más abajo)
  • Al menos debe tener una etiqueta manifest y una aplication y éstas sólo pueden estar una vez
<manifest  .... atributos=valor >
 ....
 <application ...atributos=valor >
 
  ... otros elementos...
 
 </application>
</manifest>

manifest

  • Es el nodo raiz del fichero manifest.xml
Sintaxis
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    . . .
</manifest>

Atributos del elemento manifest

xmlns
xml namespace
Define el namesapace de android y siempre debe tener el valor "http://schemas.android.com/apk/res/android"
pakage
Nombre del paquete raiz de nuestra aplicación
Este nombre tiene que ser único en el market
Se usa un nombre de dominio escrito al revés para evitar posibles conflictos con otros desarrollos
versionCode
Número que se debe incrementar cada vez que actualizamos nuestra aplicacion en el market
Este número es seguido por el market para ver la versión más reciente de una aplicación número más alto
Este número no se muestra al usuario en el market
versionName
Es lo que se muestra en el market
Podemos poner lo que queramos
sharedUserId
El nombre del ID de usuario de Linux que será compartido por otras aplicaciones
Quien es el propietario de este proceso
sharedUserLabel
installLocation
Donde debe ser instalada nuestra aplicación por defecto
solo funcionan en versiones 2.2 o superior las anteriores las ignora
Valores android:installLocation=["auto" | "internalOnly" | "preferExternal"]
auto : Puede ser instalado en el dispositivo externo, pero por defecto la almacenará en el dispositivo interno
internalOnly :Sólo se puede instalar en el dispositivo interno
preferExternal :Se instalará en el dispositivo externo (tarjeta SD)por defecto pero si hay problemas se puede instalar en el dispositivo interno.
  • Ejemplo
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.ciclovidaactividad"
    android:versionCode="1"
    android:versionName="1.0" 
    android:installLocation="preferExternal">
</manifest>

Elemento application

Sintaxis
<application android:allowTaskReparenting=["true" | "false"]
             android:backupAgent="string"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:hasCode=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:taskAffinity="string"
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"] >
    . . .
</application>
  • Analizaremos sólo el atributo ico y label
  • Atributos cuyos valores son recursos del sistema

Atributos ico y label de Application

AtributosApplication.png


    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
  • Atributos de la aplicacion como
    • icono
    • titulo
    • Como se va a ejecutar (ocupando toda la pantalla o en una ventana emergente)
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Dialog" >
  • Actividad principal que va a iniciar la aplicación y
      <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
      </activity>
   </application>

</manifest> </source> - Listado de Activities Servicios Content providers Broadcast recievers - Nivel mínimo de API - Permisos de usuario - Librerías externas que usamos

Lista de atributos

En este ficheros sólo pueden aparecer los siguientes elementos

<action> 
<activity> 
<activity-alias> 
<application> 
<category> 
<data> 
<grant-uri-permission> 
<instrumentation> 
<intent-filter> 
<manifest> 
<meta-data> 
<permission> 
<permission-group> 
<permission-tree> 
<provider> 
<receiver> 
<service> 
<supports-screens> 
<uses-configuration> 
<uses-feature> 
<uses-library> 
<uses-permission> 
<uses-sdk>


Diagrama general

<?xml version="1.0" encoding="utf-8"?>
 
<manifest>
 
    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration />  
    <uses-feature />  
    <supports-screens />  
    <compatible-screens />  
    <supports-gl-texture />  
 
    <application>
 
        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>
 
        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>
 
        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>
 
        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>
 
        <provider>
            <grant-uri-permission />
            <meta-data />
        </provider>
 
        <uses-library />
 
    </application>
 
</manifest>