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
चलाना बहुत अच्छा होता है.
स्क्रिप्ट या मेकफ़ाइल का इस्तेमाल करके, बिल्ड सिस्टम के हिस्से के तौर पर इस प्रोसेस को आसानी से ऑटोमेट किया जा सकता है.
यहां दिया गया सैंपल मेकफ़ाइल, 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)