2012-07-03 26 views
21

मैं एंड्रॉइड के साथ वितरित उपकरणों का उपयोग करके एंड्रॉइड (एआरएम) पर निर्मित अपनी खुद की एम्बेडेड सिस्टम बनाना चाहता हूं लेकिन उनके लॉन्चर के बिना।मैं सिर्फ एक ऐप के साथ एक एम्बेडेड एंड्रॉइड ओएस कैसे बना सकता हूं?

या

मैं अपने आवेदन शीर्ष पर शुरू किया गया साथ एंड्रॉयड शुरू और मेरे app से यह और शट डाउन एंड्रॉयड बंद करने के लिए मना करने के लिए चाहते हैं।

उत्तर

23

अनिवार्य रूप से आप एओएसपी का कस्टम निर्माण करने की कोशिश कर रहे हैं जहां "होम" आपका आवेदन है। यदि आप /पैकेज/ऐप्स/लॉन्चर 2 पर देखते हैं तो आपको डिफ़ॉल्ट होम स्क्रीन के लिए कोड मिल जाएगा।

तुम वहाँ में AndroidManifest.xml फ़ाइल को देखें, तो आप कुछ इस तरह दिखाई देंगे:

 <activity 
     android:name="com.android.launcher2.Launcher" 
     android:launchMode="singleTask" 
     android:clearTaskOnLaunch="true" 
     android:stateNotNeeded="true" 
     android:theme="@style/Theme" 
     android:screenOrientation="nosensor" 
     android:windowSoftInputMode="stateUnspecified|adjustPan"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.HOME" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.MONKEY"/> 
     </intent-filter> 
    </activity> 

essentialy, इस का कहना है कि इस गतिविधि

एंड्रॉयड के प्रति प्रतिक्रिया .intent.category.HOME इरादा

जब सिस्टम बूटिंग समाप्त होता है (गतिविधि प्रबंधक अधिक विशेष रूप से), उस इरादे को भेजता है। इसलिए, यदि आप लॉन्चर के बजाय अपना ऐप शुरू करना चाहते हैं, तो बस अपने आप को एक समान इरादे फ़िल्टर के साथ एक ऐप बनाएं और डिफ़ॉल्ट लॉन्चर 2 को हटाएं (इसे बिल्ड/लक्ष्य/उत्पाद/जेनेरिक.एमके में सूची से बाहर निकालें और डालें इसके बजाय तुम्हारा)।

LOCAL_OVERRIDES_PACKAGES := Home 

इतने लंबे समय के अपने एप्लिकेशन आइकन का उपयोग कर (जैसे लांचर करता है) अन्य एप्लिकेशन लॉन्च करने के उपयोगकर्ता के लिए एक रास्ता प्रदान नहीं करता है के रूप में, कोई अन्य अनुप्रयोग: यह भी सुनिश्चित करें प्रासंगिक .mk फ़ाइल कुछ इस तरह है बनाना शुरू किया जाएगा; जब तक कि निश्चित रूप से कुछ आपके ऐप द्वारा नियंत्रित किसी अन्य पथ से गतिविधि-प्रारंभिक इरादा नहीं भेजता है - लक्ष्य के एंड्रॉइड शैल पर "am" कमांड का उपयोग करके कहें।

+0

क्या एक अच्छा जवाब !!! मुझे –

+0

पढ़ने के लिए पूरे लॉटा डॉक से अधिक मिला है 'LOCAL_OVERRIDES_PACKAGES में' होम 'है: = होम' ऐप जिसे आप लॉन्चर 2 को बदल रहे हैं? –

+0

मुझे लगता है कि 'होम' एओएसपी में प्रयुक्त वर्तमान लॉन्चर का मॉड्यूल नाम है। पुराने एंड्रॉइड पुराने होम मॉड्यूल का निर्माण कर सकते हैं, आजकल यह लॉन्चर 2 है। तो 'LOCAL_OVERRIDES_PACKAGES: = लॉन्चर 3' का उपयोग किया जाना चाहिए, या यहां तक ​​कि' LOCAL_OVERRIDES_PACKAGES: = लॉन्चर 2 लॉन्चर 3'। Cyanogenmod 12 Trebuchet लॉन्चर का उपयोग करता है, इसलिए सीएम बिल्ड के लिए मैं 'LOCAL_OVERRIDES_PACKAGES: = Launcher3 Trebuchet 'का उपयोग करूंगा – Mixaz

3

अपने प्रश्न की आवाज से आप अपना खुद का कस्टम एंड्रॉइड ओएस बिल्ड बनाना चाहते हैं। यह सामान्य एंड्रॉइड ऐप्स विकसित करने से अधिक शामिल होने जा रहा है और इसके परिणामस्वरूप आपको बहुत सी पढ़ाई करनी होगी, खासकर एंड्रॉइड ओएस सोर्स कोड।

मुझे सलाह है कि आप here at the Android Open Source Project शुरू करें।

3

पुनर्प्राप्ति प्रणाली के स्रोत को देखें; यह एक वैकल्पिक बूट वातावरण है जो बहुत आसान है। टचस्क्रीन समर्थन के साथ कुछ तीसरे पक्ष संस्करण भी हैं।