Sabit değerleri ve ilkelleri uygulama

Dokunsal sabitler ve temel öğeler, vibratör donanım soyutlama katmanı tarafından tanımlanır ve Android çerçevesi tarafından herkese açık API'lerle eşlenir. Cihazınızın dokunsal geri bildirim uygulamak için minimum gereksinimleri karşılayıp karşılamadığını belirlemek üzere aşağıdaki kontrolleri yapın:

Dokunma teknolojisi uygulama sürecinin akış şeması

Şekil 2. Efektleri uygulama

Temel öğeleri uygulama adımlarının akış şeması

3.Şekil Temel öğeleri uygulama

Sabit değerleri uygulama

VibrationEffect'teki dokunsal sabitler, geliştiriciler tarafından VibrationEffect.createPredefined() aracılığıyla kullanılabilir. Aşağıdaki dokunsal sabitlerin uygulanma durumunu kontrol edin.

Dokunma teknolojisi sabitleri Konumlar ve özetler
EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK, EFFECT_DOUBLE_CLICK VibrationEffect class
VibrationEffect içindeki dokunsal sabitler, giriş etkinlikleriyle ilgili herhangi bir kavram içermez ve kullanıcı arayüzü öğeleri yoktur. Sabitler, EFFECT_CLICK ve EFFECT_HEAVY_CLICK gibi enerji seviyeleri kavramını içerir. Bunlar createPredefined() tarafından çağrılır.

Aşağıda açıklanan alternatif titreşimler, VibrationEffect sabitlerini uygulamayan cihazlarda gerçekleştirilir. Bu yapılandırmaların, söz konusu cihazlarda en iyi performansı sağlayacak şekilde güncellenmesi önerilir.

  • EFFECT_CLICK

    VibrationEffect.createWaveform ile oluşturulan titreşim ve frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern'de yapılandırılan zamanlamalar.

  • EFFECT_HEAVY_CLICK

    VibrationEffect.createWaveform ile oluşturulan ve frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern'de yapılandırılan zamanlamalara sahip dalga biçimli titreşim.

    • EFFECT_DOUBLE_CLICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimli titreşim ve zamanlamalar (0, 30, 100, 30).

  • EFFECT_TICK

    VibrationEffect.createWaveform ile oluşturulan titreşim ve frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern'de yapılandırılan zamanlamalar.

Dokunsal geri bildirimi test etme adımlarının akış şeması

Şekil 4. Geri bildirim sabitlerini uygulama

HapticFeedbackConstants içindeki dokunsal sabitler, geliştiriciler tarafından View.performHapticFeedback() aracılığıyla kullanılabilir. Aşağıdaki herkese açık geri bildirim sabitlerinin durumunu kontrol edin.

Dokunma teknolojisi sabitleri Konumlar ve özetler
CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT, GESTURE_START, GESTURE_END HapticFeedbackConstants class
Haptic constants in HapticFeedbackConstants assist input events with certain UI elements, such as KEYBOARD_PRESS and KEYBOARD_RELEASE, which are called by performHapticFeedback().

Temel öğeleri uygulama

VibrationEffect.Composition içindeki dokunsal öğeler, geliştiricilerin addPrimitive(int primitiveId, float scale, int delay) aracılığıyla kullanabileceği ölçeklenebilir yoğunluğa sahiptir. Temel öğeler iki kategoriye ayrılabilir:

  • Kısa temel öğeler: Genellikle 20 ms'den kısa süren temel öğelerdir. Bunlar CLICK, TICK ve LOW_TICK'dir.

  • Chirp temel öğeleri: Genliği ve sıklığı değişen, genellikle kısa temel öğelerden daha uzun süren temel öğeler. Bunlar SLOW_RISE, QUICK_RISE, QUCK_FALL, THUD ve SPIN'dir.

Shorts temel öğeleri

Kısa titreşimler, titreşim motorunun çıkış ivmesi profiliyle tanımlanabilir. Kullanılan mutlak sıklık, aktüatörün rezonans sıklığına bağlı olarak her bir öğe için değişir. Donanım kurulumu ve çıkışı ölçmeye yönelik araçlar hakkında daha fazla bilgi için Test ekipmanını kurma başlıklı makaleyi inceleyin.

Kısa titreşimler için değerli bir kalite metriği, Şekil 5'te gösterilen zil çalma oranıdır (PRR). PRR, genliğin zirve genliğin% 10'una düştüğü süre penceresindeki sinyalle tanımlanan ana darbe ile genliğin zirve genliğin% 10'undan zirve genliğin% 1'inden daha azına düştüğü sinyalle tanımlanan çınlama darbesi arasındaki oran olarak tanımlanır. PRR formülü şöyledir:

$$ \text{Pulse to ring ratio (PRR)} = 20log_{10}\frac{\text{RMS (main pulse)}}{\text{RMS (ring)}} $$

