Dokunma teknolojisi uygulayın

Cihaz üreticileri genellikle her cihaz için oluşturulan özel öğelerin sahipleri olarak kabul edilir. Bu nedenle, mühendislik çalışmaları genellikle cihaz bazında odaklanır ve ekosistemdeki diğer cihazların tutarlılığı için çok az çaba harcanır.

Geliştiriciler ise tam tersine, her cihazın teknik özelliklerinden bağımsız olarak ekosistemdeki tüm Android telefonlarda çalışacak uygulamalar geliştirmeye çalışır. Yaklaşımdaki bu farklılık, bir parçalanma sorununa yol açabilir. Örneğin, belirli telefonların donanım özellikleri, uygulama geliştiricileri tarafından belirlenen beklentileri karşılamayabilir. Bu nedenle, dokunma API'leri bazı Android telefonlarda çalışırken bazılarında çalışmıyorsa sonuç tutarsız bir ekosistem olur. Bu nedenle donanım yapılandırması, üreticilerin Android dokunma teknolojisi API'lerini her cihaza uygulayabilmesinde kritik bir rol oynar.

Bu sayfada, Android dokunma API'lerinin en iyi şekilde kullanılması için donanım uyumluluğunu ayarlamayla ilgili adım adım bir yapılacaklar listesi sağlanmaktadır.

Aşağıdaki şekilde cihaz üreticileri ve geliştiriciler arasında ortak bir bilgi birikimi gösterilmektedir. Bu bilgi, uyumlu bir ekosistem oluşturmanın önemli bir adımıdır.

Uygulama geliştiriciler ve cihaz üreticileri için dokunma teknolojisinin kullanım alanlarını gösteren şema

Şekil 1. Cihaz üreticileri ile geliştiriciler arasında bilgi oluşturma

Dokunma teknolojisi uygulama kontrol listesi

  1. Sabit değerler uygulama

    • Dokunma teknolojisini uygulamak için kullanılan sabitlerin listesi.
  2. HAL ile API arasında sabitleri eşleme

    • Herkese açık API sabitleri (çerçevede yer tutucular olarak adlandırılır) ile yer tutucuları uygulayan HAL sabitleri arasındaki eşleme önerileri.
    • Bu süreç hakkında daha fazla bilgi edinmek için Önerilen eşlemeye rehberlik edecek tasarım ilkeleri başlıklı makaleyi inceleyin.
  3. Donanımı değerlendirme

    • Hedef dokunma efektleriyle ilgili talimatlar. Donanımınızı hızlı bir şekilde kontrol etmek için bu talimatları uygulayın.

Aşağıda bu adımların her birini daha ayrıntılı olarak ele alacağız.

1. adım: Sabitler uygulayın

Cihazınızın dokunma teknolojisini uygulamak için minimum gereksinimleri karşılayıp karşılamadığını belirlemek üzere bu kontrolleri yapın.

Dokunma geri bildirimi uygulama sürecinin akış şeması

Şekil 2. Efektleri uygulama

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

Şekil 3. Temel unsurları uygulama

Aşağıdaki dokunma sabitlerinin uygulama durumunu kontrol edin.

Dokunma teknolojisi sabitleri Konumlar ve özetler
EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK, EFFECT_DOUBLE_CLICK VibrationEffect sınıf
VibrationEffect içindeki dokunma sabitleri, giriş etkinlikleri kavramı içermez ve kullanıcı arayüzü öğeleri içermez. Sabit değerler bunun yerine enerji düzeyleri kavramını içerir. Örneğin, createPredefined() tarafından çağrılan EFFECT_CLICK ve EFFECT_HEAVY_CLICK gibi.
PRIMITIVE_TICK, PRIMITIVE_CLICK, PRIMITIVE_LOW_TICK>, PRIMITIVE_SLOW_RISE, PRIMITIVE_QUICK_RISE, PRIMITIVE_QUICK_FALL, PRIMITIVE_SPIN, PRIMITIVE_THUD VibrationEffect.Composition sınıf
VibrationEffect.Composition içindeki dokunma sabitlerinin ölçeklenebilir yoğunluğa sahip olmasına izin verilir. Bu sabitler addPrimitive(int primitiveId, float scale, int delay) 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ı, bu tür cihazlarda en iyi performansı sağlayacak şekilde güncellemeniz önerilir.

  1. EFFECT_CLICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimi titreşimi ve frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern'da yapılandırılmış zamanlamalar.

  2. EFFECT_HEAVY_CLICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimi titreşimi ve frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern'da yapılandırılmış zamanlamalar.

  3. EFFECT_DOUBLE_CLICK

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

  4. EFFECT_TICK

    VibrationEffect.createWaveform ile oluşturulan dalga formu titreşimi ve frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern itibarıyla yapılandırılan zamanlamalar.

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

