2010-06-23 9 views
25

Tôi có thể chạy một ứng dụng Android thông qua trình mô phỏng và làm cho nó in các chuỗi trên bảng điều khiển của máy tính của tôi không? Bởi giao diện điều khiển tôi có nghĩa là nơi tiêu chuẩn bạn mong đợi để xem một System.out.println() trong một ứng dụng java bình thường. Vì vậy, nếu bạn chạy ứng dụng java từ dấu nhắc lệnh thì bạn sẽ thấy println() s trong dấu nhắc lệnh hoặc nếu bạn chạy chương trình trong nhật thực, bạn sẽ thấy nó trong tab Console ở phía dưới.Có cách nào để in trên bảng điều khiển trong ứng dụng Android không?

+2

Tại sao không sử dụng logcat? –

+1

+1 Chỉ cần sử dụng LogCat –

+2

LogCat có sẵn cho bạn trong Eclipse thông qua phối cảnh DDMS. – CommonsWare

Trả lời

33

Sử dụng Log.d("YourTag", "YourOutput");

thấy http://developer.android.com/reference/android/util/Log.html

+11

Có nhiều phương pháp khác nhau cho tầm quan trọng khác nhau của nhật ký: Log.v(), Log.d(), Log.i(), v.v. Lưu ý rằng API cấp 8 (Android 2.2 Froyo) đã giới thiệu phương pháp mới đăng nhập .wtf() - Thất bại khủng khiếp;) LOL – Gawcio

+2

Để tránh phải theo dõi một thẻ tôi thích: Log.d (getClass(). getSimpleName(), "YourOutput"); – rshdev

+2

@rshdev Tất nhiên rồi. Tôi chỉ muốn đưa ra một ví dụ mã mà không có bất kỳ sự phụ thuộc nào vào bất kỳ biến/mã nào khác, v.v. Vì nó là nhiều hơn về chính lớp Log. Tôi thậm chí sẽ đi xa hơn và sử dụng getClass.getName() thay vì getSimpleName(), vì, thường bạn cũng muốn lọc theo gói (ứng dụng của bạn), không chỉ một lớp. Với getName(), bạn có thể làm cả hai - đó là lý do tại sao tôi sử dụng getName() để thay thế. +1 của bạn. –

13

Theo mặc định, hệ điều hành Android sẽ gửi stdout và stderr (System.out và System.err) sản lượng vào/dev/null. Trong các quá trình chạy VM Dalvik, bạn có thể có hệ thống ghi một bản sao của đầu ra vào tệp nhật ký. Trong trường hợp này, hệ thống ghi các thông điệp vào nhật ký bằng cách sử dụng các thẻ log stdout và stderr, cả hai đều có mức độ ưu tiên I.

Để định tuyến đầu ra theo cách này, bạn dừng một trình mô phỏng chạy/thiết bị và sau đó sử dụng trình bao lệnh setprop để cho phép chuyển hướng đầu ra. Dưới đây là cách bạn thực hiện:

$ adb shell stop 
$ adb shell setprop log.redirect-stdio true 
$ adb shell start 

Hệ thống giữ lại cài đặt này cho đến khi bạn chấm dứt trình mô phỏng/thiết bị. Để sử dụng cài đặt làm mặc định trên phiên bản trình mô phỏng/thiết bị, bạn có thể thêm mục nhập vào /data/local.prop trên thiết bị.

Bạn có thể tìm thêm thông tin về điều này trong Android Debug Bridge document.

Bạn cũng có thể tạo ra lớp riêng của bạn để in ra cửa sổ Console http://tech.chitgoks.com/2008/03/17/android-showing-systemout-messages-to-console/

Tôi nghĩ rằng câu hỏi này đã được trả lời trên StackOverflow đã How to output LogCat to Console?