বুট প্রক্রিয়াটি বুট রম থেকে শুরু হওয়া ক্রিয়াগুলির একটি শৃঙ্খল, তারপরে বুটলোডার, কার্নেল, ইনিট , জাইগোট এবং সিস্টেম সার্ভার (বোল্ড নির্দেশ করে Android-নির্দিষ্ট বুট প্রক্রিয়া)। স্বয়ংচালিত-নির্দিষ্ট বুট প্রক্রিয়ায়, রিয়ারভিউ ক্যামেরা (RVC) এর মতো প্রারম্ভিক পরিষেবাগুলি কার্নেল বুট করার সময় শুরু হওয়া আবশ্যক।
অর্ডার | উপাদান | অ্যান্ড্রয়েড | অ্যান্ড্রয়েড অটোমোটিভ |
---|---|---|---|
1 | বুট রম | অভ্যন্তরীণ RAM-এ বুট লোডারের প্রথম পর্যায় লোড করে। | |
2 | বুটলোডার | এর স্মৃতি, নিরাপত্তার জন্য যাচাই করে এবং কার্নেল লোড করে। | |
3 | কার্নেল | ইন্টারপ্ট কন্ট্রোলার, মেমরি সুরক্ষা, ক্যাশে এবং সময়সূচী সেট আপ করে; ব্যবহারকারী স্থান প্রক্রিয়া চালু করে। | রিয়ারভিউ ক্যামেরা (RVC) প্রক্রিয়া কার্নেল বুটের প্রথম দিকে শুরু হয়। প্রক্রিয়া শেষ হওয়ার পরে, VMCU থেকে GPIO RVC ট্রিগার করে ডিসপ্লেতে দেখানোর জন্য। |
4 | প্রক্রিয়া শুরু করুন | init.rc স্ক্রিপ্ট পার্স করে, ফাইল সিস্টেম মাউন্ট করে, জাইগোট চালু করে, সিস্টেম প্রক্রিয়া চালু করে। | গাড়ির HAL (VHAL) মূল পরিষেবার অংশ হিসাবে প্রাথমিক পর্যায়ে শুরু হয়। ServiceManager-এর উপর নির্ভর করে আগের রাজ্যে স্থানান্তর করা যেতে পারে; ভাগ করা লাইব্রেরির উপর নির্ভরতা অপসারণের প্রয়োজন (যেমন init)। |
5 | জাইগোট | Android অবজেক্টের জন্য Java Runtime এবং init মেমরি সেট আপ করে। | |
6 | সিস্টেম সার্ভার | সিস্টেমের প্রথম জাভা উপাদান, মূল অ্যান্ড্রয়েড পরিষেবা শুরু করে। | সমস্ত সিস্টেম পরিষেবা শুরু হওয়ার পরে কারসার্ভিস শুরু হয়। |
বুট সময় অপ্টিমাইজ করুন
আপনার সিস্টেমে বুট সময় উন্নত করতে, নিম্নলিখিত নির্দেশিকা ব্যবহার করুন:
কার্নেল শুধুমাত্র ব্যবহৃত মডিউলগুলি লোড করুন এবং শুধুমাত্র ব্যবহৃত হার্ডওয়্যার উপাদানগুলি শুরু করুন।
init.rc
- ব্লকিং অপারেশনগুলির জন্য দেখুন (কমান্ড আহ্বানের তুলনায় পরিষেবা)।
- যা ব্যবহার করা হয় শুধুমাত্র তা শুরু করুন।
- পরিষেবার জন্য সঠিক অগ্রাধিকার নির্ধারণ করা।
জাইগোট। ক্লাস প্রিলোডিং অপ্টিমাইজেশান (লোড করার জন্য ক্লাসের তালিকা নির্দিষ্ট করুন)।
প্যাকেজ ম্যানেজার
শুধুমাত্র ব্যবহৃত APK অন্তর্ভুক্ত করতে পণ্যের ছবি অপ্টিমাইজ করুন।
সিস্টেম সার্ভার। শুধুমাত্র ব্যবহৃত সিস্টেম পরিষেবাগুলি শুরু করুন।
অপ্টিমাইজেশানে সহায়তার জন্য, Google নিম্নলিখিত সরঞ্জামগুলি সরবরাহ করে:
Logcat এবং dmesg লগ বিশ্লেষণ করতে
packages/services/Car/tools/bootanalyze/bootanalyze.py
ব্যবহার করুন।বুট চলাকালীন প্রক্রিয়াগুলির জন্য I/O রেকর্ড করতে
packages/services/Car/tools/bootio/
ব্যবহার করুন। আপনাকে অবশ্যই নির্দিষ্ট পতাকা সহ কার্নেল কম্পাইল করতে হবে (README.md
ফাইলটি পড়ুন)।
তাড়াতাড়ি পরিষেবা শুরু করুন
বুট সিকোয়েন্সে, কিছু পরিষেবা Android বুট হওয়ার আগে শুরু হতে পারে।
রিয়ারভিউ ক্যামেরা
রিয়ারভিউ ক্যামেরা (RVC) কার্নেলে পরিচালনা করা উচিত। ভিএমসিইউ নেটিভ কার্নেল প্রক্রিয়াটিকে অবহিত করে যখন গাড়িটি বিপরীত দিকে স্থানান্তরিত হয়, তারপরে নেটিভ কার্নেল প্রক্রিয়াটি ডিসপ্লেতে RVC চিত্র প্রদর্শন করে। যানবাহন HAL hardware/libhardware/include/hardware/vehicle_camera.h
ব্যবহার করে RVC নিয়ন্ত্রণ করতে পারে।
যানবাহন HAL (VHAL)
কিছু সিস্টেমের বুট সিকোয়েন্সের প্রাথমিক পর্যায়ে CAN ডেটা (যেমন, গাড়ির গতি, গিয়ার স্ট্যাটাস) পড়তে এবং বাফার করার প্রয়োজন হতে পারে যখন ব্যবহারকারী-স্পেস পরিষেবা শুরু হওয়ার জন্য অপেক্ষা করা হয় (যা পরে বুট সিকোয়েন্সে ঘটে)। এই দৃশ্যের জন্য VNS এবং HAL এবং CAN কন্ট্রোলারগুলিকে খুব তাড়াতাড়ি শুরু করতে হবে, সাধারণত কয়েক সেকেন্ডের মধ্যে।
যে সিস্টেমগুলি দ্রুত
/system
মাউন্ট করতে পারে সেগুলি কেবল পরিষেবা ম্যানেজার চালু করতে পারে তারপর VNS তাড়াতাড়ি।যে সিস্টেমটি দ্রুত মাউন্ট করতে পারে না
/system
তাদের অবশ্যই পরিষেবা ম্যানেজার এবং ভিএনএস উভয়কেই কার্নেল বুট ইমেজে স্থানান্তর করতে হবে এবং সমস্ত নির্ভরশীল লাইব্রেরিগুলিকে স্থিরভাবে লিঙ্ক করতে হবে।