Tiết kiệm điện năng và pin

Hiệu quả sử dụng pin đặc biệt quan trọng trên Wear OS. Thiết kế cho Wear OS các nguyên tắc tập trung đáng kể vào mức sử dụng pin của thiết bị vì đồng hồ là một kiểu dáng nhỏ, dành cho các tương tác ngắn.

So với các thiết bị di động lớn hơn, thiết bị Wear OS có pin nhỏ hơn, vì vậy, mọi tình trạng tiêu hao pin đều sẽ dễ nhận thấy hơn. Hơn nữa, người dùng phải nỗ lực nhiều hơn để sạc thiết bị Wear OS so với thiết bị di động. Mặc dù người dùng có thể sạc thiết bị di động của mình vào các khoảng thời gian khác nhau trong ngày, họ cần hãy tháo thiết bị Wear OS ra khỏi cơ thể trước khi sạc thiết bị.

Để cải thiện hiệu quả sử dụng pin của ứng dụng, hãy làm theo các phương pháp hay nhất về thiết kế sau đây:

  • Thiết kế của ứng dụng phải sử dụng tốt kiểu dáng Wear OS. Nó không nên sao chép trực tiếp ứng dụng di động của bạn.
  • Sử dụng ứng dụng di động hiện tại của bạn để trợ giúp cho một số trường hợp sử dụng nhất định. Ví dụ: Internet và việc đồng bộ hoá trên đồng hồ thì rất tốn kém; cân nhắc xem thiết bị di động có thể thực hiện phần việc nặng nhọc còn thiết bị Wear OS nhận được các thay đổi về dữ liệu.
  • Thiết kế trường hợp sử dụng của bạn cho các tương tác ngắn hơn.
  • Cân nhắc xem bạn sử dụng sự kiện Wear OS nào và tần suất những sự kiện này xảy ra.
  • Bất cứ khi nào có thể, hãy trì hoãn công việc của ứng dụng cho đến khi đồng hồ đang sạc. Phương pháp này đặc biệt áp dụng cho các công việc cần nhiều dữ liệu, chẳng hạn như đồng bộ hoá dữ liệu và sắp xếp cơ sở dữ liệu.

    Nếu thiết bị đang sạc và có kết nối Wi-Fi, hãy lên lịch công việc thành tìm nạp trước dữ liệu, hình ảnh và nội dung cập nhật mà người dùng có thể muốn thấy trong .

Hướng dẫn về năng lượng này giúp bạn nắm được thời điểm và cách thức hệ thống chạy ứng dụng, đồng thời cách bạn có thể giới hạn thời gian chạy và tiêu hao pin của ứng dụng. Để tìm hiểu thêm về cách đạt được các hành động cụ thể—chẳng hạn như tải ứng dụng hoặc cuộn qua danh sách – truy cập hướng dẫn liên quan đến hiệu suất, chẳng hạn như Compose trên Wear OS hướng dẫn hiệu suất.

Theo dõi mức sử dụng pin theo thời gian

Để phân tích số liệu thống kê về pin của thiết bị Wear OS chạy ứng dụng của bạn, hãy nhập sau đây trong cửa sổ dòng lệnh trên máy phát triển của bạn:

adb shell dumpsys batterystats

Một thư viện trên GitHub có một trình phân tích cú pháp số liệu thống kê về pin, có thể hữu ích khi chạy cùng với lệnh này.

Các sự kiện ảnh hưởng đến thời lượng pin

Trước khi nghĩ về ứng dụng của mình cụ thể, bạn nên suy nghĩ tổng quát hơn về các sự kiện tiêu thụ nguồn điện trên thiết bị Wear OS.

Bảng sau đây trình bày tác động tương đối đến thời lượng pin trên nhiều các sự kiện thường gặp trong ứng dụng Wear OS. Mức tiêu hao năng lượng chính xác sẽ khác nhau tuỳ theo thiết bị.

