Diferencia entre revisiones de «Depuración: LogCat»
Ir a la navegación
Ir a la búsqueda
(Página creada con «==Introdución== *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...») |
|||
| Línea 1: | Línea 1: | ||
==Introdución== | ==Introdución== | ||
| + | |||
| + | * Máis información [https://developer.android.com/studio/debug/am-logcat?hl=es-419 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. | *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. | *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. | ||
| − | [[Image: | + | [[Image:PDM_Debugger_1.jpg|700px]] |
| − | *A imaxe amosa un conxunto de mensaxes que | + | |
| − | **Nivel de criticidade: tipo de mensaxe (Erro, Warning, | + | *A imaxe amosa un conxunto de mensaxes. Os campos que conforman a mensaxe se poden escoller como se amosa na seguinte imaxe: |
| − | + | [[Image:PDM_Debugger_1b.jpg|700px]] | |
| − | + | ||
| − | + | * 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) | ||
Revisión del 21:49 12 sep 2018
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: U4_01_Depuracion
- Imos realizar un pequeno proxecto onde amosamos como poder usar o LOG.
- A etiqueta que se está usando no programa é: "DEPURACIÓN"
- E estamos usando un filtro para ver só as etiquetas con ese nome.
- Para ver as mensaxes de log usaremos a ventá LogCat que está tanto na perspectiva Java como DDMS.
- Depuración
O XML do Layout
- A continuación amósase o Layout da aplicación:
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 tools:context="com.example.u4_01_depuracion.U4_01_Depuracion" >
7
8 <EditText
9 android:id="@+id/et"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"
12 android:hint="Introduce o século no que vives"
13 android:inputType="number" />
14
15 <Button
16 android:layout_width="wrap_content"
17 android:layout_height="wrap_content"
18 android:text="Preme aquí"
19 android:onClick="onButtonClick" />
20
21 </LinearLayout>
O código Java da aplicación
1 package com.example.u4_01_depuracion;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.util.Log;
6 import android.view.Menu;
7 import android.view.MenuItem;
8 import android.view.View;
9 import android.widget.EditText;
10 import android.widget.Toast;
11
12 public class U4_01_Depuracion extends Activity {
13
14 @Override
15 protected void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.activity_u4_01__depuracion);
18 Log.e("DEPURACIÓN", "Mensaxe de erro");
19 Log.w("DEPURACIÓN", "Mensaxe de aviso");
20 Log.i("DEPURACIÓN", "Mensaxe de información");
21 Log.d("DEPURACIÓN", "Mensaxe de mensaxe de depuración");
22 Log.v("DEPURACIÓN", "Mensaxe de vervose");
23
24 }
25
26 @Override
27 public boolean onCreateOptionsMenu(Menu menu) {
28 // Inflate the menu; this adds items to the action bar if it is present.
29 getMenuInflater().inflate(R.menu.u4_01__depuracion, menu);
30 return true;
31 }
32
33 public void onButtonClick(View v) {
34 EditText et = (EditText) findViewById(R.id.et);
35
36 if (et.getText().toString().equals("21")) {
37 Toast.makeText(this, "Tes os pes na terra ", Toast.LENGTH_SHORT).show();
38 Log.i("DEPURACIÓN BOTÓN", "Dentro if");
39
40 } else if (et.getText().toString().equals("")) {
41 Toast.makeText(this, "Non escribiches nada", Toast.LENGTH_SHORT).show();
42 Log.i("DEPURACIÓN BOTÓN", "Dentro else if");
43
44 } else
45
46 {
47 Toast.makeText(this, "Estás noutro planeta", Toast.LENGTH_SHORT).show();
48 Log.i("DEPURACIÓN BOTÓN", "Dentro else");
49
50 }
51
52 }
53
54 }
- Liñas 18-22: 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 38,42,48: 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 -- (2015).