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 trên thiết bị di động mà bạn xây dựng bằng SDK Điều hướng. Đồng thời, bài viết cũng 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ụ điện năng cao, đượ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ách quản lý việc sử dụng thiết bị trong khi di chuyển.

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

Tuỳ vào tình huống, người dùng ứng dụng có thể chạy tính năng 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 nhiệm vụ ở những khu vực xa lạ. 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:

  • Mức tiêu hao pin và tình trạng sẵn sàng của bộ sạc. Việc sử dụng nhiều tính năng chỉ đường có thể khiến 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ị trên 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 sạc thiết bị liên tục 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à làm giảm hiệu suất sau đó.

Ứng dụng chỉ đường từng chặng dựa vào các tính năng tiêu tốn nhiều điện năng như màn hình, GPS và hoạt động liên lạc vô tuyến với các trạm phát sóng. Do đó, bạn nên tối ưu hoá mức sử dụng điện năng của ứng dụng di động. Ngoài ra, bạn nên xem xét nhu cầu sử dụng điện năng của đối tượng mục tiêu để có thể cân bằng một cách 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.

Điều gì tiêu tốn nhiều điện nă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 hai danh mục:

  • Hiển thị màn hình
  • Thông tin cập nhật về vị trí

Hiển thị 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 năng cao nhất trong các ứng dụng điều hướng trên thiết bị di động. Mỗi lần thiết bị vẽ bản đồ và các phần tử trê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 bật màn hình đó trong thời gian dài, việc này cũng 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 tài xế hoặc người đi xe dựa vào bản đồ hiển thị để đi theo chỉ dẫ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 đồ sau đó 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, hai hoạt động điều hướng khác cũng tiêu tốn pin của thiết bị:

  • Sử dụng trạm phát sóng vô tuyến và GPS
  • Cập nhật và chia sẻ 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 chiếc xe trong đội xe.

Cả hoạt động giao tiếp qua GPS và radio di động đều dựa vào các thao tác khởi động tiêu tốn nhiều điện năng: GPS phải tìm vệ tinh và radio di động phải kết nối với các tháp 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ù radio di động vẫn hoạt động trong 20-30 giây để 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, nên bạn không thể dễ dàng định cấu hình trong ứng dụng.

Đối với thông báo cập nhật vị trí, mức sử dụng điện năng sẽ thay đổi dựa trên 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ẽ sử dụng 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 báo cập nhật vị trí với dịch vụ quản lý đội xe trung tâm, do đó 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 trong việc tối ưu hoá mức sử dụng pin trong các ứng dụng chỉ đường là các ứng dụng này phụ thuộc rất nhiều vào tài nguyên tiêu tốn pin, điều này hạn chế các lựa chọn của bạn trong việc 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ừ mứ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 được gọi là tốc độ khung hình, thường được đo bằng số khung hình/giây (FPS). Vì quá trình kết xuất màn hình sử dụng đáng kể khả năng xử lý của CPU và GPU, nên bạn có thể giảm tốc độ khung hình để tiết kiệm điện năng.

Khi bạn giảm tốc độ khung hình, quá trình kết xuất bản đồ và các cử chỉ tương tác (chẳng hạn như di chuyển, thu phóng hoặc xoay) có thể không mượt mà. Để cân bằng giữa hiệu suất sử dụng điện năng và trải nghiệm người dùng thích ứng, bạn có thể duy trì tốc độ khung hình cơ sở thấp và tăng tốc độ khung hình một cách linh động trong các hoạt động tương tác của người dùng.

Hãy xem phần Tốc độ khung hình trong tài liệu dành cho nhà phát triển của Trung tâm phát triển nội dung nghe nhìn Android để tìm hiểu thêm về cách sửa đổi tốc độ khung hình.

Tự động điều chỉnh tốc độ khung hình

Kể từ phiên bản 7.8.0, SDK Điều hướng sẽ tự động điều chỉnh tốc độ khung hình của bản đồ trong quá trình điều hướng để cải thiện hiệu suất và giảm mức tiêu thụ pin. Khi thiết bị chuyển sang chế độ tiết kiệm pin, tốc độ khung hình của bản đồ sẽ giảm xuống còn 10 khung hình/giây và đặt lại thành 60 khung hình/giây khi quá trình đi theo chỉ dẫn kết thúc hoặc chế độ tiết kiệm pin bị tắt.

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 một lựa chọn để hướng dẫn đi theo chỉ dẫn 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 tài xế thường xuyên làm việc trong cùng một khu vực lân cận, thì họ 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 không có bản đồ bằng cách đặt điểm đến và bắt đầu hướng dẫn trong SDK Điều hướng nhưng không hiển thị bản đồ.

