ตั้งแต่วันที่ 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
แล้วระบุเส้นทางของไฟล์อย่างน้อย 1 ไฟล์ที่จะตรวจสอบ
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
ในไฟล์การกําหนดค่าทั้งหมดก่อนติดตั้งในอุปกรณ์
กระบวนการนี้ทําแบบอัตโนมัติได้ง่ายๆ โดยใช้สคริปต์หรือไฟล์ make เป็นส่วนหนึ่งของระบบบิลด์
ตัวอย่างไฟล์ Make ต่อไปนี้อิงตามเนื้อหาของ
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 UTC
[[["เข้าใจง่าย","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 UTC"],[],[],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```"]]