प्रोजेक्ट की खास जानकारी

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