What is a Mobile emulator extension?

Effektiv Fejlfinding af Mobile Websteder med Chrome

05/04/2023

Rating: 4.83 (2888 votes)

I dagens digitale landskab er en mobilvenlig weboplevelse ikke længere et valg, men en absolut nødvendighed. Med milliarder af smartphone-brugere verden over er det afgørende, at websteder og webapplikationer fungerer fejlfrit på tværs af et utal af enheder og skærmstørrelser. Men at teste og fejlfinde disse mobile oplevelser kan være en kompleks og udfordrende opgave. Mobile browsere mangler ofte de indbyggede udviklerværktøjer, vi kender fra desktop, og emuleringer kan sjældent give et fuldstændigt og præcist billede af den virkelige brugeroplevelse.

Can chrome debug a mobile browser?
Chrome can debug mobile browser. On the Android device, go to Settings > Developer options. (Note: If you do not see Developer options, you may need to enable it by going to About phone and tapping Build number seven times.) In Developer options, enable USB debugging. Connect the Android device to your computer via USB.

Heldigvis tilbyder Google Chrome en robust og yderst effektiv løsning: fjernfejlfinding med Chrome DevTools. Denne metode giver dig mulighed for at debugge live indhold på din Android-enhed direkte fra din udviklingsmaskine, uanset om du bruger Windows, macOS eller Linux. Det er en uvurderlig ressource for enhver webudvikler, der stræber efter at levere en fejlfri mobiloplevelse. Lad os dykke ned i, hvordan du mestrer denne teknik og udnytter dens fulde potentiale.

Indholdsfortegnelse

Hvorfor fjernfejlfinding er afgørende for mobiludvikling

Forestil dig dette scenarie: Du har brugt timer på at optimere dit websted til mobile enheder, men så rapporterer en bruger en fejl, der kun opstår på en specifik Android-telefon. Hvordan replikerer og løser du dette problem, når din desktop-browser ikke viser den samme adfærd?

Svaret ligger i fjernfejlfinding. Mens emuleringer og simulatorer kan være nyttige til indledende tests, kan de aldrig fuldt ud genskabe de nuancer og præstationsegenskaber, der findes på en fysisk enhed. Skærmstørrelser, touch-interaktioner, netværksforhold, CPU-begrænsninger og specifikke browserversioner kan alle påvirke, hvordan dit websted opfører sig. Fjernfejlfinding med Chrome DevTools giver dig direkte adgang til den faktiske kørselsmiljø på din Android-enhed, hvilket sikrer præcision og en dybdegående forståelse af problemet.

Denne metode giver dig mulighed for at:

  • Debugge websteder i browserfaner på din Android-enhed.
  • Debugge WebViews i native Android-apps.
  • Se en live skærmdeling (screencast) af din enheds skærm på din udviklingsmaskine.
  • Få adgang til din udviklingsserver på Android ved hjælp af portviderestilling og virtuel værtsmapping.

Kort sagt eliminerer fjernfejlfinding gætterier og giver dig de nødvendige værktøjer til at identificere og løse bugs med effektivitet, hvilket i sidste ende sparer dig tid og frustration.

Forberedelse af din Android-enhed til fejlfinding

Før du kan begynde at debugge, skal din Android-enhed konfigureres korrekt til at tillade fjernforbindelse. Dette indebærer primært aktivering af 'Udviklerindstillinger' og 'USB-fejlfinding'.

Aktivering af udviklerindstillinger

På nyere Android-versioner er 'Udviklerindstillinger' som standard skjult. Følg disse trin for at aktivere dem:

  1. Åbn Indstillinger-appen på din telefon.
  2. Naviger til menuen Om telefonen (ofte fundet under 'System' på moderne Android-enheder).
  3. Rul ned og find Build-nummer.
  4. Tryk på 'Build-nummer' syv gange i træk. Du vil se en meddelelse om, at du nu er udvikler.

