Diferencia entre revisiones de «PDM UD1 CoñecendoAndroidStudio»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 233: Línea 233:
 
* Por defecto Visual Studio xera un apk en modo debugger. Neste modo, cando xeramos o apk, a aplicación estará 'firmada' cun certificado xerado pola ferramenta Android SDK  e que non será válido para instalar dende a 'Google Play Store', se a publicamos.
 
* Por defecto Visual Studio xera un apk en modo debugger. Neste modo, cando xeramos o apk, a aplicación estará 'firmada' cun certificado xerado pola ferramenta Android SDK  e que non será válido para instalar dende a 'Google Play Store', se a publicamos.
  
−
* Cando vexamos o [http://wiki.cifprodolfoucha.es/index.php?title=PDM_Avanzado_Empaquetado_e_distribuci%C3%B3n#Modificando_a_versi.C3.B3n_compilada_de_debug_a_release punto de Enpaquetado e Distribución] como xerar o apk release.
+
* Cando vexamos o [http://wiki.cifprodolfoucha.es/index.php?title=PDM_Avanzado_Empaquetado_e_distribuci%C3%B3n#Modificando_a_versi.C3.B3n_compilada_de_debug_a_release punto de Enpaquetado e Distribución] amosaremos como xerar o apk release.
  
  

Revisión del 23:18 17 ago 2016

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

  • Imos crear un proxecto de Android que nos vai servir de 'base' para facer a unidade 2.


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

  • 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.
  • Importante: Todo o que se atopa dentro do cartafol /res/ ten que ter letras minúsculas e só poden conter letras, números e _ .Se se pon outro carácter o proxecto dará un erro de compilación.


PDM UD1 Estrutura 3.jpg


  • /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 un 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. Podemos ver ese cartafoles se cambiamos a vista a 'Proyect' como veremos posteriormente.
  • /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.

/assets

  • Contén o resto de ficheiros que se precisen para a aplicación: ficheiros de configuración, de datos, bases de datos,etc... Para acceder a estes recursos non se fai a a través da clase R senón que se fai a través da súa ruta no sistema.
  • No Android Studio o cartafol 'assets' non se atopa creado por defecto. Para crealo temos que ir ao módulo /app/ e premendo o botón dereito escoller a opción New => Folder => Assets Folder como se va na seguinte imaxe:
PDM UD1 Estrutura 4.jpg


Ficheiro AndroidManifest.xml

  • Contén a definición das características máis importantes da aplicación: nome, versión, icona, activities, servizos, instrumentación, permisos de acceso aos recursos, etc.
PDM UD1 Estrutura 5.jpg
  • Na imaxe se pode ver entre outros datos:
  • Nome da icona a cargar (fai referencia a unha icona que se atopa en /app/res/mipmaps/
  • Nome da aplicación que está definido nunha constante no arquivo /res/values/strings.xml. Ven ser o nome que aparece asociado a icona da aplicación.
  • O aspecto que vai ter a aplicación (ven ser coma un arquivo CSS de HTML). Se atopa no arquivo /res/values/styles.xml.
  • As activities que conforman o proxecto. Inicialmente so temos unha.


Identificar o minSDK, targetSDK e buildSDK

  • Anteriormente en Eclipse, dentro do arquivo AndroidManifest.xml tamén ían as liñas que indicaban o targetSDK e minSDK.
Estes conceptos (polo menos un deles) o vimos no proceso de creación do proxecto Ola Mundo. Se vos fixaches no paso un, indicabamos o minSDK no que ía funcionar a nosa aplicación.
Lembrar que o minSDK indica a versión de Android máis pequena no que o noso proxecto funcionaría. Isto o facemos para poder utilizar funcións e avances das versións seguintes do S.O. Android que non estaban dispoñibles en versións anteriores.
Por outra banda o targetSDK indica a versión de Android no que o programador testou a aplicación.
Existe outro parámetro que ven ser o buildSDK que indica a versión de Android co que foi compilado o proxecto.


Cambiando o tipo de vista no Android Studio

  • En Android Studio podemos cambiar como visualizamos o proxecto da Aplicación.
  • Inicialmente estamos na vista Android, pero podemos cambiar a calquera outra premendo no combo indicado na seguinte imaxe:
PDM UD1 Estrutura 6.jpg


Por exemplo, dentro da vista Proyect podemos ter acceso a outros cartafoles interesantes:

/generated

  • O cartafol /generetad contén codigo Java creado automaticamente ao compilar a aplicación. O ficheiro máis importante é R.java.
PDM UD1 Estrutura 10.jpg
  • Esta clase é compilada cada vez que modificamos algo no cartafol /app/res. O que fai e asinar a cada recurso que se atopa en /res/ un identificador. Desa forma imos poder referencialos na programación polo seu nome.
  • Neste exemplo se pode ver como dálle un id ao layout e na clase R xera automaticamente unha entrada para ese id asinándolle un número.

/ouputs

  • Unha vez que se compila e se constrúe (build) a aplicación xérase o apk da aplicación para poder ser instalada nun dispositivo. O apk ven ser un exe dun computador con sistema operativo Windows.
PDM UD1 Estrutura 13.jpg


  • Para poder xerar o apk hai que, ou ven executar o proxecto para que xere o apk e o instale nun dispositivo ou simplemente xerar o apk:
PDM UD1 Estrutura 14.jpg


  • Por defecto xera unha versión da aplicación para 'probas', ou en modo 'depuración'. Xa veremos máis adiante como facer que xere un apk para distribuír, na sección de Empaquetado e distribución.


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

  • Para instalar unha aplicación de Android Studio nun dispositivo móbil necesitamos xerar un arquivo APK.
  • Por defecto Visual Studio xera un apk en modo debugger. Neste modo, cando xeramos o apk, a aplicación estará 'firmada' cun certificado xerado pola ferramenta Android SDK e que non será válido para instalar dende a 'Google Play Store', se a publicamos.





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