Tối ưu hoá mức tiêu thụ năng lượng cho ứng dụng

Tài liệu này mô tả các phương pháp hay nhất để tối ưu hoá mức tiêu thụ điện năng trong ứng dụng chỉ đường dành cho thiết bị di động mà bạn tạo bằng SDK Điều hướng. Đồng thời, tài liệu này mô tả những điểm đánh đổi cần cân nhắc khi áp dụng các phương pháp này. Cụ thể, tài liệu này đề cập đến những nội dung sau:

  • Nguồn tiêu thụ nhiều điện năng, được xếp hạng từ cao nhất đến thấp nhất.
  • Chiến lược để tối ưu hoá mức tiêu thụ điện năng, theo thứ tự quan trọng, bắt đầu bằng tốc độ khung hình.
  • Chiến lược dành cho người dùng cuối để hướng dẫn người dùng ứng dụng của bạn cách quản lý việc sử dụng thiết bị trong khi điều hướng.

Tại sao bạn nên tối ưu hoá ứng dụng chỉ đường?

Tuỳ thuộc vào tình huống của họ, người dùng ứng dụng của bạn có thể chạy hướng dẫn chỉ đường trong thời gian dài. Ví dụ: tài xế và nhân viên giao hàng có thể làm việc nhiều giờ, hoàn thành công việc ở những khu vực không quen thuộc. Trong những trường hợp này, họ chủ yếu dựa vào hướng dẫn từng chặng trong ứng dụng. Điều này dẫn đến một số vấn đề điển hình:

  • Mức tiêu hao pin và khả năng sử dụng bộ sạc. Việc sử dụng tính năng chỉ đường nhiều có thể làm pin thiết bị tiêu hao nhanh hơn dự kiến. Mặc dù nhiều người dùng có thể giải quyết vấn đề này bằng cách sạc thiết bị trong xe, nhưng người lái xe hai bánh thì không thể.
  • Thiết bị bị điều tiết do quá nóng. Ngay cả những người dùng liên tục sạc thiết bị cũng có thể gặp vấn đề. Mức tiêu thụ điện năng cao trong thời gian dài có thể khiến thiết bị nóng lên, dẫn đến tình trạng điều tiết nhiệt và giảm hiệu suất sau đó.

Ứng dụng chỉ đường từng chặng phụ thuộc vào các tính năng tiêu tốn nhiều pin như màn hình, GPS và giao tiếp vô tuyến với tháp phát sóng di động. Vì vậy, bạn nên tối ưu hoá mức sử dụng pin của ứng dụng di động. Ngoài ra, bạn nên xem xét nhu cầu sử dụng pin của đối tượng mục tiêu để có thể đánh đổi phù hợp giữa hiệu suất và việc tối ưu hoá mức tiêu thụ pin.

Thành phần nào tiêu thụ nhiều năng lượng nhất?

Phần này chia các hoạt động trong ứng dụng có liên quan đến mức tiêu thụ pin cao thành hai danh mục:

  • Kết xuất màn hình
  • Thông tin cập nhật về vị trí

Kết xuất màn hình

Quá trình kết xuất màn hình thường gây ra mức tiêu thụ năng lượng cao nhất trong các ứng dụng chỉ đường dành cho thiết bị di động. Mỗi khi thiết bị vẽ bản đồ và các thành phần giao diện người dùng khác trên màn hình, thiết bị sẽ dựa vào quá trình xử lý của GPU và CPU. Tương tự, khi người dùng để màn hình đó bật trong thời gian dài, thiết bị cũng sẽ tiêu tốn nhiều pin hơn.

