no drain, no pain
kéo dài thời gian sử dụng pin trên điện thoại blackberry ® dường như vẫn là đề tài hot được bàn luận rất nhiều trên các diễn đàn dành cho các developer cũng như người dùng cuối. bài viết này dành cho các developer để nhờ đó họ có thể giúp người dùng cải thiện tuổi thọ pin ngay từ chính những ứng dụng mà họ viết ra.

nói chung, một ứng dụng blackberry thường có ba trạng thái:

  • ứng dụng đang chạy, đèn nền màn hình đang sáng, và thiết bị ở tình trạng không bị khóa (tức là người sử dụng có thể tương tác với ứng dụng)

  • ứng dụng đang chạy, nhưng ở trạng thái đèn màn hình đã tắt hoặc thiết bị đang trong tình trạng khóa (tức là người dùng đã sử dụng ứng dụng nhưng đã để cho thiết bị bước vào trạng thái nghỉ trong khi chưa thoát hoàn toàn ứng dụng)

  • ứng dụng đang chạy nền (đèn màn hình và chế độ khóa máy không ảnh hưởng)

chúng ta sẽ không tập trung vào trạng thái đầu tiên do ở trạng thái này, ứng dụng cần tiêu thụ lượng năng lượng mà nó cần để hoàn thành nhiệm vụ, do đó bài viết này sẽ tập trung vào trạng thái thứ hai và thứ ba để ngăn chặn việc dung lượng pin bị thất thoát quá nhanh chóng. dưới đây là một số thủ thuật mà bạn có thể sử dụng để làm cho ứng dụng thân thiện hơn với thiết bị.

#1: nếu ứng dụng của bạn đang chạy nền, hãy lập trình để ứng dụng chỉ thực hiện những tác vụ mà nó thật sự cần phải thực hiện. ví dụ, khi ứng dụng ở chế độ nền, các tác vụ liên quan đến giao diện, media nên được tạm dừng. ứng dụng của bạn nên tự động chuyển sang trạng thái chạy nền khi đèn nền tắt hoặc màn hình đang ở chế độ khóa. một cách để xác định xem điện thoại bị khóa hay không, sử dụng hàm net.rim.device.api.system.applicationmanager. issystemlocked (). bạn cũng có thể sử dụng hàm net.rim.device.api.ui.uiapplication.getuiapplicati on () isforeground () để xác định xem ứng dụng vẫn còn active ngay sau khi điện thoại đã khóa hay không.

cuối cùng, bạn có thể sử dụng chuỗi "net.rim.device.api.system.display.getproperti es () & display.display_property_requires_backlight" để xem đèn nền đang on hay off.

#2: sử dụng profiler trong blackberry java ide để xác nhận rằng bạn chỉ sử dụng cpu ở mức gần bằng 0 khi ở chế độ nền. mỗi % cpu được sử dụng tương đương với khoảng 5ma trên thiết bị lúc nhàn rỗi. tham khảo thêm tại đây

#3: xem các hàm repaint(), bất kể cho dù ứng dụng chạy nền (background hay foreground) thì chỉ sử dụng khi thật sự cần thiết, đặc biệt rất hao pin nếu làm việc với opengl.

#4: các truy cứu, định vị - gps (agps) là một trong những yếu tố tiêu tốn rất lớn năng lượng pin. do đó bạn có thể sử dụng blackberry criteria để cho ra các giải pháp khắc phục một cách phù hợp. tùy chỉnh yêu cầu chính xác trong việc truy cứu, định vị gps cũng ảnh hưởng lớn đến việc tiêu thụ điện năng, do đó, hãy thiết lập các thông số phù hợp để tiết kiệm pin hơn. tham khảo thêm tại đây.

#5: nếu ứng dụng của bạn phát hiện pin yếu, hãy xem xét việc thông báo cho người sử dụng hoặc ngừng các chức năng gây hao pin như lbs, logging, sóng điện thoại, và gabarge colletion ....

đối với logging, bạn có thể đặt mức tối thiểu trong event logger. bằng cách sử dụng hàm net.rim.device.api.system.eventlogger. getminimumlevel ().

đối với sóng điện thoại, hãy sử dụng công nghệ push. pushing hiệu quả hơn rất nhiều so với polling. bất cứ lúc nào bạn thấy ứng dụng của mình thường xuyên truy xuất dữ liệu từ internet, hãy cân nhắc sử dụng công nghệ push.

đối với vấn đề garbage collection, sử dụng bb jde’s memory stats hoặc objects tools để theo dõi, và quản lý lượng rác xuất hiện trên bộ nhớ trong lúc ứng dụng hoạt động.



nguồn: devblog