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 bạn có thể tối ưu hoá mức tiêu thụ pin 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, bài viết này mô tả một số ưu điểm cần cân nhắc khi sử 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:

  • Các nguồn tiêu thụ năng lượng cao, đượ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ụ năng lượng, 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 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ó thể chạy hướng dẫn chỉ đường trong một khoảng thời gian dài. Ví dụ: tài xế và công ty chuyển phát nhanh giao hàng có thể làm việc trong nhiều giờ, hoàn thành các bài tập ở lãnh thổ 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. Việc này dẫn đến một số vấn đề thường gặp:

  • Tiêu hao pin và khả năng sử dụng bộ sạc. Việc sử dụng điều hướng nhiều 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ị của họ trong xe, nhưng người lái xe 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ủa họ 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 hiện tượng điều tiết nhiệt và 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 pin như màn hình, GPS và giao tiếp vô tuyến với cột 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 năng lượng của đối tượng mục tiêu để có thể cân bằng thích hợp giữa hiệu suất và tối ưu hoá mức tiêu thụ điện năng.

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 liên quan đến mức tiêu thụ điện năng cao thành hai 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 lần 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ẽ phụ thuộc vào quá trình xử lý GPU và CPU. Tương tự, khi người dùng bật màn hình đó trong một thời gian dài, việc này cũng tốn nhiều pin hơn.

Ở mức độ nào đó, những người lái xe hoặc người lái xe cần đến một bản đồ nhìn thấy được để di chuyển sẽ tiêu thụ nhiều điện năng, đặc biệt là khi 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 đạt 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 báo cập nhật 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 tốn năng lượng của thiết bị:

  • Tháp phát sóng vô tuyến và sử dụng 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 một nhóm thiết bị.

Hoạt động giao tiếp vô tuyến qua GPS và mạng di động đều dựa vào các hoạt động khởi động tốn điện năng: GPS phải tìm vệ tinh, còn đài phát sóng di động phải thương lượng 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 trình phát này sẽ 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 khoảng 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ề vị trí, mức sử dụng pin sẽ thay đổi tuỳ theo các yếu tố ngoài dự đoán. Ví dụ: khoảng cách giữa thiết bị và trạm phát sóng di động 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 các trạm chuyển đổi. 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ị trí với dịch vụ quản lý nhóm thiết bị 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 đặt ra 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 các tài nguyên tiêu hao pin. Điều này giới hạn các lựa chọn để giảm thiểu tác động mà không đưa ra lựa chọ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ể thực hiện khi tối ưu hoá ứng dụng, theo thứ tự từ hiệu quả cao 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ị ở 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.

Đánh đổi khi giảm tốc độ khung hình là kết xuất màn hình có thể 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ị độ chi tiết cao, khi người dùng đang di chuyển ở tốc độ cao hoặc khi thay đổi tốc độ hoặc hướng đi một lượng lớn.

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ù 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 họ bật màn hình, nhưng bạn có thể cung cấp tuỳ chọn cho 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 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, thì họ có thể không cần hướng dẫn dựa trên bản đồ như thường lệ. Bạn có thể bật tính năng chỉ đường không có bản đồ bằng cách đặt một đích đếnhướng dẫn bắt đầu 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 đã làm việc này, hãy xoá 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 việc 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 các vị trí chụp nhanh trên đường, giờ đến dự kiến và quãng đường còn lại, đồng thời ứng dụng của bạn vẫn có thể đăng ký tất cả sự kiện do SDK đưa ra khi người lái xe tiếp tục. Đây không phải là cách phù hợp cho mọi trường hợp sử dụng và tất nhiên không phải là lời khuyên phù hợp 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 về việc bật/tắt khung hiển thị bản đồ trong khi chỉ đường.

Ứng dụng minh hoạ đang chạy với chế độ xem bản đồ đang hiển thị.
Hình 1. SDK điều hướng Ứ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 đồ. Xin lưu ý rằng thời gian và quãng đường còn lại, cũng như vị trí đã chụp/quay 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 để hiển thị bản đồ trên màn hình.

SDK Điều hướng kết xuất bản đồ bằng SDK Google Maps dành cho Android, có chứa các tuỳ chọn để tạo kiểu cho mọi khung hiển thị bản đồ không phải chỉ đường trong ứng dụng. Khung hiển thị chỉ đườ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 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 mức 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 của màn hình lúc khởi động. Ví dụ: chế độ tối giúp 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% mức 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 của họ.

Để 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 bài viết 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 có kiểu bản đồ tối.
Hình 3. SDK điều hướng được định cấu hình bằng 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 kiểu bản đồ tối của bạn. 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 của 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à thứ bạn có thể trực tiếp điều khiển 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á 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 vị trí không phải GPS (Di động và Wi-Fi).

Hướng dẫn 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ụ pin. Để giúp chúng giảm mức tiêu thụ điện năng trên ứng dụng, hãy khuyên người dùng của bạn làm như sau:

  • Khoá điện thoại
  • Đặt ứng dụng chỉ đường trong 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ị 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 thao tác có thể làm giảm hiệu quả của ứng dụng chỉ đường như đã thảo luận ở 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 mức tiêu thụ điện năng, nhưng thường rất khó hoặc tốn kém. Các ứng dụng và công cụ phân tích IDE như Power Profiler in Android Studio (Trình phân tích năng lượng trong Android Studio) và Battery Usage (Mức sử dụng pin trong Trình tổ chức XCode) đ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ở về hiệu suất để đo lường. Trong một số trường hợp, các hạn chế đối với thiết bị có thể ngăn không cho 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 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 làm 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ị.