VnReview
Hà Nội

Tại sao smartphone Android của bạn chạy chậm và cách xử lý

Smartphone Android là những thiết bị tuyệt vời, có thể thực hiện rất nhiều công việc nhờ mã nguồn mở của mình. Tuy nhiên cũng chính vì vậy mà hầu hết các vấn đề liên quan đến hệ điều hành này đến từ sự hiểu biết chưa đầy đủ về Android. Bài viết này sẽ giúp các bạn loại bỏ các quan niệm sai lầm và tiến hành các bước để khiến nó hoạt động nhanh trở lại.

Do cách mà hệ điều hành Android quản lý bộ nhớ và ứng dụng, bạn càng chạy nhiều ứng dụng thì càng ít bộ nhớ được cấp cho chúng. Cụ thể máy của bạn sẽ chậm đi bởi nó phải dành nhiều thời gian hơn cho việc chuyển tiếp các ứng dụng, vốn có quá ít bộ nhớ để hỗ trợ. Điều này sẽ ảnh hưởng đến cả hiệu năng lẫn thời lượng sử dụng pin.

Có một vài dấu hiệu nhận biết cho vấn đề này:

Dấu hiệu 1: một ứng dụng đang được download bỗng nhiên dừng lại.

Chẩn đoán: dịch vụ hỗ trợ download bị hệ thống ngừng lại, không thể tiếp tục download. Bạn hãy truy cập vào Cài đặt / Ứng dụng / Dịch vụ đang chạy. Nếu dịch vụ này đang "khởi động lại" thì chắc chắn hệ thống đã tắt nó để chuyển bộ nhớ sang cho các ứng dụng khác.

running servies Android

Dấu hiệu 2: các ứng dụng ở launcher (trình quản lý màn hình chủ và menu ứng dụng) mất nhiều giây để load. Các hiệu ứng động trở nên chậm chạp. Kể cả nếu bạn cài một launcher khác, vấn đề vẫn không thuyên giảm.

Chẩn đoán: hệ thống đang bận chuyển bộ nhớ cho các dịch vụ và hoạt động. Ở mục dịch vụ đang chạy, bạn thấy rất nhiều trong số chúng "đang khởi động lại", hoặc thời gian chạy "active" của chúng rất ngắn, chỉ một vài giây.

Dấu hiệu 3: pin hết veo chỉ trong nửa ngày.

Chẩn đoán: có quá nhiều dịch vụ ngầm đang chạy và chúng sử dụng hết dung lượng pin.

Nếu bạn truy cập vào mục theo dõi sử dụng pin (Cài đặt / Giới thiệu / Sử dụng pin) và bạn thấy một danh sách dài các ứng dụng cùng với lượng pin tính theo phần trăm mà chúng sử dụng, điều này có nghĩa là bạn đã kích hoạt quá nhiều ứng dụng. Chúng ăn pin từng chút một và dẫn đến hiện tượng hết pin rất nhanh.

Android battery

Chỉ có một nguyên nhân: quá nhiều ứng dụng nhưng lại quá ít bộ nhớ. Tuy nhiên, bởi bộ nhớ ở điện thoại Android không thể mở rộng (trừ khi bạn mua máy khác), bạn chỉ có thể giải quyết tình trạng này bằng cách xóa một vài ứng dụng đi để giải phóng bộ nhớ. Trước tiên, hãy cùng nghiên cứu sâu hơn vào hệ điều hành Android và xem cách nó quản lý bộ nhớ, từ đó hiểu tại sao giải phóng bộ nhớ sẽ giúp máy bạn chạy nhanh hơn và ít lỗi hơn.

Không bao giờ đủ bộ nhớ:

Hệ điều hành Android có 3 loại bộ nhớ chính: RAM (để chạy các chương trình), lưu trữ ứng dụng (để chứa các ứng dụng có sẵn hoặc được tải về) và thẻ nhớ SD (lưu trữ nhạc, ảnh và đóng vai trò lưu trữ phụ). Một vài thiết bị còn có thẻ SD trong (internal SD) và SD ngoài (external SD), chúng sẽ có tên thư mục lần lượt là "sdcard" và "sdcard-ext".

