Android çerçevesi, giriş cihazı yapılandırma dosyalarının, anahtar düzeni dosyalarının, anahtar karakter haritaları dosyalarının ve sanal anahtar tanımı dosyalarının sözdizimini doğrulamak için validatekeymaps
adı verilen küçük bir araca sahiptir.
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 bilgisayar aracını out/host/<os>/bin
dizininde derlemelidir.
Kullanım
Geliştirme ortamınızı kurmak 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 çıktıyı görmelisiniz:
Keymap Validation Tool Usage: validatekeymaps [*.kl] [*.kcm] [*.idc] [virtualkeys.*] [...] Validates the specified key layouts, key character maps, input device configurations, or virtual key definitions.
Daha sonra tek yapmanız gereken validatekeymaps
çalıştırmak ve ona doğrulanacak bir veya daha fazla dosyanın yolunu vermek.
validatekeymaps frameworks/base/data/keyboards/Generic.kl
Örnek:
Validating file 'frameworks/base/data/keyboards/Generic.kl'... No errors. Success.
Ve eğer 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
Bir aygıta yüklemeden önce tüm yapılandırma dosyalarında validatekeymaps
çalıştırmak çok iyi bir fikirdir.
İşlem, derleme sisteminin bir parçası olarak bir komut dosyası veya makefile kullanılarak kolayca otomatikleştirilebilir.
Aşağıdaki örnek makefile frameworks/base/data/keyboards/Android.mk
içeriğine dayanmaktadı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)