Et nemt hack for at se, om din Android-kode køres på emulatoren

Hvis du selv har skrevet de mest elementære Android-programmer, har du næsten helt sikkert brugt Android-emulatoren. I årenes løb arbejdede jeg som en integreret softwareingeniør, har jeg haft mine hænder på alle slags emulatorer. Når det kommer til integreret programmering, er emulatorer ofte en væsentlig del af softwareudviklingslivscyklus (SDLC).

Emulatoren Google leverer som en del af Android-udviklingssættet er en af ​​de bedste, jeg har arbejdet med. Og alligevel er det i slutningen af ​​dagen en emulator, ikke en faktisk Android-enhed. Brug af en emulator betyder før eller senere, at der kommer et tidspunkt, hvor du står overfor et conundrum: På grund af en vis begrænsning eller kritisk forskel mellem din fysiske målenhed og emulatoren, vil du have, at din kode opfører sig en måde på emulatoren og en anden, når den er installeret til enheden. Dette rejser spørgsmålet: Hvordan kan du programmatisk bestemme, om en app kører på emulatoren eller på en faktisk enhed?

Så vidt jeg ved, er der ingen officielt understøttet mekanisme til at gøre dette. I denne korte tutorial vil jeg dog demonstrere den teknik, jeg ofte bruger i min egen kode. Du kan følge de medfølgende trinvise instruktioner eller downloade hele projektet og importere det direkte til Eclipse.

1. Opret et nyt Android-projekt i Eclipse. Mål Android 1.6 eller nyere. Skift navnet på startaktiviteten til Main.java og den tilhørende layoutfil til main.xml.

2. I mappen / res / layout skal du definere main.xml for at inkludere en enkelt tekstvisning indpakket i et lineært layout.

 main.xml 
 "Http://schemas.android.com/apk/res/android" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: orientering = "lodret" 
 android: baggrund = "# 000000" 
 android: gravitation = "center" > 
 android: id = "@ + id / tekst" 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: tekst = "tekst" 
 android: textSize = "14sp" 
 android: textColor = "#ffffff" /> 

3. Det sidste trin er at tilsidesætte on-create-metoden i vores /src/Main.java-fil. Her trækker jeg byggets mærkeegendom. På emulatoren returnerer dette ordet "generisk" alt med små bogstaver.

 Main.java 
 pakke com.authorwjf.amianemulator; 
 import android.os.Build; 
 import android.os.Bundle; 
 import android.widget.TextView; 
 import android.app.Aktivitet; 
 public class Main udvider aktivitet { 
 @Override 
 offentligt tomrum onCreate (Bundle gemtInstanceState) { 
 super .onCreate (gemtInstanceState); 
 setContentView (R.layout. main ); 
 TextView tv = (TextView) findViewById (R.id. Tekst ); 
 if (Build. BRAND .equalsIgnoreCase ("generisk")) { 
 tv.setText ("JA, jeg er en emulator"); 
 } andet { 
 tv.setText ("NEJ, jeg er IKKE en emulator"); 
 } 
 } 
 } 
Gå videre og kompiler APK og download det både til en emulator og din fysiske enhed. Ta-da! ( Figur A ) Figur A

Brug af build-mærket som en indikator er en af ​​mange måder, jeg har fundet i de forskellige Android-fora til udførelse af denne test. Mine egne førstehåndserfaringer har bevist denne metode som den mest pålidelige.

Jeg understreger dog igen, at det ikke er en Google-sanktioneret tilgang, og at den derfor ikke er garanteret som fremtidig bevis. Så vidt jeg ved, har Google ikke tilbudt en alternativ løsning. Når og hvis Google gør det, går jeg tilbage og refaktorerer min kode. Indtil da vil jeg fortsætte med at bruge den tilgang, der er beskrevet i dette indlæg.

© Copyright 2021 | pepebotifarra.com