Quản lý RAM là vấn đề rất phức tạp ở Android, bởi hệ điều hành này dựa trên nhân "kernel" Linux, và kể cả một lập trình viên Linux có kinh nghiệm cũng nói với bạn rằng nó khá khó hiểu. Trước khi Android khởi chạy, riêng phần cứng của máy đã chiếm khoảng 32MB bộ nhớ. Rồi sau đó là các ứng dụng khác (acore, điện thoại, Google, hệ thống…) sẽ lấy khoảng 65-80MB. Như vậy đã có 100-128MB "ra đi", dù bạn chưa thực sự sử dụng một ứng dụng nào.

Thứ đầu tiên mà bạn sử dụng, dù bạn có thể không biết, đó là launcher. Tùy vào các launcher khác nhau, chúng thường lấy mất đi khoảng 8-30MB.

Giờ đến lượt các ứng dụng riêng lẻ. Thực ra nó không đơn giản như tên gọi. Rất nhiều ứng dụng được cấu thành từ nhiều bộ phận khác nhau, phần ngoài được gọi là quy trình (process), và phần trong được gọi là dịch vụ (service). Bởi cách nó hoạt động trong hệ sinh thái Android, một ứng dụng nặng vài trăm KB cũng có thể chiếm ít nhất 3MB bộ nhớ, thậm chí nhiều hơn nhiều.

Hãy truy cập vào mục quản lý dịch vụ. Bạn sẽ thấy mỗi dịch vụ chiếm từ 2-5MB, một số từ 15MB trở lên. Như vậy các ứng dụng không còn nhiều bộ nhớ để sử dụng, đặc biệt nếu các dịch vụ trên được load thường xuyên. Bạn càng chạy nhiều ứng dụng (hoặc chúng tự động chạy), càng ít bộ nhớ có sẵn trong hệ thống.

Mỗi tiện ích (widget) mà bạn đặt ra ngoài màn hình được hỗ trợ bởi một dịch vụ. Nếu bạn dùng khoảng 5 widget, hãy chào tạm biệt 20MB bộ nhớ hoặc hơn. Đó là chưa kể đến hình nền động (live wallpaper), chúng thường chiếm khoảng 10-20MB. Như vậy trước khi chạm vào màn hình sau khi máy khởi động, đã có 160MB RAM tuột khỏi tay bạn.

Những smartphone Android đời đầu quản lý RAM cực kém. Chiếc điện thoại Google đầu tiên, T-Mobile G1 có bộ nhớ trong 192MB, và Motorola Droid có 256MB. Với 160MB đã biến mất, hầu như chẳng còn gì để chạy các ứng dụng khác. Các thiết bị về sau đó như Samsung Galaxy S được trang bị 512MB RAM, rồi 768MB, 1GB,… Hiện giờ, người dùng Android có thể tận hưởng nhiều nhất là 2GB RAM với các thiết bị cao cấp như HTC One, Galaxy S III, Galaxy Note II…

Có thể bạn sẽ băn khoăn, nếu chỉ có 80-90MB khả dụng, tại sao bạn có thể chạy 100-200 ứng dụng? Thực tế này có thể diễn ra là bởi thiết bị sẽ cố gắng nhồi nhét nhiều ứng dụng hơn bộ nhớ cho phép, nên nó sẽ tắt những ứng dụng và dịch vụ không quan trọng để nhường chỗ cho ứng dụng khác. Tuy vậy, những ứng dụng không may bị tắt đó có thể sẽ lại yêu cầu hệ thống đưa vào bộ nhớ. Nói một cách đơn giản hơn, CPU sẽ cố gắng nhét ứng dụng X và Y vào bộ nhớ, vốn chỉ đủ cho X, bằng cách chia sẻ thời gian giữa chúng. Nó sẽ load các ứng dụng, rồi lại đẩy chúng ra khỏi bộ nhớ để đưa các ứng dụng khác vào. Quá trình này diễn ra hoàn toàn âm thầm.

