-
Title:
05-09 Network_and_Battery_Drain
-
Description:
05-09 Network_and_Battery_Drain
-
Hãy tạm dừng, để làm
thật rõ điều này.
-
Nếu liên quan đến pin,
-
mạng là kẻ tấn công lớn nhất,
tồi tệ nhất, xấu xa nhất.
-
Hãy nhớ rằng trong điện thoại
có một phần cứng nhỏ
-
thật ra là một bộ đàm,
-
mục đích của nó chỉ là kết nối
với trạm di động địa phương gần nhất
-
và truyền đi
lượng lớn thông tin.
-
Cái bẫy ở đây là con chip này,
không phải lúc nào cũng chạy,
-
sau khi bạn gửi
một gói dữ liệu,
-
con chip sẽ bật
trong một thời gian
-
trong trường hợp có
phản hồi từ máy chủ.
-
Nhưng nếu không có hoạt động gì,
nó sẽ tắt để tiết kiệm pin.
-
Như ta đã thấy trước đó,
-
có một pic năng lượng lớn
khi chip được bật lên,
-
và khi nó vẫn thức
để chờ phản hồi,
-
nó sẽ tiếp tục tiêu hao
pin trong thời gian đó.
-
Bây giờ, cần phải chỉ ra rằng
hai cách chính
-
mà hầu hết các ứng dụng
tương tác với sóng radio.
-
Đầu tiên, có những sự kiện
cần phải diễn ra ngay.
-
Những sự kiện này là kết quả
hoạt động người dùng
-
hoặc phát sinh từ nhu cầu cập nhật UI
của ứng dụng ngay lập tức.
-
Ví dụ, khi người dùng yêu cầu
tải một gói mới các tweet
-
của một hashtag được yêu thích.
-
Vì đây là hoạt động từ người dùng,
ứng dụng của bạn cần phản hồi ASAP ngay.
-
Mặt khác, ở góc này là các
đầu việc hệ thống
-
không cần phải xảy ra
vào cùng thời điểm
-
ví dụ, tải dữ liệu người dùng,
đồng hóa số liệu nền,
-
hoặc
thay đổi kích thước ảnh từ mạng.
-
Vậy, trong khi gói nhiệm vụ
thứ nhất cần diễn ra ngay,
-
để cung cấp phản hồi
cho người dùng,
-
gói nhiệm vụ thứ hai
có thể đẩy ra sau,
-
khi có thể thực hiện
mà vẫn tiết kiệm pin.
-
Và, có nhiều khả năng
-
là phần lớn các yêu cầu
từ mạng đến ứng dụng
-
sẽ nằm trong gói thứ hai.
-
chuyển việc hệ thống để tăng
hiệu quả pin là một quy trình hai bước
-
Đầu tiên, hãy nhìn kỹ
dòng sóng di động
-
cho ứng dụng của bạn
trên battery historian.
-
Mỗi thanh đỏ ở đây đại diện cho
một sóng di động đang bật,
-
các khoản trống giữa các thanh này
là khoảng thời gian sóng tắt đi.
-
Nếu bạn thấy rất nhiều
thanh hẹp và khoảng trống
-
điều này thể hiện
vấn đề về hiệu quả,
-
vì nó có nghĩa là đã có rất nhiều
chuỗi bật tắt liên tục.
-
Ngược lại, những khoảng trống, rồi
hoạt động rộng sẽ tốt hơn.
-
Như vậy, bạn đã giảm bớt tiêu hao
bằng cách giảm số yêu cầu từ hệ thống,
-
và thậm chí tốt hơn,
không dùng sóng chút nào.
-
Ý tôi là bạn có thể chờ đến
khi điện thoại kết nối WiFi
-
và để phần cứng của Wifi làm
việc này, ít tốn pin hơn nhiều.
-
Bây giờ, vấn đề là viết mã
để gom thành khối, lưu trữ
-
và hoãn tất cả các yêu cầu
hệ thống là cực kỳ khó,
-
vì vậy chúng tôi
đã làm điều này cho bạn.
-
JobScheduler API có thể tráo đổi
với L release của Android cung cấp
-
một gói đầy đủ các API
-
sẽ làm tất cả việc quản lý
yêu cầu hệ thống thay cho bạn.
-
Nhưng, thay vì nói cho bạn
về API tuyệt vời này,
-
sao bạn không tìm hiểu kỹ
nó qua thực hành nhỉ?