Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Mode penangguhan

Status daya SoC

Status daya sistem pada sebuah chip (SoC) adalah: aktif, idle, dan suspend. "On" adalah saat SoC sedang berjalan. "Idle" adalah mode daya sedang di mana SoC diaktifkan tetapi tidak melakukan tugas apa pun. "Suspend" adalah mode daya rendah di mana SoC tidak diberi daya. Konsumsi daya perangkat dalam mode ini biasanya 100 kali lebih sedikit daripada dalam mode "On".

Sensor non-bangun

Sensor non-bangun adalah sensor yang tidak mencegah SoC masuk ke mode tunda dan tidak membangunkan SoC untuk melaporkan data. Secara khusus, pengemudi tidak diperbolehkan menahan penguncian layar. Merupakan tanggung jawab aplikasi untuk menyimpan penguncian layar saat aktif sebagian jika ingin menerima peristiwa dari sensor non-bangun saat layar mati. Saat SoC dalam mode tunda, sensor harus terus berfungsi dan menghasilkan peristiwa, yang dimasukkan ke dalam perangkat keras FIFO. (Lihat Batching untuk lebih jelasnya.) Peristiwa di FIFO dikirim ke aplikasi saat SoC bangun. Jika FIFO terlalu kecil untuk menyimpan semua event, event yang lebih lama akan hilang; data terlama dihilangkan untuk menampung data terbaru. Dalam kasus ekstrem di mana FIFO tidak ada, semua peristiwa yang dibuat saat SoC dalam mode tunda akan hilang. Satu pengecualian adalah peristiwa terbaru dari setiap sensor saat perubahan: peristiwa terakhirharus disimpan di luar FIFO sehingga tidak dapat hilang.

Segera setelah SoC keluar dari mode tunda, semua peristiwa dari FIFO akan dilaporkan dan operasi dilanjutkan seperti biasa.

Aplikasi yang menggunakan sensor non-bangun harus menahan penguncian layar untuk memastikan sistem tidak mengalami penangguhan, membatalkan pendaftaran dari sensor saat tidak diperlukan, atau berharap kehilangan peristiwa saat SoC dalam mode tunda.

Sensor bangun

Berbeda dengan sensor non-bangun, sensor bangun memastikan bahwa datanya dikirim secara independen dari status SoC. Saat SoC aktif, sensor pengaktifan berperilaku seperti sensor non-pengaktifan. Saat SoC dalam mode tidur, sensor pengaktifan harus mengaktifkan SoC untuk mengirimkan peristiwa. Mereka masih harus membiarkan SoC masuk ke mode tunda, tetapi juga harus mengaktifkannya saat ada peristiwa yang perlu dilaporkan. Artinya, sensor harus membangunkan SoC dan mengirimkan peristiwa sebelum latensi pelaporan maksimum berlalu atau perangkat keras FIFO penuh. Lihat Batching untuk lebih jelasnya.

Untuk memastikan aplikasi memiliki waktu untuk menerima peristiwa sebelum SoC kembali tidur, pengemudi harus menahan "kunci bangun batas waktu" selama 200 milidetik setiap kali suatu peristiwa dilaporkan. Artinya, SoC tidak boleh diizinkan untuk kembali tidur dalam 200 milidetik setelah interupsi bangun. Persyaratan ini akan hilang di rilis Android mendatang, dan kami memerlukan kunci bangun batas waktu ini hingga saat itu.

Bagaimana cara menentukan sensor bangun dan non-bangun?

Hingga KitKat, apakah sebuah sensor adalah sensor bangun atau non-bangun ditentukan oleh jenis sensor: sebagian besar adalah sensor non-bangun, dengan pengecualian sensor jarak dan detektor gerakan yang signifikan .

Dimulai dari L, apakah sensor yang diberikan adalah sensor bangun atau tidak ditentukan oleh sebuah tanda dalam definisi sensor. Sebagian besar sensor dapat ditentukan oleh pasangan varian bangun dan non-bangun dari sensor yang sama, dalam hal ini keduanya harus berperilaku sebagai dua sensor independen, tidak berinteraksi satu sama lain. Lihat Interaksi untuk lebih jelasnya.

Kecuali ditentukan lain dalam definisi jenis sensor, disarankan untuk menerapkan satu sensor pengaktifan dan satu sensor non-pengaktifan untuk setiap jenis sensor yang tercantum dalam Jenis sensor . Di setiap definisi jenis sensor, lihat sensor apa (bangun atau non-bangun) yang akan dikembalikan oleh SensorManager.getDefaultSensor(sensorType) . Ini adalah sensor yang akan digunakan sebagian besar aplikasi.