Bài học rút ra khá đơn giản: đừng để RAM chạy quá nhiều ứng dụng, bằng cách tự bạn hãy dùng ít ứng dụng đi.

Dù bộ nhớ lưu trữ ứng dụng của bạn có ít, nó cũng không quan trọng bằng RAM. Mỗi ứng dụng bạn chạy sẽ cần một chút khoảng trống để lưu trữ dữ liệu hỗ trợ. Vì vậy kể cả một ứng dụng nặng vài trăm KB cũng có thể chiếm vài MB dữ liệu. Đặc biệt là trình duyệt, cache của chúng có thể lên đến hàng chục MB.

Để xem bạn còn bao nhiêu chỗ để lưu ứng dụng, hãy vào Cài đặt / Thẻ nhớ SD / Bộ nhớ điện thoại. Ở phía dưới cùng nó sẽ cung cấp thông tin bạn cần.

Vậy chúng ta có thể làm gì? Dưới đây là 6 cách phổ thông, và 4 cách nâng cao.

Cách 1: Xóa ứng dụng bạn ít khi dùng

Bạn dùng càng ít chương trình, điện thoại của bạn sẽ càng nhanh, bởi sẽ có rất nhiều bộ nhớ trống khả dụng. Nhiều bộ nhớ hơn sẽ giúp điện thoại chạy các ứng dụng thực sự tốt hơn.

Nếu bạn muốn lưu lại ứng dụng đó, hãy dùng Titanium Backup để giữ chúng lại ở thẻ nhớ SD. Hoặc chỉ cần download lại khi bạn cần.

Hãy tìm hiểu xem ứng dụng nào chiếm nhiều bộ nhớ lưu trữ nhất, bằng cách truy cập Cài đặt / Ứng dụng / Quản lý ứng dụng / Xếp theo kích thước.

Android storage

Cách 2: Chuyển ứng dụng vào thẻ SD nếu được

Thực ra các ứng dụng nên được dùng ở bộ nhớ trong. Tuy vậy nếu bạn có thẻ nhớ microSD class 10, hãy chuyển chúng vào thẻ nhớ SD, ngoại trừ các ứng dụng bạn thường xuyên dùng nhất.

Cách 3: Dùng ít widget

Mỗi widget có một dịch vụ hoặc nhiều hơn hỗ trợ nó, và chúng chiếm khoảng 2-4MB bộ nhớ, dù widget chỉ nặng chưa đến 100KB. Càng nhiều widget bạn dùng, càng ít bộ nhớ khả dụng bởi chúng lần lượt chiếm hết.

Cách 4: Dùng hình nền tĩnh

Kể cả một hình nền động đơn giản nhất sẽ chiếm khoảng 2MB bộ nhớ. Trong khi đó hình phức tạp hơn thì khoảng 20MB. Và nó chạy mọi lúc mọi nơi. Đó là chưa kể đến gánh nặng đè lên CPU và pin.

Cách 5: Tự tay tắt các dịch vụ không cần thiết

Hầu hết các ứng dụng hiện nay đều có một service chạy ngầm đi kèm, và nó sử dụng khoảng vài MB bộ nhớ, kể cả khi không chạy.

Google Maps có dịch vụ Places thỉnh thoảng khởi chạy kể cả khi bạn không dùng Maps. Youtube cũng thường xuyên load dịch vụ widget, mặc dù bạn không sử dụng. Khi bạn thoát ra ngoài một ứng dụng nào đó, dịch vụ đi kèm theo chúng không đồng thời ngừng chạy.

Hãy tự tay tắt chúng (vào mục Dịch vụ đang chạy), bấm vào bất cứ dịch vụ nào để tắt và nhường chỗ cho những thứ khác. Nếu bạn ít dùng, tốt nhất là xóa hẳn nó đi.

Android whatsapp

