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 về cách 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 tạo bằng SDK điều hướng. Đồng thời, tài liệu này cũng mô tả những điểm đánh đổi cần cân nhắc khi triển khai 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ụ đ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ụ pin theo mức độ quan trọng, bắt đầu từ tốc độ khung hình.
  • Chiến lược người dùng cuối để hướng dẫn người dùng ứng dụng cách quản lý mức sử dụng thiết bị của họ trong khi đi theo chỉ dẫn.

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, người dùng ứng dụng của bạn có thể chạy hướng dẫn điều hướng trong khoảng thời gian dài. Ví dụ: tài xế và người giao hàng có thể làm việc nhiều giờ, hoàn thành các bài tập ở một lãnh thổ xa lạ. Trong những trường hợp như vậy, ứng dụng chủ yếu dựa vào hướng dẫn từng chặng trong ứng dụng. Việc này dẫn đến một số vấn đề điển hình:

  • Tiêu hao pin và khả năng sử dụng bộ sạc. Việc sử dụng nhiều thao tác 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ị trong xe, nhưng người lái xe mô tô hai bánh thì không thể.
  • Điều tiết thiết bị 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 sự cố. 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à mất hiệu suất sau đó.

Các ứng dụng chỉ đường từng chặng phụ thuộc vào các tính năng tiêu tốn điện năng như màn hình, GPS và giao tiếp vô tuyến với các trạm phát sóng. Vì vậy, đây là phương pháp hay nhất để tối ưu hoá mức sử dụng năng lượ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ể cân bằng giữa hiệu suất và tối ưu hoá mức tiêu thụ điện năng.

Thiết bị 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ụ điện năng cao thành 2 danh mục:

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

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

Tính năng 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 chỉ đường trên thiết bị di động. Mỗi khi thiết bị vẽ bản đồ và các thành phần khác trên giao diện người dùng lên màn hình, thiết bị sẽ dựa vào quá trình xử lý 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 sẽ tốn nhiều pin hơn.

Ở một mức độ nào đó, bạn có thể sẽ thấy mức tiêu thụ điện năng cao từ những người lái xe hoặc người đi xe dựa vào bản đồ hiển thị để di chuyển, đặc biệt là khi họ 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 có tốc độ kết xuất hình ảnh cao hơn trên màn hình vì sau đó 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 phải dừng lại.

Thông báo cập nhật vị trí

Ngoài việc hiển thị màn hình, 2 hoạt động điều hướng khác cũng tiêu thụ pin của thiết bị:

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

Cả hai hoạt động giao tiếp bằng GPS và vô tuyến di động đều dựa vào các hoạt động khởi động tiêu tốn điện năng: GPS phải tìm vệ tinh còn vô tuyến di động phải đàm phán 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ù đài phát di động vẫn hoạt động trong 20-30 giây nhằm 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 thông tin cập nhật về vị trí, mức sử dụng năng lượng sẽ thay đổi tuỳ theo các yếu tố khó đoán. Ví dụ: khoảng cách giữa thiết bị và trạm cơ sở di động sẽ xác định mức sử dụng năng lượ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 việc 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 một thiết bị ở gần trạm cơ sở. Ngoài ra, một số ứng dụng có thể chia sẻ thông tin cập nhật vị trí với một dịch vụ quản lý nhóm thiết bị trung tâm, do đó, sẽ 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 của việ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 tài nguyên ngốn pin, điều này giới hạn 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ế mức 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ể thực hiện khi tối ưu hoá ứng dụng, theo thứ tự từ nhiều nhất đến ít tác động nhất.

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

Màn hình sẽ cập nhật nội dung đang hiển thị theo 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ì tính năng 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.

Sự đánh đổi khi giảm tốc độ khung hình là quá trình kết xuất màn hình có thể trông kém mượt mà hơn, đặc biệt là khi 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ị nhiều chi tiết, 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 quá nhiều.

Hãy xem phần Frame rate (Tốc độ khung hình) trong tài liệu dành cho nhà phát triển Android Media Dev Center để tìm hiểu thêm về cách sửa đổi tốc độ khung hình.

