Hướng dẫn debug cơ bản trong Android Studio

Cũng như nhiều IDE khác, Android Studio có cung cấp khả năng debug ứng dụng rất hiệu quả cho các ứng dụng chạy trên máy thật lẫn máy ảo. Bạn có thể:

  • Chọn thiết bị để debug.
  • Đặt các breakpoint (điểm dừng) trong code.
  • Quan sát và kiểm tra các giá trị biến / biểu thức trong runtime.
  • Chụp ảnh màn hình ứng dụng.

Để bắt đầu debug, các bạn nhấn vào nút Debug trên thanh công cụ (khi trỏ vào sẽ có chữ “Debug ‘app’”).

Lúc này Android Studio sẽ build ứng dụng ra file APK, ký (sign) file APK bằng key debug, và cài đặt lên thiết bị của bạn. Cuối cùng, cửa sổ Debug sẽ được mở ra:

Nếu như cửa sổ Select Deployment Target hiện lên nhưng không có thiết bị nào trong danh sách sau khi bạn nhấn nút Debugq thì hãy kiểm tra kết nối thiết bịAndroid` của bạn.

Nếu thực hiện đúng các bước thì cửa sổ Select Deployment Target sẽ hiển thị danh sách thiết bị như sau:

Sử dụng Log

Khác với Terminal của các ứng dụng Java thông thường. Với Android Studio chúng ta có một công cụ mới là LogCat. Về bản chất của chúng thì như nhau, nhưng LogCat cho phép người khác viết plugin để hoạt động linh hoạt hơn, và nó là một công cụ tách rời trong Android SDK. Bước 1: Đặt Log trong code:

public class MainActivity extends AppCompatActivity {
    public static final String TAG = MainActivity.class.getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null) {
            Log.e(TAG, "savedInstanceState is null");
        } else {
            Log.e(TAG, "savedInstanceState is not null");
        }

        setContentView(R.layout.activity_main);
    }
}

Các bạn sẽ thấy chữ Log bị bôi đỏ và có tooltip android.util.Log? Alt+Enter hiện ra như hình dưới. Bạn chưa import class Log vào nên nó hiển thị vậy thôi. Nhấn Alt+Enter là Log sẽ được tự động import vào class MainActivity: Bước 2: Đọc Log: Và bây giờ, chạy app (chạy - Run hoặc Debug đều được, vì chúng ta chỉ cần xem Log thôi mà): Chạy xong, các bạn xem phần (1) Android Monitor và để ý đến dòng bôi đậm (2) như hình: Vậy tức là tham số savedInstanceState là null. Đặt biến TAG ở đầu mỗi class như thế này rất hữu ích. Nó sẽ giúp các bạn biết được Log mình đang xem nằm ở class nào. Vì sau này khi thực hiện những dự án lớn, những app phức tạp, sẽ có rất nhiều class / interface được tạo ra. Để chạy công cụ Android DDMS, các bạn click vào menu Tools > Android > Android Device Monitor: Android Studio có cung cấp cơ chế đặt điểm dừng (Break Point) để khởi chạy một thao tác gỡ lỗi ứng dụng nào đó. Trong đó phổ biến nhất là đặt breakpoint để dừng ứng dụng tạm thời khi một dòng code nào đó được gọi tới.

Để đặt Breakpoint trong code, các bạn tìm dòng code muốn đặt Breakpoint, click chuột trái vào khoảng trống ở cột trái trước dòng code. Hoặc đặt nháy con trỏ chuột ở dòng code muốn đặt Breakpoint và bấm tổ hợp phím Ctrl+F8

Khi code chạy đến đúng điểm dừng đã đặt, Android Studio sẽ dừng ứng dụng lại (màn hình sẽ bị dừng lại – đóng băng, không thể thao tác được gì thêm).

Để phân tích biểu thức tại điểm đặt, nhấn nút Evaluate Expression

  • Để nhảy đến dòng code tiếp theo (mà không vào đầu phương thức), nhấn nút Step Over hoặc nút F6 trên bàn phím.
  • Để nhảy vào dòng đầu tiên trong một phương thức, nhấn Step Into hoặc phím F5.
  • Để chạy code lại như bình thường, nhấn nút Resume Program hoặc phím F8.