validatekeymaps aracı

Android çerçevesinde, giriş cihazı yapılandırma dosyalarının, tuş düzeni dosyalarının, tuş karakter haritası dosyalarının ve sanal tuş tanımı dosyalarının söz dizimini doğrulamak için validatekeymaps adlı küçük bir araç bulunur.

Derleme

validatekeymaps'ü derlemek için geliştirme ortamını kurun, Android kaynak ağacını indirin, derleyin ve ardından şunu çalıştırın:

mmm frameworks/base/tools/validatekeymaps

Bu komut, validatekeymaps adlı bir ana makine aracını out/host/<os>/bin dizininde derleyecektir.

Kullanım

Geliştirme ortamınızı ayarlamak için envsetup.sh çalıştırdıysanız validatekeymaps aracı zaten yolunuzda olmalıdır. validatekeymaps komutunu çalıştırarak bunu doğrulayabilirsiniz.

validatekeymaps

Aşağıdaki çıkışı göreceksiniz:

Keymap Validation Tool

Usage:
 validatekeymaps [*.kl] [*.kcm] [*.idc] [virtualkeys.*] [...]
   Validates the specified key layouts, key character maps, 
   input device configurations, or virtual key definitions.

Ardından, validatekeymaps'ü çalıştırıp doğrulanacak bir veya daha fazla dosyanın yolunu belirtmeniz yeterlidir.

validatekeymaps frameworks/base/data/keyboards/Generic.kl

Örnek:

Validating file 'frameworks/base/data/keyboards/Generic.kl'...
No errors.

Success.

Hata varsa...

validatekeymaps Bad.kl

Örnek:

Validating file 'Bad.kl'...
E/KeyLayoutMap(87688): Bad.kl:24: Expected keyword, got 'ke'.
Error -22 parsing key layout file.

Failed!

Otomasyon

Tüm yapılandırma dosyalarını cihaza yüklemeden önce validatekeymaps'yi çalıştırmak çok iyi bir fikirdir.

Bu işlem, bir komut dosyası veya make dosyası kullanılarak derleme sisteminin bir parçası olarak kolayca otomatikleştirilebilir.

Aşağıdaki örnek makefile, frameworks/base/data/keyboards/Android.mk dosyasının içeriğini temel alır.

# This makefile performs build time validation of framework keymap files.

LOCAL_PATH := $(call my-dir)

# Validate all key maps.
include $(CLEAR_VARS)

validatekeymaps := $(HOST_OUT_EXECUTABLES)/validatekeymaps$(HOST_EXECUTABLE_SUFFIX)
files := MyKeyboard.kl MyKeyboard.kcm MyTouchScreen.idc

LOCAL_MODULE := validate_framework_keymaps
LOCAL_MODULE_TAGS := optional
LOCAL_REQUIRED_MODULES := validatekeymaps

validate_framework_keymaps: $(files)
    $(hide) $(validatekeymaps) $(files)

include $(BUILD_PHONY_PACKAGE)