[Android Performance] Leak Canary: Công cụ check leak hiệu quả

Author: | Posted in Android, Programming, Tool No comments
Rate this post!

những phần trước mình đã đề cập tới các bạn nguyên nhân và một số lỗi lập trình có thể dẫn tới Memory Leak. Nhưng không phải chỉ có như vậy là bạn đã tránh được các lỗi về Memory Leak bởi con người thì luôn có thể mắc sai lầm, dù cho bạn có là lập trình viên dày dạn kinh nghiệm nhất. Vậy phải làm thế nào để có thể kiểm tra được xem ứng dụng của mình có bị Memory Leak hay không, chẳng lẽ lại phải ngồi nhìn lại từng class rồi từng dòng code sao? Điều đó là quá tốn công sức và nhiều khi là không thể đối với các ứng dụng lớn. Chính vì vậy chúng ta cần tới các công cụ để giúp chúng ta thực hiện công việc này và trong phần này mình sẽ giới thiệu tới các bạn một công cụ như vậy, đó là Leak Canary, một công cụ đơn giản và hiệu quả trong việc kiểm tra Memory Leak cho ứng dụng của bạn.

Các bài viết về Memory Leak khác:

 

Việc sử dụng Leak Canary rất đơn giản, bạn chỉ cần thêm vài dòng code vào ứng dụng của bạn, sau đó build lại và chạy thử các chức năng có trong ứng dụng. Nếu như ứng dụng của bạn bị memory leak tại 1 chức năng nào đó thì Leak Canary sẽ phát hiện và phân tích rồi chỉ ra cho bạn nguyên nhân gây ra memory leak. Thật là đơn giản và tiện lợi phải không nào 8-). Vậy hãy bắt tay vào việc sử dụng Leak Canary thôi nào.

 

I. Cài đặt Leak Canary

Như đã nói ở trước việc cài đặt Leak Canary rất đơn giản, các bạn chỉ việc làm theo các bước sau đây là xong:

Bước 1: Thêm thư viện Leak Canary

Để hoàn thành bước này bạn chỉ việc thêm đoạn code sau vào file build.gradle của project trong Android Studio

Chú ý 1: Nếu task dependencies đã có thì bạn chỉ việc thêm đoạn bên trong cặp dấu ngoặc nhọn mà không cần tạo thêm task dependencies nữa

Chú ý 2: Hiện tại Leak Canary đã có bản beta 2 của version 1.4 với một số cải tiến như tương thích tốt hơn với android M, fix lỗi build khi sử dụng proguard, … Nếu bạn muốn thử nghiệm những cải tiến này thì hãy sử dụng đoạn code sau nhé:

 

Bước 2: Khởi tạo Leak Canary trong Application

Hãy thêm câu lệnh sau vào phương thức onCreate() trong Application class của Project của bạn:

Ví dụ:

Chú ý: Leak Canary yêu cầu được khởi tạo trong onCreate của Application class của project của bạn. Vì vậy nếu project của bạn chưa có Application class thì hãy tạo ngay bằng cách sau nhé:

  • Tạo class có tên tùy ý như MyApplication chẳng hạn extends từ Application
    Tạo Application class
  • Đăng kí Application trong Manifest.xml của project với thuộc tính name là tên class vừa tạo:
    Thêm Application vào Manifest

 

II. Thử nghiệm Leak Canary

Phần này mình xin khất các bạn một thời gian nhé 😀

Leak Canary Sample

Loading Facebook Comments ...

Add Your Comment