Để ẩn giao diện người dùng điều hướng, đừng thêm NavigationView hoặc SupportNavigationFragment. Nếu bạn đã thêm, hãy xoá mã thêm các thành phần này. Đoạn mã sau đây được sửa đổi từ ứng dụng minh hoạ SDK Điều hướng cho Android và cho thấy cách sử dụng chú thích để xoá mã thêm giao diện người dùng điều hướng:

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

SDK điều hướng sẽ tiếp tục cập nhật vị trí bám đường, thời gian đến dự kiến và quãng đường 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ý nhận tất cả sự kiện do SDK đưa ra khi tài xế 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à 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. Ảnh chụp màn hình sau đây minh hoạ phép so sánh song song về việc bật/tắt chế độ xem bản đồ trong khi chỉ đường.

Ứng dụng minh hoạ đang chạy và hiển thị chế độ xem bản đồ.
Hình 1.Ứng dụng minh hoạ iOS của SDK Điều hướng cho thấy bản minh hoạ Data Back
Ứng dụng minh hoạ đang chạy mà không có chế độ xem bản đồ.
Hình 2.Ứng dụng minh hoạ đang chạy mà không có chế độ xem bản đồ. Lưu ý rằng thời gian và khoảng cách còn lại, cũng như vị trí được điều chỉnh theo đường vẫn đang 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 giao diện tối nhằm giảm lượng năng lượng cần thiết để kết xuất bản đồ trên màn hình.

Navigation SDK kết xuất bản đồ bằng SDK Maps cho Android, trong đó có các lựa chọn để tạo kiểu cho mọi chế độ xem bản đồ không phải là chế độ xem điều hướng trong ứng dụng của bạn. Chế độ xem điều hướng cũng hỗ trợ buộc bật 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 cho phép tiết kiệm điện năng tiềm năng trong một số trường hợp. Một nghiên cứu gần đây cho thấy lượng điện năng 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 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 thành 30-50% 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 ứ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.

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

Để tạo kiểu tối cho bản đồ, hãy sử dụng đối tượng MapStyleOptions có kiểu JSON thể hiện lựa chọn của bạn về kiểu bản đồ tối. Bạn có thể tạo kiểu JSON cũ bằng trình chỉnh sửa kiểu cũ tại https://mapstyle.withgoogle.com/.

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

Khi xem xét mức sử dụng năng lượng từ các 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.

Đây không phải là điều bạn có thể trực tiếp kiểm soát trong SDK Điều hướng , nhưng nếu ứng dụng Android của bạn yêu cầu thông tin vị trí một cách độc lập, thì bạn nên xem xét lời khuyên trong bài viết Tối ưu hoá thông tin vị trí cho pin trong tài liệu dành cho nhà phát triển Android. Lời khuyên tương tự cũng áp dụng cho việc sử dụng các nguồn của vị trí không phải GPS (Mạng di động và Wi-Fi).

Gửi thông tin cho người dùng của bạn

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 người dùng giảm mức tiêu thụ điện năng trên ứng dụng, hãy khuyên họ 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ữ mát thiết bị
  • Kết nối với Wi-Fi trên xe (nếu có)
Xem bài viết khai thác tối đa thời lượng pin trên thiết bị Android để biết lời khuyên dành cho người dùng cuối về cách kéo dài thời lượng pin trên Android. Xin lưu ý rằng lời khuyên này bao gồm các hành động có thể làm giảm hiệu quả của ứng dụng chỉ đường, như đã thảo luận trong phần Tối ưu hoá mức sử dụng pin của ứng dụng trong hướng dẫn này.

Đ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 công cụ phân tích ứng dụng và IDE như Trình phân tích năng lượng trong Android Studio và ngăn Mức sử dụng pin trong XCode Organizer đo lường mức tiêu thụ điện năng, nhưng có thể khó loại bỏ ảnh hưởng của các quy trình trong nền hoặc đặt mộ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 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. Ngoài ra, bạn cũng có thể sử dụng các sản phẩm và dịch vụ thương mại để 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ị.