Hướng dẫn debug cơ bản trong Android Studio
Bài đăng này đã không được cập nhật trong 3 năm
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.
All rights reserved