রূপান্তর করুন Make থেকে Soong

অ্যান্ড্রয়েড 7.0 রিলিজের আগে, অ্যান্ড্রয়েড তার বিল্ড নিয়মগুলি বর্ণনা এবং কার্যকর করার জন্য একচেটিয়াভাবে GNU Make ব্যবহার করত। মেক বিল্ড সিস্টেম ব্যাপকভাবে সমর্থিত এবং ব্যবহার করা হয়, কিন্তু অ্যান্ড্রয়েডের স্কেলে ধীর, ত্রুটি প্রবণ, আনস্কেলযোগ্য এবং পরীক্ষা করা কঠিন হয়ে পড়ে। Soong বিল্ড সিস্টেম Android বিল্ডের জন্য প্রয়োজনীয় নমনীয়তা প্রদান করে। আমরা অ্যান্ড্রয়েড বিল্ড সিস্টেমে উল্লেখযোগ্য পরিবর্তন করছি, মেক ( Android.mk ) বিল্ড সিস্টেমকে অবমূল্যায়ন করছি এবং এটিকে Soong ( Android.bp ) দিয়ে প্রতিস্থাপন করছি।

এই কারণে, প্ল্যাটফর্ম বিকাশকারীরা যত তাড়াতাড়ি সম্ভব মেক থেকে স্যুইচ করবেন এবং Soong গ্রহণ করবেন বলে আশা করা হচ্ছে। সহায়তা পেতে Android বিল্ডিং Google গ্রুপে প্রশ্ন পাঠান।

সুং কি?

মেক প্রতিস্থাপনের জন্য Soong বিল্ড সিস্টেমটি Android 7.0 (Nougat) এ চালু করা হয়েছিল। এটি অ্যান্ড্রয়েড তৈরির গতি বাড়ানোর জন্য Kati GNU মেক ক্লোন টুল এবং নিনজা বিল্ড সিস্টেম কম্পোনেন্ট ব্যবহার করে।

সাধারণ নির্দেশাবলীর জন্য অ্যান্ড্রয়েড মেক বিল্ড সিস্টেমের বিবরণ দেখুন অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টে (এওএসপি) এবং মেক থেকে সুং-এ মানিয়ে নেওয়ার জন্য প্রয়োজনীয় পরিবর্তনগুলি সম্পর্কে জানতে Android.mk লেখকদের জন্য সিস্টেম পরিবর্তনগুলি তৈরি করুন ৷ মূল পদের সংজ্ঞা এবং সম্পূর্ণ বিবরণের জন্য সুং মডিউল রেফারেন্সের জন্য শব্দকোষে বিল্ড-সম্পর্কিত এন্ট্রিগুলি দেখুন।

মেক এবং সুং তুলনা

এখানে একটি Soong কনফিগারেশন (ব্লুপ্রিন্ট বা .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,
           },
     },
}

পরীক্ষা-নির্দিষ্ট সুং কনফিগারেশন উদাহরণের জন্য, সরল বিল্ড কনফিগারেশন দেখুন।

মৌলিক রূপান্তর পদ্ধতি

একটি Android.mk ফাইলের একটি Android.bp ফাইলে রূপান্তর সাধারণত androidmk সহায়ক টুল ব্যবহার করে এই সাধারণ কর্মপ্রবাহকে অনুসরণ করে। সাধারণভাবে রূপান্তরে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করা হয়।

  1. টার্মিনাল এনভায়রনমেন্ট সেট আপ করুন এবং androidmk টুল তৈরি করুন।

    androidmk হল একটি কমান্ড লাইন টুল যা একটি Android.mk ফাইল পার্স করে এবং একটি সাদৃশ্যপূর্ণ Android.bp ফাইল আউটপুট করার চেষ্টা করে। এটি বেশিরভাগ Android.mk ফাইলগুলিকে Android .bp-এ রূপান্তর করতে পারে কিছু বা কোনো ম্যানুয়াল পরিবর্তন ছাড়াই।

    cd <root-of-the-tree>
    source build/envsetup.sh
    lunch <lunch-target>
    m androidmk
    
  2. Android.mk দিয়ে তৈরি করুন : sh m <module-name>

  3. androidmk রূপান্তর টুলটি চালান: sh androidmk <path-to-Android.mk>/Android.mk > <path-to-Android.bp>/Android.bp

  4. ম্যানুয়ালি Android.bp ফাইল সম্পাদনা করুন:

    • androidmk টুল দ্বারা নির্গত যেকোন সতর্কতা সম্বোধন করুন।
    • একটি কপিরাইট শিরোনাম বজায় রাখুন বা যোগ করুন। একটি নতুন যোগ করা হলে, বর্তমান বছর ব্যবহার করুন.
  5. Android.mk ফাইলটি সরান এবং Android.bp ফাইল দিয়ে তৈরি করুন।

  6. বিল্ট আর্টিফ্যাক্ট বা চলমান ইউনিট এবং কার্যকরী পরীক্ষা তুলনা করে রূপান্তর যাচাই করুন।

  7. পরিবর্তনগুলি সংরক্ষণ করুন এবং পর্যালোচনার জন্য আপলোড করুন৷

আরও তথ্যের জন্য Android.bp ফাইল ফরম্যাট পড়ুন।