এআরএম চিপসেটগুলির ক্ষেত্রে যা সাধারণ উপাদান, সম্পূর্ণ অ্যান্ড্রয়েড স্ট্যাক, লিনাক্স ভিত্তিক কাছের-অভিন্ন কার্নেল থেকে, আসলে, 32 বিট, সাধারণত 32 বিবিট / 64 বিট হোস্ট পরিবেশ, হোস্ট পরিবেশের থেকে ক্রস-সংকলিত হয় সাধারণত লিনাক্সের বিতরণগুলির মধ্যে একটি। অ্যান্ড্রয়েড বিল্ডিং এবং ক্রস-সংকলনের জন্য গুগলের প্রস্তাবিত বিতরণ হ'ল উবুন্টু ।
অ্যান্ড্রয়েড রান-টাইম লাইব্রেরি (মিডিয়া, গ্রাফিক্স, ফাইল সিস্টেম, নাম হিসাবে কয়েকটি) এছাড়াও 32 বিট, তবে আমরা যেমন ডালভিক্ভিমের স্তরে পৌঁছাচ্ছি, তখন বিটের সংখ্যা অপ্রাসঙ্গিক হয়ে উঠছে কারণ এই মুহুর্তে, অ্যাপস আসবে গুগল প্লে স্টোর থেকে দেশীয় বাইটকোড (একটি পোর্টেবল বাইটকোডে সংকলিত জাভা কোডের একটি "বাই-প্রোডাক্ট") রয়েছে যা ডালভিকভিএম (ভার্চুয়াল মেশিন) কে লক্ষ্য করে এবং কাঁচা এআরএম নির্দেশিকা সেটকে লক্ষ্য করে বাইটকোড অনুবাদ করে।
ফ্রিওই সর্বশেষ অ্যান্ড্রয়েড যা 32 বিট আয়োজিত পরিবেশের অধীনে সংকলন সক্ষম করেছিল যেখানে এটিআরএম চিপসেটকে লক্ষ্য করে ক্রস-সংকলিত হয়েছিল।
জিঞ্জারব্রেড হ'ল "ভবিষ্যত" অ্যান্ড্রয়েডের প্রথম, তারপরে সার্কা, তিন বছর আগে, এটি নির্মিত হয়েছিল যেখানে একটি 64 বিট আয়োজিত পরিবেশ ব্যবহারের প্রয়োজনীয়তা প্রবর্তন করেছিল। জিঞ্জারব্রেড 32 বিট হোস্ট করা পরিবেশের অধীনে তৈরি করার জন্য অনেকগুলি হ্যাক ছিল।
আইসিএস এবং জেবি, এবং উপরের দিকে এখন অবশ্যই স্পষ্টভাবে সংকলনের গতি বাড়ানোর জন্য এবং বিল্ডিংয়ের ঘুরে দেখার সময় কমাতে একটি 64 বিট পরিবেশ প্রয়োজন।
সুতরাং সংক্ষিপ্তসার হিসাবে, আপনি প্লে স্টোরটিতে যা দেখছেন তাতে 32 বিট বা 64 বিট ব্যবহৃত হয় এবং এইভাবে অপ্রাসঙ্গিক হয় কিনা তার কোনও ফল নেই।
পার্শ্ব দ্রষ্টব্য: সাধারণত ১GB জিবি র্যাম / কোয়াড কোর / bit৪ বিট লিনাক্স বিতরণ, স্ক্র্যাচ থেকে আইসিএস তৈরি করতে যে সময় লাগে, এটি সর্বোচ্চ ৩০ মিনিট সময় নেয়, যদি এটি একটি 32 বিটি লিনাক্স বিতরণ হত, তবে এটি বেশি সময় নিতে পারত, বাস্তবে, সিপিইউ মেল্টডাউন হতে পারে যেমন সহজভাবে রয়েছে, ক্রস-সংকলিত কোডটি মন্থন এবং ক্র্যাঙ্ক করার জন্য পর্যাপ্ত প্রক্রিয়াকরণ শক্তি নেই, এটি একটি খুব দাবী এবং ট্যাক্সিং প্রক্রিয়া!
এর প্রমাণ।
যে কোনও নেটিভ এআরএম বাইনারি পাওয়া যায় তাতে টানুন /system/bin
বা /system/xbin
উদাহরণস্বরূপ, /system/bin/dalvikvm
এটি ডালভিক ভিএম বাইনারি যা জাভা এবং APK এর উপরের স্তরগুলির জন্য দায়ী।
এখন, কমান্ডটি জারি করে বাইনারি পরীক্ষা করুন: file dalvikvm
এটি যে ধরণের ফাইলের সংক্ষিপ্তসার দেয়, প্রত্যাশিত আউটপুটটি এটি হবে:
ডালভিকভিএম: ইএলএফ 32-বিট এলএসবি এক্সিকিউটেবল, এআরএম, সংস্করণ 1 (এসওয়াইএসভি), গতিশীলভাবে সংযুক্ত (শেয়ারড লিবস ব্যবহার করে), স্ট্রিপড
32-বিট ইএলএফ-এর রেফারেন্সটি লক্ষ্য করুন এবং এটি এআরএম-এ ক্রস-সংকলিত এবং বাইনারি কার্যকর কার্যকর।
ডানদিকে চলুন, আসুন পাওয়া একটি স্থানীয় ভাগ করা লাইব্রেরিটি পরীক্ষা করুন, /system/lib
উদাহরণস্বরূপ /system/lib/libandroid_runtime.so
, এখন ইস্যু করুন file libandroid_runtime.so
, প্রত্যাশিত আউটপুটটি এটি হবে:
libandroid_runtime.so: ELF 32-বিট এলএসবি শেয়ার্ড অবজেক্ট, এআরএম, সংস্করণ 1 (এসওয়াইএসভি), গতিশীলভাবে সংযুক্ত, স্ট্রিপ
আবার লক্ষ্য করুন, এর 32-বিট ইএলএফ, এআরএম-এ ক্রস-সংকলিত এবং একটি ভাগ করা লাইব্রেরি।
হোস্টের ক্রস-সংকলনের মূল কীটি এওএসপি উত্সে পাওয়া যায়, যেমন আদা, জিঞ্জারব্রেড বিল্ডটি মূলত একটি 64 বিট হোস্ট সিস্টেমে তৈরি করা দরকার ছিল, এখানে নিউজ গ্রুপের লিঙ্কটি কীভাবে স্ক্রিপ্টগুলিতে এটি তৈরি করতে প্যাচ করবেন তা উল্লেখ করে। 32 বিট হোস্টের দু'টি প্যাচ রয়েছে, যা এওএসপির জেরিট পর্যালোচনাতে build/core.mk
এবং build/main.mk
( সংযুক্ত ) এখানে পাওয়া যায় found
পরবর্তী ফলস্বরূপ, এই প্যাচটি আইসিএসের বিল্ড স্ক্রিপ্টগুলিতে পৌঁছেছে যেখানে আমি 32 বিবিট প্ল্যাটফর্মে আইসিএস সংকলন করার সুযোগ পেয়েছি যা তৈরি করতে 3 দিন সময় লেগেছিল ( এটি জেডটি ব্লেডের জন্য আইসিএসের একটি বন্দর ছিল )। এখন, প্রয়োজনীয়তাগুলি র্যাম্প করা হয়েছে, আইসিএস থেকে উপরের দিকে এওএসপি তৈরির ক্রস সংকলন সক্ষম করার জন্য আপনার অবশ্যই 64 বিট হোস্টের প্রয়োজন নেই :)