Ở một mức độ nào đó, bạn có thể dự kiến mức tiêu thụ điện năng cao từ những người lái xe hoặc người đi xe đạp dựa vào bản đồ hiển thị để di chuyển, đặc biệt là nếu họ sử dụng ứng dụng liên tục trong nhiều giờ. Trong trường hợp này, ứng dụng cũng thực hiện tốc độ kết xuất cao hơn trên màn hình vì bản đồ sẽ cập nhật theo thời gian thực. Trong một số trường hợp, màn hình có thể vẽ lại gần như liên tục, đặc biệt là khi người dùng lái xe từ vị trí này đến vị trí khác mà không dừng lại.

Thông tin cập nhật về vị trí

Ngoài việc kết xuất màn hình, hai hoạt động điều hướng khác cũng tiêu thụ năng lượng thiết bị:

  • Tháp phát sóng di động và mức sử dụng GPS
  • Cập nhật và chia sẻ thông tin vị trí, chẳng hạn như để cung cấp thời gian đến dự kiến hoặc báo cáo vị trí của một xe trong một đội xe.

Cả GPS và thông tin liên lạc qua sóng di động đều dựa vào các hoạt động khởi động tốn nhiều năng lượng: GPS phải tìm vệ tinh và sóng di động phải đàm phán với tháp và thiết lập kết nối. Vì những lý do này, về cơ bản, các đài phát này chạy liên tục trong quá trình điều hướng, mặc dù đài phát di động vẫn hoạt động trong 20-30 giây để cố gắng giảm thiểu chi phí khởi động. Hệ điều hành kiểm soát các chế độ cài đặt này mà bạn không thể dễ dàng định cấu hình trong ứng dụng.

Đối với tính năng cập nhật vị trí, mức sử dụng pin sẽ thay đổi tuỳ theo các yếu tố không thể dự đoán. Ví dụ: khoảng cách giữa thiết bị và trạm gốc di động xác định mức sử dụng pin, vì thiết bị sẽ sử dụng tín hiệu tối thiểu cần thiết để tiếp tục điều hướng nhằm tránh chuyển đổi tháp. Do đó, một thiết bị di chuyển trong khu vực có kết nối kém sẽ tiêu tốn nhiều năng lượng hơn so với thiết bị ở gần trạm gốc. Ngoài ra, một số ứng dụng có thể chia sẻ thông tin cập nhật về vị trí với dịch vụ quản lý đội xe trung tâm. Do đó, các ứng dụng này sẽ cần giao tiếp với máy chủ để thực hiện việc này.

Tối ưu hoá mức sử dụng pin của ứng dụng

Thách thức để tối ưu hoá mức sử dụng pin trong các ứng dụng chỉ đường là những ứng dụng này phụ thuộc nhiều vào các tài nguyên tiêu tốn nhiều pin, điều này hạn chế các lựa chọn của bạn để giảm thiểu tác động mà không cần đánh đổi, chẳng hạn như hạn chế sử dụng màn hình. Phần này cung cấp danh sách các phương pháp mà bạn có thể áp dụng khi tối ưu hoá ứng dụng, theo thứ tự từ phương pháp có tác động nhiều nhất đến ít nhất.

Thay đổi tốc độ khung hình

Màn hình cập nhật nội dung hiển thị theo tần suất gọi là tốc độ khung hình. Tốc độ khung hình thường được đo bằng Khung hình/giây (FPS). Vì quá trình kết xuất màn hình sử dụng nhiều CPU hoặc GPU, nên bạn có thể giảm tốc độ khung hình để tiết kiệm mức tiêu thụ điện năng.

Điểm đánh đổi khi giảm tốc độ khung hình là quá trình kết xuất màn hình có thể kém mượt mà hơn, đặc biệt là nếu bản đồ cập nhật thường xuyên. Điều này có thể rõ ràng nhất khi bản đồ được phóng to để hiển thị chi tiết cao, khi người dùng đang di chuyển với tốc độ cao hoặc khi thay đổi tốc độ hoặc hướng đi một lượng lớn.

