Android के कोड के साथ काम करने के लिए, Git (वर्शन कंट्रोल करने वाला ओपन-सोर्स सिस्टम) और Repo (Google का बनाया गया, रिपॉज़िटरी को मैनेज करने वाला टूल, जो Git पर काम करता है), दोनों का इस्तेमाल करना ज़रूरी है. सोर्स कंट्रोल करने के वर्कफ़्लो के बारे में जानकारी पाने के लिए, नियमित तौर पर किए जाने वाले कामों की खास जानकारी देखें. जैसे, समीक्षा के लिए बदलाव अपलोड करना.
Git
Git, बड़े प्रोजेक्ट को मैनेज करता है. ये प्रोजेक्ट, कई रिपॉज़िटरी में डिस्ट्रिब्यूट किए जाते हैं. Android, स्थानीय कार्रवाइयों के लिए Git का इस्तेमाल करता है. जैसे, स्थानीय ब्रांचिंग, कमिट, डिफ़, और बदलाव. Android प्रोजेक्ट सेट अप करने में आने वाली चुनौतियों में से एक यह तय करना था कि बाहरी कम्यूनिटी को बेहतर तरीके से कैसे मदद की जाए. इसमें, शौकिया तौर पर काम करने वाली कम्यूनिटी से लेकर, बड़े ओईएम तक शामिल हैं. ये ओईएम, मास-मार्केट में इस्तेमाल होने वाले डिवाइस बनाते हैं. हम चाहते थे कि कॉम्पोनेंट को बदला जा सके. साथ ही, हम यह भी चाहते थे कि दिलचस्प कॉम्पोनेंट, Android के बाहर भी काम करें. हमने सबसे पहले, डिस्ट्रिब्यूटेड रिविज़न कंट्रोल सिस्टम चुना. इसके बाद, हमने Git को चुना.
Git के बारे में ज़्यादा जानकारी के लिए, Git का यह दस्तावेज़ देखें.
Repo
Repo ज़रूरत पड़ने पर Git की रिपॉज़िटरी को एक साथ जोड़ता है. साथ ही, Gerrit रिविज़न कंट्रोल सिस्टम पर अपलोड करता है. इसके अलावा, यह Android डेवलपमेंट वर्कफ़्लो के कुछ हिस्सों को ऑटोमेट करता है.
Repo लॉन्चर, एक Python स्क्रिप्ट उपलब्ध कराता है. यह स्क्रिप्ट, चेकआउट को शुरू करती है और Repo टूल का पूरा वर्शन डाउनलोड करती है. Repo टूल का पूरा वर्शन, Android के सोर्स कोड के चेकआउट में शामिल होता है. यह डिफ़ॉल्ट रूप से, $SRCDIR/.repo/repo/... में मौजूद होता है. साथ ही, यह डाउनलोड किए गए Repo लॉन्चर से फ़ॉरवर्ड किए गए कमांड लेता है.
Repo, Git की जगह नहीं लेता. यह सिर्फ़ Android के संदर्भ में, Git के साथ काम करना आसान बनाता है. Repo, मेनिफ़ेस्ट फ़ाइलों
का इस्तेमाल करके, Git के प्रोजेक्ट को Android के सुपरप्रोजेक्ट में इकट्ठा करता है. repo कमांड को अपने पाथ में कहीं भी रखा जा सकता है. यह एक एक्ज़ीक्यूटेबल Python स्क्रिप्ट है. Android की सोर्स फ़ाइलों के साथ काम करते समय, Repo का इस्तेमाल नेटवर्क पर की जाने वाली कार्रवाइयों के लिए किया जा सकता है. जैसे, Repo की एक वर्किंग डायरेक्ट्री का इस्तेमाल करना.
ज़्यादातर मामलों में, Repo के बजाय Git का इस्तेमाल किया जा सकता है. इसके अलावा, जटिल कमांड बनाने के लिए, Repo और Git के कमांड को मिलाकर भी इस्तेमाल किया जा सकता है. हालांकि, नेटवर्क पर की जाने वाली बुनियादी कार्रवाइयों के लिए Repo का इस्तेमाल करने से, आपका काम बहुत आसान हो जाता है. Repo के बारे में ज़्यादा जानकारी के लिए, Repo कमांड रेफ़रंस, Repo README, Preupload Hooks (Repo में चालू किए जा सकने वाले टेस्ट) देखें. साथ ही, AOSP में मौजूद सामान्य दस्तावेज़ देखें.
git-repo- downloads से Repo लॉन्चर डाउनलोड और इंस्टॉल करने के लिए, Repo इंस्टॉल करना लेख पढ़ें.
Gerrit
Gerrit वेब पर आधारित कोड की समीक्षा करने वाला एक सिस्टम है. इसका इस्तेमाल, Git का इस्तेमाल करने वाले प्रोजेक्ट के लिए किया जाता है. Gerrit, Git के ज़्यादा केंद्रीकृत इस्तेमाल को बढ़ावा देता है. इसके लिए, यह सभी अनुमति वाले उपयोगकर्ताओं को बदलाव सबमिट करने की अनुमति देता है. अगर ये बदलाव, कोड की समीक्षा में पास हो जाते हैं, तो इन्हें अपने-आप मर्ज कर दिया जाता है. इसके अलावा, Gerrit, समीक्षा करने की प्रोसेस को आसान बनाता है. यह ब्राउज़र में, बदलावों को एक साथ दिखाता है और इनलाइन टिप्पणियां करने की सुविधा देता है.
Android Gerrit की समीक्षा करने वाला इंटरफ़ेस, android-review.googlesource.com पर और कोड नेविगेशन इंटरफ़ेस, android.googlesource.com पर देखें.
Android Code Search
Android Code Search की मदद से, AOSP को बिना डाउनलोड किए खोजा जा सकता है. AOSP का सोर्स कोड देखने, ओपन सोर्स ब्रांच के बीच स्विच करने, और क्रॉस-रेफ़रंस पर नेविगेट करने के लिए, Code Search का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Code Search दस्तावेज़ के लिए, Google Developers साइट देखें.
अन्य टूल
Android Studio, Android ऐप्लिकेशन डेवलपमेंट के लिए, आधिकारिक इंटिग्रेटेड डेवलपमेंट एनवायरमेंट (आईडीई) है.
Android डीबग ब्रिज (एडीबी) की मदद से, अपने डेवलपमेंट वर्कस्टेशन को सीधे Android पर चलने वाले डिवाइस से कनेक्ट किया जा सकता है. इससे पैकेज इंस्टॉल किए जा सकते हैं और अपने बदलावों का आकलन किया जा सकता है.
AOSP डेवलपमेंट के लिए, Android Studio for Platform (ASfP) का इस्तेमाल करें.