Şekil 4. Geri bildirim sabitlerini uygulama

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 sınıfı
HapticFeedbackConstants'deki dokunma sabitleri, performHapticFeedback() tarafından çağrılan KEYBOARD_PRESS ve KEYBOARD_RELEASE gibi belirli kullanıcı arayüzü öğeleriyle giriş etkinliklerine yardımcı olur.

2. Adım: Sabitleri HAL ile API arasında eşleyin

2. adımda, herkese açık HAL sabitleri ile API sabitleri arasında önerilen eşlemeler sunulur. 1. adımda değerlendirilen donanım HAL sabitlerini uygulamıyorsa benzer çıkışlar oluşturmak için 1. adımda açıklanan yedek kalıpları güncellemek üzere 2. adım kullanılmalıdır. Eşleme işlemine iki farklı varsayılan model yardımcı olur.

  • Dijital model (basit)

    • Amplitüd, bu modelin temel değişkenidir. HAL'deki her öğe farklı bir dokunma genliğini temsil eder.
    • Bu model, temel dokunsal kullanıcı deneyimini uygulamak için gereken minimum şarttır.
    • Daha gelişmiş bir dokunma kullanıcı deneyimi için gelişmiş donanım ve gelişmiş bir model (sürekli model) gerekir.
  • Sürekli model (gelişmiş)

    • Doku ve genlik bu modelin temel değişkenleridir. HAL'deki her öğe farklı dokunma dokularını temsil eder. Her HAL varlığının genliği, ölçek faktörü (S) tarafından kontrol edilir.
    • Bu model için gelişmiş donanım gerekir. OEM'ler, VibrationEffect.Composition ile gelişmiş dokunma teknolojisi kullanıcı deneyimini (en yeni dokunma teknolojisi API'lerinden en iyi şekilde yararlanmak için) kullanmak isterse donanımlarını bu modeli kullanarak uygulamanız önerilir.

Ayrık model

API'de sağlanan tüm herkese açık sabitlerin uygun HAL sabitleriyle eşlenmesi önerilir. Bu işleme başlamak için cihazın, HAL'de ayrı genişliğe sahip kaç dokunma teknolojisi dalga formu tanımlayabileceğini bulun. Bu kavram etrafında yapılandırılmış belirli bir soru şu şekildedir: Telefonumda, insan tarafından algılanabilir genlik farklılıklarına sahip kaç tek darbeli dokunma etkisi tanımlanabilir? Eşlemeyi bu sorunun cevabı belirler.

HAL sabitlerini tanımlama işlemi, donanıma bağlı bir işlemdir. Örneğin, giriş seviyesi bir telefonda yalnızca tek bir dokunma dalga biçimi üretebilecek donanım özellikleri bulunabilir. Daha gelişmiş donanım bileşenlerine sahip cihazlar, daha farklı ayrı genlik seviyeleri üretir ve HAL'de birden fazla dokunmatik dalga formu tanımlayabilir. HAL-API sabit eşleme, HAL sabit değerini alır (orta amplitüdü referans olarak kullanır) ve daha güçlü veya daha zayıf efektleri bu değere göre düzenler.

HAL sabit aralığının ve geri bildirim genliklerinin şeması