Sự kiện Tác động đến thời lượng pin Cách giảm thiểu
Truy cập mạng, bao gồm cả LTE và Wi-Fi Rất cao Hoãn việc truy cập mạng không cần thiết cho đến khi thiết bị đang sạc.
Bật màn hình và bắt đầu chế độ tương tác Cao Không khuyến khích người dùng duy trì màn hình lâu hơn nếu cần. Hãy cung cấp trải nghiệm sử dụng luôn bật chế độ môi trường xung quanh (còn được gọi là chế độ môi trường xung quanh).
Truy cập cảm biến GPS Cao Nếu có thể, hãy đợi cho đến khi người dùng yêu cầu quyền truy cập GPS.
Duy trì mức sử dụng CPU ở mức cao Cao Tiêu thụ flow bằng Jetpack Compose.
Truy cập cảm biến tần số tim Trung bình Sử dụng thời gian thức của bộ xử lý khi nhận lệnh gọi lại từ API cảm biến, chẳng hạn như khi sử dụng Dịch vụ sức khoẻ đang bật Wear OS.
Truy cập thiết bị khác qua Bluetooth Trung bình Đảm bảo các phiên hoạt động ngắn gọn.
Duy trì khoá ở chế độ thức Trung bình Giảm việc tạo và sử dụng tính năng khoá ở chế độ thức theo cách thủ công WorkManager.

Giảm thiểu thời gian hiển thị màn hình

Trong ứng dụng Wear OS, hãy làm theo các nguyên tắc sử dụng màn hình sau đây:

  • Khoá màn hình: Tránh dùng bất cứ khi nào có thể. Để kiểm tra, hãy tắt chế độ Luôn bật display trong phần cài đặt hệ thống và quan sát xem màn hình có tắt trong khoảng thời gian chờ.
  • Ảnh động: Giảm thiểu ảnh động chi tiết, thay vào đó, tập trung vào nội dung ngắn gọn để có hình ảnh chuyên nghiệp hơn. Đặc biệt, hãy tránh sử dụng ảnh động và vòng lặp. Nếu cần có một vòng lặp, hãy thêm một điểm tạm dừng giữa các vòng lặp ít nhất bằng chính ảnh động.
  • Thời gian thức ở chế độ môi trường xung quanh: Chế độ hỗ trợ luôn bật nếu cần, chẳng hạn như cho các trường hợp sử dụng liên quan đến thể hình. Nếu ứng dụng của bạn yêu cầu chế độ luôn bật, hãy kiểm tra để chắc chắn rằng ứng dụng đó có hoạt động sau đây khi thiết bị ở chế độ môi trường xung quanh:

    • Giảm tỷ lệ phần trăm màn hình thiết bị được chiếu sáng.
    • Không hiện ảnh động.
    • Không cập nhật nội dung trên màn hình, ngoại trừ trong thời gian Lệnh gọi lại onAmbientUpdate().

Giảm thiểu mức sử dụng CPU

Trong ứng dụng Wear OS, hãy tuân thủ các nguyên tắc sử dụng CPU sau đây:

  • Sử dụng ngắn gọn.
  • Tạo lô cho mọi hoạt động liên quan để tối đa hoá thời gian xử lý của ứng dụng đang rảnh.

Giảm thiểu khoá ở chế độ thức

Trong hầu hết trường hợp, hãy tránh bất kỳ thao tác nào ngăn ứng dụng của bạn chuyển sang chế độ ngủ, chẳng hạn như dưới dạng khoá chế độ thức. Ví dụ: trong lĩnh vực sức khoẻ & ứng dụng thể dục, bài tập thể dục chạy trong thời gian dài không cần khoá chế độ thức. Sử dụng thời gian thức của bộ xử lý khi nhận lệnh gọi lại qua API cảm biến, chẳng hạn như khi sử dụng Dịch vụ sức khoẻ trên Wear OS.

Trong một số trường hợp bạn có thể bật tính năng khoá ở chế độ thức, chẳng hạn như khi ứng dụng thực hiện một trong những việc sau:

  • Phát nội dung nghe nhìn trong nền.
  • Sử dụng WorkManager hoặc JobScheduler. (Hệ thống có một khoá chế độ thức thay cho bạn khi chạy công việc trong nền.)

Battery Historian cho phép bạn có thể xem các lần xuất hiện riêng lẻ của các khoá chế độ thức, cũng như tóm tắt tổng số và thời gian của khoá ở chế độ thức đang bị giữ. Kiểm tra số lượng và thời lượng của các khoá chế độ thức mà ứng dụng của bạn giữ và so sánh thông tin này với các mẫu sử dụng tương tác của ứng dụng:

  • Kiểm tra các khoá ở chế độ thức không mong muốn.
  • Nếu thời lượng dài hơn dự kiến, hãy cân nhắc xem công việc có bị chặn đối với một số phần phụ thuộc, chẳng hạn như tính sẵn có của mạng.

Kiểm tra xem ứng dụng của bạn ngừng hoạt động như thế nào

