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 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>
<source>
 
=====atributos del elemento manifest=====
 
;xmlns 
:'''''xml''''' '''''n'''''ame'''''s'''''pace
:Define el namesapace de android y siempre debe tener el valor "http://schemas.android.com/apk/res/android"
 
#'''''pakage'''''
 Nombre del paquete raiz
#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 evolución de nuestro desarrollo
#versionName 
##Es lo que se muestra en el market
##Podemos poner lo que queramos
#installLocation 
##Donde debe ser instalada nuestra aplicación 
##solo funcionan en versiones 2.2 o superior las anteriores las ignora
##con valor preferExternal para instalarlo en la targeta SD 
<Source lang=xml>
<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>