PRR hakkında daha fazla bilgi için Dalga biçimini analiz etme başlıklı makaleyi, sonuçları analiz etme ve karşılaştırma hakkında daha fazla bilgi için ise Performans haritasını kullanarak sonuçları karşılaştırma başlıklı makaleyi inceleyin.

Pulse to Ring Ratio

5.şekil Çalma oranı tanımı

Yumuşak dokular oluşturmak için kısa temel öğeleri kullanıcı girişi geri bildirimi olarak veya daha uzun kompozisyonlarda çalınan öğeler olarak uygulayın. Bu nedenle, genellikle sık sık tetiklenirler ve hızlı bir şekilde oynatılırlar. Tek bir kısa ilkelin algılanan yoğunluğu, daha büyük efekt yoğunluğunu artırabilir. Bu nedenle, tek bir tik veya düşük tik ilkelini daha büyük bir kompozisyonla (örneğin, 100 ardışık tik) kalibre edin.

Tıklama temel öğesi

Tıklama ilkel birimi, kısa sürede maksimum çıkışa ulaşmak için genellikle bir cihazın rezonans frekansına yakın çalışan güçlü ve net bir efekt oluşturur. Diğer ilkel öğelerden daha güçlü ve derin olup maksimum yoğunlukta çalışır.

Kısa bir motor yükselme ve düşme süresi elde etmek için varsa başlangıçta motor aşırı hızını, sonunda ise aktif frenlemeyi kullanın. Bazı motorlarda, sinüs dalgası yerine kare dalga kullanmak daha hızlı ivme elde etmenizi sağlayabilir. Şekil 6'da tıklama bileşeni için örnek bir çıkış hızlandırma profili gösterilmektedir:

Tıklama bileşeni çıkışı hızlandırma profili

6.şekil Tıklama öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 12 ms

Sınır: < 30 ms

En yüksek çıkış ivmesi

Hedef: 2G

Sınır: > 1 GB

Sıklık Yaklaşık olarak rezonans frekansında

Tick primitive (light tick)

Tık sesi, genellikle daha yüksek bir frekans aralığında çalışan keskin ve kısa bir efekttir. Bu temel öğe, kısa kuyruklu ve daha yüksek sıklıkta orta yoğunluklu bir tıklama olarak da tanımlanabilir. Aynı kılavuz, motor aşırı yüklemesi veya başlangıç için kare dalga kullanarak kısa bir yükselme süresi elde etme ve ofsette aktif frenleme için de geçerlidir. Şekil 7'de, tik ilkel öğesi için örnek bir çıkış hızlanma profili gösterilmektedir:

Tick primitive çıkış hızlandırma profili

Şekil 7. İşaret ilkel öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 5 ms

Sınır: < 20 ms

En yüksek çıkış ivmesi

Hedef: CLICK'nın yarısı, 1 GB

Sınır: 0,5 G ile 1 G arasında

Sıklık

Hedef: 2 kat rezonans frekansı

Sınır: < 500 Hz

Düşük tik temel öğesi

Düşük tik ilkel öğesi, efektin daha dolgun olmasını sağlamak için daha düşük bir frekans aralığında çalışan, hafif tikin daha yumuşak ve zayıf bir versiyonudur. Bu öğe, dinamik geri bildirim için tekrar tekrar kullanılmak üzere tasarlanmış, daha düşük sıklıkta orta yoğunluklu bir tıklama olarak da tanımlanabilir. Aynı kılavuz, motor aşırı yüklemesi veya başlangıç için kare dalga kullanarak kısa yükselme süresi elde etme konusunda da geçerlidir. Şekil 8'de, düşük tik ilkelinin örnek çıkış hızlanma profili gösterilmektedir:

Düşük tikli temel çıkış hızlandırma profili

Şekil 8. Düşük tikli temel öğe için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 12 ms

Sınır: < 30 ms

En yüksek çıkış ivmesi

Hedef: 1/4 TICK, 0,25 G

Sınır: 0,2 G ile 0,5 G arasında

Sıklık

Hedef: 2/3 rezonans frekansı

Sınır: < 100 Hz

Chirp temel öğeleri

Chirp temel öğeleri, voltaj seviyesi ve titreşim frekansı için giriş sinyalleriyle tanımlanabilir. Motorun farklı frekans aralıklarında üretebileceği hızlanma, aktüatörün frekans tepki eğrisine bağlı olarak değişir. Frekans aralıkları ve voltaj seviyeleri, cihaz bazında ayarlanmalıdır.

Yavaş yükselme temel öğesi

Yavaş yükselme, yumuşak başlangıçlı ve genliği ile frekansı yavaş yavaş artan, titreşim yoğunluğu sürekli yükselen bir taramadır. Rezonans dışı çalışan daha düşük bir frekans aralığı kullanılarak hem genliğin hem de frekansın tutarlı bir şekilde taranmasıyla uygulanabilir. Şekil 9'da, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Yavaş yükselen öğe için giriş parametreleri ve çıkış hızlanma profili

Şekil 9. Giriş parametreleri ve yavaş yükselme öğesi için çıkış hızlanma profili örneği

