Android Studio for Platform (ASfP) में मौजूद प्रोजेक्ट में, AOSP कोडबेस के लिए आपके वर्कस्पेस को तय करने वाली हर चीज़ शामिल होती है. जैसे, सोर्स कोड और ऐसेट से लेकर टेस्ट कोड और बिल्ड कॉन्फ़िगरेशन तक.
नया प्रोजेक्ट शुरू करने पर, ASfP आपकी सभी फ़ाइलों के लिए ज़रूरी स्ट्रक्चर बनाता है. साथ ही, उन्हें प्रोजेक्ट विंडो में दिखाता है. विंडो खोलने के लिए, व्यू > टूल विंडो > प्रोजेक्ट चुनें.
इस पेज पर, आपके प्रोजेक्ट कॉन्फ़िगरेशन में मौजूद मुख्य कॉम्पोनेंट के बारे में खास जानकारी दी गई है.
प्रोजेक्ट कॉन्फ़िगरेशन (.asfp-project)
ASfP प्रोजेक्ट के कॉन्फ़िगरेशन को .asfp-project फ़ाइल कंट्रोल करती है. यह फ़ाइल, आपके प्रोजेक्ट डायरेक्ट्री के रूट में मौजूद होती है. यह YAML फ़ाइल, यह कंट्रोल करने के लिए ज़रूरी है कि आपके प्रोजेक्ट में क्या शामिल किया जाए और अहम सुविधाएं कैसे काम करें. इसे मुख्य मेन्यू में जाकर खोला जा सकता है. इसके लिए, ASfP > प्रोजेक्ट > कॉन्फ़िगरेशन खोलें पर जाएं. इसके अलावा, इसे प्रोजेक्ट व्यू में जाकर भी खोला जा सकता है.
प्रोजेक्ट बनाने पर, उपयोगकर्ता के दिए गए स्पेसिफ़िकेशन के आधार पर कॉन्फ़िगरेशन बनाया जाता है. कॉन्फ़िगरेशन में मौजूद सभी पैरामीटर में कभी भी बदलाव किया जा सकता है. इससे प्रोजेक्ट के स्पेसिफ़िकेशन में बदलाव किया जा सकता है. उदाहरण के लिए, प्रोजेक्ट डायरेक्ट्री या मॉड्यूल को अपडेट करने के लिए. इसके बाद, बदलावों को लागू करने के लिए सिंक करना ज़रूरी है.
कॉन्फ़िगरेशन पैरामीटर
.asfp-project फ़ाइल में, इन मुख्य पैरामीटर को कॉन्फ़िगर किया जा सकता है:
repo
ज़रूरी है
आपके Android प्लैटफ़ॉर्म की रिपॉज़िटरी के रूट का ऐब्सलूट पाथ.
repo: /path/to/aosp
lunch
ज़रूरी है
लंच का वह टारगेट जिसे आपके प्रोजेक्ट के साथ जोड़ा जाएगा. इसका इस्तेमाल, Soong के सभी बिल्ड ऐक्शन के लिए किया जाता है. इनमें सिंक और काम के रन कॉन्फ़िगरेशन शामिल हैं.
lunch: your-product-variant-userdebug
directories
ज़रूरी नहीं है
ऐसी डायरेक्ट्री जिन्हें आपको अपने प्रोजेक्ट में शामिल करना है या उनसे बाहर रखना है. ये repo रूट के हिसाब से रिलेटिव पाथ होने चाहिए.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
ज़रूरी नहीं है
मॉड्यूल को अपने प्रोजेक्ट में शामिल या उससे बाहर रखा जा सकता है. ये पहले से तय किए गए directories के साथ काम करते हैं. पूरे और छोटे नाम, दोनों इस्तेमाल किए जा सकते हैं.
modules:
include:
- SystemUIGoogle
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
ज़रूरी नहीं है
ASfP, प्रोडक्शन और टेस्ट सोर्स के बीच अंतर करने की कोशिश करता है. हालांकि, कुछ मामलों में आपको टेस्ट सोर्स के बारे में साफ़ तौर पर बताना पड़ सकता है. इन्हें repo रूट के हिसाब से रिलेटिव पाथ के तौर पर उपलब्ध कराएं. बताए गए पाथ की सबडायरेक्ट्री में मौजूद सभी सोर्स रूट को टेस्ट के तौर पर मार्क किया जाएगा.
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
ज़रूरी नहीं है
Java के लिए सहायता, डिफ़ॉल्ट रूप से शामिल होती है. अन्य भाषाओं के लिए सहायता जोड़ी जा सकती है.
ASfP, C/C++ (cpp) और Rust (rust) के साथ भी काम करता है.
other_languages:
- cpp
- rust
build_config
ज़रूरी नहीं है
इस पैरामीटर की मदद से, Soong बिल्ड इवेंट में कस्टम फ़्लैग या एनवायरमेंट वैरिएबल जोड़े जा सकते हैं. यह कॉन्फ़िगरेशन, IDE में उन सभी कार्रवाइयों पर लागू होता है जिनकी वजह से Soong बिल्ड होता है. इनमें सिंक और रन कॉन्फ़िगरेशन शामिल हैं.
build_config:
flags:
- -j64
env:
SOONG_ALLOW_MISSING_DEPENDENCIES: true
MY_CUSTOM_VAR: value