Şekil 5. Genliğe göre HAL sabit aralığı

Ayrık genliğe sahip HAL sabitlerinin sayısı tanımlandığında HAL ve API sabitlerini HAL sabitlerinin sayısına göre eşleme zamanı gelmiştir. Bu eşleme işlemi, tek bir dürtü API sabit değerini üç ayrı genlik düzeyi grubuna ayırabilir. API sabitlerinin segmentlere ayrılma şekli, eşlik eden giriş etkinliklerine yönelik kullanıcı deneyimi ilkelerine dayanır. Daha fazla bilgi için Dokunma duyusu kullanıcı deneyimi tasarımı başlıklı makaleyi inceleyin.

HAL-API sabit eşleme için ayrık model

Şekil 6. HAL-API sabit eşlemesi: Ayrık model

Cihazınız ayrık genliklere sahip yalnızca iki HAL sabit değerini destekliyorsa Orta ve Yüksek genlik düzeyindeki HAL sabitlerini birleştirebilirsiniz. Bu kavramın pratikte bir örneği, EFFECT_CLICK ve EFFECT_HEAVY_CLICK'un aynı HAL sabitiyle eşlenmesidir. Bu sabit, orta genlik düzeyi HAL sabit olacaktır. Cihazınız ayrık genliğe sahip yalnızca bir HAL sabit değerini destekliyorsa üç seviyenin tümünü tek bir seviyede birleştirebilirsiniz.

Sürekli model

