PDM UD1 Bibliotecas de compatibilidade
Ir a la navegación
Ir a la búsqueda
Imaxe obtida desta web
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 e non é necesario actualizar todo o S.O. como pasaba antes coas bibliotecas de compatibilidade amdroid.compact.
Como empregar a novo sistema de bibliotecas de compatibilidade
- Podedes consultar neste enlace a nomenclatura das versións empregadas e o que significa cada número.
Exemplo de uso
- Podedes atopar neste enlace a lista de bibliotecas coas versións actuais que se atopan dentro do espazo de nomes androidx.
- Para engadir un novo recurso temos que editar o arquivo build.gradle a nivel de Módulo e na sección de 'dependences' debemos empregar a orde implementation:
- Como vemos, xa por defecto fai uso de dúas bibliotecas, unha para colocar os elementos gráficos nas activities (un tipo de layout denominado ConstraintLayout) e a librería appcompat, que entre outros elementos incorpora o ToolBar.
- Imaxinemos que no noso proxecto queremos empregar o widget (control gráfico) CARDVIEW.
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:
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:
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).