2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 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
를 실행하는 것은 매우 좋은 생각입니다.
프로세스는 스크립트 또는 makefile을 사용하여 빌드 시스템의 일부로 쉽게 자동화할 수 있습니다.
다음의 샘플 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)
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 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```"]]