Gå nu tilbage til den tidligere skærm (eller ind i 'System'-menuen i Indstillinger-appen). Du vil nu finde et nyt menupunkt kaldet Udviklerindstillinger nær bunden.

Aktivering af USB-fejlfinding

Når 'Udviklerindstillinger' er aktiveret, skal du tænde for 'USB-fejlfinding':

  1. Gå ind i de nye Udviklerindstillinger.
  2. Slå dem til ved at skifte vippekontakten øverst på siden til 'Til'.
  3. Rul ned, indtil du finder og aktiverer USB-fejlfinding. Dette vil tillade din computer at debugge din enhed via et USB-kabel.
  4. Hvis en advarsel beder dig om at tillade USB-fejlfinding, skal du trykke på 'OK'.

Disse trin er vigtige og udgør grundlaget for at etablere forbindelsen mellem din Android-enhed og din computer. Uden dem kan Chrome DevTools ikke kommunikere med din enhed.

Opsætning af din computer til fjernfejlfinding

Med din Android-enhed klar, er det tid til at forberede din computer. Trinene varierer en smule afhængigt af dit operativsystem.

Driverinstallation (kun Windows)

Hvis du bruger Windows, er det første, du skal gøre, at installere USB-driverne til din enhed. Uden de korrekte drivere vil din computer ikke kunne genkende din Android-telefon.

  • Android Studio-webstedet har ofte en liste over steder, hvor du kan finde drivere, sammen med instruktioner.
  • Mange producenter (f.eks. Samsung, Huawei, LG) leverer deres egne USB-drivere, som du kan downloade fra deres supportwebsteder. En hurtig søgning efter ' [dit telefonmærke] USB driver ' vil ofte give dig det, du har brug for.

For macOS- og Linux-brugere er driverinstallation normalt ikke nødvendig. Mac-brugere er ofte klar til at gå. Linux-brugere skal dog muligvis sørge for, at deres brugerkonto tilhører en bestemt gruppe, og installere en pakke med såkaldte 'udev rules', som gør specifikke USB-enheder kendte for computeren. Dette er mere avanceret, men dokumentation findes ofte online for specifikke distributioner.

Installation af Android Debug Bridge (ADB)

Uanset operativsystem skal du bruge Android Debug Bridge (ADB). ADB er et kommandolinjeværktøj, der giver en grænseflade til at tale med din mobile enhed.

How to check console errors on phone?
However, if you are not using such a tool and want to check console errors on phone, here are 3 easy steps: Open Chrome and navigate to chrome://inspect. Open a new tab and load your website. Now come back to chrome://inspect tab and see the logs! I used this method for one of my hobby projects and thought it might help someone.
  • Anbefalet metode: ADB er inkluderet som en del af Android SDK Platform-Tools. Du kan downloade dette som en separat .zip-fil fra Googles officielle Android Developers-websted. Efter udpakning finder du 'adb.exe' (Windows) eller 'adb' (macOS og Linux) i mappen 'platform-tools'.
  • Android Studio: Hvis du allerede har Android Studio installeret, er ADB inkluderet i dets indlejrede Android SDK.
  • Minimal ADB (kun Windows): Hvis du ønsker den mest minimale version af ADB uden unødvendig oppustethed, kan du finde en letvægtsversion på XDA Forums. Efter installationen skal du navigere til installationsmappen (f.eks. C:\Program Files(x86)\Minimal ADB and Fastboot) og køre cmd-here.exe for at åbne et kommandopromptvindue der.

Når ADB er installeret og tilgængeligt fra din terminal eller kommandoprompt, skal du starte ADB-serveren. Skriv:

adb start-server

Bemærk: ADB-serveren skal køre, hver gang du ønsker at debugge. Den starter ikke automatisk, hvis du genstarter din computer. Det anbefales ikke at køre ADB som en permanent baggrundstjeneste.

Aktivering af fjernfejlfinding i Chrome DevTools

