मुझे यकीन नहीं है कि मैं आपके प्रश्न को गलत समझ रहा हूं, लेकिन मैं इसमें एक दरार लेने की कोशिश करूंगा। मेरे नीचे दिए गए स्पष्टीकरण के लिए, मैं कई बार this code sample by Google का संदर्भ दूंगा। I अत्यधिक क्लोनिंग का सुझाव देता है कि इसके साथ रेपो और खेलना, क्योंकि मुझे लगता है कि यह आपके प्रश्न का उत्तर देगा।
अगर हम डैगर, तितली, जैसे पुस्तकालयों का उपयोग करते हैं ...सभी मॉड्यूल अन्य मॉड्यूल पर निर्भर होंगे
जैसा कि अन्य लोगों द्वारा उल्लिखित किया गया है, आपकी सभी सुविधाओं द्वारा उपयोग की जाने वाली किसी भी पुस्तकालय को आपके बेस फ़ीचर में जाना होगा।
यदि हमारे मॉड्यूल में आवश्यकतानुसार (दृश्य) होते हैं, तो इस मॉड्यूल को आयात किए बिना किसी अन्य दृश्य (किसी अन्य मॉड्यूल से) में संक्रमण कैसे कार्यान्वित किया जाना चाहिए?
This answer इसके अवलोकन को शामिल करता है - लेकिन यह हिस्सा आपके प्रश्न की जड़ प्रतीत होता है, इसलिए मैं थोड़ा गहराई में खोदने की कोशिश करूंगा।
मान लें कि फ़ीचर 1 (BrowseActivity
) फ़ीचर 2 (ItemDetailActivity
) खोलना चाहता है। फ़ीचर 1 के बजाय startActivity(ItemDetailActivity.class)
सीधे कॉल करने के बजाय, इसे नीचे विधि कॉल का उपयोग करना होगा (ऐसा इसलिए है क्योंकि फ़ीचर 1 के पास फ़ीचर 2 के ItemDetailActivity.class
तक पहुंच नहीं है क्योंकि वे एक-दूसरे पर निर्भर नहीं हैं)। Here is the code sample provided by Google
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://example.com/itemdetail"));
intent.setPackage(getPackageName());
intent.addCategory(Intent.CATEGORY_BROWSABLE);
startActivity(intent);
अब लापता बात यह है कि Feature2 के AndroidManifest
में आप घोषित करने के लिए है कि ItemDetailActivity
https://example.com/itemdetail
लिंक के लिए सुन रहा है की जरूरत है। बिल्कुल नहीं - Here is the relevant code sample from Google
<activity android:name=".ItemDetailActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="example.com" />
<!-- IMPORTANT -->
<data android:pathPrefix="/itemdetail"/>
</intent-filter>
<meta-data
android:name="default-url"
android:value="https://www.example.com/itemdetail" />
</activity>
किसी भी अधिक जानकारी के लिए, साथ ही सामान्य रूप Deep Linking
'अगर हम कटार की तरह पुस्तकालयों का उपयोग, butterknife, ... सभी मॉड्यूल अन्य modules' पर निर्भर होगा Digital Asset Links को पढ़ने सब। उन्हें क्यों चाहिए मैंने हाल ही में डैगर और बटरकिनीफ के व्यापक उपयोग के साथ एक विशाल कोडबेस पर इस तरह के रिफैक्टरिंग की है, और कह सकते हैं - यह मेरे लिए कोई मुद्दा नहीं था। अधिक जानकारी के लिए मेरा उत्तर देखें और मुझे smth अगर पता है। आपके लिए स्पष्ट नहीं है – Idolon