Mặc dù bạn 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 khoảng thời gian 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 mà không cần bản đồ. Điều này sẽ cho phép người dùng cuối chọn tuỳ chọn đó để tiết kiệm pin. Ví dụ: nếu người lái xe 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 điều hướng không có 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 đồ.

Để ẩn giao diện người dùng điều hướng, đừng thêm NavigationView hoặc SupportNavigationFragment hoặc nếu bạn đã thực hiện việc này, hãy xoá đoạn mã đã thêm chúng. Mã sau đây được sửa đổi từ ứng dụng minh hoạ Android của SDK Điều hướng và cho thấy cách sử dụng nhận xét để 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í chụp nhanh đường, giờ đến dự kiến và quãng đường còn lại trong 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 đưa ra khi người lái xe tiếp tục. Cách này không phù hợp cho mọi trường hợp sử dụng và tất nhiên, đây không phải là lời khuyên tốt 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ạ so sánh song song các nút bật/tắt chế độ xem bản đồ trong khi chỉ đường.

Ứng dụng minh hoạ chạy ở chế độ xem bản đồ.
Hình 1. SDK điều hướng Ứng dụng minh hoạ iOS cho thấy 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 đồ. Xin lưu ý rằng thời gian và quãng đường còn lại, cũng như vị trí bị chụp vẫn đang được 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 mức năng lượng cần thiết để kết xuất bản đồ trên màn hình.

SDK điều hướng kết xuất bản đồ bằng cách sử dụng Google Maps SDK dành cho Android, trong đó chứa các tuỳ chọn để tạo kiểu cho mọi chế độ xem bản đồ không điều hướng trong ứng dụng. Khung hiển thị điều hướng cũng hỗ trợ 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 cho phép tiết kiệm pin có thể trong một số trường hợp. Một nghiên cứu gần đây cho thấy rằng mức tiêu thụ điện năng mà chế độ tối tiết kiệm trên một số màn hình phụ thuộc vào độ sáng của màn hình khi bắt đầu. Ví dụ: chế độ tối tiết kiệm pin hơn trên màn hình được đặt độ sáng đầy đủ so với màn hình có độ sáng đã được điều chỉnh thành 30-50% so với mức tối đa. Điều này rất 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 SDK Điều hướng chạy trên iPhone 15 Pro với kiểu bản đồ tối.
Hình 3. SDK điều hướng đượ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 MapStyleOptionskiểu JSON đại diện cho 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 pin qua các thông báo 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 khi truyền dữ liệu.

Đây không phải là tính năng mà 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 cân nhắc lời khuyên trong bài viết Tối ưu hoá vị trí cho pin trong tài liệu dành cho nhà phát triển Android. Lời khuyên này cũng áp dụng cho việc sử dụng các nguồn vị trí không phải GPS (Điện thoại di động và Wi-Fi).

Cung cấp kiến thức 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 thực hiện những điều sau:

  • Khoá điện thoại
  • Đặt ứng dụng chỉ đường ở chế độ nền
  • Sử dụng tính năng đi theo chỉ dẫn mà không dùng bản đồ (nếu có thể)
  • Giảm độ sáng màn hình bằng cách dùng chế độ tối cho màn hình OLED và AMOLED hoặc bật độ sáng thích ứng
  • Để thiết bị luôn mát
  • Kết nối với Wi-Fi trong xe (nếu có)
Xem bài viết khai thác tối đa thời lượng pin của 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. Hãy nhớ rằng lời khuyên này bao gồm cả các hành động có thể làm giảm hiệu quả của ứng dụng chỉ đường như được thảo luận trong bài viết 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 mức tiêu thụ điện năng, nhưng thường rất khó hoặc tốn kém để có được những công cụ đó. Các ứng dụng và công cụ phân tích IDE như Trình phân tích năng lượng trong Android StudioNgăn Sử dụng pin trong XCode Manager có thể đ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 tiến 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 hạn chế thiết bị có thể ngăn việc có được quyền 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 điện dùng cho mục đích đặc biệt và sửa đổi cấu hình kết nối pin, ngoài ra còn có các sản phẩm và dịch vụ thương mại để 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ị.