Verifykeymaps aracı

Android çerçevesinde validatekeymaps adlı küçük bir araç bulunur. Bu araç, giriş cihazı yapılandırma dosyalarının söz dizimi, tuş düzeni dosyaları, anahtar karakteri eşlemeleri için bu aracı kullanabilirsiniz.

Derleme

validatekeymaps dosyasını derlemek için geliştirme ortamını kurun, indirin indirin, derleyin ve çalıştırın:

mmm frameworks/base/tools/validatekeymaps

Bu komut, 2007'de DGR'de doğrulanabilir anahtar out/host/<os>/bin dizini.

Kullanım

Geliştirme ortamınızı kurmak için envsetup.sh çalıştırdıysanız validatekeymaps aracı zaten yolunuzda olmalıdır. Doğrulama bunu validatekeymaps çalıştırarak yapabilirsiniz.

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.

Sonra tek yapmanız gereken validatekeymaps komutunu çalıştırmak ve bir veya daha fazla dosya eklemeniz gerekebilir.

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

Örnek:

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

Success.

Bir 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ında validatekeymaps çalıştırmak çok iyi bir fikirdir yapmanız gerekir.

İşlem, derleme sisteminin bir parçası olarak bir oluşturabilirsiniz.

Aşağıdaki örnek makefile, frameworks/base/data/keyboards/Android.mk

# 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)