डेवलपर दस्तावेज़
यह दस्तावेज़ Android Camera Parameters एप्लिकेशन, इसकी वास्तुकला और विकास दिशानिर्देशों का तकनीकी अवलोकन प्रदान करता है।
प्रोजेक्ट अवलोकन
यह एप्लिकेशन Android Camera2 CameraCharacteristics के निरीक्षण के लिए एक नैदानिक उपकरण है। यह डिवाइस पर सभी कैमरा लेंसों के लिए हार्डवेयर स्तर, क्षमताओं और कच्चे पैरामीटर मानों का पता लगाने के लिए एक आधुनिक, उपयोगकर्ता के अनुकूल इंटरफेस प्रदान करता है।
वास्तुकला
प्रोजेक्ट MVVM (Model-View-ViewModel) वास्तुशिल्प पैटर्न का पालन करता है और UI लेयर के लिए Jetpack Compose का उपयोग करके बनाया गया है।
मुख्य घटक
CameraParamsActivity
एप्लिकेशन का एकमात्र प्रवेश बिंदु।
- रनटाइम अनुमतियों (CAMERA) को संभालता है।
setContentके माध्यम से Compose UI को प्रारंभ करता है।CameraParamsThemeको होस्ट करता है।
CameraViewModel
UI के लिए केंद्रीय स्थिति प्रबंधक।
UiStateबनाए रखता है जिसमें कैमरों की सूची, चयनित इंडेक्स, वर्गीकृत पैरामीटर और खोज क्वेरी शामिल है।- फीचर डिटेक्शन: RAW समर्थन, OIS और मैनुअल एक्सपोज़र जैसी हार्डवेयर क्षमताओं को गतिशील रूप से निर्धारित करने के लिए
detectFeatureFlags()में तर्क शामिल है। - वर्गीकरण: बेहतर पठनीयता के लिए सैकड़ों Camera2 कुंजियों को तार्किक खंडों (सेंसर, लेंस, आदि) में समूहित करता है।
CameraParamsHelper
Android CameraManager के चारों ओर एक उपयोगिता रैपर।
- विशिष्ट आईडी के लिए
CameraCharacteristicsप्राप्त करता है। - जटिल कैमरा प्रकारों के लिए विशेष स्वरूपण प्रदान करता है (उदाहरण के लिए,
IntArrayमोड को मानव-पठनीय स्ट्रिंग में परिवर्तित करना)।
UI लेयर (Jetpack Compose)
UI को कड़ाई से लागू डार्क थीम के साथ Material 3 का उपयोग करके बनाया गया है।
नेविगेशन संरचना
ऐप MainScreen.kt में प्रबंधित androidx.navigation.compose का उपयोग करता है।
| स्क्रीन | जिम्मेदारी |
|---|---|
| अवलोकन | सारांश कार्ड, हार्डवेयर स्तर और मुख्य विशेषता चिप्स दिखाने वाला उच्च-स्तरीय डैशबोर्ड। |
| श्रेणियां | खोज फ़िल्टरिंग के साथ अनुभाग द्वारा समूहीकृत सभी मापदंडों की विस्तार योग्य सूची। |
| Raw (JSON) | सभी कैमरा संपत्तियों का सिंटैक्स-हाइलाइट किया गया JSON प्रतिनिधित्व। |
| विवरण | एकल पैरामीटर के लिए केंद्रित दृश्य, स्वरूपित मान और कच्चा डेटा दिखाता है। |
स्टाइलिंग
- थीम:
Theme.ktमें परिभाषित। - रंग: हाइलाइट्स और प्राथमिक कार्यों के लिए उपयोग किया जाने वाला प्राथमिक रंग
#7B61FF(बैंगनी)। - सतह: कार्ड के लिए
#1E1F23वेरिएंट के साथ डार्क बैकग्राउंड#121417।
मुख्य तर्क
गतिशील फीचर डिटेक्शन
डैशबोर्ड पर "प्रमुख विशेषताएं" चिप्स स्थिर नहीं हैं। उन्हें CameraViewModel.detectFeatureFlags() में गणना की जाती है:
- RAW:
REQUEST_AVAILABLE_CAPABILITIES_RAWके माध्यम से जांचा गया। - OIS: पता लगाया गया यदि
LENS_INFO_AVAILABLE_OPTICAL_STABILIZATIONमेंONहै। - मैनुअल एक्सपोज़र: उपलब्ध यदि
CONTROL_AE_MODE_OFFसमर्थित है। - मैनुअल फोकस: सक्षम यदि
LENS_INFO_MINIMUM_FOCUS_DISTANCE0 से अधिक है।
विकास गाइड
पूर्वापेक्षाएँ
- Android Studio Ladybug (या नया)।
- Kotlin 2.0+ (प्रोजेक्ट नए Compose Compiler Gradle प्लगइन का उपयोग करता है)।
- न्यूनतम SDK: 21 (Android 5.0)।
एक नई श्रेणी जोड़ना
पैरामीटर समूहीकरण को जोड़ने या संशोधित करने के लिए, CameraViewModel.kt में getCategoryForKey() विधि को अपडेट करें। यह श्रेणियों को सौंपने के लिए कैमरा कुंजी नामों पर स्ट्रिंग मिलान का उपयोग करता है।
थीम अपडेट करना
रंगों को Color.kt में समायोजित किया जा सकता है। ऐप डार्क मोड में सबसे अच्छा दिखने के लिए डिज़ाइन किया गया है; लाइट पैलेट में किसी भी बदलाव का सावधानीपूर्वक परीक्षण किया जाना चाहिए।