اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
أداة validatekeymaps
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتضمّن إطار عمل Android أداة صغيرة تُسمى validatekeymaps
للتحقّق من صحة نحو ملفات إعدادات أجهزة الإدخال وملفات تنسيقات المفاتيح وملفات تصاميم مفاتيح رموزها وملفات تعريف المفاتيح الافتراضية.
موسيقى مجمّعة
لتجميع validatekeymaps
، عليك إعداد بيئة التطوير وتنزيل
شجرة مصدر Android وتجميعها، ثم تنفيذ ما يلي:
mmm frameworks/base/tools/validatekeymaps
من المفترض أن يُنشئ هذا الأمر أداة مضيف تُسمى validatekeymaps في الدليل
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)
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# validatekeymaps tool\n\nThe Android framework has a small tool called `validatekeymaps` to validate the\nsyntax of input device configuration files, key layout files, key character\nmaps files and virtual key definition files.\n\nCompilation\n-----------\n\nTo compile `validatekeymaps`, set up the development environment, download\nthe Android source tree, compile it, then run: \n\n```\nmmm frameworks/base/tools/validatekeymaps\n```\n\nThis command should compile a host tool called validatekeymaps into the\n`out/host/\u003cos\u003e/bin` directory.\n\nUsage\n-----\n\nIf you ran `envsetup.sh` to set up your development environment, then the\n`validatekeymaps` tool should already be on your path. You can verify\nthis by running `validatekeymaps`. \n\n```\nvalidatekeymaps\n```\n\nYou should see the following output: \n\n```\nKeymap Validation Tool\n\nUsage:\n validatekeymaps [*.kl] [*.kcm] [*.idc] [virtualkeys.*] [...]\n Validates the specified key layouts, key character maps, \n input device configurations, or virtual key definitions.\n```\n\nThen all you need to do is run `validatekeymaps` and give it the path of\none or more files to validate. \n\n```\nvalidatekeymaps frameworks/base/data/keyboards/Generic.kl\n```\n\nExample: \n\n```\nValidating file 'frameworks/base/data/keyboards/Generic.kl'...\nNo errors.\n\nSuccess.\n```\n\nAnd if there is an error... \n\n```\nvalidatekeymaps Bad.kl\n```\n\nExample: \n\n```\nValidating file 'Bad.kl'...\nE/KeyLayoutMap(87688): Bad.kl:24: Expected keyword, got 'ke'.\nError -22 parsing key layout file.\n\nFailed!\n```\n\nAutomation\n----------\n\nIt is a *very* good idea to run `validatekeymaps` on all configuration files\nbefore installing them on a device.\n\nThe process can easily be automated as part of the build system by using a\nscript or a makefile.\n\nThe following sample makefile is based on the contents of\n`frameworks/base/data/keyboards/Android.mk`. \n\n```\n# This makefile performs build time validation of framework keymap files.\n\nLOCAL_PATH := $(call my-dir)\n\n# Validate all key maps.\ninclude $(CLEAR_VARS)\n\nvalidatekeymaps := $(HOST_OUT_EXECUTABLES)/validatekeymaps$(HOST_EXECUTABLE_SUFFIX)\nfiles := MyKeyboard.kl MyKeyboard.kcm MyTouchScreen.idc\n\nLOCAL_MODULE := validate_framework_keymaps\nLOCAL_MODULE_TAGS := optional\nLOCAL_REQUIRED_MODULES := validatekeymaps\n\nvalidate_framework_keymaps: $(files)\n $(hide) $(validatekeymaps) $(files)\n\ninclude $(BUILD_PHONY_PACKAGE)\n```"]]