অ্যান্ড্রয়েড ৭.০ প্রকাশের আগে, অ্যান্ড্রয়েড তার বিল্ড নিয়মগুলো বর্ণনা এবং কার্যকর করার জন্য একচেটিয়াভাবে GNU Make ব্যবহার করত। Make বিল্ড সিস্টেমটি ব্যাপকভাবে সমর্থিত এবং ব্যবহৃত হলেও, অ্যান্ড্রয়েডের বিশাল পরিসরে এটি ধীর, ত্রুটিপ্রবণ, সম্প্রসারণ-অযোগ্য এবং পরীক্ষা করা কঠিন হয়ে পড়েছিল। Soong বিল্ড সিস্টেম অ্যান্ড্রয়েড বিল্ডের জন্য প্রয়োজনীয় নমনীয়তা প্রদান করে। আমরা অ্যান্ড্রয়েড বিল্ড সিস্টেমে উল্লেখযোগ্য পরিবর্তন আনছি, Make ( Android.mk ) বিল্ড সিস্টেমটিকে অপ্রচলিত ঘোষণা করছি এবং এর পরিবর্তে Soong ( Android.bp ) নিয়ে আসছি।
এই কারণে, প্ল্যাটফর্ম ডেভেলপারদের যত তাড়াতাড়ি সম্ভব Make থেকে Soong-এ স্থানান্তরিত হওয়ার জন্য অনুরোধ করা হচ্ছে। সহায়তা পেতে Android Building Google Group-এ প্রশ্ন পাঠান।
সুং কী?
Make-কে প্রতিস্থাপন করার জন্য Android 7.0 (Nougat)-এ Soong বিল্ড সিস্টেম চালু করা হয়েছিল। এটি Android-এর বিল্ডের গতি বাড়ানোর জন্য Kati GNU Make ক্লোন টুল এবং Ninja বিল্ড সিস্টেম কম্পোনেন্ট ব্যবহার করে।
সাধারণ নির্দেশাবলীর জন্য অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP)-এ থাকা অ্যান্ড্রয়েড মেক বিল্ড সিস্টেমের বিবরণ দেখুন এবং মেক থেকে সুং-এ মানিয়ে নেওয়ার জন্য প্রয়োজনীয় পরিবর্তনগুলো সম্পর্কে জানতে Android.mk Writers-এর জন্য বিল্ড সিস্টেম পরিবর্তনসমূহ দেখুন। গুরুত্বপূর্ণ পরিভাষাগুলোর সংজ্ঞার জন্য শব্দকোষের বিল্ড-সম্পর্কিত এন্ট্রিগুলো এবং সম্পূর্ণ বিবরণের জন্য সুং মডিউল রেফারেন্স দেখুন।
মেক এবং সুং-এর তুলনা
এখানে মেক কনফিগারেশনের সাথে সুং কনফিগারেশন (ব্লুপ্রিন্ট বা .bp ) ফাইলে একই কাজ সম্পন্ন করার একটি তুলনা দেওয়া হলো।
উদাহরণ তৈরি করুন
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libxmlrpc++
LOCAL_MODULE_HOST_OS := linux
LOCAL_RTTI_FLAG := -frtti
LOCAL_CPPFLAGS := -Wall -Werror -fexceptions
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/src
LOCAL_SRC_FILES := $(call \
all-cpp-files-under,src)
include $(BUILD_SHARED_LIBRARY)
সোং উদাহরণ
cc_library_shared {
name: "libxmlrpc++",
rtti: true,
cppflags: [
"-Wall",
"-Werror",
"-fexceptions",
],
export_include_dirs: ["src"],
srcs: ["src/**/*.cpp"],
target: {
darwin: {
enabled: false,
},
},
}
টেস্ট-নির্দিষ্ট Soong কনফিগারেশনের উদাহরণের জন্য, Simple build configuration দেখুন।
মৌলিক রূপান্তর পদ্ধতি
androidmk হেল্পার টুল ব্যবহার করে একটি Android.mk ফাইলকে Android.bp ফাইলে রূপান্তর করার প্রক্রিয়াটি সাধারণত এই সাধারণ কার্যপ্রবাহ অনুসরণ করে। এই রূপান্তরের ক্ষেত্রে সাধারণত নিম্নলিখিত ধাপগুলো অনুসরণ করা হয়।
টার্মিনাল পরিবেশ সেট আপ করুন এবং
androidmkটুলটি বিল্ড করুন।androidmkহলো একটি কমান্ড লাইন টুল যা একটিAndroid.mkফাইল পার্স করে এবং এর অনুরূপ একটিAndroid.bpফাইল আউটপুট করার চেষ্টা করে। এটি সামান্য বা কোনো ম্যানুয়াল পরিবর্তন ছাড়াই বেশিরভাগAndroid.mkফাইলকেAndroidফাইলে রূপান্তর করতে পারে।cd <root-of-the-tree> source build/envsetup.sh lunch <lunch-target> m androidmkAndroid.mkদিয়ে বিল্ড করুন:sh m <module-name>androidmkরূপান্তর টুলটি চালান:sh androidmk <path-to-Android.mk>/Android.mk > <path-to-Android.bp>/Android.bpAndroid.bpফাইলটি ম্যানুয়ালি সম্পাদনা করুন:-
androidmkটুল দ্বারা নির্গত যেকোনো সতর্কবার্তার সমাধান করুন। - কপিরাইট হেডারটি রাখুন বা যোগ করুন। নতুন হেডার যোগ করার ক্ষেত্রে চলতি বছরটি ব্যবহার করুন।
-
Android.mkফাইলটি মুছে ফেলুন এবংAndroid.bpফাইলটি দিয়ে বিল্ড করুন।বিল্ড করা আর্টিফ্যাক্টগুলো তুলনা করে অথবা ইউনিট ও ফাংশনাল টেস্ট চালিয়ে রূপান্তরটি যাচাই করুন।
পরিবর্তনগুলো সংরক্ষণ করুন এবং পর্যালোচনার জন্য আপলোড করুন।
আরও তথ্যের জন্য Android.bp ফাইল ফরম্যাট দেখুন।