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