Diferencia entre revisiones de «PDM UD1 Bibliotecas de compatibilidade»
Ir a la navegación
Ir a la búsqueda
Imaxe obtida desta web
| Línea 4: | Línea 4: | ||
| + | * A partires da versión Android 9.0 (API 28) aparece outra forma de implementar ditas bibliotecas, denominada 'artifacts' e que se atopa dentro do espazo de nome '''androidx'''. | ||
| + | |||
| + | <br /> | ||
| + | ==Versión actual== | ||
| + | |||
| + | :* Todas as bibliotecas de compatibilidade están aloxadas nun paquete que comeza polo nome '''androidx'''. | ||
| + | :* A diferenza das bibliotecas de compatibilidade empregadas anteriormente, éstas se manteñen e actualizan por separado (non fai falla actualizar a biblioteca enteira como pasaba anteriormente). | ||
| + | |||
| + | |||
| + | <br /> | ||
| + | ===Como empregar a novo sistema de bibliotecas de compatibilidade=== | ||
| + | |||
| + | <gallery caption="Empregando androidx" widths="350" heights="300px" perrow="2"> | ||
| + | Image:PDM_Artifacts_1.jpg| Cando creamos un novo proxecto debemos marcar a opción '''use androidx.*.artifacts'''. Para que isto aparece debemos ter a lo menos a API 28 ou posterior instalada. | ||
| + | Image:PDM_Artifacts_2.jpg| Ao facelo, no arquivo '''gradle.properties''' aparecerán dúas propiedades có valor a true (isto teríamos que facelo manualmente se non configuramos o proxecto dende o inicio para facer uso destas bibliotecas): android.useAndroidX e android.enableJetifier. | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | |||
| + | <br /> | ||
| + | ===Exemplo de uso=== | ||
| + | |||
| + | * Podedes atopar [https://developer.android.com/reference/androidx/packages?hl=es-419 neste enlace a lista de paquetes] que se atopan dentro do espazo de nomes androidx. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <br /> | ||
| + | ==Versión antiga== | ||
| + | |||
| + | * As librerías empezan có nome: com.android.support | ||
| + | : Soamente se actualizarán ata a versión 28, a partires de entón soamente se dará soporte ás biblitecas do espazo de nome '''androidx'''. | ||
* Podedes consultar as melloras a nivel xeral que ofrecen ditas bibliotecas [https://developer.android.com/topic/libraries/support-library/?hl=es-419 neste enlace]. | * Podedes consultar as melloras a nivel xeral que ofrecen ditas bibliotecas [https://developer.android.com/topic/libraries/support-library/?hl=es-419 neste enlace]. | ||
| Línea 16: | Línea 48: | ||
<br /> | <br /> | ||
| − | =Exemplo de uso= | + | ===Exemplo de uso=== |
* Un exemplo de uso sería o uso do ActionBar: | * Un exemplo de uso sería o uso do ActionBar: | ||
Revisión del 13:39 18 ago 2020
Sumario
Introdución
- Como xa comentamos anteriormente, as bibliotecas de compatibilidade son creados por Android para dar soporte a versións antigas do S.O. Android e que estas poidan executar novas funcionalidades que apareceron en versións posteriores.
- A partires da versión Android 9.0 (API 28) aparece outra forma de implementar ditas bibliotecas, denominada 'artifacts' e que se atopa dentro do espazo de nome androidx.
Versión actual
- Todas as bibliotecas de compatibilidade están aloxadas nun paquete que comeza polo nome androidx.
- A diferenza das bibliotecas de compatibilidade empregadas anteriormente, éstas se manteñen e actualizan por separado (non fai falla actualizar a biblioteca enteira como pasaba anteriormente).
Como empregar a novo sistema de bibliotecas de compatibilidade
- Empregando androidx
Exemplo de uso
- Podedes atopar neste enlace a lista de paquetes que se atopan dentro do espazo de nomes androidx.
Versión antiga
- As librerías empezan có nome: com.android.support
- Soamente se actualizarán ata a versión 28, a partires de entón soamente se dará soporte ás biblitecas do espazo de nome androidx.
- Podedes consultar as melloras a nivel xeral que ofrecen ditas bibliotecas neste enlace.
- Podedes consultar as funcións que incorporan cada unha das bibliotecas de compatibilidade neste enlace.
- Podedes consultar como configurar o Android Studio para descargar e utilizar ditas bibliotecas neste enlace
Exemplo de uso
- Un exemplo de uso sería o uso do ActionBar:
- Dende a versión 3.0 (API 11) todas as activity´s poden levar unha ActionBar (de feito ven no theme por defecto). Pero a medida que foron xurdindo novas versións da API, engadíronse novas funcionalidades.
- Por exemplo, a partires da versión API 21 (Android 5) engadíronse novas opcións para modificar o deseño e adaptalo á filosofía do Material Design. De feito a ActionBar pasou a denominarse ToolBar.
- Unha destas propiedades novas é a elevación, que ven ser un efecto como se o compoñente estivera colocado 'por enriba' doutro. No caso da barra de acción (Action Bar) que a partires de Android 5 denomínase Tool Bar (App Bar está formada por Tool Bar, Status Bar e Tab Bar) dito método é setElevation e a guía de Material Design indica que debe estar a 4dp.
- Se creamos un novo proxecto cun target_SDK a partires da API 21 e un min_SDK tamén a partires do 21, poderemos facer uso de dito método:
- Proxecto creado cunha API 28
Código do Manifiesto:
1 ...........
2 <activity android:name=".NOME_ACTIVITY"
3 android:label="@string/app_name"
4 android:theme="@style/AppTheme">
5 <intent-filter>
6 <action android:name="android.intent.action.MAIN" />
7
8 <category android:name="android.intent.category.LAUNCHER" />
9 </intent-filter>
10 </activity>
11 ...........
Código do layout:
1 <?xml version="1.0" encoding="utf-8"?>
2 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 tools:context=".NOME_DA_ACTIVITY">
8
9 <android.widget.Toolbar
10 android:id="@+id/toolbar2"
11 android:layout_width="match_parent"
12 android:layout_height="wrap_content"
13 android:layout_marginTop="4dp"
14 android:background="?attr/colorPrimary"
15 android:minHeight="?attr/actionBarSize"
16 android:theme="?attr/actionBarTheme"
17 android:title="ToolBar"
18 app:layout_constraintEnd_toEndOf="parent"
19 app:layout_constraintTop_toTopOf="parent" />
20 </android.support.constraint.ConstraintLayout>
- Línea 7: Hai que poñer o nome da vosa activity
- Línea 9: Fixarse como o control Toolbar non é o da biblioteca de compatibilidade.
Código da Activity:
1 import android.app.Activity;
2 import android.os.Bundle;
3 import android.widget.Toolbar;
4
5 public class NOME_DA_ACTIVITY extends Activity {
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_main221);
11
12 Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar2);
13
14 float scale = getResources().getDisplayMetrics().density;
15 int pix = (int)(4*scale+0.5f);
16
17 myToolbar.setElevation(pix);
18 }
19 }
- Línea 5: Hai que poñer o nome da vosa activity
- Agora cambiamos o MinSDK para API 19.
- Na API 19 non existía o ToolBar. O equivalente denomábase ActionBar, polo tanto teredes un erro na código da Activity:
- Proxecto creado cunha min_SDK API 19
Temos que modificar a activity e agora vai ser unha subclase da clase AppCompactActivity. O action bar a obtemos chamando ao método 'getSupportActionBar()'. Podemos ver como xa podemos facer uso de método 'setElevation()'. Indicar que esta forma sería a recomendada para facer uso do ActionBar en calquera versión de Android. Así nos aseguramos que todas van funcionar igual. Se non o facemos así e usamos as ActionBar que foron aparecendo en cada versión das Api´s estaremos limitados as método e propiedades da MinSDK indicada.
-- Ángel D. Fernández González -- (2018).