Det sidste trin på computeren er at aktivere fjernfejlfinding i Chrome DevTools:

  1. Åbn Chrome på din computer.
  2. Naviger til chrome://inspect.
  3. Sørg for, at "Discover USB devices" er markeret.

Det er en god idé at holde denne fane åben, da du får brug for den snart. Husk, at din desktop Chrome-version skal være nyere end Chrome for Android på din enhed for de bedste resultater. Brug af Chrome Canary (Mac/Windows) eller Chrome Dev channel (Linux) på desktop og Chrome Stable på Android sikrer dette.

Oprettelse af forbindelsen mellem enhederne

Nu hvor både din Android-enhed og din computer er forberedt, er det tid til at etablere den fysiske og digitale forbindelse.

Fysisk tilslutning

Hvis du ikke allerede har gjort det som en del af driverinstallationen, skal du tilslutte din Android-telefon til din computer via et USB-kabel. Sørg for, at din telefon er tændt og ulåst.

Tillad USB-fejlfinding

Hvis ADB-serveren kører, og din telefon er forbundet korrekt, bør du se et pop op-vindue på din telefon med titlen "Tillad USB-fejlfinding?". Dette er et kritisk trin for at tillade din computer at interagere med enheden.

  • For at undgå at skulle håndtere denne pop op hver gang du tilslutter din enhed, skal du markere indstillingen "Tillad altid fra denne computer".
  • Klik derefter på "OK".

Hvis pop op-vinduet ikke vises, kan du tjekke notifikationsområdet på din Android-enhed. Hvis det står "Forbundet som en medieenhed", "MTP" eller lignende, skal du trykke på det. Dette bør føre dig til en skærm, hvor du kan vælge en anden forbindelsestype. Til vores formål er "Kamera (PTP)" den passende forbindelse. Når du har valgt PTP, skulle pop op-vinduet "Tillad USB-fejlfinding?" dukke op.

Verifikation i Chrome DevTools

Når du har godkendt USB-fejlfinding på din telefon, skal du gå tilbage til den chrome://inspect fane, du åbnede tidligere på din computer. Hvis alt er gået som planlagt, bør du nu se din telefon og alle dens åbne Chrome-faner blive listet der. Dette indikerer, at forbindelsens stabilitet er etableret, og du er klar til at begynde at debugge.

Bemærk: Under fjernfejlfinding forhindrer Chrome din enheds skærm i at gå i dvale. Dette er nyttigt til fejlfinding, men også mindre sikkert, så hold øje med din enhed!

Fejlfinding af websteder med Chrome DevTools

Nu er det tid til det sjove – selve fejlfindingen! På chrome://inspect-siden viser Chrome på din computer en liste over faner, der er åbne i Chrome-browseren på din eksterne enhed. Hvis den fane, du vil debugge, ikke er den aktive fane, kan du klikke på "focus tab" for at gøre den til den aktive fane på enheden. Derefter skal du klikke på linket "inspect" ud for den fane, du vil arbejde med.

Inspekteringsværktøjer

Når du klikker på "inspect", åbnes en ny instans af Chrome DevTools på din computer. Fra denne instans kan du interagere med den valgte browserfane på din enhed i realtid, stort set som du ville gøre, hvis du debuggede en webside i din desktopbrowser.

  • Elementer: Brug 'Elements'-panelet til at inspicere HTML og CSS. Når du holder musen over et element i panelet, fremhæver DevTools elementet på din enhed.
  • Interaktiv inspektion: Du kan også klikke på 'Inspect Element'-ikonet (musen over en firkant) i DevTools og derefter trykke på skærmen på din enhed. DevTools vil fremhæve det tappede element i 'Elements'-panelet, hvilket er utroligt nyttigt for at identificere specifikke UI-elementer.

Skærmdeling (Screencasting)

