Ein einfacher Hack, um zu sehen, ob Ihr Android-Code auf dem Emulator ausgeführt wird

Wenn Sie selbst die elementarsten Android-Programme geschrieben haben, haben Sie mit ziemlicher Sicherheit den Android-Emulator verwendet. Im Laufe der Jahre als Embedded-Software-Ingenieur hatte ich alle möglichen Emulatoren in der Hand. Bei der eingebetteten Programmierung sind Emulatoren häufig ein wesentlicher Bestandteil des Software Development Life Cycle (SDLC).

Der Emulator, den Google als Teil des Android-Entwicklungskits bereitstellt, ist einer der besten, mit denen ich gearbeitet habe. Und doch ist es letztendlich ein Emulator, kein echtes Android-Gerät. Die Verwendung eines Emulators bedeutet, dass früher oder später ein Problem auftritt: Aufgrund von Einschränkungen oder kritischen Unterschieden zwischen Ihrem physischen Zielgerät und dem Emulator soll sich Ihr Code auf dem Emulator auf die eine und auf die andere Weise verhalten, wenn er bereitgestellt wird zum Gerät. Dies wirft die Frage auf: Wie können Sie programmgesteuert feststellen, ob eine App auf dem Emulator oder auf einem tatsächlichen Gerät ausgeführt wird?

Meines Wissens gibt es dafür keinen offiziell unterstützten Mechanismus. In diesem kurzen Tutorial werde ich jedoch die Technik demonstrieren, die ich häufig in meinem eigenen Code verwende. Sie können den Schritt-für-Schritt-Anweisungen folgen oder das gesamte Projekt herunterladen und direkt in Eclipse importieren.

1. Erstellen Sie ein neues Android-Projekt in Eclipse. Ziel Android 1.6 oder höher. Ändern Sie den Namen der Startaktivität in Main.java und die entsprechende Layoutdatei in main.xml.

2. Definieren Sie im Ordner / res / layout main.xml so, dass eine einzelne Textansicht in ein lineares Layout eingeschlossen wird.

 main.xml 
 "http://schemas.android.com/apk/res/android" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: orientierung = "vertikal" 
 android: background = "# 000000" 
 android: schwerkraft = "zentrum" > 
 android: id = "@ + id / text" 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: text = "text" 
 android: textSize = "14sp" 
 android: textColor = "#ffffff" /> 

3. Der letzte Schritt besteht darin, die Methode on create unserer Datei /src/Main.java zu überschreiben. Hier ziehe ich das Markeneigentum des Builds. Auf dem Emulator wird das Wort "generisch" in Kleinbuchstaben zurückgegeben.

 Main.java 
 Paket com.authorwjf.amianemulator; 
 import android.os.Build; 
 import android.os.Bundle; 
 android.widget.TextView importieren ; 
 android.app.Activity importieren ; 
 öffentliche Klasse Main erweitert Aktivität { 
 @Override 
 public void onCreate (Bundle savedInstanceState) { 
 super .onCreate (savedInstanceState); 
 setContentView (R.layout. main ); 
 TextView tv = (TextView) findViewById (R.id. Text ); 
 if (Build. BRAND .equalsIgnoreCase ("generic")) { 
 tv.setText ("JA, ich bin ein Emulator"); 
 } else { 
 tv.setText ("NEIN, ich bin KEIN Emulator"); 
 }} 
 }} 
 }} 
Kompilieren Sie die APK und laden Sie sie sowohl auf einen Emulator als auch auf Ihr physisches Gerät herunter. Ta-da! ( Abbildung A ) Abbildung A.

Die Verwendung der Build-Marke als Indikator ist eine von vielen Möglichkeiten, die mir in den verschiedenen Android-Foren zur Durchführung dieses Tests begegnet sind. Meine eigenen Erfahrungen aus erster Hand haben gezeigt, dass diese Methode die zuverlässigste ist.

Ich betone jedoch erneut, dass es sich nicht um einen von Google genehmigten Ansatz handelt und daher nicht als zukunftssicher garantiert ist. Meines Wissens hat Google keine alternative Lösung angeboten. Wann und wenn Google dies tut, gehe ich zurück und überarbeite meinen Code. Bis dahin werde ich weiterhin den in diesem Beitrag beschriebenen Ansatz verwenden.

© Copyright 2021 | pepebotifarra.com