يتضمّن إطار عمل Android أداة صغيرة تُسمى validatekeymaps
للتحقّق من صحة
بناء الجملة لملفات إعداد جهاز الإدخال وملفات تصميم المفاتيح والحرف الرئيسي
ملفات خرائط وملفات تعريف المفتاح الافتراضي.
موسيقى مجمّعة
لتجميع validatekeymaps
، وإعداد بيئة التطوير، وتنزيل
شجرة مصادر Android، وتجميعها، ثم تشغيل:
mmm frameworks/base/tools/validatekeymaps
ينبغي أن يجمّع هذا الأمر أداة مضيف تُسمى validkeymaps في ملف
دليل out/host/<os>/bin
.
الاستخدام
في حال تشغيل envsetup.sh
لإعداد بيئة التطوير، سيتم
يجب أن تكون أداة validatekeymaps
على مسارك بالفعل. يمكنك إثبات الملكية
ذلك عن طريق تشغيل validatekeymaps
.
validatekeymaps
من المفترض أن يظهر لك الناتج التالي:
Keymap Validation Tool Usage: validatekeymaps [*.kl] [*.kcm] [*.idc] [virtualkeys.*] [...] Validates the specified key layouts, key character maps, input device configurations, or virtual key definitions.
كل ما عليك فعله بعد ذلك هو تشغيل validatekeymaps
ومنحه مسار
ملف واحد أو أكثر للتحقق من صحته.
validatekeymaps frameworks/base/data/keyboards/Generic.kl
مثال:
Validating file 'frameworks/base/data/keyboards/Generic.kl'... No errors. Success.
وإذا كان هناك خطأ...
validatekeymaps Bad.kl
مثال:
Validating file 'Bad.kl'... E/KeyLayoutMap(87688): Bad.kl:24: Expected keyword, got 'ke'. Error -22 parsing key layout file. Failed!
الأتمتة
من المفيد جدًا تشغيل validatekeymaps
على جميع ملفات الإعداد.
قبل تثبيتها على الجهاز.
يمكن تنفيذ هذه العملية بسهولة كجزء من نظام التصميم باستخدام برنامج نصي أو ملف تصنيف.
يستند النموذج 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)