Diferencia entre revisiones de «Depuración: LogCat»
Ir a la navegación
Ir a la búsqueda
| Línea 92: | Línea 92: | ||
<br /> | <br /> | ||
===O código Java da aplicación=== | ===O código Java da aplicación=== | ||
| + | |||
| + | * '''Nota:''' Comprobar que o nome do paquete coincida có do voso proxecto. | ||
Revisión actual del 17:36 22 sep 2019
Introdución
- Máis información neste enlace.
- Unha das técnicas para realizar depuración e seguimento das aplicacións é a creación de logs (rexistros) en tempo de execución.
- En Android úsase a clase Log, que posúe un conxunto de métodos estáticos que nos van axudar no proceso de depuración/seguimento.
- A imaxe amosa un conxunto de mensaxes. Os campos que conforman a mensaxe se poden escoller como se amosa na seguinte imaxe:
- As mensaxes poden ter diferente cor en función do nivel de gravidade, así estarán en vermello os que sexan de tipo Error.
- Nivel de criticidade: tipo de mensaxe (Erro, Warning, Info, Debug, etc)
- Para cada nivel de criticidade existe un método estático que nós axuda a clasificar as mensaxes que pode producir a aplicación: e(), w(), i(), d() e v().
- Cada un dos métodos recibe como parámetro a etiqueta (tag) e o texto da mensaxe.
- Referencias:
Caso práctico
- Crear o seguinte proxecto: Depuracion
- Unha activity de nome 'Practica_1'
- Imos realizar un pequeno proxecto onde amosamos como poder usar o LOG.
- A etiqueta (tag) que se está usando no programa é: "DEPURACIÓN"
- Para ver as mensaxes de log usaremos a ventá LogCat.
- Depuración
O XML do Layout
- A continuación amósase o Layout da aplicación:
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=".Practica_1">
8
9 <EditText
10 android:id="@+id/edtSeculo"
11 android:layout_width="wrap_content"
12 android:layout_height="wrap_content"
13 android:layout_marginStart="8dp"
14 android:layout_marginTop="8dp"
15 android:ems="10"
16 android:inputType="textPersonName"
17 app:layout_constraintStart_toStartOf="parent"
18 app:layout_constraintTop_toTopOf="parent"
19 tools:text="Introduce o século onde vives" />
20
21 <Button
22 android:id="@+id/btnPremer"
23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content"
25 android:layout_marginStart="8dp"
26 android:layout_marginTop="8dp"
27 android:text="Preme aquí"
28 app:layout_constraintStart_toStartOf="parent"
29 app:layout_constraintTop_toBottomOf="@+id/edtSeculo"
30 android:onClick="onButtonClick"
31 />
32 </android.support.constraint.ConstraintLayout>
O código Java da aplicación
- Nota: Comprobar que o nome do paquete coincida có do voso proxecto.
1 package es.cifprodofloucha.angel.depuracion.depuracion;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.util.Log;
6 import android.view.View;
7 import android.widget.EditText;
8 import android.widget.Toast;
9
10 public class Practica_1 extends Activity {
11
12 public void onButtonClick(View v) {
13 EditText et = (EditText) findViewById(R.id.edtSeculo);
14
15 if (et.getText().toString().equals("21")) {
16 Toast.makeText(this, "Tes os pes na terra ", Toast.LENGTH_SHORT).show();
17 Log.i("DEPURACIÓN BOTÓN", "Dentro if");
18
19 } else if (et.getText().toString().equals("")) {
20 Toast.makeText(this, "Non escribiches nada", Toast.LENGTH_SHORT).show();
21 Log.i("DEPURACIÓN BOTÓN", "Dentro else if");
22
23 } else
24
25 {
26 Toast.makeText(this, "Estás noutro planeta", Toast.LENGTH_SHORT).show();
27 Log.i("DEPURACIÓN BOTÓN", "Dentro else");
28
29 }
30
31 }
32
33 @Override
34 protected void onCreate(Bundle savedInstanceState) {
35 super.onCreate(savedInstanceState);
36 setContentView(R.layout.activity_practica_1);
37
38 Log.e("DEPURACIÓN", "Mensaxe de erro");
39 Log.w("DEPURACIÓN", "Mensaxe de aviso");
40 Log.i("DEPURACIÓN", "Mensaxe de información");
41 Log.d("DEPURACIÓN", "Mensaxe de mensaxe de depuración");
42 Log.v("DEPURACIÓN", "Mensaxe de vervose");
43
44 }
45 }
- Liñas 38-42: A aplicación emite mensaxes a través dos métodos estáticos con distintos niveis de criticidade.
- A etiqueta (tag) é o primeiro campo.
- Liñas 17,21,27: emisión de mensaxes que nos axudan a saber porque parte do código se atopa a aplicación.
-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2018).