2013-04-25 9 views
5

Mam nadzieję, że aplikacja zainstalowana na urządzeniu z systemem Android może być archiwizowana i przechowywana jako plik instalacyjny (jako plik APK) za pomocą aplikacji takich jak menedżer plików Astro. Ten sam apk może być zainstalowany również w symulatorze Android. Jest więc szansa, że ​​inni mogą łatwo przekopać się do plików zainstalowanej aplikacji, takich jak DB, współdzielona preferencja, itp.Jak ograniczyć plik APK, aby nie zostać zainstalowany w emulatorze/symulatorze systemu Android, ale w prawdziwym urządzeniu?

Czy istnieje sposób na umożliwienie instalacji tylko w rzeczywistym urządzeniu, a nie w symulatorze?

Wiem, że jeśli jest to urządzenie ROOTED, możemy uzyskać dostęp do danych aplikacji tak samo jak w symulatorze. Mimo to chciałbym wiedzieć, czy możemy ograniczyć instalowanie apk w symulatorach.

Z góry dziękuję

Odpowiedz

1

Obecnie nie można zapobiec instalowaniu pakietów APK na emulatorze. (kiedyś było to możliwe, dodając wymóg dotyczący czujnika do aplikacji, ale emulatory tych dni mogą to również naśladować).

Jednak w czasie wykonywania powinno być możliwe sprawdzenie, czy aplikacja działa na emulatorze przy użyciu następującego sprawdzenia :

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

można zrobić to sprawdzić przed tworzyć dB SharedPreference plików itp

+0

Dzięki Leon ... Ten działa 'if (android.os.Build.MODEL.equals („SDK "))' – Madhu

3

Nie ma ogólnego sposobu na zrobienie tego. Ostatecznie zadaniem emulatora jest zachowanie jak najbardziej rzeczywistego urządzenia, w tym symulowanie sygnałów wejściowych z kamer, czujników GPS itp.

Możesz dostać gdzieś, jeśli ustawisz manifest dla zależności na niektórych urządzeniach, które zwykle nie są obsługiwane w emulatorze. Na przykład:

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

Ale tak naprawdę, jeśli chcesz, aby ludzie wywiercenie w przechowywanych danych aplikacji, najlepszym rozwiązaniem jest, aby zaszyfrować lub zaciemniać go.