Network Inspector — τι είναι, αρχή λειτουργίας και παρακολούθηση αιτημάτων δικτύου

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-07 Χρόνος ανάγνωσης: 8 λεπ

Το Network Inspector στο Android Studio είναι ένα ενσωματωμένο εργαλείο προφίλ που προορίζεται για την παρακολούθηση και ανάλυση της κίνησης δικτύου της εφαρμογής κινητού σε πραγματικό χρόνο. Σύμφωνα με την επίσημη τεκμηρίωση του Android Developers (2025), το εργαλείο επιτρέπει την παρακολούθηση του χρόνου εκτέλεσης των αιτημάτων, του όγκου των μεταδιδόμενων δεδομένων και της κατάστασης HTTP κάθε κλήσης. Το εργαλείο δεν απαιτεί αλλαγές στον κώδικα της εφαρμογής και λειτουργεί "έτοιμο" με οποιοδήποτε έργο σε API Level 14 και άνω.

Κύρια σημεία

  • Network Inspector — είναι ένα στοιχείο του Android Profiler για την παρακολούθηση αιτημάτων δικτύου με δυνατότητα προβολής κεφαλίδων και σώματος απόκρισης
  • Υποκλοπή κίνησης γίνεται αυτόματα για όλες τις κλήσεις HTTP από την εφαρμογή, συμπεριλαμβανομένων OkHttp, Retrofit, Ktor και WebView
  • Χρονογραμμή εμφανίζει την ακολουθία των αιτημάτων με διάρκεια, μέγεθος και κατάσταση κάθε κλήσης
  • Λεπτομερής προβολή κάθε αιτήματος περιλαμβάνει κεφαλίδες, σώμα αιτήματος και απόκρισης, cookies και χρόνο εκτέλεσης ανά φάση
  • Εξαγωγή δεδομένων σε μορφή HAR επιτρέπει τη μεταφορά της αλληλεπίδρασης δικτύου σε συναδέλφους ή αποθήκευση για μετέπειτα ανάλυση

Τι είναι το Network Inspector;

Network Inspector είναι ένα εργαλείο προφίλ δραστηριότητας δικτύου ενσωματωμένο στο Android Studio. Επιτρέπει στους προγραμματιστές να βλέπουν σε πραγματικό χρόνο όλα τα αιτήματα HTTP και HTTPS που στέλνει η εφαρμογή, συμπεριλαμβανομένων κεφαλίδων, σώματος αιτήματος και απόκρισης, κωδικών κατάστασης και διάρκειας εκτέλεσης. Διαθέσιμο μέσω του πίνακα Android Profiler από το Android Studio 3.0.

Σκοπός και πεδίο εφαρμογής

Η κύρια εργασία του Network Inspector είναι ο εντοπισμός σφαλμάτων αλληλεπίδρασης δικτύου της εφαρμογής κινητού με τον διακομιστή. Το εργαλείο χρησιμοποιείται για τον έλεγχο της ορθότητας των μεταδιδόμενων δεδομένων, την ανάλυση χρόνου απόκρισης, την αναζήτηση σφαλμάτων API, καθώς και για τον εντοπισμό μη βέλτιστων μοτίβων δικτύου — για παράδειγμα, πολλαπλών αιτημάτων κατά τη φόρτωση μιας οθόνης. Το Network Inspector λειτουργεί σε οποιαδήποτε συσκευή με API Level 14.

Συμβατότητα και βιβλιοθήκες

Το εργαλείο υποστηρίζει όλους τους κύριους πελάτες HTTP Android: OkHttp (από την έκδοση 2.x), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (παρωχημένο) και WebView. Για OkHttp και Retrofit απαιτείται η βιβλιοθήκη OkHttp Profiler — προστίθεται αυτόματα όταν χρησιμοποιείτε Android Studio 4.1+. Για Ktor απαιτείται ξεχωριστή ρύθμιση παραμέτρων ενδιάμεσου λογισμικού.

Πώς λειτουργεί το Network Inspector