Motorun frekans yanıtı sınırlıysa (rezonans frekansının yeterince uzağında değilse) alternatif bir uygulama, rezonans frekansının 1/2 katından 1 katına kadar olan bir sinüs süpürmesidir. Motor rezonansı, sinyal tepe noktasına ulaşılmasına katkıda bulunur.

Parametre Yönerge
Süre

Hedef: 500 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 0,5 G

Sınır: 0,5 G ile 1 G arasında

Sıklık

Hedef: Rezonans frekansının 1/2 ila 2/3'ü

Alternatif: Rezonans frekansının 1/2'si

Hızlı yükselme temel öğesi

Hızlı yükselme, yumuşak başlangıçlı ve titreşim yoğunluğunun tarama boyunca sürekli arttığı, daha hızlı bir genlik ve frekans taramasıdır. Çıkış hızlanması ve titreşim frekansı hedefleri, daha kısa sürede elde edilen yavaş yükselme hedefiyle aynı olmalıdır. 10. şekilde, titreşim giriş parametreleri ve yavaş yükselme temel öğesi için örnek bir çıkış ivme profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Hızlı yükselme öğesi için giriş parametreleri ve çıkış hızlanma profili

10.şekil Giriş parametreleri ve hızlı yükselme öğesi için çıkış hızlanma profili örneği

Parametre Yönerge
Süre

Hedef: 150 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: SLOW_RISE ile aynı

Sınır: SLOW_RISE ile aynı

Sıklık

Hedef: SLOW_RISE ile aynı

Alternatif: SLOW_RISE ile aynı

Hızlı düşme temel öğesi

Hızlı düşüş, yumuşak bir başlangıçla hızlı bir genlik ve frekans düşüşüdür. Motor, maksimum çıkış hızlanmasına ulaşmak için hızlanırken başlangıç noktası olarak daha yüksek bir frekans kullanabilirsiniz. Frekans, tarama boyunca tutarlı bir şekilde azalmalıdır. Yükselme süresi boyunca bile bu durum geçerlidir. Şekil 11'de, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Hızlı düşme öğesi için giriş parametreleri ve çıkış hızlanma profili

11.Şekil Giriş parametreleri ve hızlı düşme öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 100 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 1 GB

Sınır: 0,5 GB ile 2 GB arasında

Sıklık

Hedef: Rezonans frekansının 1 ila 2 katı

Thud primitive

Gümleme, boş bir tahtaya vurmanın fiziksel hissini simüle eden, düşük ve vurmalı bir efektir. Bu temel öğe, efektin daha belirgin olması için düşük tick temel öğesine benzer şekilde düşük frekans aralığında çalışır. Güm sesini, daha düşük bir frekans aralığında (tercihen 100 Hz'den az) genlik ve frekans düşüşü olarak uygulayabilirsiniz. 12. şekilde, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Gürültü bileşeni için giriş parametreleri ve çıkış hızlandırma profili

Şekil 12. Giriş parametreleri ve thud öğesi için çıkış hızlandırma profili örneği

Motorun frekans yanıtı sınırlıysa alternatif bir uygulama olarak rezonans frekansında tam yoğunluklu bir sürücü sinyaliyle başlayıp hâlâ algılanabilen en düşük frekansa düşmek mümkündür. Bu yaklaşım, titreşimin hissedilmesi için düşük frekansta sürücü sinyal yoğunluğunun artırılmasını gerektirebilir.

Parametre Yönerge
Süre

Hedef: 300 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 0,25 G

Sınır: 0,2 G ile 0,5 G arasında

Sıklık

Hedef: Rezonans frekansının 1/2 ila 1/3'ü

Alternatif: Rezonans frekansının 1 katı ile 1/2 katı arasında

Dönüş temel öğesi

Dönüş, ortada hafif bir vurguyla hızlı yukarı ve aşağı dönüşün dönme momentumunu simüle eder. Dönme, genlik ve frekansın bağımsız olarak, ters yönlerde süpürülmesi ve ardından ters hareketle uygulanabilir. Daha düşük bir frekans aralığı (tercihen 100 Hz'den az) kullanmanız önemlidir. 13. şekilde, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Dönme ve dengesizlik hissi elde etmek için dönme öğesinin art arda iki kez veya kompozisyonlarda üç kez çağrılmasını öneririz.

Motorun frekans yanıtı sınırlıysa alternatif bir uygulama olarak rezonans frekansının 1/2 katından 1 katına hızlı bir sinüs taraması yapılıp geri dönülebilir. Motor rezonansı, sinyale otomatik olarak ortada bir vurgu verir.

Dönüş bileşeni için giriş parametreleri ve çıkış hızlanma profili

Şekil 13. Giriş parametreleri ve spin öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 150 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 0,5 G

Sınır: 0,25 G ile 0,75 G arasında

Sıklık

Hedef: 2/3 ila 1/3, ardından rezonans frekansının 1/2'sine geri dönün.

Alternatif: 2/3 ila 1 kat, ardından rezonans frekansının 1/2'sine geri dönme