Android làm rất tốt việc giấu các chi tiết rườm rà khỏi người dùng. Khi có sự cố, bạn không thấy một bức tường văn bản bí ẩn đáng sợ, giống như bạn thấy trên Mac. Chúng chỉ... bị lỗi.
Mặc dù điều đó tuyệt vời cho hầu hết mọi người, nó kém hữu ích cho nhà phát triển muốn xem tại sao ứng dụng của họ không hoạt động, và cho người dùng nâng cao muốn tiếp cận trực tiếp hơn.
Đó là lý do logcat lại cực kỳ hữu ích. Nó cho phép bạn lấy dump nhật ký hệ thống của điện thoại hoặc máy tính bảng để debug vấn đề. Mặc dù hầu hết người dùng không có nhu cầu dùng nó, nhà phát triển đôi khi yêu cầu người dùng cung cấp tệp nhật ký thiết bị khi có vấn đề. Đây là cách bạn có thể cài đặt logcat và cách sử dụng nó.
Lấy Logcat
Trước khi bắt đầu tạo nhật ký hệ thống, bạn đầu tiên cần đáp ứng một số điều kiện tiên quyết. Thứ nhất là cài đặt Android Debug Bridge, thường gọi là ADB. Nó chứa công cụ Logcat.
Nếu bạn dùng Mac, như tôi, cách đơn giản nhất là dùng trình quản lý gói HomeBrew. Một khi cài đặt, bạn chỉ cần chạy "brew install android-platform-tools".
Nếu bạn dùng Linux, các bước cài ADB sẽ khác nhau rất nhiều giữa các bản phân phối. Nếu bạn dùng Ubuntu, bạn chỉ cần chạy "sudo apt-get install android-tools-adb".
Cuối cùng, nếu bạn dùng Windows, bạn có vài lựa chọn. Thứ nhất, XDADevelopers có bộ cài ADB một cú nhấp, bao gồm driver cần thiết và FastBoot. Thay vào đó, bạn có thể cài qua trình quản lý gói Chocolatey, dù phiên bản có sẵn không phải mới nhất.
Cho Thiết Bị Vào Chế Độ Nhà Phát Triển
Tiếp theo, bạn sẽ bật chế độ nhà phát triển trên thiết bị. Để làm vậy, mở cài đặt và vào "About Phone" hoặc "About Tablet". Sau đó, cuộn xuống dưới màn hình và nhấn "Build Number" bảy lần. Khi bạn làm xong, nó sẽ báo bạn đã vào Chế độ Nhà phát triển.
Nhấn quay lại và vào thư mục gốc Settings, nơi bạn sẽ thấy cái gì đó nói "Developer Options". Nhấn vào đó.
Sau đó, bật USB Debugging và cắm thiết bị Android vào máy tính. Nếu mọi thứ hoạt động tốt, bạn sẽ thấy một cảnh báo nghiêm trọng hiện lên trên thiết bị.
Xem Nhật Ký
Bây giờ chúng ta có thể bắt đầu xem nhật ký. Mở terminal hoặc command prompt mới, và chạy "adb logcat". Bạn sẽ thấy tin nhắn hệ thống tràn xuống cửa sổ terminal. Nếu không, có nghĩa là có gì sai. Hoặc thiết bị không kết nối với máy tính, ADB không cài đúng, hoặc bạn không bật USB debugging trên thiết bị.
Vậy nếu bạn muốn sao chép tin nhắn hệ thống của điện thoại hoặc máy tính bảng vào tệp văn bản, để phân tích sau? Cú pháp chuyển hướng đầu ra giống nhau trên Windows như trên Mac. Chỉ cần chạy "adb logcat > textfile.txt". Bạn cũng có thể làm bằng cách chạy "adb logcat -f filename".
Một khi bạn có tệp nhật ký, bạn có thể phân tích nó dùng Sed và Awk hoặc Grep, hoặc chỉ gửi cho nhà phát triển yêu cầu nó.
Đáng lưu ý logcat sẽ chạy mãi miễn là bạn bảo nó chạy. Nếu bạn sao chép đầu ra vào tệp văn bản và quên kết thúc kết nối, đừng ngạc nhiên nếu bạn hết dung lượng ổ cứng. Để đóng, chỉ nhấn CTRL-C.
Như bất kỳ ai từng làm việc trong DevOps hoặc quản trị hệ thống sẽ nói, tệp nhật ký có thể dễ dàng kéo dài đến hàng chục gigabyte, và hơn nữa. Bạn đã được cảnh báo.
Lưu Ý Về Lọc Đầu Ra
Đáng chú ý bạn có thể bảo logcat ưu tiên loại đầu ra nhất định. Nếu bạn chạy logcat với cờ "V" ("adb logcat V"), bạn sẽ thấy mọi thứ. Đó là vì bạn đã bật "chế độ chi tiết" (verbose mode).
Nhưng có các trigger khác chỉ hiển thị loại thông báo lỗi cụ thể hơn. Trigger "I" chỉ hiển thị info, trong khi "D" hiển thị thông báo debug. Để biết thêm, xem tài liệu Android Debug Bridge chính thức.
Dù vậy, đáng lưu ý trừ khi bạn được bảo ngược lại, tốt nhất chạy logcat với cài đặt mặc định. Để người yêu cầu tệp nhật ký có thể lấy tất cả thông tin họ cần để sửa ứng dụng, và họ không bỏ lỡ bất cứ điều gì.
Có Giải Pháp Cho Thiết Bị Đã Root?
Thực sự có! Nếu bạn có điện thoại hoặc máy tính bảng đã root, bạn có thể cài "aLogCat" từ Google Play Store. Nó có phiên bản miễn phí và phiên bản trả phí. Cả hai giống nhau, dù phiên bản sau hỗ trợ nhà phát triển tài chính.
Điều làm aLogCat khác biệt là nó chạy trực tiếp trên thiết bị của bạn, và đi kèm một số tính năng làm cho việc xử lý nhật ký lỗi dễ dàng hơn.
Tin nhắn được highlight, cho phép bạn trực quan thấy tin nhắn nào là lỗi, và cái nào là thông báo hệ thống vô hại. Bạn cũng có thể chia sẻ chúng qua email, bluetooth, và trên PasteBin qua PasteDroid.
Nếu bạn muốn liên tục lưu nhật ký trực tiếp vào thẻ SD, bạn sẽ phải tải một ứng dụng khác tên aLogRec. Nó cũng có phiên bản miễn phí và phiên bản donate, và có thể lấy từ Google Play Store.
Nhưng nếu bạn muốn xem và chỉnh sửa tệp nhật ký trực tiếp trên điện thoại? Cho việc đó, tôi khuyên dùng Vim Touch, phiên bản di động miễn phí của trình soạn thảo văn bản VIM. Tôi viết về điều này vài năm trước, khi thảo luận về cách tốt nhất thiết lập môi trường phát triển PHP trên thiết bị Android.
Trước khi kết thúc, tôi muốn chỉ ra rằng root điện thoại có thể khiến điện thoại dễ bị malware hơn, và một số ứng dụng (đặc biệt là ứng dụng ngân hàng) không hoạt động.
Nếu bạn đang cân nhắc root thiết bị chỉ để lấy tệp nhật ký, tôi mạnh mẽ khuyên bạn nên dùng cách tiếp cận ADB có dây thay vào đó. Nó同样容易,而且安全得多.
Chuyển Cho Bạn!
Bạn đã bao giờ phải lấy nhật ký hệ thống điện thoại hoặc máy tính bảng? Tại sao? Bạn thấy dễ dàng không? Bạn dùng phương pháp nào? Hãy cho tôi biết trong bình luận bên dưới.