Dashcam অ্যাপটি AAOS-এর সাথে একীভূত করার জন্য ডিজাইন করা হয়েছে, উন্নত নিরাপত্তা এবং নিরাপত্তার জন্য ড্রাইভারদের ভিডিও রেকর্ডিং ক্ষমতা প্রদান করে। এই নির্দেশিকাটি একটি সফল বাস্তবায়ন নিশ্চিত করার জন্য প্রযুক্তিগত প্রয়োজনীয়তা, একীকরণের পদক্ষেপ এবং সর্বোত্তম অনুশীলনের রূপরেখা দেয়।
পূর্বশর্ত
আপনি চালিয়ে যাওয়ার আগে, এই পূর্বশর্তগুলি পূরণ হয়েছে তা নিশ্চিত করুন:
SDK:
- SDK 31 বা উচ্চতর প্রয়োজন৷
হার্ডওয়্যার:
- EVS বা Camera2 ক্যামেরা AAOS-এর জন্য উপলব্ধ।
- পর্যাপ্ত অভ্যন্তরীণ স্টোরেজ স্পেস বা অপসারণযোগ্য বাহ্যিক স্টোরেজের জন্য সমর্থন
ভিডিও রেকর্ডিংয়ের জন্য উপলব্ধ হতে হবে।
সফ্টওয়্যার প্রয়োজনীয়তা:
- Unbundled সমর্থন. আরও জানতে, Unbundled Apps দেখুন।
- অনুমতি. ড্যাশক্যামের সিস্টেমের অনুমতি প্রয়োজন।
সোর্স কোড পান
এন্ড্রয়েড কোড অনুসন্ধানে সোর্স কোড খুঁজুন:
উত্স কোড এই তিনটি মডিউল প্রদান করা হয়:
- ড্যাশক্যাম সার্ভিস। স্ট্রিমিং, রেকর্ডিং এবং ট্রিগারিং লজিক।
- ড্যাশক্যাম ম্যানেজার। Dashcam পরিষেবার সাথে সংযোগ করে এবং ক্লায়েন্টদের কাছে একটি স্থিতিশীল API প্রকাশ করে
- ড্যাশক্যাম অ্যাপ। ড্যাশক্যাম ম্যানেজার API ব্যবহার করে ড্যাশক্যাম অ্যাপ্লিকেশনটি উল্লেখ করুন
ড্যাশক্যাম তৈরি করুন
Dashcam তৈরি করতে Soong বা Gradle ব্যবহার করুন।
সুং
Soong থেকে তৈরি করার আগে, .cxx
ডিরেক্টরি পরিষ্কার করতে ভুলবেন না।
সুং-এ:
mma DashcamService DashcamManager-lib DashcamApp
APKগুলি out/target/product/[lunch-target]/system/priv-app/
অবস্থিত
গ্রেডল
গ্রেডলে:
./gradlew :dashcam-app:assemble
./gradlew :dashcam-manager:assemble
./gradlew :dashcam-service:assemble
APKগুলি out/aaos-apps-gradle-build/
এ অবস্থিত
গ্রেডলের সাথে ড্যাশক্যাম তৈরির জন্য বিস্তারিত নির্দেশাবলী README
ফাইলে দেওয়া আছে।
অনুমতি
Dashcam পরিষেবা এবং Dashcam অ্যাপের জন্য বেশ কিছু সিস্টেম অনুমতি প্রয়োজন৷
এই অনুমতিগুলি মঞ্জুর করার সবচেয়ে সোজা উপায় হল ব্লুপ্রিন্ট বা মেক ব্যবহার করে একটি পূর্বনির্মাণ সেটআপে অন্তর্ভুক্ত করা।
ব্লুপ্রিন্টে:
Android.bp
android_app_import {
name: "DashcamApp-prebuilt",
apk: "DashcamApp.apk",
privileged: true,
certificate: "platform",
required: ["allowed_privapp_com.android.car.dashcam"],
}
মেক ইন:
dashcam.mk
PRODUCT_PACKAGES += \
DashcamApp
PRODUCT_COPY_FILES :=\
vendor/[path-to-vendor-prebuilts]/apps/CarCatApp/allowed_privapp_com.android.car.dashcam:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/com.android.car.dashcam.xml \
allowed_privapp_com.android.car.dashcam.xml
নামে একটি অনুমতি ফাইল তৈরি করুন:
<permissions>
<privapp-permissions package="com.android.car.dashcam.service">
<permission name="" />
</privapp-permissions>
<privapp-permissions package="com.android.car.dashcam.app">
<permission name="" />
</privapp-permissions>
</permissions>
ম্যানিফেস্ট থেকে অনুমতি ফাইলে অনুমতি যোগ করুন।
আরও জানতে, প্রিবিল্ট ইন একটি সিস্টেম ইমেজ দেখুন।
সাইডলোড
অনুমতি ফাইল সাইডলোড করা যেতে পারে. প্রি-বিল্ট ড্যাশক্যাম কনফিগার করা না থাকলে এই পদ্ধতিটি ব্যবহার করুন।
পূর্বনির্মাণ বিভাগে তৈরি অনুমতি ফাইল ব্যবহার করে, চালান:
adb root
adb remount
adb push allowed_privapp_com.android.car.dashcam.xml /etc/permissions/allowed_privapp_com.android.car.dashcam.xml
adb shell chmod 644 /etc/permissions/allowed_privapp_com.android.car.dashcam.xml
ওভারলে কনফিগার করুন
ড্যাশক্যাম পরিষেবার ওভারলেয়েবল কনফিগারেশন রয়েছে।
পরিষেবা কনফিগারেশন
dashcam-service/res/values/config.xml
এই ফাইলটিতে পরিষেবার জন্য কনফিগারেশন রয়েছে:
-
allow_internal_storage
অভ্যন্তরীণ সঞ্চয়স্থানে রেকর্ডিংয়ের অনুমতি দিন -
save_location
রেকর্ডিং সংরক্ষণ করার জন্য ডিরেক্টরির নাম। ড্যাশক্যামে ডিফল্ট -
max_storage_mb
কত স্টোরেজ ড্যাশক্যাম ব্যবহার করার অনুমতি দিতে হবে -
max_age_days
ছাঁটাই করার আগে ফাইলটি কতক্ষণ ধরে রাখতে হবে -
boot_startup_enabled
ড্যাশক্যাম পরিষেবা ডিভাইস বুট আপ শুরু হয় -
notifications_on
রেকর্ডিং শুরু হলে বিজ্ঞপ্তি দেখান -
native_recorder
NDK API ব্যবহার করুন, ডিফল্ট Java API-তে -
native_renderer
NDK API ব্যবহার করুন, ডিফল্ট Java API-তে -
default_app_component
ডিফল্ট ড্যাশক্যাম অ্যাপ্লিকেশন, এই অ্যাপ্লিকেশনটিতে বিশ্বব্যাপী রেকর্ডিং অ্যাক্সেস এবং গ্লোবাল ট্রিগার অ্যাক্সেস রয়েছে - IRECORdingModule বাস্তবায়নের
recording_module
ComponentName - IRecordingModule বাস্তবায়নের
streaming_module
ComponentName - IRRecordingModule বাস্তবায়নের
trigger_module
ComponentName
একটি ট্রিগার কনফিগার করুন
কনফিগারেশন ট্রিগার করতে, চালান:
dashcam-service/src/assets/config.xml
এই ফাইলটিতে ট্রিগার রেকর্ড করার জন্য কনফিগারেশন রয়েছে। ট্রিগার কনফিগারেশন দুটি অংশ নিয়ে গঠিত:
প্রি রোল আইডি। ক্যামেরার ID হয় EVS বা Camera2 যা সমর্থিত তার উপর নির্ভর করে।
prerollLengthMs
প্রতিটি ইভেন্টের সাথে সংরক্ষিত প্রি রোলের দৈর্ঘ্য।
<Preroll>
<Camera
ID="0"
prerollLengthMs="10000" />
</Preroll>
এই উদাহরণটি 10 সেকেন্ডের প্রি রোল সহ ক্যামেরা আইডি 0 দেখায়।
name
অনন্য ট্রিগার নামসমর্থিত কিসের উপর নির্ভর করে ক্যামেরার
camera
আইডি হয় EVS বা Camera2সেন্সর
sensorPropertyID
আইডি সেন্সরUI-তে প্রদর্শিত ট্রিগারের
description
recordingLengthMs
দৈর্ঘ্য মিলিসেকেন্ডে রেকর্ড করার জন্য ইভেন্টের পরে সময়কাল।sensorType
কোন ধরনের সেন্সর। বিকল্পগুলি হলVHAL
বাSENSOR_MANAGER
sensorValueType
সেন্সর দ্বারা উত্পাদিত ডেটার প্রকার। বিকল্পগুলি হলINT
,INT_ARRAY
,FLOAT
,FLOAT_ARRAY
, এবংBOOLEAN, STRING
thresholdType
কিভাবে সেন্সর মান মূল্যায়ন. বিকল্পগুলি হলAVERAGE
,BOOLEAN
,EQUALS
,LEAP
,LEAP_AVERAGE
,LEAP_OVER
,PEAK
, এবংPEAK_HOLD
thresholdValue
থ্রেশহোল্ড টাইপের সাথে সেন্সরের মান তুলনা করার জন্য মানthresholdExtra
কিছু থ্রেশহোল্ড প্রকারের জন্য প্রয়োজন অতিরিক্ত মান যেমনAVERAGE
জন্য পরিসীমাtriggerCooldown
মিলসেকেন্ডে এই ধরনের আরেকটি ইভেন্ট ফায়ার করার আগে কুল-ডাউন করুন।
<EventTriggers>
<EventTrigger
name="AEB"
camera="1 2"
sensorPropertyID="289411073"
description="Automatic Emergency Braking"
recordingLengthMs="20000"
sensorType="VHAL"
sensorValueType="INT"
thresholdType="EQUALS"
thresholdValue="2"
triggerCooldown="5000"/>
</EventTriggers>
এই উদাহরণটি একটি VHAL সেন্সর দেখায় যা পূর্ণসংখ্যার মান তৈরি করে যেখানে আমরা থ্রেশহোল্ড মানের সাথে একটি সমতা তুলনা করি। সমতা শর্ত পূরণ হলে, ক্যামেরা 1 এবং 2 এ একটি ট্রিগার রেকর্ড করে।
<EventTrigger
name="SPEED"
camera="1 2 3 4"
sensorPropertyID="291504648"
description="Over speed"
recordingLengthMs="10000"
sensorType="VHAL"
sensorValueType="FLOAT"
thresholdType="AVERAGE"
thresholdValue="20.0"
thresholdExtra="1000"
triggerCooldown="2000"/>
এই উদাহরণটি একটি VHAL সেন্সর দেখায় যা ফ্লোট মান তৈরি করে যেখানে আমরা থ্রেশহোল্ড মানের বিপরীতে নমুনার একটি পরিসরের উপর গড় মূল্যায়ন করি। নমুনা পরিসীমা thresholdExtra
সেট করা হয়েছে
মডিউল
Dashcam পরিষেবা তিনটি মডিউল নিয়ে গঠিত:
স্ট্রিমে ক্যামেরা থেকে স্ট্রীম পরিচালনা করার যুক্তি রয়েছে।
রেকর্ডিং রেকর্ডিং পরিচালনার জন্য যুক্তি ধারণ করে.
ট্রিগারে সেন্সর ডেটা থেকে রেকর্ডিং ট্রিগার করার যুক্তি রয়েছে। মডিউল APIগুলি তাদের সংশ্লিষ্ট ইন্টারফেসে সংজ্ঞায়িত করা হয়েছে,
IStreamModule
,IRecorderModule
, এবংITriggerModule
এবংDashcamServiceAPI
মাধ্যমে DashcamManager-এর কাছে প্রকাশ করা হয়েছে
ওভারলে মডিউল
মডিউল বাস্তবায়ন কোথায় পাওয়া যাবে তা নির্ধারণ করতে Dashcam পরিষেবা dashcam-service/res/values/config.xml
ব্যবহার করে। আমরা প্রতিটি মডিউলের জন্য ডিফল্ট বাস্তবায়ন প্রদান করি। যাইহোক, প্রতিটি মডিউল সংশ্লিষ্ট কনফিগার মানতে তার উপাদান সেট করে ওভারলেড করা যেতে পারে।
IRecorderModule
এর OEM বাস্তবায়ন উপাদানের নামrecording_module
সেট করুনস্ট্রিমিং মডিউলে
IStreamModule
এর OEM বাস্তবায়ন উপাদানের নাম সেট করুন।ITriggerModule
এর OEM বাস্তবায়ন উপাদানের নামtrigger_module
এ সেট করুনরানটাইমে, ড্যাশক্যাম পরিষেবা প্রতিটি মডিউলের জন্য
config.xml
এ সেট করা কম্পোনেন্টের নামটি তাৎক্ষণিক করে।
অ্যাপ বিকাশকারীর গাইড
Dashcam একটি উত্পাদন প্রস্তুত এবং কাস্টমাইজযোগ্য ড্যাশক্যাম সমাধান। Dashcam Dashcam service
সাথে যোগাযোগ করতে Dashcam Manager APIs ব্যবহার করে। Dashcam Manager API IDashcamManager
এ পাওয়া যাবে। প্রয়োজনীয় অনুমতি সহ যেকোন অ্যাপ ড্যাশক্যাম ম্যানেজার ব্যবহার করতে পারে।
অনুমতি
Camera2 এবং EVS সমর্থিত।
পূর্বনির্মাণ
এই অনুমতিগুলি দেওয়ার সবচেয়ে সহজ উপায় হল ব্লুপ্রিন্ট বা মেক ব্যবহার করে পূর্বনির্মাণ সেটআপে তাদের অন্তর্ভুক্ত করা।
ওভারলেইউআই
অ্যাপটি রানটাইম রিসোর্স ওভারলে দিয়ে কাস্টমাইজ করা যেতে পারে। আরও জানতে, রানটাইম রিসোর্স ওভারলে দেখুন। overlayable উপাদানের তালিকা দেখতে, overlayable.xml দেখুন।
ট্রিগার প্রসারিত করুন
DashcamManager.addTrigger()
এ কল দিয়ে বর্তমান সেশনের জন্য ট্রিগার বাড়ানো যেতে পারে। যোগ করা ট্রিগার শুধুমাত্র বর্তমান সেশনের জন্য টিকে থাকে।
অটোস্টার্ট
অটোস্টার্ট রেকর্ডিং সমর্থিত নয়। যাইহোক, DashcamManager.startRecording()
এ কল দিয়ে একটি ম্যানুয়াল ট্রিগার onBoot
চালু করা যেতে পারে
সর্বোত্তম অনুশীলন
স্টোরেজ। বহিরাগত অপসারণযোগ্য স্টোরেজ অত্যন্ত সুপারিশ করা হয়.
ব্যবহারকারীর অভিজ্ঞতা। AAOS ডিজাইন নির্দেশিকা মেনে, স্বজ্ঞাত এবং ব্যবহারকারী-বান্ধব হতে Dashcam অ্যাপের UI ডিজাইন করুন।
কর্মক্ষমতা অপ্টিমাইজেশান. রিসোর্স ব্যবহার কমাতে এবং AAOS-এ মসৃণ অপারেশন নিশ্চিত করতে অ্যাপের কর্মক্ষমতা অপ্টিমাইজ করুন।
সমস্যা সমাধান
ক্যামেরা সংযোগ সংক্রান্ত সমস্যা। EVS বা Camera2 অবশ্যই সমর্থিত এবং AAOS IVI-এ উপলব্ধ।
স্টোরেজ ত্রুটি। উপলব্ধ স্টোরেজ স্থান যাচাই করুন এবং রেকর্ডিং পরিচালনা করুন। বাহ্যিক সঞ্চয়স্থান অত্যন্ত বাঞ্ছনীয় কারণ অভ্যন্তরীণ সঞ্চয়স্থান ব্যবহার করে অকালে স্টোরেজ ফুরিয়ে যেতে পারে।