Το Network Inspector υποκλέπτει κλήσεις δικτύου σε επίπεδο συστήματος χρησιμοποιώντας τον μηχανισμό Profiler Agent, ο οποίος εισάγεται μαζί με το Android Profiler. Για σωστή λειτουργία απαιτείται έκδοση debug της εφαρμογής. Το εργαλείο δεν τροποποιεί τον κώδικα της εφαρμογής και δεν απαιτεί προσθήκη εξαρτήσεων για βασική λειτουργικότητα.

Μηχανισμός υποκλοπής κίνησης

Κατά την έναρξη της προφίλ, το Network Inspector συνδέεται με τη διαδικασία Debug της εφαρμογής και ακούει όλες τις κλήσεις HTTP που περνούν μέσω OkHttp Client, UrlConnection ή άλλων υποστηριζόμενων βιβλιοθηκών. Κάθε αίτημα καταγράφεται με χρονική σήμανση, επιτρέποντας τη δημιουργία χρονογραμμής δραστηριότητας δικτύου. Για HTTPS χρησιμοποιείται ένα ενδιάμεσο επίπεδο συστήματος που διατηρεί την κρυπτογράφηση κατά τη μετάδοση, αλλά επιτρέπει την προβολή αποκωδικοποιημένου περιεχομένου εντός του Studio.

Αρχιτεκτονική συλλογής δεδομένων

Η συλλογή δεδομένων γίνεται μέσω της Υπηρεσίας Profiler του Android Studio, η οποία εκτελείται σε ξεχωριστή διεργασία υποδοχής. Στη συσκευή εκτελείται ένας ελαφρύς πράκτορας που μεταδίδει μεταδεδομένα αιτημάτων μέσω του καναλιού ADB. Αυτό ελαχιστοποιεί την επίδραση στην απόδοση της εφαρμογής — η επιβάρυνση είναι μικρότερη από 3% σύμφωνα με δεδομένα της Google. Τα ίδια τα δεδομένα αιτημάτων (σώμα, κεφαλίδες) μεταδίδονται μόνο κατά την ενεργή προβολή λεπτομερειών.

kotlin
// Σύνδεση OkHttp για ενσωμάτωση με το Network Inspector
val client = OkHttpClient.Builder()
    .addInterceptor(HttpLoggingInterceptor().apply {
        level = HttpLoggingInterceptor.Level.BASIC
    })
    .build()

// Το Network Inspector υποκλέπτει αυτόματα όλες τις κλήσεις μέσω του client
client.newCall(Request.Builder()
    .url("https://api.example.com/data")
    .build()).execute()

Βασικές δυνατότητες του Network Inspector

Το Network Inspector παρέχει ένα σύνολο εργαλείων για ολοκληρωμένη ανάλυση κίνησης δικτύου. Κάθε λειτουργία στοχεύει στην επίλυση μιας συγκεκριμένης εργασίας εντοπισμού σφαλμάτων — από τον έλεγχο κεφαλίδων έως την ανάλυση απόδοσης API.

Χρονογραμμή αιτημάτων

Η κύρια οθόνη του Network Inspector εμφανίζει τη χρονολογία όλων των αιτημάτων με τη μορφή χρονογραμμής. Κάθε αίτημα αναπαρίσταται με μια χρωματιστή γραμμή: πράσινο — επιτυχής απόκριση (2xx), μπλε — ανακατεύθυνση (3xx), κίτρινο — σφάλμα πελάτη (4xx), κόκκινο — σφάλμα διακομιστή (5xx). Το μήκος της γραμμής αντιστοιχεί στον χρόνο εκτέλεσης του αιτήματος από τη σύνδεση έως τη λήψη πλήρους απόκρισης. Αυτό επιτρέπει τον άμεσο εντοπισμό αργών ή αποτυχημένων αιτημάτων.

ΠαράμετροςΠεριγραφήΠαράδειγμα τιμής
URLΠλήρης διεύθυνση αιτήματοςhttps://api.example.com/v2/users
MethodΜέθοδος HTTP αιτήματοςPOST
StatusΚωδικός απόκρισης HTTP200 OK
SizeΜέγεθος αιτήματος + απόκρισης σε bytes12.4 KB
TimeΣυνολικός χρόνος εκτέλεσης342 ms

Λεπτομερής προβολή αιτήματος