Xem xét hoạt động của ứng dụng đang hoạt động khi các sự kiện chính trên thiết bị xảy ra, chẳng hạn như sau:

  • Màn hình sẽ tắt và thiết bị chuyển sang chế độ môi trường xung quanh.
  • Ứng dụng bị vuốt để bỏ qua.

Để phân tích hoạt động trong ứng dụng, hãy sử dụng các công cụ được trình bày trong các phần sau.

Trình phân tích năng lượng

Bạn có thể truy cập vào Energy Profiler (Trình phân tích năng lượng) trong trình đơn của Android Studio bằng cách chọn Xem > Cửa sổ công cụ > Trình phân tích tài nguyên:

  1. Kiểm tra dấu vết hệ thống khi màn hình tắt và thiết bị chuyển sang chế độ môi trường xung quanh.
  2. Tìm mọi công việc vẫn tiếp tục và biết mức sử dụng CPU của thiết bị.

Perfetto

Perfetto cho phép bạn ghi lại dấu vết rồi kiểm tra ứng dụng để xem có có luồng nào đang hoạt động không khi màn hình tắt, thiết bị chuyển sang chế độ môi trường xung quanh hoặc người dùng đóng hoạt động của ứng dụng.

Xác định sự kiện tùy chỉnh để đánh dấu các sự kiện quan trọng của ứng dụng, bao gồm các sự kiện theo miền cụ thể. Đối với ứng dụng đa phương tiện, chẳng hạn như tìm nạp danh sách phát, tải một mục nội dung nghe nhìn cụ thể xuống, bắt đầu phát và dừng video. Bằng cách xác định các sự kiện này, bạn có thể xem chúng trong Perfetto và so sánh cùng với mức sử dụng CPU và pin của ứng dụng.

Phân tích các công việc theo lịch biểu của ứng dụng

Các công việc đã lên lịch sử dụng WorkManager, cho phép bạn thực hiện các công việc trong nền trong . Mặc dù một số công việc trong nền phải định kỳ, nhưng đừng chạy các công việc thường xuyên hoặc trong thời gian dài, vì điều này có thể làm tiêu hao pin của thiết bị.

Sử dụng Battery Historian để kiểm tra quá trình thực thi của các Công việc đã lên lịch, cả hai tổng thể (Số liệu thống kê hệ thống > Số liệu thống kê về Jobscheduler) và theo ứng dụng (Số liệu thống kê của ứng dụng > Công việc đã lên lịch). Kiểm tra tổng số lượng và tổng thời lượng:

  • Nếu một công việc chạy rất thường xuyên, hãy cân nhắc giảm tần suất này.
  • Kiểm tra để đảm bảo rằng tổng thời gian thực thi đúng như bạn mong đợi và có đang không dài hơn đáng kể.

Ngoài ra, hãy kiểm tra biểu đồ Battery Historian, xem xét từng JobScheduler mục nhập. Khi bạn giữ con trỏ trên một mục nhập cụ thể, Battery Historian cho biết chủ sở hữu của công việc đang thực thi. Hãy cân nhắc thực hiện những bước sau:

  • Đối với ứng dụng của bạn, thời lượng thực thi phải hợp lý.
  • Cân nhắc xem liệu công việc có xảy ra trong khi ứng dụng của bạn đang chạy hay không hoặc liệu công việc biểu thị công việc định kỳ ở chế độ nền.

Cảm biến

Thiết bị Wear OS có nhiều cảm biến, chẳng hạn như GPS. Trong hầu hết các trường hợp, hãy sử dụng Dịch vụ sức khoẻ trên Wear OS thay vì tương tác trực tiếp với SensorManager. Trong nhiều trường hợp, Dịch vụ sức khoẻ sẽ phân lô dữ liệu một cách thông minh để cải thiện hiệu suất pin.

Để phân tích mức sử dụng cảm biến trong ứng dụng của bạn, hãy chạy lệnh sau trong cửa sổ dòng lệnh trên máy phát triển của bạn:

adb shell dumpsys sensorservice

Kết quả của lệnh này cho thấy như sau:

  • Hoạt động đăng ký cảm biến hiện tại và trước đây.
  • Cấu hình cảm biến, bao gồm cả việc tạo lô nếu được đặt.
  • Dữ liệu được lấy mẫu gần đây.

Kiểm thử khả năng huỷ đăng ký khỏi cảm biến

