2012-01-07 25 views
6

Tôi có một dự án trong đó ứng dụng khách, có thể trên thiết bị Android, sẽ yêu cầu một số tệp từ máy chủ. Một triển khai thực hiện là phải truyền phát từ máy chủ đến thiết bị trong đó các tệp X được gửi cùng với một liên kết/con trỏ tới khối tiếp theo. Việc triển khai khác là gửi danh sách ID tệp và sau đó thực hiện một yêu cầu http cho từng ID và nhận tệp riêng lẻ. Tôi đã nghe điều này thực sự làm tổn thương tuổi thọ pin. Điều đó có đúng không?Ảnh hưởng của các yêu cầu http về tuổi thọ pin

Một vấn đề khác là băng thông, máy khách có thể không muốn/cần tất cả các tệp được gửi trong một cụm, vì vậy máy chủ là loại buộc khách hàng phải chấp nhận tất cả cùng nhau. Trong việc gửi cá nhân, khách hàng có thể nhận được các tập tin khi anh ta muốn nếu anh ta muốn họ.

Hiệu ứng trên tuổi thọ pin có tuyệt vời đến mức nó sẽ là một tùy chọn hợp lệ để vượt qua băng thông? Hoặc có lựa chọn thay thế?

+2

Tùy thuộc vào số lượng tệp bạn muốn nhận. Một số http sẽ không giết pin của bạn, nhưng nếu có hơn 5-10 yêu cầu mỗi phút, thì bạn nên chọn quyết định đầu tiên của mình. Hoặc, ví dụ, bạn có thể yêu cầu người dùng chọn phương pháp để sử dụng. –

+1

Kiểm tra điều này có thể giúp bạn: http: //stackoverflow.com/a/8445998/265167 –

Trả lời

4

Tôi đã nghe điều này thực sự làm tổn thương tuổi thọ pin. Điều đó có đúng không?

Không nhất thiết. Trên hầu hết các thiết bị Android, cả hai thiết bị Android HttpClientHttpUrlConnection đều có thể hỗ trợ Keep-Alive, vì vậy nếu máy chủ HTTP của bạn được thiết lập đúng cách và bạn đưa ra yêu cầu tương đối nhanh, tôi sẽ không mong đợi sự khác biệt lớn.

Trong lần gửi cá nhân, khách hàng có thể nhận tệp khi muốn nếu muốn.

Nếu bạn muốn nói rằng họ có thể yêu cầu họ trong một khoảng thời gian đáng kể, điều này sẽ không thể tận dụng được Keep-Alive. Tuy nhiên, có thể bạn sẽ yêu cầu ít tệp tổng thể hơn và tiêu thụ ít băng thông hơn đáng kể. Không thể nói với bạn, trong tóm tắt, sẽ tốt hơn cho việc tiêu thụ pin.

Hiệu ứng trên tuổi thọ pin có tuyệt vời đến mức nó sẽ là một tùy chọn hợp lệ để vượt qua băng thông?

Điều đó sẽ phụ thuộc vào bao nhiêu bạn đang tải, mức độ thường xuyên vv

Tuy nhiên, IMHO, bạn đang tập trung vào vấn đề sai.

Nếu bạn đang tiêu thụ vì vậy nhiều băng thông mà bạn lo lắng về tuổi thọ pin, người dùng của bạn sẽ tấn công bạn bằng các chĩa và cuốc để chi phí cho họ rất nhiều tiền trên kế hoạch dữ liệu đo của họ. Do đó, tôi sẽ sử dụng TrafficStats và thử các kịch bản khác nhau để xem bạn sử dụng bao nhiêu băng thông và do đó bạn cần tìm cách tiêu thụ ít băng thông hơn (ví dụ, bình chọn ít thường xuyên hơn), vì vậy người dùng không bị phá vỡ bởi ứng dụng của bạn. Tôi nghi ngờ rằng các mối quan tâm về pin của bạn sẽ tự chăm sóc bản thân như là một tác dụng phụ. Tuy nhiên, nếu trong thử nghiệm, bạn thấy ứng dụng của mình hiển thị trên "màn hình đổ lỗi pin" trong Cài đặt, rồi bắt đầu lo lắng về mức tiêu thụ pin, dù từ băng thông hoặc các nguồn khác (ví dụ: sử dụng quá mức WakeLocks) .

Các vấn đề liên quan