অ্যান্ড্রয়েড ফ্রেমওয়ার্কের ইনপুট ডিভাইস কনফিগারেশন ফাইল, কী লেআউট ফাইল, কী ক্যারেক্টার ম্যাপ ফাইল এবং ভার্চুয়াল কী ডেফিনিশন ফাইলের সিনট্যাক্স যাচাই করার জন্য validatekeymaps
নামে একটি ছোট টুল রয়েছে।
সংকলন
validatekeymaps
কম্পাইল করতে, ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করুন, অ্যান্ড্রয়েড সোর্স ট্রি ডাউনলোড করুন, কম্পাইল করুন, তারপর রান করুন:
mmm frameworks/base/tools/validatekeymaps
এই কমান্ডটি out/host/<os>/bin
ডিরেক্টরিতে validatekeymaps নামে একটি হোস্ট টুল কম্পাইল করা উচিত।
ব্যবহার
আপনি যদি আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করতে 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)