Genlik ölçeklenebilirliğine sahip sürekli model, HAL sabitlerini tanımlamak için uygulanabilir. Ölçeklendirilmiş HAL (HAL_H0 x S) oluşturmak için HAL sabitlerine (örneğin, HAL_H0, HAL_H1) ölçek faktörü (S) uygulanabilir. Bu durumda, ölçeklendirilmiş HAL, API sabitlerini (HAL_H0 x S1 = H0S1 = EFFECT_TICK) tanımlamak için eşlenir (Şekil 7'de gösterildiği gibi). Kesintisiz modelin genlik ölçeklenebilirliğini kullanarak cihazlar, ayırt edici dokulara sahip az sayıda HAL sabiti saklayabilir ve ölçek faktörünü (S) ayarlayarak genlik varyasyonları ekleyebilir. Cihaz üreticileri, sunmak istedikleri farklı dokunma dokularının sayısına göre HAL sabitlerinin sayısını tanımlayabilir.

Doku ve genliğe göre HAL sabit aralığı

Şekil 7. Dokuya göre HAL sabit aralığı (HAL_H0) ve genlik ölçeği (S)

HAL-API sabit eşleme için sürekli model

8. Şekil. HAL-API sabit eşleme: Sürekli model

Sürekli modelde farklı HAL sabitleri, farklı genlikler yerine farklı dokunma dokunuşlarını temsil eder. Ölçek faktörü (S), genliği yapılandırabilir. Bununla birlikte, doku algısı (örneğin, keskinlik) süre ve genlik algısıyla ilgili olduğundan, doku ile ölçek faktörünün (HAL-API eşlemenin tasarım sürecinde) birleştirilmesi önerilir.

Şekil 7, genlik ölçeklenebilirliğiyle bir HAL'den birçok API sabitine kadar varyasyonu artırarak sabit eşlemeyi göstermektedir.

Varyasyon 1'i artırma

Varyasyonu Artırma 2

9. Şekil. Genlik ölçeklenebilirliğiyle varyasyonu artırma

VibrationEffect.Composition içindeki PRIMITIVE_TICK ve PRIMITIVE_CLICK gibi tüm ölçeklenebilir API sabitleri için API sabitinin enerji seviyesi, API sabitinin addPrimitive(int primitiveID, float scale, int delay) aracılığıyla tanımlandığı float scale parametresine bağlıdır. PRIMITIVE_TICK ve PRIMITIVE_CLICK, farklı HAL sabitleri kullanılarak açık bir ayrım gözetilerek tasarlanabilir. Dokuya çeşitlilik eklemek istiyorsanız bu yaklaşım önerilir.

3. Adım: Donanımı değerlendirin

Donanım değerlendirmesi, bu değerlendirme için 1, 2 ve 3 Etkileri olarak etiketlenen üç dokunma etkisini tanımlamayı içerir.

1. efekt: Önceden tanımlanmış kısa dokunma sabitleri

VibrationEffect.EFFECT_CLICK sabiti, 2. adımda sağlanan HAL-API eşlemesindeki referans etki veya ortak paydadır. En çok kullanılan efektle (HapticFeedbackConstants.KEYBOARD_PRESS) eşlenir. Bu etkiyi değerlendirmek, hedef cihazınızın net dokunma teknolojisine hazır olup olmadığını belirlemenize yardımcı olur.

2. efekt: Kısa özel dokunma etkisi

VibrationEffect.createOneShot(20,255) sabit, özel dokunma efektleri içindir. Kısa, tek özel impulslar için süreyi tanımlamak üzere önerilen maksimum eşik 20 ms'dir. 20 ms'den uzun tek bir darbe, vızıltılı bir titreşim olarak algılandığı için önerilmez.

Kısa özel dokunma etkisinin dalga biçimi

Şekil 10. Kısa özel dokunma teknolojisi efekti

Efekt 3: Genişlik değişimi ile uzun özel dokunma teknolojisi

VibrationEffect.createWaveform(timings[], amplitudes[], int repeat) sabit, genlik değişimi olan uzun özel efektler içindir. Özel dokunma efektleri için değişen genlikler üretme özelliği, cihazın zengin dokunma özellikleriyle ilgili kapasitesini değerlendirmek için kullanılan göstergelerden biridir. Önerilen timings [] ve amplitudes [] değerleri sırasıyla {500, 500} ve {128, 255}'tır. Bu değerler, 500 ms örnekleme hızıyla% 50 ile %100 arasında artan bir genlik trendi gösterir.

Genişlik değişimi ile dokunsal efekt dalga formu

Şekil 11. Genlik değişimi içeren uzun özel dokunma etkisi

Efekt 3'ün genlik kontrolünün donanım özelliklerini kontrol etmek için Vibrator.hasAmplitudeControl() yöntemini kullanın. Sonuç, VibrationEffect.createWaveform değişken genlikte istenen şekilde yürütülecek şekilde true olmalıdır.

Öznel dokunma etkisi değerlendirmesinin akış şeması

Şekil 12. 1, 2 ve 3 numaralı dokunma etkisinin özne değerlendirmesi

Öznel değerlendirme yapma

Hızlı bir tutarlılık kontrolü için önce öznel bir değerlendirme yapın. Subjektif değerlendirmenin amacı, cihazın insan tarafından algılanabilir genliklere sahip dokunma hissi oluşturup oluşturamayacağını belirlemek için dokunma etkilerinin genliğini gözlemlemektir.

Bu kavram etrafında yapılandırılmış belirli bir soru şu şekildedir: Cihaz, kullanıcılara beklendiği gibi algılanabilir dokunma etkileri sağlayabiliyor mu? Bu soruyu yanıtlamak, kullanıcıların hissedemediği algılanabilir dokunma teknolojisi veya dalga formlarının amaçlandığı gibi kalıplar üretmediği istenmeyen dokunma teknolojisi gibi hatalı dokunma teknolojisinden kaçınmanıza yardımcı olur.

Gelişmiş değerlendirme yapma

İleri düzey kalite değerlendirmeleri yapmanız önemle tavsiye edilir. Gelişmiş kalite değerlendirmeleri, kaliteli dokunma teknolojisi uygulamak için dokunma teknolojisinin ölçülebilir özelliklerini karakterize eder. İşlem tamamlandığında cihaz üreticileri mevcut dokunma durumunu teşhis edebilecek. Bu sayede genel kaliteyi iyileştirmeye yönelik hedefler belirleyebilirler. Donanım değerlendirmesi bölümüne bakın.