Tối ưu hóa bộ nhớ Android

0
728

Các thiết bị Android có bộ nhớ ít hơn máy tính để bàn hoặc máy tính xách tay, do đó chúng ta cần tối ưu bộ nhớ cho thiết bị Android để bộ nhớ Android không bị lãng phí.

Với các bạn Android 5.0 việc lưu trữ trên bộ nhớ ảo sẽ giúp bạn giảm bớt phần nào bộ nhớ lưu trữ của thiết bị Android.
Tránh phân bổ đối tượng không cần thiết, đặc biệt ở những nơi bạn ít dùng đến. Tái sử dụng các đối tượng trong lập trình Android và thường xuyên xử lý rác lưu trữ trong bộ nhớ của thiết bị. Hãy kiểm tra lại thiết bị của bạn những ứng dụng nào không dùng đến thì hãy xóa nó đi. tránh đối tượng tạo ra trong các vòng lặp hoặc trong OnDraw () phương pháp của giao diện tùy chỉnh của bạn.

1.Sử dụng các cấu trúc dữ liệu hiệu quả.

Android cung cấp một số thực hiện của lớp Sparse*Array.

Ví dụ:

Map<Integer, String> map = new HashMap<Integer, String>();

Khi bạn sử dụng code trên đối tượng Integer sẽ được tạo ra.

Android cung cấp các cấu trúc dữ liệu được hiệu quả hơn cho các giá trị để lập bản đồ các đối tượng khác. Nếu có thể sử dụng các đối tượng này, họ tránh tạo ra đối tượng như trong trường hợp sử dụng HashMap. đối tượng sáng tạo có thể tốn kém và cần phải tránh để giảm số lần thu gom rác cần chạy.

Một số ví dụ cho SparseArrays.

  • SparseArray<E> : Bản đồ số nguyên để các đối tượng, tránh việc tạo ra các đối tượng Integer.
  • SparseBooleanArray : Bản đồ số nguyên để các phép toán luận.
  • SparseIntArray : Bản đồ số nguyên với số nguyên

2. Xử lý ảnh Bitmap tự học lập trình

Bitmap có thể phân bổ rất nhiều bộ nhớ nếu nạp ở kích thước đầy đủ. Đó là khuyến cáo để tải bitmap trong kích thước mong muốn vào bộ nhớ. Giả sử bạn có một ứng dụng mà sẽ hiển thị một hình ảnh trong 100×100 dp, bạn nên tải các hình ảnh chính xác kích thước này.

3. Sử dụng bộ nhớ cache

Một bộ nhớ cache cho phép tái sử dụng đối tượng đó là đắt tiền để tạo ra. Nếu bạn tải về đối tượng vào bộ nhớ, bạn có thể nghĩ về điều này như một bộ nhớ cache cho các đối tượng. Ví dụ, nếu bạn tải hình ảnh từ Internet để hiển thị chúng trong một danh sách, bạn nên giữ chúng trong bộ nhớ để tránh mà bạn tải về chúng nhiều lần.

Tại một số điểm bạn cần để tái chế một số đối tượng của bạn, nếu không bạn chạy ra khỏi bộ nhớ. Một cách tiếp cận tốt để làm điều này, là để tái chế các đối tượng đã không được sử dụng dài nhất trong lập trình ứng dụng của bạn.

Nền tảng Android cung cấp LruCache lớp, như các API 12 (hoặc trong các thư viện hỗ trợ-v4). Các LruCache lớp cung cấp một sử dụng gần đây nhất là bộ nhớ cache (LRU cache) thực hiện bộ nhớ cache. Một bộ nhớ cache LRU theo dõi việc sử dụng các thành viên của nó. Nó có kích thước nhất định và nếu kích thước này bị vượt quá, nó loại bỏ các mục đó đã không được truy cập lâu nhất. Hành vi này được mô tả trong hình sau.

sao-luu-android

Chia sẻ

BÌNH LUẬN

Please enter your comment!
Please enter your name here