Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

키맵 유효성 검사 도구

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)