validatekeymaps টুল

Android ফ্রেমওয়ার্কে validatekeymaps নামে একটি ছোট টুল আছে যা ইনপুট ডিভাইস কনফিগারেশন ফাইল, কী লেআউট ফাইল, কী ক্যারেক্টার ম্যাপ ফাইল ও ভার্চুয়াল কী ডেফিনিশন ফাইলের সিনট্যাক্স যাচাই করে।

সংকলন

validatekeymaps কম্পাইল করতে, ডেভেলপমেন্ট এনভায়রনমেন্ট সেট-আপ করুন, Android সোর্স ট্রি ডাউনলোড করুন, এটি কম্পাইল করুন, তারপর এগুলি রান করান:

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)