At skifte fokus mellem skærme er ikke altid bekvemt. Skærmdeling viser din enheds skærm lige ved siden af DevTools på din udviklingsmaskine. Du kan endda interagere med indholdet på din enhed direkte fra skærmdelingen, hvilket giver en høj grad af interaktivitet.

  • For at starte skærmdeling skal du klikke på 'Screencast'-ikonet (en telefon med en skærm, ofte i øverste højre hjørne af dit DevTools-vindue). Skærmdelingspanelet åbnes til venstre og viser en livevisning af din enheds skærm.
  • Interaktion: Klik oversættes til tap, træk oversættes til swipes. Tastetryk fra din computer sendes til enheden.
  • Zoom og rul: For at simulere en knibegestus (pinch-to-zoom), hold Shift nede, mens du trækker. For at rulle, brug din trackpad eller musehjul, eller swipe med din markør.

Vær opmærksom på, at skærmdeling, da den kontinuerligt optager frames, har en vis ydeevneoverhead. Hvis dine tests er følsomme over for framerate, kan du deaktivere skærmdeling og interagere direkte med den mobile enhed.

How mobile app development tools impact the success of a project?

Portviderestilling (Port Forwarding)

Portviderestilling i Chrome for Android gør det nemt at teste dit udviklingswebsted på mobilen, selvom det kører på en lokal server på din computer. Det fungerer ved at oprette en lyttende TCP-port på din mobile enhed, der mapper til en bestemt TCP-port på din udviklingsmaskine. Trafik mellem disse porte rejser via USB, så forbindelsen afhænger ikke af din netværkskonfiguration. Dette er afgørende for lokal udvikling og test.

Sådan aktiverer du portviderestilling:

  1. Åbn chrome://inspect på din udviklingsmaskine.
  2. Klik på "Port Forwarding". Indstillingerne for portviderestilling vises.
  3. I feltet "Device port" skal du indtaste det portnummer, din Android-enhed skal lytte på (standard er ofte 8080).
  4. I feltet "Host" skal du indtaste IP-adressen (eller værtsnavnet) og portnummeret, hvor din webapplikation kører på din computer (f.eks. localhost:8000 eller 127.0.0.1:3000).
  5. Marker "Enable port forwarding".
  6. Klik på "Done".

Portstatusindikatorerne på chrome://inspect vil være grønne, når portviderestillingen er lykkedes. Nu kan du åbne en ny Chrome for Android-fane og få vist indholdet af din lokale server på din enhed ved hjælp af den port, du har viderestillet (f.eks. localhost:8080).

Nyttige fejlfindingstips og overvejelser

For at maksimere din effektivitet under fjernfejlfinding er her nogle yderligere tips:

  • Genindlæsning: Brug F5 (eller Cmd+r på Mac) til hurtigt at genindlæse den eksterne side fra DevTools-vinduet.
  • Netværksanalyse: Brug 'Network'-panelet til at se netværksvandfaldet under faktiske mobile forhold. Dette er essentielt for at identificere flaskehalse relateret til netværkshastighed og ressourceloading.
  • Ydeevne: Brug 'Performance'-panelet til at analysere rendering og CPU-forbrug. Hardware på mobile enheder kører ofte meget langsommere end på din udviklingsmaskine, så det, der virker hurtigt på desktop, kan være langsomt på mobil. Deaktiver skærmdeling, hvis du udfører præcise ydeevnemålinger.
  • Fejlfinding: Hvis du støder på problemer, hvor intet sker, når du interagerer med din enhed, kan du prøve at lukke Chrome-appen på telefonen og genåbne den. Du skal muligvis genoprette forbindelse til den eksterne enhed via DevTools-skærmen. Hvis det ikke hjælper, kan du gennemgå denne hurtige tjekliste:
    • Fjern enheden, og sæt den til igen.
    • Lås din telefon, og væk den igen.
    • Luk DevTools-vinduet, og åbn det igen.

Alternative mobile konsolløsninger

