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 một ứng dụng chỉ đường di động mà bạn tạo bằng Navigation SDK. Đồng thời, bài viết này cũng mô tả những điểm 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 bao gồm 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.
  • Các 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 từ 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ách quản lý việc sử dụng thiết bị trong khi di chuyển.

Tại sao bạn nên tối ưu hoá ứng dụng điều hướng?

Tuỳ vào tình huống, 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ụ: người lái xe 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 nơi không quen thuộc. Trong những trường hợp này, họ phụ thuộc rất nhiều 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 đề thường gặp:

  • Tình trạng 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ể khiến pin thiết bị 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 phải vấn đề. Việc tiêu thụ nhiều điện năng 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à hiệu suất giảm sút sau đó.

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

Ứng dụng 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 liên quan đến mức tiêu thụ pin cao thành 2 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

Việc kết xuất màn hình thường gây ra mức tiêu thụ điện cao nhất trong các ứng dụng điều hướng trên thiết bị di động. Mỗi khi thiết bị vẽ một bản đồ và các phần tử khác trên giao diện người dùng 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, điều này cũng tiêu tốn nhiều năng lượng 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 sang 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, 2 hoạt động điều hướng khác cũng tiêu thụ năng lượng của thiết bị:

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

Cả GPS và thông tin liên lạc qua sóng vô tuyến đều dựa vào các hoạt động khởi động tiêu tốn nhiều năng lượng: GPS phải tìm thấy các vệ tinh và sóng vô tuyến phải thương lượng với các trạm phát sóng và thiết lập kết nối. Vì những lý do này, về cơ bản, chúng 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 đến 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 của mình.

Đối với thông tin cập nhật vị trí, mức tiêu thụ điện năng sẽ thay đổi tuỳ theo các yếu tố khó dự đoán. Ví dụ: khoảng cách giữa thiết bị và trạm gốc di động sẽ xác định mức tiêu thụ điện năng, 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ị điều hướng ở khu vực có kết nối kém sẽ tiêu thụ nhiều điện nă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 một dịch vụ quản lý đội xe tập trung, do đó, cần giao tiếp với một 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 khi tối ưu hoá mức sử dụng pin trong các ứng dụng điều hướng là những ứng dụng này phụ thuộc rất nhiều vào các tài nguyên tiêu thụ 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 phải đá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 bạn có thể áp dụng khi tối ưu hoá ứng dụng, theo thứ tự từ tác động lớn nhất đến nhỏ nhất.

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

Màn hình cập nhật nội dung hiển thị với tần suất được 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 tiêu tốn nhiều CPU hoặc GPU, nên bạn có thể giảm tốc độ khung hình để tiết kiệm điện năng.

Nhược điểm khi giảm tốc độ khung hình là quá trình kết xuất màn hình có thể không mượt mà, đặc biệt 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, khi người dùng đang di chuyển ở tốc độ cao hoặc khi thay đổi tốc độ hoặc hướng đi với mức độ lớn.

Trên thiết bị iOS, Maps SDK dành cho iOS hiển thị thuộc tính preferredFrameRate để kiểm soát tốc độ khung hình. Bảng bên dưới cho thấy các giá trị trình liệt kê 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 các thiết bị cấp thấp, tốc độ này là 30 khung hình/giây, còn đối với các thiết bị cấp cao, tốc độ này là 60 khung hình/giây.

Để tham khảo, hãy xem GMSFrameRate trong tài liệu về Google Navigation SDK 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 gian họ bật màn hình, nhưng bạn có thể cung cấp lựa chọn hướng dẫn chỉ đường mà không cần bản đồ. Điều này sẽ cho phép người dùng cuối chọn chế độ đó để tiết kiệm pin. Ví dụ: nếu thường xuyên làm việc trong cùng một khu vực lân cận, thì có thể tài xế không cần hướng dẫn dựa trên bản đồ thường xuyên. Bạn có thể bật chế độ chỉ đường mà không có bản đồ bằng cách đặt đích đếnbắt đầu hướng dẫn trong Navigation SDK nhưng không hiển thị bản đồ.

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

mapView.isHidden = true

Navigation SDK sẽ tiếp tục cập nhật vị trí được gắn trên đường, thời gian đến dự kiến và khoảng cách còn lại của hành trình, đồng thời ứng dụng của bạn vẫn có thể đăng ký tất cả các sự kiện do SDK này tạo ra khi người lái xe tiếp tục hành trình. Điều 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 trực quan. Ảnh chụp màn hình sau đây minh hoạ phép so sánh song song việc bật/tắt chế độ xem bản đồ trong khi chỉ đường.

Ứng dụng minh hoạ đang chạy với chế độ xem bản đồ hiển thị.
Hình 1.Ứng dụng minh hoạ Navigation SDK iOS cho thấy bản minh hoạ Data Back (Sao lưu dữ liệu)
Ứ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 có chế độ xem bản đồ nào hiển thị. Xin lưu ý rằng thời gian và khoảng cách còn lại, cũng như vị trí được khớp với đường vẫn đang được cập nhật.

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

Hãy cân nhắc việc tạo kiểu cho bản đồ để sử dụng một 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 kết xuất bản đồ bằng Google Maps SDK cho iOS. SDK này có các lựa chọn để tạo kiểu cho mọi khung hiển thị bản đồ không phải là khung hiển thị bản đồ điều hướng trong ứng dụng của bạn. Khung hiển thị điều hướng cũng hỗ trợ chế độ tối bắt buộc. Đ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 cho phép tiết kiệm điện năng trong một số trường hợp. Một nghiên cứu gần đây cho thấy lượng pin tiết kiệm được khi dùng chế độ tối 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 điện 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% so với mức tối đa. Bạn cần cân nhắc điều này khi sử dụng chế độ tối cho các ứng dụng của mình, 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 đang 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 bằng kiểu bản đồ tối
Định cấu hình GMSMapView bằng một 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ính năng tạo kiểu bản đồ dựa trên đám mây yêu cầu phải 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 của bạn. Để 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 tiêu thụ điện năng từ thông tin 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.

Bạn không thể kiểm soát trực tiếp việc này trong Navigation SDK. Lời khuyên tương tự cũng áp dụng cho việc sử dụng các nguồn vị trí không phải GPS (Mạng 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. Để 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
  • Chuyển ứng dụng chỉ đường sang chế độ nền
  • Nếu có thể, hãy sử dụng chế độ chỉ đường mà không cần bản đồ
  • 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 tính năng độ sáng thích ứng
  • Giữ thiết bị luôn mát
  • Kết nối với Wi-Fi trên xe nếu có

Đo 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 mức tiêu thụ điện năng, nhưng thường khó hoặc tốn kém để có được những công cụ này. Các ứng dụng và công cụ lập hồ sơ IDE như Trình phân tích năng lượng trong Android Studiongăn Mức sử dụng pin trong Trình quản lý XCode đo mức tiêu thụ năng lượng, nhưng có thể khó loại bỏ ảnh hưởng của các quy trình 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ế đối với thiết bị có thể ngăn bạn truy cập vào dữ liệu cần thiết.

Bạn có thể sử dụng phần cứng giám sát nguồn điện chuyên dụng và sửa đổi cấu hình kết nối pin, đồng thời các sản phẩm và dịch vụ thương mại sẽ 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ị.