2012-11-14 14 views
5

मैंने official instructions के अनुसार पूर्ण 4.0.1_r1 एंड्रॉइड स्रोत कोड भंडार डाउनलोड किया है। क्या कोई मुझे रिपोजिटरी की मूल नामकरण योजना को समझने में मदद कर सकता है?एंड्रॉइड स्रोत कोड भंडार की मूल नामकरण योजना को समझना

उदाहरण के लिए, भंडार की मूल निर्देशिका में, "ढांचे" निर्देशिका वास्तव में क्या है? यह "पैकेज" निर्देशिका से अलग कैसे है?

उत्तर

6

मैंने पिछले कुछ वर्षों में एंड्रॉइड स्रोत कोड के आसपास काफी समय बिताया है, तो मुझे रूट में विभिन्न फ़ोल्डरों को समझाते हुए एक शॉट लेना चाहिए। ये मोटे तौर पर (Android संस्करण पर थोड़ा निर्भर करता है) कर रहे हैं:

  • बायोनिक

    • मानक सी का इस्तेमाल किया और विशेष रूप से Android के लिए विकसित पुस्तकालय।
  • बूट

    • बूटलोडर (जो डिवाइस निर्माण सामान्य रूप से प्रदान करता है) और वसूली आवेदन जो जब फोन पुनर्प्राप्ति मोड में हटा दिया गया है निष्पादित है शामिल हैं।
  • निर्माण

    • एंड्रॉयड बहुत अनोखा मॉड्यूलर निर्माण प्रणाली, जो अपने आप साधारण मेकअप फ़ाइलों के शीर्ष पर बनाया गया है है। उदाहरण के लिए build/target/products में आप lunch लॉन्च करते समय देखे जाने वाले सभी जेनेरिक बिल्ड लक्ष्य पाएंगे।
  • सीटीएस

    • Compatibility Test Suite। जब कोई डिवाइस विनिर्माण करता है तो अपने डिवाइस को प्रमाणित करना चाहता है (और इस प्रकार Google Play और अन्य स्वामित्व वाले ऐप्स प्राप्त करें) उन्हें सीटीएस पास करने की आवश्यकता है। सीटीएस का स्रोत इस निर्देशिका में निहित है।
  • Dalvik

    • The dalvik virtual machine। एंड्रॉइड ढांचे के बेहतर हिस्से के साथ-साथ सभी ऐप्स के लिए जावा का उपयोग करता है। चूंकि प्रत्येक ऐप अपने स्वयं के वर्चुअल मशीन में अपनी खुद की यूआईडी के तहत अपनी प्रक्रिया के रूप में चलता है, इसलिए वर्चुअल मशीन के पास एक छोटी सी स्मृति पदचिह्न होना चाहिए, इसलिए एंड्रॉइड ने जावा के लिए कस्टम वर्चुअल मशीन का उपयोग करना चुना है जिसे दल्विक कहा जाता है। दालविक का स्रोत यहां रखा गया है।
  • विकास

    • मैं इस भंडार वास्तव में उपयोग नहीं किया है, लेकिन यह एंड्रॉयड एप्लिकेशन विकसित यहाँ रखा जाता है के लिए सामान का समर्थन लगता है।
  • डिवाइस

    • प्रत्येक डिवाइस विक्रेता सब सामान है कि उनके विशिष्ट उपकरणों यहां परिभाषित करता है डाल दिया। उदाहरण के लिए आप devices/{yourname}/products/{yourdevice}.mk प्रदान कर सकते हैं कि यह निर्धारित करने के लिए कि कौन से ऐप्स आपके डिवाइस के लिए बनाए जाएंगे (साथ ही कुछ अन्य चीजें)। यह {yourdevice} नामक लंच मेनू में एक प्रविष्टि जोड़ता है जिसे आप बना सकते हैं।
  • डॉक्स

    • जहां तक ​​मैं समझता हूँ कि यह वास्तव में http://source.android.com का स्रोत है।
  • बाहरी

    • लगभग सभी तृतीय पक्ष परियोजनाओं के कि एंड्रॉयड में पुल और जो आधार एंड्रॉयड लिनक्स ओएस यहाँ स्थित हैं बनाता है। उन्हें अपने गिट भंडारों में बनाए रखा जाता है, जो अपस्ट्रीम से नए संस्करणों को खींचना आसान बनाता है। आप bzip2, dbus, ping, tcpdump, और कई अन्य परियोजनाओं जैसी चीजें देखते हैं।
  • चौखटे

    • यह एंड्रॉयड ढांचे का स्रोत है। जब आप एंड्रॉइड के लिए ऐप बनाते हैं तो आप जिस सामान का उपयोग करते हैं। मुझे लगता है कि यह लगभग 50% जावा कोड और 50% सी ++ (और कभी-कभी सी) है, जो jni का उपयोग करके एक साथ बंधे हुए हैं। जब आप उदाहरण के लिए किसी ऐप में कुछ ऑडियो चलाते हैं, तो आप शायद AudioManager तक पहुंच रहे हैं। AudioManager का स्रोत और साथ ही साथ सभी आंतरिक एंड्रॉइड स्रोत AudioManager का समर्थन frameworks/base/media के तहत रखा गया है। आपको frameworks/base/ के तहत कहीं भी लागू एंड्रॉइड एसडीके का बड़ा हिस्सा मिलेगा।
  • हार्डवेयर

    • पुस्तकालयों का एक सेट जो तब हार्डवेयर (जैसे थरथानेवाला, रोशनी, निकटता सेंसर, जीपीएस, ऑडियो, आदि) को नियंत्रित करता है करने के लिए Android बात करती है। इन पुस्तकालयों को सामूहिक रूप से एचएएल (हार्डवेयर एब्स्ट्रक्शन लेयर) कहा जाता है। कुछ डिफ़ॉल्ट कार्यान्वयन hardware फ़ोल्डर में निहित हैं, हालांकि विनिर्माण अपने स्वयं के पुस्तकालयों को लागू करते हैं और उन्हें hardware/{manufcaturename} (या device/{manufacture} में) में डालते हैं।
  • libcore

    • मैं इस एक के बारे में पता नहीं है।
  • NDK

    • native development kit जो एप्लिकेशन डेवलपर उनके एप्लिकेशन मूल कोड के रूप में से कुछ (या सभी) (ग और C++ आमतौर पर) कोड करने के लिए अनुमति देता है। असल में यह विभिन्न सीपीयू आर्किटेक्चर एंड्रॉइड पर क्रॉसकंपाइल करने के लिए टूलचैन है। बाहर
    • सभी एंड्रॉयड निर्माण कलाकृतियों यहाँ रखा जाता है। तो out फ़ोल्डर को हटाने से स्रोतों को पूरी तरह साफ कर दिया जाएगा। out को विभिन्न फ़ोल्डरों में विभाजित किया गया है, मुख्य host और target हैं जहां मेजबान मशीन (उदा। एडीबी) और लक्ष्य डिवाइस (अधिकांश एंड्रॉइड सिस्टम) के लिए संकलित सामग्री अलग हो जाती है। नीचे और उपखंड हैं, और सामान्य रूप से out फ़ोल्डर काफी अच्छी तरह से क्रमबद्ध है, इसलिए आपको इसे थोड़ा सा पता लगाना चाहिए।
  • संकुल

    • ये शामिल सभी डिफ़ॉल्ट क्षुधा, प्रदाताओं, inputmethods, और इतने पर, कि एंड्रॉयड के साथ बनाया जाता है। फोन ऐप, संपर्क, कैलेंडर, कैलकुलेटर, डिफ़ॉल्ट सॉफ्ट-कीबोर्ड, इत्यादि यहां रखे गए हैं। वे तृतीय पक्ष ऐप्स नहीं हैं, वे आंतरिक ऐप्स हैं जहां उनमें से कई गैर-सार्वजनिक एंड्रॉइड एपिस के खिलाफ बना रहे हैं। इसलिए यहां अधिकांश ऐप्स सार्वजनिक एंड्रॉइड एसडीके (उदाहरण के लिए ग्रहण में) के खिलाफ नहीं बना सकते हैं, लेकिन पूरी एंड्रॉइड बिल्ड प्रक्रिया के हिस्से के रूप में इसे बनाना होगा।
  • पहले से बनाए गए

    • सामग्री है कि बाइनरी के रूप में एंड्रॉयड के साथ वितरित किया जाता है। यहां स्थित प्राथमिक चीज़ एआरएम (और अब भी x86) के लिए एंड्रॉइड बनाने के लिए क्रॉसकंपेलर है। वे पूर्वनिर्धारित हैं कि आपको वास्तव में क्रॉसकंपलर बनाने की ज़रूरत नहीं है। (यह हो सकता है बहुत समय लेने वाली है, तो आप crosscompilers संकलन करने के अलावा एंड्रॉयड भी था।)
  • एसडीके

    • सभी तरह के डी डी एम एस के रूप में उपकरण है कि एंड्रॉयड एसडीके का हिस्सा हैं, , एमुलेटर, sdkmanager, आदि
  • प्रणाली

    • कोर सिस्टम एक एंड्रॉइड डिवाइस पर चलने की प्रक्रिया करता है। ये मूल (सी या सी ++) कार्यक्रम हैं। Mediaservice ऐसी सिस्टम सेवा का एक उदाहरण है।

यह Android स्रोत के साथ काम करने के साथ मेरा अनुभव से सभी है, मैं किसी भी (अन्य) संदर्भ नहीं है।मुझे आशा है कि यह आपको फ़ोल्डर संरचना का अवलोकन प्राप्त करने में मदद करेगा।

+1

बहुत उपयोगी। धन्यवाद! – jgro

+1

बिल्कुल क्या जरूरत है ... धन्यवाद – Pawan

संबंधित मुद्दे