Cách 6: Không dùng ứng dụng task killer theo lịch tự động

Advanced Task Killer và các ứng dụng tương tự có thể cản trở tới việc quản lý bộ nhớ của hệ thống. Bộ nhớ mà chúng giải phóng chỉ là tạm thời và có thể còn đến từ các ứng dụng đang trực tiếp chạy, sẽ không được hệ thống khởi động lại.

Cách tốt nhất để không làm nặng hệ thống là chạy ít ứng dụng đi, ngay từ đầu. Bạn có thể sử dụng các chương trình trên, nhưng hãy tắt tính năng tự động.

Các cách nâng cao dưới đây đòi hỏi quyền root và một số điều kiện khác, và bạn chỉ nên thực hiện nếu có kinh nghiệm và hiểu hệ điều hành Android. Xem thêm về cách root hệ điều hành Android và cách giúp Android chạy nhanh hơn.

Cách nâng cao 1: dùng chương trình quản lý Autorun

Bạn có thể dùng AutoStarts hoặc Autorun Manager ở kho ứng dụng Play Store để vô hiệu hóa chức năng tự chạy khi khởi động máy của một vài ứng dụng. AutoStarts cũng có thể ngăn các ứng dụng khởi chạy khi hệ thống thực hiện tác vụ nào đó, như bật Bluetooth. Ví dụ, nếu bạn có một ứng dụng, vốn được thiết kế để được kích hoạt khi bấm phím camera, nhưng lại không hoạt động, hãy dùng AutoStarts để xem ứng dụng nào khác đã tranh mất chức năng đó.

Ngoài ra có khá nhiều ứng dụng khác ngoài AutoStarts quảng cáo chức năng này, nhưng chỉ AutoStarts mới đáng tin cậy và thực sự hoạt động. Nếu không có root, chúng chỉ có ích trong một nửa số trường hợp.

Cách nâng cao 2: Dùng Auto Memory Manager hoặc AutoKiller để chỉnh cài đặt

Bạn có thể dùng 2 ứng dụng trên để yêu cầu trình quản lý bộ nhớ trở nên "mạnh tay" hơn, thay vì cài đặt mặc định rất "hiền lành". Điều này có nghĩa là bạn không cần đến bất cứ ứng dụng task killer nào.

Cách nâng cao 3: Flash một kernel được ép xung

Việc flash một kernel được ép xung sẽ khiến bạn có thể tăng tốc độ xung nhịp của CPU. CPU OMAP trên Motorola Droid có tốc độ thực là 600MHz, nhưng đã được giảm xuống còn 550MHz để cải thiện thời lượng pin. Tuy nhiên, nó có thể dễ dàng được nâng lên cao hơn, thậm chí ở mức 1.2 hoặc 1.25 GHz.

setcpu

Hãy nhớ rằng giới lập trình cung cấp rất nhiều kernel cho bạn, nhưng hãy dùng đúng cái được thiết kế cho điện thoại của mình, và lựa chọn tốc độ xung nhịp phù hợp. Ngoài ra, bạn cũng cần biết cách boot vào recovery để đề phòng bất trắc.

Cách nâng cao 4: Cài custom ROM

Hầu hết mọi người đều thích custom ROM, và quả thực rất nhiều trong số chúng nhanh hơn hẳn.

Với hầu hết từng chiếc điện thoại Android, đều có một vài hoặc vô số custom ROM dành riêng cho chúng. Các custom ROM nổi tiếng nhất hiện nay gồm có CyanogenMod, MIUI, Liquid, AOKP,…

paranoid android

Bạn sẽ ngạc nhiên với những gì custom ROM làm được

Kết luận

Quản lý bộ nhớ ở Android là một vấn đề phức tạp, và cách bộ nhớ được quản lý khiến cho việc cải thiện hiệu năng trở nên rất khó khăn. Chúng tôi hi vọng đã giúp bạn đọc được phần nào đối với công việc gian nan này.

Gia Cường

Chủ đề khác