Κατά την επιλογή ενός συγκεκριμένου αιτήματος, ανοίγει ένα πάνελ με λεπτομέρειες: Headers (όλες οι κεφαλίδες αιτήματος και απόκρισης), Request Body (σώμα αιτήματος σε μορφή κειμένου ή δυαδική), Response Body (σώμα απόκρισης με δυνατότητα μορφοποίησης JSON), Cookies (αποσταλμένα και ληφθέντα), Timing (διαίρεση χρόνου ανά φάση: DNS, Connection, TLS Handshake, Request, Response).

Φιλτράρισμα και αναζήτηση

Το Network Inspector υποστηρίζει φιλτράρισμα αιτημάτων κατά URL, μέθοδο HTTP, κωδικό κατάστασης και τύπο περιεχομένου. Μπορούν να εξαιρεθούν αιτήματα προς συγκεκριμένα domains για εστίαση μόνο στο απαραίτητο API. Η αναζήτηση λειτουργεί σε όλα τα πεδία του αιτήματος, συμπεριλαμβανομένων σώματος και κεφαλίδων, κάτι που είναι βολικό κατά τον εντοπισμό σφαλμάτων μιας συγκεκριμένης λειτουργίας της εφαρμογής. Τα συνδυασμένα φίλτρα επιτρέπουν τη δημιουργία ενός συνόλου κανόνων που εφαρμόζονται αυτόματα σε κάθε έναρξη προφίλ.

Ομαδοποίηση και σύγκριση αιτημάτων