Trên thiết bị iOS, SDK Bản đồ dành cho iOS hiển thị thuộc tính preferredFrameRate để kiểm soát tốc độ khung hình. Bảng dưới đây cho thấy các giá trị bộ đếm GMSFrameRate mà bạn có thể điều chỉnh:

kGMSFrameRatePowerSave

Sử dụng tốc độ khung hình tối thiểu để tiết kiệm pin.

kGMSFrameRateConservative

Sử dụng tốc độ khung hình trung bình để kết xuất mượt mà hơn và tiết kiệm chu kỳ xử lý.

kGMSFrameRateMaximum

Sử dụng tốc độ khung hình tối đa cho một thiết bị.

Đối với thiết bị cấp thấp, tốc độ khung hình là 30 khung hình/giây và đối với thiết bị cấp cao là 60 khung hình/giây.

Để tham khảo, hãy xem GMSFrameRate trong tài liệu về SDK Điều hướng của Google cho iOS.

Mặc dù không thể kiểm soát cách người dùng cuối đặt độ sáng màn hình thiết bị hoặc thời lượng họ bật màn hình, nhưng bạn có thể cung cấp tuỳ chọn hướng dẫn điều hướng không cần bản đồ. Điều này cho phép người dùng cuối chọn tuỳ chọn đó để tiết kiệm pin. Ví dụ: nếu thường xuyên làm việc ở cùng một khu vực, tài xế có thể không cần hướng dẫn dựa trên bản đồ thường xuyên. Bạn có thể bật tính năng chỉ đường mà không cần bản đồ bằng cách đặt đích đếnbắt đầu hướng dẫn trong SDK Điều hướng nhưng không hiển thị bản đồ.

Thêm một dòng mã để ẩn GMSMapView:

mapView.isHidden = true

SDK chỉ đường sẽ tiếp tục cập nhật vị trí chụp đường, ETA và quãng đường còn lại. Ứng dụng của bạn vẫn có thể đăng ký tất cả sự kiện do SDK tạo ra khi người lái xe tiếp tục di chuyển. Cách này không phù hợp với mọi trường hợp sử dụng và tất nhiên không phải là lời khuyên hay trong trường hợp người lái xe cần xem bản đồ và làm theo hướng dẫn bằng hình ảnh. Các ảnh chụp màn hình sau đây minh hoạ việc so sánh song song việc bật/tắt chế độ xem bản đồ trong khi điều hướng.

Ứng dụng minh hoạ đang chạy với chế độ xem bản đồ hiển thị.
Hình 1.Navigation SDK ứng dụng minh hoạ iOS hiển thị bản minh hoạ Data Back
Ứng dụng minh hoạ đang chạy mà không hiển thị chế độ xem bản đồ.
Hình 2.Ứng dụng minh hoạ đang chạy mà không hiển thị chế độ xem bản đồ. Lưu ý rằng thời gian và quãng đường còn lại cũng như vị trí chụp đường vẫn đang cập nhật.

Sử dụng kiểu bản đồ tối

Hãy cân nhắc tạo kiểu cho bản đồ để sử dụng giao diện tối nhằm giảm lượng năng lượng cần thiết để hiển thị bản đồ trên màn hình.

Navigation SDK hiển thị bản đồ bằng cách sử dụng SDK Google Maps cho iOS. SDK này chứa các tuỳ chọn để tạo kiểu cho mọi chế độ xem bản đồ không phải là chế độ xem chỉ đường trong ứng dụng. Chế độ xem chỉ đường cũng hỗ trợ chế độ buộc chế độ tối. Điều này có thể không ảnh hưởng đến mọi thiết bị theo cùng một cách do sự khác biệt về loại màn hình, nhưng có thể giúp tiết kiệm pin trong một số trường hợp. Một nghiên cứu gần đây cho thấy lượng pin mà chế độ tối tiết kiệm được trên một số màn hình phụ thuộc vào độ sáng ban đầu của màn hình. Ví dụ: chế độ tối tiết kiệm nhiều pin hơn trên màn hình được đặt ở độ sáng tối đa so với màn hình có độ sáng đã được điều chỉnh ở mức 30-50% độ sáng tối đa. Đây là điều quan trọng cần cân nhắc khi sử dụng chế độ tối cho ứng dụng, vì mức tiết kiệm pin sẽ tương ứng với cách người dùng cuối đặt độ sáng màn hình.

