PDM UD1 CoñecendoAndroidStudio

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introdución

  • Neste apartado vanse describir os cartafoles e ficheiros máis esenciais dos que se compón un proxecto Android.
  • Comezaremos creando un proxecto: OlaMundo, e estudaremos as partes nas que se divide.
  • Os proxectos vanse nomear e numerar da seguinte forma: U2_XX_NomeDaAplicación, para facilitar o seguimento. Sendo U2 a unidade 2 e XX o número de proxecto dentro da Unidade.
  • Estes van estar no seguinte cartafol /ProxectosStudio/PlategaAndroid/Unidade2/<proxectos>


Crear un proxecto Android: OlaMundo


Ficheiros do proxecto Android

A continuación imos ver os contidos dos distintos cartafoles que compoñen un proxecto.

/app/

  • É o nome do módulo da aplicación.
  • Un módulo ven ser un conxunto de arquivos dunha aplicación (activities, layouts,...) e arquivos de configuración do Android Studio e da aplicación.
  • Un módulo pode depender doutro para a súa execución ou poden ser totalmente independentes.
  • Por defecto, cando creamos un proxecto AndroidStudio, crea un módulo de nome 'app'.

Máis información neste enlace.

/app/java

Nota: Ven ser no que en Eclipse era /src/. Veremos mais adiante que podemos cambiar a 'vista' de como se visualiza o proxecto e volver a ter o cartafol /src/.

/app/res

PDM UD1 Estrutura 3.jpg


Cartafol /app/res (Resources/Recursos): almacena todos os ficheiros de recursos necesarios para a aplicación: imaxes, vídeos, ficheiros xml, animacións, ficheiros para a internacionalización, etc.

  • /app/res/drawble: Almacena as imaxes da aplicación en función da densidade (dpi) do dispositivo de destino. En Android veremos que podemos ter diferentes resolucións de imaxes para que a aplicación se vexa correctamente en dispositivos de tamaños e resolucións diferentes. Estas imaxes gardaríanse dentro dun cartafol de nome 'drawble-sufixo' no que o sufixo indicará con que código a que tipo de dispositivo debe cargarse as imaxes que estean dentro do cartafol. Por exemplo, o cartafol '/res/drawable-large' tería imaxes que se cargaría con dispositivo de entre 4 e 7 polgadas aproximadamente (observar imaxe).
  • /app/res/layout: Almacena os ficheiros xml onde se definen os elementos gráficos e a súa disposisición, das distintas pantallas que compoñen a aplicación. Igual que no caso anterior tamén imos poder ter diferentes sufixos para cargar layouts en función dos dispositivos. Así, por exemplo, se creamos o cartafol /app/res/layout-land cargaríamos os layouts que estean dentro deste cartafol cando teñamos o dispositivo en posición 'apaisada', é dicir, tumbado.
  • /app/res/mipmap: Almacena a icona que vai representar a aplicación cando estea instalada nun dispositivo. Ven ser a icona de lanzamento. Pódese ver na imaxe que indica que hai 5 iconas. Isto é así xa que crea unha por cada tipo de densidade. A densidade a veremos máis adiante pero ven ser o número de puntos por pulgada que ten o dispositivo. Fisicamente temos un cartafol por cada unha das densidades e dentro de cada cartafol temos o arquivo a cargar, o que pasa que AndroidStudio oculta os cartafoles. Tam
  • /app/res/values: Almacena constantes que definen: cadeas de texto, estilos, cores, dimensións, etc.
  • dimens.xml Están declaradas as dimensións que se usaban no layout.
  • strings.xml Están declaradas cadeas de texto. A última é usada no layout, logo veremos onde se usan as demais.
  • colors.xml Están declaradas constantes que representar unha cor.
  • styles.xml Están declaradas constantes que representan estilos (como se van representar os elementos gráficos e as activities, como podan ser a combinación de cores, negrilla, cursiva, se vai ter menú,...)
  • Hai máis arquivos e cartafoles para xa o iremos vendo.

Nota: Todos son arquivos de configuración son XML que poden ser editados. Máis información neste enlace.

/gen

O cartafol /gen contén codigo Java creado automaticamente ao compilar a aplicación. O ficheiro máis importante é R.java.

/assets

  • Contén o resto de ficheiros que se precisen para a aplicación: ficheiros de configuración, de datos, etc. Para acceder a estes recursos non se fai a a través da clase R senón que a través da súa ruta no sistema

Archivo:Android 2013 U2 01 OlaMundo 25.jpg


/bin

  • Unha vez que se compila a aplicación xerase o apk da aplicación para poder ser instalada nun dispositivo.

Ficheiro AndroidManifest.xml

  • Contén a definición das características máis importantes da aplicación: nome, versión, icono, activities, servizos, instrumentación, permisos de acceso aos recursos, etc.

Importando clases necesarias dentro dunha activity

Manualmente

  • Cando utilizamos novas clases dentro dunha actiivity, é necesario importalas para poder facer uso delas.
Por exemplo, se quere usar un TextView (ven ser un label de texto), podería poñer este código na Activity:
 1 public class MainActivity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7 
 8         TextView texto = new TextView(this);
 9     }
10 }
Ao facelo, veremos que se pon en vermello a clase TextView e que se nos informa que podemos premer a combinación de teclas Alt + Intro:

PDM UD1 CoñecendoAndroidStudio 1.jpg


Se prememos dita combinación podemos ver como se engade automaticamente o 'import' correspondente a clase TextView:
 1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.widget.TextView;
 4 
 5 public class MainActivity extends Activity {
 6 
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11 
12         TextView texto = new TextView(this);
13     }
14 }


Automaticamente

  • Para facer que o Android Studio importe automaticamente as clases, debemos cambiar a configuración do IDE:

Unha vez feito o anterior xa engade automaticamente as clases.



  • Pode suceder que ao querer utilizar unha clase, esta poda provir de dous paquetes diferentes. Neste caso teremos que utilizar a combinación de clase Alt+Intro e escoller o paquete correcto:



Modificando a versión compilada de debug a release





-- Ángel D. Fernández González -- (2016).