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ở. 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 tải bỗng nhiên dừng lại
Chẩn đoán:
dịch vụ hỗ trợ tải (download) bị hệ thống ngừng lại, không thể tiếp tục
tải. 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.
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 để mở. 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.
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 mở 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.
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.
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.
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,…
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