Để tìm hiểu thêm về cách sửa đổi Giao diện người dùng điều hướng, hãy xem phần Sửa đổi giao diện người dùng điều hướng.

Ảnh chụp màn hình Navigation SDK chạy trên iPhone 15 Pro với kiểu bản đồ tối.
Hình 3.Navigation SDK được định cấu hình với kiểu bản đồ tối
Định cấu hình GMSMapView bằng mapID đại diện cho kiểu bản đồ dựa trên đám mây được xác định trong dự án của bạn.

Để tạo kiểu bản đồ dựa trên đám mây, bạn cần có mã bản đồ đại diện cho cấu hình bản đồ phía máy chủ đã được tạo trong dự án Google Console. Để biết thêm thông tin về cách tạo mã bản đồ, hãy xem tài liệu dành cho nhà phát triển về mã bản đồ. Để biết thêm thông tin chi tiết về cách thiết kế và triển khai kiểu bản đồ dựa trên đám mây, hãy xem tài liệu dành cho nhà phát triển về cách tạo và quản lý kiểu bản đồ dựa trên đám mây.

Thay đổi tần suất cập nhật vị trí GPS

Khi xem xét mức sử dụng pin từ các bản cập nhật vị trí được gửi từ thiết bị, hãy tập trung nhiều hơn vào tần suất cập nhật vị trí thay vì lượng dữ liệu được gửi trong quá trình truyền.

Đây không phải là điều bạn có thể kiểm soát trực tiếp trong SDK điều hướng. Bạn cũng nên làm như vậy khi sử dụng các nguồn vị trí không phải GPS (Di động và Wi-Fi).

Gửi thông tin cho người dùng

Người dùng ứng dụng của bạn có thể muốn biết cách tối ưu hoá mức tiêu thụ điện năng. Để giúp họ giảm mức tiêu thụ điện năng trên ứng dụng, hãy khuyên người dùng làm như sau:

  • Khoá điện thoại
  • Đặt ứng dụng chỉ đường ở chế độ nền
  • Sử dụng tính năng chỉ đường mà không cần bản đồ nếu có thể
  • Giảm độ sáng màn hình bằng cách sử dụng chế độ tối cho màn hình OLED và AMOLED hoặc bằng cách bật độ sáng thích ứng
  • Giữ thiết bị mát
  • Kết nối với Wi-Fi trong ô tô (nếu có)

Đo lường mức tiêu thụ điện năng

Bạn có thể sử dụng các công cụ chuyên nghiệp để đo lường mức tiêu thụ điện năng, nhưng thường khó hoặc tốn kém để có được các công cụ đó. Các ứng dụng và công cụ phân tích tài nguyên IDE như Trình phân tích điện năng trong Android StudioNgăn sử dụng pin trong Trình quản lý XCode đo lường mức tiêu thụ điện năng, nhưng có thể khó loại bỏ tác động của các quy trình ở chế độ nền hoặc đặt đường cơ sở hiệu suất để đo lường. Trong một số trường hợp, các quy định hạn chế của thiết bị có thể ngăn việc truy cập vào dữ liệu cần thiết.

Bạn có thể sử dụng phần cứng theo dõi nguồn chuyên dụng và sửa đổi cấu hình kết nối pin, cũng như các sản phẩm và dịch vụ thương mại hiện có để giúp bạn thực hiện việc này. Xin lưu ý rằng việc sửa đổi thiết bị theo cách này có thể làm mất hiệu lực bảo hành của thiết bị.