2011-10-21 31 views
8

Tôi sẽ biết liệu đăng nhập có thể giảm hiệu suất ứng dụng không? Ngoài ra, vui lòng cho tôi một số mẹo để tăng hiệu suất ứng dụng Android.Có quá nhiều ghi nhật ký làm giảm hiệu suất ứng dụng Android không?

+0

Chỉ sử dụng nhật ký để gỡ lỗi ... Xóa tất cả tin nhắn nhật ký khi bạn tải lên bản dựng thực. – Krishnabhadra

+1

Ghi nhật ký quá mức có thể có tác động nhỏ đến hiệu suất, nhưng nói chung là không. (xem các liên kết trong câu trả lời @gt_ebuddy). Trong khi phát triển đang được kết nối với DDMS sẽ làm chậm ứng dụng. – cistearns

+1

Có thể trùng lặp của [Log.d và tác động đến hiệu suất] (http://stackoverflow.com/questions/3773252/log-d-and-impact-on-performance) – rds

Trả lời

15

Tốt hơn là không hiển thị nhật ký trong việc xây dựng ứng dụng thực tế của bạn.

Tắt nó trong Android Manifest bằng cách thiết lập debuggable:

<application android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:debuggable="false"> 

Một cách khác

Tạo lớp logger của riêng bạn:

Kiểm tra cho chế độ gỡ lỗi trước khi thực hiện đăng nhập. Nó cho phép sửa đổi điểm duy nhất giữa chế độ gỡ lỗi và ứng dụng được triển khai và cho phép thêm những thứ cần làm như ghi vào tệp nhật ký.

import android.util.Log; 
public class MyLog { 
    private static final boolean isDebug = false;; 
    public static void i(String tag, String msg) { 
     if (isDebug) { 
      Log.i(tag, msg); 
     } 
    } 
    public static void e(String tag, String msg) { 
     if (isDebug) { 
      Log.e(tag, msg); 
     } 
    } 
} 


Đối biết thêm thông tin đọc http://rxwen.blogspot.com/2009/11/logging-in-android.html

và The SO QA:

Log.d and impact on performance

Android Logging - How to clear for better performance

+4

Theo kinh nghiệm của tôi, cài đặt tệp kê khai không có tác động đến nhật ký đầu ra. Nó chỉ đơn giản là kiểm soát nếu một trình gỡ lỗi có thể đính kèm vào ứng dụng của bạn. – cistearns

+0

** bold ** Cảm ơn –

+0

@cistears Cài đặt debuggable = "false" có giúp tăng hiệu quả không? –

1

sử dụng 'nếu' tuyên bố trước khi đăng nhập bằng văn bản.
bạn có thể tắt nhật ký khi phát hành ứng dụng.

dụ:

public class LogTest extends Activity { 

private static final String TAG = "YOUR_LOG_TAG_NAME"; 
private static final boolean mDebug = true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //--[Start Log example]----------------------------------------- 
    if(mDebug) Log.d(TAG, "Log Write Test"); 
    //--[End Log example]----------------------------------------- 
} 

}

1

Bất kỳ văn bản đầu ra vượt quá sẽ làm chậm ứng dụng của bạn, thậm chí với một ứng dụng máy tính để bàn. Ghi nhật ký quá mức sẽ làm chậm quá trình tải xuống, nhưng về cơ bản bạn sẽ cần một lượng dữ liệu điên rồ được gửi đi, điều này không khó thực hiện với vòng lặp for hoặc while. Những điều xảy ra trong nền trong khi đăng nhập đôi khi bao gồm thao tác chuỗi, hiển thị văn bản, quản lý bộ nhớ cache, lọc dữ liệu, giới hạn độ dài nhật ký và danh sách tiếp tục.

Có một số cách để xóa logcat khỏi ứng dụng cuối cùng của bạn, đặc biệt là những ứng dụng liên quan đến ProGuard. ProGuard đã không làm việc cho tôi, nhưng có rất nhiều ý tưởng tuyệt vời trên đó làm thế nào để loại bỏ chúng bao gồm cả các chương trình kịch bản như sed.

Các vấn đề liên quan