Mens Chrome DevTools' fjernfejlfinding er utrolig kraftfuld, er der situationer, hvor du måske ønsker en mere letvægtsløsning eller en indbygget konsol direkte på enheden til hurtige tests. Især hvis du bare har brug for grundlæggende console.log-output uden den fulde DevTools-suite.

Tilpasset konsol-override

Du kan faktisk nemt implementere din egen version af en simpel on-device konsol ved at 'hooke' ind i den native konsol og vise outputtet som HTML. Dette giver dig mulighed for at se konsolbeskeder direkte på din mobile webapplikation, samtidig med at outputtet stadig sendes til den native konsol:

<!-- Tilføj dette i din HTML et passende sted, f.eks. lige før </body> --> 
<pre id="output-console" style="background: #333; color: #0f0; padding: 10px; margin: 0; overflow-y: scroll; height: 150px; font-family: monospace; font-size: 12px;"></pre>

<script>
// Reference til en output-container, brug 'pre' styling til JSON output
var output = document.getElementById('output-console');
if (!output) { // Skab den hvis den ikke eksisterer, f.eks. til hurtig test
output = document.createElement('pre');
output.id = 'output-console';
output.style = 'background: #333; color: #0f0; padding: 10px; margin: 0; overflow-y: scroll; height: 150px; font-family: monospace; font-size: 12px;';
document.body.appendChild(output);
}

// Reference til native metode(r)
var oldLog = console.log;
console.log = function( ...items ) {
// Kald native metode først
oldLog.apply(this,items);

// Brug JSON til at transformere objekter, alle andre vises normalt
items.forEach( (item,i)=>{
items[i] = (typeof item === 'object' ? JSON.stringify(item,null,4): item);
});
output.innerHTML += items.join(' ') + '<br />';
output.scrollTop = output.scrollHeight; // Scroll til bunden
};

// Du kunne endda tillade Javascript input (valgfrit)
function consoleInput( data ) {
// Udskriv det til konsollen som indtastet
console.log( data + '<br />' );
try {
console.log( eval( data ) );
} catch (e) {
console.log( e.stack );
}
}
</script>

Denne kode opretter et <pre>-element i dit dokument, der fungerer som en outputkonsol. Den overskriver console.log-funktionen, så den først kalder den oprindelige console.log (for at bevare standardfunktionaliteten) og derefter viser outputtet i dit HTML-element. Objekter konverteres til læsbar JSON.

Specialiserede mobile konsolprojekter

I stedet for at genopfinde hjulet er der et par projekter, der er designet specifikt til dette formål:

  • hnlDesign's mobileConsole: Dette er en populær og ligetil løsning, der leverer det, du forventer af en mobil konsol – grundlæggende funktionalitet uden unødvendig kompleksitet. Mange udviklere finder den meget tilfredsstillende til hurtige tests.
  • Eruda: Et mere omfattende værktøj, der implementerer mange flere udviklerværktøjer direkte på enheden, ligesom en indbygget DevTools-lite. Selvom det er kraftfuldt, kan det være overkill for mange projekter på grund af dets større filstørrelse og bredere funktionalitet. Hvis du har brug for den fulde bredde af udviklerværktøjer, er fjernfejlfinding med Chrome DevTools stadig den foretrukne og mere robuste løsning.

Her er en hurtig sammenligning af de nævnte løsninger:

FunktionChrome DevTools (Fjernfejlfinding)Brugerdefineret JS (f.eks. ovenstående kode)hnlDesign's mobileConsoleEruda
Adgang til fuld DevToolsJa (Elements, Network, Performance osv.)NejNejDelvis (reduceret sæt)
Skærmdeling (Screencasting)JaNejNejNej
PortviderestillingJaNejNejNej
Interaktion med DOM/CSSJa (fuld)NejNejJa (begrænset)
Filstørrelse/OverheadLav (på enhed, høj på desktop)Meget lavLavHøjere
AnvendelseDybdegående fejlfinding, performanceanalyseHurtig console.log visningGrundlæggende console.log visningAvanceret on-device debugging
KravUSB-kabel, ADB, Desktop ChromeIngen (kun JS i appen)Ingen (kun JS i appen)Ingen (kun JS i appen)