Η χρονογραμμή υποστηρίζει ομαδοποίηση αιτημάτων κατά μοτίβα URL. Για παράδειγμα, όλα τα αιτήματα της μορφής /api/v2/users/* μπορούν να συμπτυχθούν σε μία ομάδα. Αυτό απλοποιεί την ανάλυση όταν η εφαρμογή πραγματοποιεί εκατοντάδες αιτήματα σε σύντομο χρονικό διάστημα. Η λειτουργία σύγκρισης γειτονικών αιτημάτων βοηθά στον εντοπισμό αλλαγών στις αποκρίσεις του διακομιστή σε επαναλαμβανόμενες κλήσεις.

Εντοπισμός σφαλμάτων αιτημάτων δικτύου με το Network Inspector

Η πρακτική χρήση του Network Inspector καλύπτει τυπικά σενάρια εντοπισμού σφαλμάτων: έλεγχο μορφής δεδομένων, εντοπισμό αργών τελικών σημείων, εύρεση διαρροών μνήμης λόγω μη κλειστών συνδέσεων και ανάλυση προσωρινής αποθήκευσης.

Έλεγχος δομής απόκρισης JSON

Μια συχνή εργασία — βεβαιωθείτε ότι ο διακομιστής επιστρέφει δεδομένα στην αναμενόμενη μορφή. Το Network Inspector εμφανίζει το σώμα απόκρισης με μορφοποίηση JSON, συμπεριλαμβανομένης της επισήμανσης σύνταξης. Εάν η απόκριση δεν αναλύεται στον πελάτη, στον επιθεωρητή φαίνεται αμέσως η αιτία: έλλειψη πεδίου, λανθασμένος τύπος δεδομένων (συμβολοσειρά αντί για αριθμό) ή υπερβολική ένθεση. Εάν ο διακομιστής επιστρέφει σφάλμα, ο επιθεωρητής εμφανίζει τη δομή σφάλματος με κωδικό και μήνυμα. Για δυαδικές μορφές (Protocol Buffers, εικόνες) εμφανίζεται το μέγεθος και ο τύπος περιεχομένου.

Ανάλυση χρόνου εκτέλεσης

Η καρτέλα Timing διαιρεί την εκτέλεση του αιτήματος σε φάσεις: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Εάν ο συνολικός χρόνος υπερβαίνει το 1-2 δευτερόλεπτα, βάσει της διαίρεσης φάσεων μπορεί να προσδιοριστεί η αιτία. Για παράδειγμα, το μεγάλο DNS υποδεικνύει προβλήματα με τον επιλυτή, το μεγάλο TLS Handshake — παλαιότερη έκδοση πρωτοκόλλου στον διακομιστή, το μεγάλο Response — αργό κώδικα διακομιστή ή μη αποδοτικό αίτημα με περιττά δεδομένα. Η ανάλυση Timing βοηθά στον εντοπισμό σημείων συμφόρησης ακόμη και πριν από την έναρξη βελτιστοποίησης του τμήματος διακομιστή.

Αναζήτηση διπλότυπων αιτημάτων

Το Network Inspector βοηθά στον εντοπισμό περιττών αιτημάτων — για παράδειγμα, όταν σε κάθε περιστροφή οθόνης το Activity επαναφορτώνει δεδομένα. Στη χρονογραμμή, μια σειρά πανομοιότυπων αιτημάτων το ένα μετά το άλλο υποδεικνύει ξεκάθαρα το πρόβλημα. Η λύση μπορεί να είναι η προσωρινή αποθήκευση, η χρήση ViewModel με διατήρηση κατάστασης ή SingleLiveEvent για μία μόνο φόρτωση.

kotlin
// Προσωρινή αποθήκευση αιτημάτων με OkHttp για εξάλειψη διπλοτύπων
val cache = Cache(
    File(context.cacheDir, "http_cache"),
    cacheSize = 10L * 1024 * 1024 // 10 MB
)

val cachedClient = OkHttpClient.Builder()
    .cache(cache)
    .addNetworkInterceptor(CacheInterceptor())
    .build()

Περιορισμοί του Network Inspector και εναλλακτικές

Παρά τις εκτεταμένες δυνατότητες, το Network Inspector έχει ορισμένους περιορισμούς που πρέπει να ληφθούν υπόψη. Για ορισμένα σενάρια — όπως η υποκλοπή HTTPS με αυτο-υπογεγραμμένα πιστοποιητικά ή η ανάλυση κίνησης βιβλιοθηκών τρίτων — ενδέχεται να απαιτούνται εναλλακτικά εργαλεία.

Περιορισμοί πλατφόρμας και βιβλιοθηκών

Το Network Inspector λειτουργεί μόνο με εφαρμογές Android και δεν υποστηρίζει iOS. Για Kotlin Multiplatform (KMM) ορισμένα αιτήματα ενδέχεται να μην εμφανίζονται εάν εκτελούνται στο εγγενές τμήμα. Ορισμένες βιβλιοθήκες — για παράδειγμα, gRPC, WebSocket (όχι HTTP), GraphQL μέσω Apollo (έως την έκδοση 3.x) — ενδέχεται να υποκλέπτονται μερικώς ή καθόλου χωρίς ρύθμιση πρόσθετων ενδιάμεσων.

Εναλλακτικά εργαλεία

Για βαθύτερη ανάλυση κίνησης δικτύου υπάρχουν λύσεις τρίτων: Charles Proxy (πλήρης διακομιστής μεσολάβησης με υποκλοπή HTTPS), Proxyman (αντίστοιχο για macOS), Wireshark (ανάλυση σε επίπεδο πακέτων), Stetho by Facebook (ενσωμάτωση με Chrome DevTools), Chucker (βιβλιοθήκη για επιθεώρηση αιτημάτων εντός εφαρμογής). Κάθε εργαλείο έχει τη θέση του: το Charles και το Proxyman είναι απαραίτητα για τον εντοπισμό σφαλμάτων αλληλεπίδρασης με τον διακομιστή στα αρχικά στάδια ανάπτυξης, ενώ το Chucker — για τη συλλογή πληροφοριών σε δοκιμαστικές εκδόσεις.

ΕργαλείοΤύποςΠλατφόρμαHTTPSHAR
Network InspectorΕνσωματωμένο στο Android StudioAndroidΝαιΝαι
Charles ProxyΔιακομιστής μεσολάβησηςCross-platformΝαιΝαι
ProxymanΔιακομιστής μεσολάβησηςmacOS, iOSΝαιΝαι
ChuckerΕπιθεωρητής εντός εφαρμογήςAndroidΝαιΌχι
WiresharkΑναλυτής πακέτωνCross-platformΌχιΌχι

Συχνές ερωτήσεις

Γιατί το Network Inspector δεν εμφανίζει αιτήματα;

Βεβαιωθείτε ότι η εφαρμογή είναι μεταγλωττισμένη σε διαμόρφωση Debug και εκτελείται με συνδεδεμένο το Android Profiler. Εάν χρησιμοποιείται OkHttp 4.x, ίσως χρειαστεί να ενημερώσετε τη βιβλιοθήκη στην τελευταία έκδοση. Για Ktor, τα αιτήματα εμφανίζονται μόνο όταν χρησιμοποιείτε πελάτη Ktor με Engine που υποστηρίζει υποκλοπή.

Μπορεί να προβληθεί κίνηση HTTPS;

Ναι, το Network Inspector υποστηρίζει κίνηση HTTPS χωρίς πρόσθετη ρύθμιση. Σε αντίθεση με το Charles Proxy, δεν απαιτείται εγκατάσταση ριζικού πιστοποιητικού. Το εργαλείο χρησιμοποιεί τον μηχανισμό συστήματος του Android Profiler για αποκωδικοποίηση της κίνησης εντός της συνεδρίας εντοπισμού σφαλμάτων.

Πώς γίνεται εξαγωγή δεδομένων από το Network Inspector;

Το Network Inspector επιτρέπει την εξαγωγή δεδομένων σε μορφή HAR (HTTP Archive). Πατήστε το κουμπί Export στην επάνω δεξιά γωνία του πίνακα. Το αρχείο HAR μπορεί να ανοίξει σε οποιοδήποτε πρόγραμμα προβολής HAR ή να εισαχθεί στο Charles Proxy και Proxyman για περαιτέρω ανάλυση.

Επηρεάζει το Network Inspector την απόδοση της εφαρμογής;

Σύμφωνα με δεδομένα της Google, η επιβάρυνση δεν υπερβαίνει το 3% κατά την ενεργή προφίλ. Όταν το Network Inspector είναι απενεργοποιημένο, δεν υπάρχει επιβάρυνση. Το εργαλείο δεν συνιστάται για χρήση σε εκδόσεις release, αλλά σε συνεδρίες Debug η επίδραση είναι ανεπαίσθητη σε σύγχρονες συσκευές.

Τι να κάνω εάν η απόκριση εμφανίζεται ως ακατέργαστα δεδομένα;

Εάν το σώμα απόκρισης εμφανίζεται ως μη αναγνώσιμα ακατέργαστα δεδομένα, αυτό μπορεί να σχετίζεται με συμπίεση gzip ή δυαδική μορφή (Protocol Buffers, MessagePack). Το Network Inspector αποκωδικοποιεί αυτόματα το gzip. Για προσαρμοσμένες μορφές, χρησιμοποιήστε την υπόδειξη Content-Type στις κεφαλίδες απόκρισης.

Σύνοψη

  • Network Inspector — είναι ένα ενσωματωμένο εργαλείο στο Android Studio για παρακολούθηση και εντοπισμό σφαλμάτων αιτημάτων δικτύου σε πραγματικό χρόνο χωρίς τροποποίηση του κώδικα της εφαρμογής
  • Αυτόματη υποκλοπή όλων των κλήσεων HTTP μέσω OkHttp, Retrofit, Ktor και UrlConnection — το εργαλείο λειτουργεί "έτοιμο" σε έκδοση Debug
  • Χρονογραμμή με χρωματική κωδικοποίηση κωδικών κατάστασης επιτρέπει τον άμεσο εντοπισμό αργών, σφαλμάτων και επαναλαμβανόμενων αιτημάτων
  • Λεπτομερής προβολή κάθε αιτήματος περιλαμβάνει κεφαλίδες, σώμα (με μορφοποίηση JSON), cookies και διαίρεση φάσεων χρόνου εκτέλεσης
  • Διαίρεση φάσεων Timing (DNS, TCP, TLS, Request, Response) βοηθά στον ακριβή προσδιορισμό της αιτίας αργών αιτημάτων
  • Εξαγωγή σε HAR επιτρέπει την αποθήκευση συνεδριών για μεταφορά σε συναδέλφους ή ανάλυση σε εξωτερικά εργαλεία όπως το Charles Proxy
  • Για πιο σύνθετα σενάρια, χρησιμοποιήστε Charles Proxy ή Proxyman — υποστηρίζουν υποκλοπή κίνησης σε επίπεδο λειτουργικού συστήματος και εργασία με iOS

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης