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"
  1. pakage
Nombre del paquete raiz
  1. versionCode
    1. Número que se debe incrementar cada vez que actualizamos nuestra aplicacion en el market
    2. Este número es seguido por el market para ver la evolución de nuestro desarrollo
  2. versionName
    1. Es lo que se muestra en el market
    2. Podemos poner lo que queramos
  3. installLocation
    1. Donde debe ser instalada nuestra aplicación
    2. solo funcionan en versiones 2.2 o superior las anteriores las ignora
    3. con valor preferExternal para instalarlo en la targeta SD
<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>

Componentes de la aplicacion Permisos Perfiles de Hardware Veriones de Android que soprtea

  • Versiones de android admitidas, mediante el elemento uses-sdk
    <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>