Valget af værktøj afhænger af dine specifikke behov. For omfattende, dybdegående fejlfinding er Chrome DevTools' fjernfejlfinding uovertruffen. For hurtige inspektioner af console.log-output direkte på enheden, kan en simpel JavaScript-løsning eller et letvægtsbibliotek som mobileConsole være mere passende.

Ofte Stillede Spørgsmål

Kan jeg fejlfinde iOS-enheder med Chrome DevTools?

Nej, Chrome DevTools' fjernfejlfinding er specifikt designet til Android-enheder. For iOS-enheder skal du bruge Safari's Web Inspector, som tilbyder lignende fjernfejlfindingsmuligheder, men kræver macOS på din udviklingsmaskine.

Hvad hvis "Udviklerindstillinger" ikke vises på min Android-telefon?

"Udviklerindstillinger" er skjult som standard på Android 4.2 og nyere. Du skal aktivere dem ved at gå til Indstillinger > Om telefonen og derefter trykke på "Build-nummer" syv gange i træk. Herefter vil indstillingerne blive synlige i Indstillinger-menuen.

Hvorfor fungerer min USB-fejlfinding ikke, selvom jeg har fulgt alle trin?

Her er en hurtig tjekliste for at løse almindelige problemer:

  • Sørg for, at USB-kablet er intakt og af god kvalitet.
  • Tjek, at ADB-serveren kører på din computer (kør adb start-server i din terminal).
  • Bekræft, at du har tilladt "USB-fejlfinding" på din enhed, og at "Tillad altid fra denne computer" er markeret.
  • På nogle enheder skal du muligvis ændre USB-forbindelsestypen til "Camera (PTP)" i enhedens notifikationsområde, når den er tilsluttet.
  • Genstart din telefon, din computer, eller luk og genåbn Chrome DevTools.
  • Sørg for, at dine Chrome-versioner (desktop og Android) opfylder kravene (desktop Chrome skal være nyere).
  • Hvis du er på Windows, skal du sørge for, at de korrekte USB-drivere til din specifikke enhed er installeret.

Hvad er fordelene ved portviderestilling sammenlignet med at hoste mit websted online?

Portviderestilling giver dig mulighed for at teste dit lokale udviklingswebsted (f.eks. kørende på localhost:3000 på din computer) direkte på din Android-enhed uden at skulle uploade det til en ekstern server. Dette fremskynder udviklingsprocessen markant, da du kan foretage ændringer og se resultaterne øjeblikkeligt på en rigtig enhed, uden at forholde dig til udrulningsprocesser eller netværkskonfigurationer.

Konklusion

Fejlfinding af mobile websteder på Android med Chrome DevTools behøver ikke at være en kompliceret opgave. Selvom det kan kræve en smule indledende opsætning, er fordelene enorme. Når du først har mestret processen med at forberede din enhed og computer, etablere forbindelsen og udnytte DevTools' kraftfulde funktioner som skærmdeling og portviderestilling, bliver debugging af mobile websider på en fysisk enhed markant enklere.

Denne metode giver dig den kontrol og indsigt, der er nødvendig for at skabe robuste, højtydende weboplevelser, der fungerer fejlfrit for alle dine brugere. Ved at fjerne usikkerheden ved emuleringer og give dig direkte adgang til enhedens virkelige miljø, kan du hurtigt identificere, diagnosticere og løse problemer, hvilket i sidste ende forbedrer kvaliteten af dine mobile webapplikationer. Invester tiden i at lære fjernfejlfinding, og du vil opleve en mærkbar forbedring i din mobiludviklingsproces.

Hvis du vil læse andre artikler, der ligner Effektiv Fejlfinding af Mobile Websteder med Chrome, kan du besøge kategorien Mobiludvikling.

Go up