मुख्य कंटेंट तक स्किप करें

डेवलपर दस्तावेज़

यह दस्तावेज़ 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_DISTANCE 0 से अधिक है।

विकास गाइड

पूर्वापेक्षाएँ

  • Android Studio Ladybug (या नया)।
  • Kotlin 2.0+ (प्रोजेक्ट नए Compose Compiler Gradle प्लगइन का उपयोग करता है)।
  • न्यूनतम SDK: 21 (Android 5.0)।

एक नई श्रेणी जोड़ना

पैरामीटर समूहीकरण को जोड़ने या संशोधित करने के लिए, CameraViewModel.kt में getCategoryForKey() विधि को अपडेट करें। यह श्रेणियों को सौंपने के लिए कैमरा कुंजी नामों पर स्ट्रिंग मिलान का उपयोग करता है।

थीम अपडेट करना

रंगों को Color.kt में समायोजित किया जा सकता है। ऐप डार्क मोड में सबसे अच्छा दिखने के लिए डिज़ाइन किया गया है; लाइट पैलेट में किसी भी बदलाव का सावधानीपूर्वक परीक्षण किया जाना चाहिए।