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)