Narzędzie do weryfikacji map klawiszy

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Platforma Android zawiera małe narzędzie o nazwie validatekeymaps do sprawdzania składni plików konfiguracyjnych urządzeń wejściowych, plików układu klawiszy, plików map znaków klawiszy i plików definicji kluczy wirtualnych.

Kompilacja

Aby skompilować validatekeymaps , skonfiguruj środowisko programistyczne, pobierz drzewo źródłowe Androida, skompiluj je, a następnie uruchom:

mmm frameworks/base/tools/validatekeymaps

To polecenie powinno skompilować narzędzie hosta o nazwie validatekeymaps do katalogu out/host/<os>/bin .

Stosowanie

Jeśli uruchomiłeś envsetup.sh , aby skonfigurować środowisko programistyczne, narzędzie validatekeymaps powinno już być na Twojej ścieżce. Możesz to sprawdzić, uruchamiając validatekeymaps .

validatekeymaps

Powinieneś zobaczyć następujące dane wyjściowe:

Keymap Validation Tool

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

Następnie wszystko, co musisz zrobić, to uruchomić validatekeymaps i podać mu ścieżkę jednego lub więcej plików do walidacji.

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

Przykład:

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

Success.

A jeśli jest błąd...

validatekeymaps Bad.kl

Przykład:

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

Failed!

Automatyzacja

Bardzo dobrym pomysłem jest uruchomienie validatekeymaps na wszystkich plikach konfiguracyjnych przed zainstalowaniem ich na urządzeniu.

Proces można łatwo zautomatyzować jako część systemu kompilacji za pomocą skryptu lub pliku makefile.

Poniższy przykładowy plik makefile jest oparty na zawartości 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)