Để kiểm tra xem ứng dụng của bạn có ngừng tìm nạp dữ liệu cảm biến như dự kiến hay không, hãy kiểm thử trong các trường hợp sau:

  1. Vuốt để đóng ứng dụng.
  2. Dùng lòng bàn tay nhấn vào màn hình. Thao tác này sẽ tắt màn hình hoặc hãy đặt màn hình ở chế độ môi trường xung quanh.

Sử dụng lệnh ADB từ phần trước để kiểm tra xem cảm biến có hiển thị chính xác là chưa đăng ký.

Lớp dữ liệu (Data Layer)

Khi sử dụng API Lớp dữ liệu, mỗi quá trình truyền sử dụng một số nguồn. Trong cụ thể là nếu bạn sử dụng API này để gửi dữ liệu, ứng dụng của bạn phải đánh thức để nhận dữ liệu. Vì những lý do này, hãy thận trọng khi sử dụng API này.

Một số phương pháp hay khác để sử dụng API Lớp dữ liệu bao gồm sau:

  • Chờ cho đến khi ứng dụng đi vào hoạt động rồi mới thiết lập trình nghe bằng cách sử dụng WearableListenerService.
  • Truyền các thay đổi về trạng thái thay vì định cấu hình tính năng cập nhật nhanh. Các trạng thái này Những thay đổi này cho phép thiết bị Wear OS tiến hành các phép tính dữ liệu cục bộ, chẳng hạn như khi đã bắt đầu một phiên tập thể dục.

    Chỉ truyền các thay đổi về trạng thái cập nhật giao diện người dùng. Ví dụ: nếu màn hình hoạt động chỉ hiển thị "kilomet chạy" đến một chữ số thập phân, đừng gửi thay đổi về trạng thái đối với Wear OS mỗi khi người dùng di chuyển thêm một đồng hồ đo nữa tiến lên.

Để phân tích mức sử dụng API Lớp dữ liệu trong ứng dụng của bạn, hãy chạy lệnh sau trong cửa sổ dòng lệnh trên máy phát triển của bạn:

adb shell dumpsys activity service WearableService

Kết quả của lệnh này bao gồm:

  • RpcService: Cho phép bạn xem tần suất và đường dẫn nào đang được được gọi bằng MessageClient.
  • DataService: Cho phép bạn xem tần suất các mục dữ liệu được thiết lập bằng cách sử dụng DataClient.

Ứng dụng sức khoẻ và thể hình

Nếu bạn duy trì một ứng dụng sức khoẻ và thể dục, hãy dùng Dịch vụ sức khoẻ để tối ưu hoá việc ứng dụng của bạn sử dụng cảm biến.

  • Đối với ExerciseClient, hãy sử dụng Battery Historian để xác minh hành vi chính xác ở chế độ môi trường xung quanh. Kiểm tra để đảm bảo ứng dụng không thức dậy thường xuyên hơn mỗi phút một hoặc hai phút để nhận dữ liệu ExerciseUpdate.
  • Để theo dõi sức khoẻ tổng thể cả ngày, hãy sử dụng PassiveMonitoringClient, như được mô tả trong hướng dẫn về cách theo dõi dữ liệu sức khoẻ và thể hình trong màu nền.

Ô và chức năng

Nếu ứng dụng của bạn hỗ trợ một thẻ thông tin hoặc chức năng, hãy làm theo các phương pháp hay nhất sau đây thực tiễn:

  • Tắt chế độ làm mới tự động hoặc tăng tốc độ làm mới lên 2 giờ hoặc lâu hơn.
  • Sử dụng Giải pháp gửi thông báo qua đám mây của Firebase (FCM) hoặc được lên lịch phù hợp công việc để gửi cập nhật dữ liệu. Hãy chú ý để ngăn chặn tốc độ cập nhật nhanh, từ đó có thể khiến hệ thống lên lịch công việc lặp lại với tốc độ nhanh hơn người dùng hoặc nền tảng có thể truy cập vào dữ liệu cần thiết để thực hiện công việc đó.
  • Không lên lịch công việc cho thẻ thông tin hoặc chức năng của bạn khi người dùng không ở tương tác với nội dung đó.
  • Sử dụng phương pháp tiếp cận ưu tiên ngoại tuyến.
  • Chia sẻ một cơ sở dữ liệu duy nhất trên ứng dụng chính, thẻ thông tin và chức năng. Chiến dịch này cũng giúp dữ liệu nhất quán trên các nền tảng giao diện người dùng.