Adakah yang bisa menjelaskan semua Opsi Pengembang ini?

15

Adakah yang bisa menjelaskan opsi pengembang ini?

  • Paksa rendering GPU
  • Nonaktifkan operasi klip non-persegi panjang
  • Force 4X MSAA
  • Nonaktifkan overlay HW

Apa efek yang mungkin terlihat pada perangkat saya dengan menonaktifkan / mengaktifkannya? [ Catatan: Saya telah menemukan opsi lain oleh Google-ing tetapi tidak ini. ]

Apakah pengaturan pengembang memengaruhi masa pakai baterai dengan menggunakan kecepatan animasi yang lebih rendah (semuanya menjadi 2x tepat) atau kecepatan animasi yang lebih tinggi (tepatnya 0,5x) dengan mengorbankan pengalaman pengguna?

MANI
sumber

Jawaban:

18

Harap diingat bahwa ini adalah opsi Pengembang , dan mungkin tidak digunakan, atau berdampak negatif pada kinerja perangkat Anda.

Paksa rendering GPU

GPU adalah Unit Pemrosesan Grafik. Ini sangat mirip dengan CPU, tetapi alih-alih angka-angka dan mengurus tugas-tugas untuk sistem operasi dan perangkat keras, GPU membuat informasi grafis dan meletakkannya di layar untuk Anda.

CPU dapat memproses instruksi grafis dengan baik, tetapi melakukan hal tersebut membutuhkan waktu untuk tidak melakukan perhitungan lain, dan dapat menyebabkan kelambatan saat instruksi grafis diproses.

Dalam Ice Cream Sandwich dan seterusnya, pengembang (atau pengguna daya) diberi opsi untuk memaksa aplikasi menggunakan rendering GPU, baik bit itu hidup atau mati dalam manifes aplikasi. Ini tidak selalu membuat aplikasi lebih cepat, dan dapat menyebabkan masalah.


Nonaktifkan operasi klip non-persegi panjang

Ini terlalu teknis bagi saya untuk menjelaskan dengan sangat rinci. Pada dasarnya "kanvas" digunakan untuk menggambar. Kode sumber untuk Android berisi ini:

/**
     * Turn on to **debug non-rectangular clip operations**.
     *
     * Possible values:
     * "hide", to disable this debug mode
     * "highlight", highlight drawing commands tested against a non-rectangular clip
     * "stencil", renders the clip region on screen when set
     *
     * @hide
     */
    public static final String DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY =
            "debug.hwui.show_non_rect_clip";

Anda dapat mematikannya untuk membuat area kanvas yang tidak biasa (bukan persegi panjang). Lihat di sini untuk detail lebih lanjut tentang ini

Per @ IanNi-Lewis menunjukkan dalam komentarnya:

Mungkin perlu untuk menunjukkan bahwa "daerah klip non-persegi panjang" sedikit menyesatkan. Itu harus "daerah klip yang bukan persegi panjang yang disejajarkan dengan layar." Jika Anda memiliki daerah klip persegi panjang yang dirotasi oleh beberapa non-kelipatan 90 derajat, maka turun jalur lambat yang sama dengan wilayah klip berbentuk donat atau apa pun. ("Jalur lambat" menggunakan buffer stensil, dan mungkin tidak perlu lambat seperti itu; ini adalah area yang bagus untuk optimasi di masa depan.)


Force 4X MSAA

Force 4x MSAA tidak memerlukan perangkat yang di-rooting. Opsi ini melakukan hal yang sama seperti filter Anti Aliasing di game PC - menghaluskan semua pixelisasi dan memberikan rendering yang lebih baik, yang berarti grafik yang terlihat lebih baik. Pengguna harus tahu bahwa fungsi ini hanya disarankan untuk perangkat yang memiliki GPU yang mampu mendukung MSAA asli.

Dari Wikipedia :

Dalam pemrosesan sinyal dan disiplin terkait, aliasing adalah efek yang menyebabkan sinyal berbeda menjadi tidak dapat dibedakan (atau alias satu sama lain) ketika disampel. Ini juga mengacu pada distorsi atau artefak yang dihasilkan ketika sinyal yang direkonstruksi dari sampel berbeda dari sinyal kontinu asli.


Nonaktifkan overlay HW

Tanpa overlay perangkat keras setiap aplikasi yang menampilkan hal-hal di layar akan berbagi memori video dan harus terus-menerus memeriksa tabrakan dan kliping untuk membuat gambar yang tepat, ini dapat menghabiskan banyak daya pemrosesan. Dengan overlay perangkat keras, masing-masing aplikasi mendapatkan porsi memori video masing-masing, menghilangkan kebutuhan untuk memeriksa tabrakan dan kliping.

Seperti @DanHulme katakan: Windows di Android selalu dikomposisikan daripada dirender ke dalam memori video bersama. Biasanya, SurfaceFlingermenggunakan GPU untuk komposisi, tetapi akan menggunakan perangkat keras bila memungkinkan, yang lebih cepat dan menggunakan baterai lebih sedikit. Menonaktifkan overlay berarti selalu menggunakan rendering GPU. Ini hanya berguna untuk debugging integrasi sistem atau decode video HW: bahkan pengembang aplikasi tidak perlu mengaktifkan opsi ini

RossC
sumber
2
4xMSAA mungkin sebenarnya tidak lebih lambat. Pada GPU tertentu seperti Mali-400, perbedaan kecepatan antara 4xMSAA dan tidak ada anti-aliasing diabaikan karena cara fragmen shader mengeksekusi. Perlu juga disebutkan bahwa ini hanya memengaruhi aplikasi GLES, dan tidak akan membuat teks dan ikon di aplikasi normal menjadi lebih tajam.
Dan Hulme
3
Saya rasa deskripsi Anda tentang hamparan HW tidak benar. Windows di Android selalu dikomposisikan daripada dirender ke dalam memori video bersama. Biasanya, SurfaceFlingermenggunakan GPU untuk komposisi, tetapi akan menggunakan perangkat keras bila memungkinkan, yang lebih cepat dan menggunakan baterai lebih sedikit. Menonaktifkan overlay berarti selalu menggunakan rendering GPU. Ini hanya berguna untuk debugging integrasi sistem atau decode video HW: bahkan pengembang aplikasi tidak perlu mengaktifkan opsi ini.
Dan Hulme
Saya jauh dari PC saya, saya akan mengedit sesegera mungkin, menjadi sedikit kacau. Atau silakan mengedit
RossC
Pemutakhiran yang baik untuk menggunakan pemrosesan GPU membuat aplikasi se tidak crash pada pertanyaan ini :-)
Luke Kanada
1
@Ross Saya tidak berpikir itu memiliki efek besar pada baterai hanya beberapa penghematan baterai seperti pada Windows di mana kita menonaktifkan grafis Transparan (tema Yaitu Aero disarankan untuk menonaktifkan untuk meningkatkan waktu baterai)
user285oo6