2013-04-25 2 views
5

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

क्या वास्तविक उपकरण में स्थापित करने की अनुमति देने के लिए कोई तरीका है और सिमुलेटर में नहीं ???

मुझे पता है कि यदि यह रूट डिवाइस है, तो हम सिम्युलेटर की तरह ऐप के डेटा तक पहुंच सकते हैं। भले ही मैं जानना चाहूंगा कि हम सिमुलेटर में एपीके इंस्टॉल करना प्रतिबंधित कर सकते हैं या नहीं।

अग्रिम

उत्तर

1

एएमके को एमुलेटर पर स्थापित होने से रोकने के लिए वर्तमान में संभव नहीं है। (यह ऐप को सेंसर आवश्यकता जोड़कर संभव होता था, लेकिन हेस दिन अनुकरणकर्ता भी इसका अनुकरण कर सकते हैं)

हालांकि, रनटाइम पर आप यह सत्यापित करने में सक्षम होना चाहिए कि आपका ऐप निम्नलिखित जांच का उपयोग कर एमुलेटर पर चल रहा है या नहीं :

if (android.os.Build.MODEL.equals(“google_sdk”)) { 
    // emulator 
} else { 
    //not emulator 
} 

इससे पहले कि आप अपने DB और SharedPreference फ़ाइलों आदि

+0

धन्यवाद लियोन ... यह एक काम करता है 'अगर (android.os.Build.MODEL.equals (" एसडीके बनाते हैं तो आप इस चेक कर सकता है "))' – Madhu

3

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

यदि आप अपना मैनिफेस्ट निर्भरता रखने के लिए सेट करते हैं तो आप कहीं कहीं मिल सकते हैं कुछ हार्डवेयर पर जो आमतौर पर एमुलेटर में समर्थित नहीं है। उदाहरण के लिए:

<uses-feature android:name="android.hardware.sensor.accelerometer" 
       android:required="true" /> 

लेकिन वास्तव में, यदि आप अपने ऐप के संग्रहीत डेटा में चारों ओर poking लोगों को रोकना चाहते, सबसे अच्छा समाधान एन्क्रिप्ट या यह अंधेरा करना है।

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