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
  • ไทม์ไลน์แสดงลำดับของคำขอ พร้อมระบุระยะเวลา ขนาด และสถานะของการเรียกแต่ละครั้ง
  • มุมมองโดยละเอียดของแต่ละคำขอประกอบด้วยส่วนหัว เนื้อหาของคำขอและการตอบกลับ คุกกี้ และเวลาการทำงานรายขั้นตอน
  • การส่งออกข้อมูลในรูปแบบ HAR ช่วยให้ส่งต่อการโต้ตอบเครือข่ายให้เพื่อนร่วมงานหรือบันทึกไว้เพื่อวิเคราะห์ภายหลัง

Network Inspector คืออะไร

Network Inspector เป็นเครื่องมือโปรไฟล์กิจกรรมเครือข่ายที่ติดตั้งในตัวของ Android Studio ช่วยให้นักพัฒนาเห็นคำขอ HTTP และ HTTPS ทั้งหมดที่แอปส่งออกแบบเรียลไทม์ รวมถึงส่วนหัว เนื้อหาของคำขอและการตอบกลับ รหัสสถานะ และระยะเวลาการทำงาน ใช้งานได้ผ่านแผง Android Profiler ตั้งแต่ Android Studio 3.0 เป็นต้นไป

วัตถุประสงค์และขอบเขตการใช้งาน

หน้าที่หลักของ Network Inspector คือการดีบักการโต้ตอบเครือข่ายระหว่างแอปมือถือกับเซิร์ฟเวอร์ เครื่องมือนี้ใช้สำหรับตรวจสอบความถูกต้องของข้อมูลที่ส่ง วิเคราะห์เวลาตอบสนอง ค้นหาข้อผิดพลาดของ API และตรวจจับรูปแบบเครือข่ายที่ไม่มีประสิทธิภาพ เช่น คำขอหลายครั้งเมื่อโหลดหน้าจอเดียว Network Inspector ทำงานบนอุปกรณ์ใดก็ได้ที่มี API Level 14

ความเข้ากันได้และไลบรารี

เครื่องมือนี้รองรับ HTTP client หลักทั้งหมดของ 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 ต้องใช้บิลด์ดีบักของแอปเพื่อให้ทำงานได้อย่างถูกต้อง เครื่องมือนี้ไม่แก้ไขโค้ดของแอป และไม่ต้องเพิ่มดีเพนเดนซีสำหรับฟังก์ชันพื้นฐาน

กลไกการดักจับทราฟฟิก

เมื่อเริ่มโปรไฟล์ Network Inspector จะเชื่อมต่อกับกระบวนการดีบักของแอปและฟังการเรียก HTTP ทั้งหมดที่ผ่าน OkHttp Client, UrlConnection หรือไลบรารีอื่นที่รองรับ แต่ละคำขอจะถูกบันทึกพร้อมไทม์สแตมป์ ทำให้สามารถสร้างไทม์ไลน์ของกิจกรรมเครือข่ายได้ สำหรับ HTTPS จะใช้เลเยอร์ของระบบ ซึ่งรักษาการเข้ารหัสระหว่างการส่ง แต่ช่วยให้ดูเนื้อหาที่ถอดรหัสแล้วภายใน Studio ได้

สถาปัตยกรรมการเก็บรวบรวมข้อมูล

การเก็บรวบรวมข้อมูลเกิดขึ้นผ่าน Profiler Service ของ 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 รหัส HTTP ของการตอบกลับ 200 OK
Size ขนาดของคำขอ + การตอบกลับเป็นไบต์ 12.4 KB
Time เวลาการทำงานทั้งหมด 342 ms

มุมมองรายละเอียดของคำขอ

เมื่อเลือกคำขอเฉพาะเจาะจง จะเปิดแผงพร้อมรายละเอียด ได้แก่ Headers (ส่วนหัวทั้งหมดของคำขอและการตอบกลับ), Request Body (เนื้อหาของคำขอในรูปแบบข้อความหรือไบนารี), Response Body (เนื้อหาการตอบกลับพร้อมตัวเลือกการจัดรูปแบบ JSON), Cookies (ที่ส่งและได้รับ), Timing (การแบ่งเวลาตามเฟส: DNS, Connection, TLS Handshake, Request, Response)

การกรองและการค้นหา

Network Inspector รองรับการกรองคำขอตาม URL วิธี HTTP รหัสสถานะ และประเภทเนื้อหา สามารถแยกคำขอไปยังโดเมนบางแห่งออก เพื่อมุ่งเน้นเฉพาะ API ที่ต้องการ การค้นหาทำงานในทุกฟิลด์ของคำขอ รวมถึงเนื้อหาและส่วนหัว ซึ่งสะดวกเมื่อดีบักฟังก์ชันเฉพาะของแอป ฟิลเตอร์แบบผสมช่วยสร้างชุดกฎที่นำไปใช้โดยอัตโนมัติทุกครั้งที่เริ่มโปรไฟล์

การจัดกลุ่มและเปรียบเทียบคำขอ

ไทม์ไลน์รองรับการจัดกลุ่มคำขอตามแพตเทิร์น URL เช่น คำขอรูปแบบ /api/v2/users/* ทั้งหมดสามารถยุบเป็นกลุ่มเดียวได้ ซึ่งช่วยให้วิเคราะห์ง่ายขึ้นเมื่อแอปส่งคำขอหลายร้อยครั้งในเวลาอันสั้น ฟังก์ชันเปรียบเทียบคำขอที่อยู่ติดกันช่วยตรวจจับการเปลี่ยนแปลงในการตอบกลับของเซิร์ฟเวอร์เมื่อมีการเรียกซ้ำ

การดีบักคำขอเครือข่ายด้วย Network Inspector

การใช้งาน Network Inspector ในทางปฏิบัติครอบคลุมสถานการณ์ดีบักทั่วไป ได้แก่ การตรวจสอบรูปแบบข้อมูล การค้นหาเอนด์พอยต์ที่ช้า การตรวจจับการรั่วไหลของหน่วยความจำจากการเชื่อมต่อที่ไม่ปิด และการวิเคราะห์แคช

การตรวจสอบโครงสร้างของคำตอบ JSON

งานที่พบบ่อยคือการยืนยันว่าเซิร์ฟเวอร์ส่งข้อมูลกลับในรูปแบบที่คาดหวัง Network Inspector แสดงเนื้อหาการตอบกลับพร้อมการจัดรูปแบบ JSON รวมถึงการไฮไลต์ไวยากรณ์ หากคำตอบไม่สามารถ parse ฝั่งไคลเอ็นต์ได้ จะเห็นสาเหตุได้ทันทีในอินสเปกเตอร์ เช่น ฟิลด์ที่หายไป ชนิดข้อมูลไม่ถูกต้อง (สตริงแทนตัวเลข) หรือการซ้อนมากเกินไป หากเซิร์ฟเวอร์ส่งข้อผิดพลาดกลับมา อินสเปกเตอร์จะแสดงโครงสร้างข้อผิดพลาดพร้อมรหัสและข้อความ สำหรับรูปแบบไบนารี (Protocol Buffers, รูปภาพ) จะแสดงขนาดและ content-type

การวิเคราะห์เวลาการทำงาน

แท็บ 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) คำขอบางส่วนอาจไม่แสดงผล หากทำงานในส่วน native ไลบรารีบางตัว เช่น gRPC, WebSocket (ไม่ใช่ HTTP), GraphQL ผ่าน Apollo (ถึงเวอร์ชัน 3.x) อาจถูกดักจับบางส่วนหรือไม่ถูกดักจับเลย จนกว่าจะตั้งค่าอินเทอร์เซปเตอร์เพิ่มเติม

เครื่องมือทางเลือก

สำหรับการวิเคราะห์ทราฟฟิกเครือข่ายเชิงลึก มีโซลูชันจากบุคคลที่สาม ได้แก่ Charles Proxy (พร็อกซีเซิร์ฟเวอร์เต็มรูปแบบพร้อมการดักจับ HTTPS), Proxyman (เทียบเท่าสำหรับ macOS), Wireshark (การวิเคราะห์ระดับแพ็กเก็ต), Stetho by Facebook (การผสานกับ Chrome DevTools), Chucker (ไลบรารีสำหรับตรวจสอบคำขอภายในแอป) แต่ละเครื่องมือมีจุดเด่นของตัวเอง Charles และ Proxyman ขาดไม่ได้เมื่อดีบักการโต้ตอบกับเซิร์ฟเวอร์ในช่วงแรกของการพัฒนา ส่วน Chucker เหมาะสำหรับการเก็บข้อมูลในบิลด์ทดสอบ

เครื่องมือ ประเภท แพลตฟอร์ม HTTPS HAR
Network Inspector ติดตั้งในตัว Android Studio Android ใช่ ใช่
Charles Proxy พร็อกซีเซิร์ฟเวอร์ ข้ามแพลตฟอร์ม ใช่ ใช่
Proxyman พร็อกซีเซิร์ฟเวอร์ macOS, iOS ใช่ ใช่
Chucker อินสเปกเตอร์ในแอป Android ใช่ ไม่
Wireshark ตัววิเคราะห์แพ็กเก็ต ข้ามแพลตฟอร์ม ไม่ ไม่

คำถามที่พบบ่อย

ทำไม Network Inspector ไม่แสดงคำขอ

ตรวจสอบว่าแอปถูกบิลด์ในคอนฟิกดีบักและรันพร้อมกับ Android Profiler ที่เชื่อมต่อ หากใช้ OkHttp 4.x อาจต้องอัปเดตไลบรารีเป็นเวอร์ชันล่าสุด สำหรับ Ktor คำขอจะแสดงเฉพาะเมื่อใช้ Ktor client ที่มี 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 จะไม่มีโอเวอร์เฮดเลย ไม่แนะนำให้ใช้เครื่องมือนี้ในบิลด์เผยแพร่ แต่สำหรับเซสชันดีบัก ผลกระทบแทบไม่รู้สึกบนอุปกรณ์สมัยใหม่

จะทำอย่างไรหากการตอบกลับแสดงเป็นข้อมูล raw

หากเนื้อหาการตอบกลับแสดงเป็นข้อมูล rawที่อ่านไม่ออก อาจเกี่ยวข้องกับการบีบอัด gzip หรือรูปแบบไบนารี (Protocol Buffers, MessagePack) Network Inspector ถอดรหัส gzip โดยอัตโนมัติ สำหรับรูปแบบที่กำหนดเอง ให้ใช้ hint ของ Content-Type ในส่วนหัวของการตอบกลับ

สรุป

  • Network Inspector เป็นเครื่องมือที่ติดตั้งในตัวของ Android Studio สำหรับตรวจสอบและดีบักคำขอเครือข่ายแบบเรียลไทม์โดยไม่ต้องแก้ไขโค้ดของแอป
  • การดักจับอัตโนมัติของการเรียก HTTP ทั้งหมดผ่าน OkHttp, Retrofit, Ktor และ UrlConnection — เครื่องมือทำงานได้ทันทีในบิลด์ดีบัก
  • ไทม์ไลน์พร้อมการเข้ารหัสสีของรหัสสถานะช่วยระบุคำขอที่ช้า ล้มเหลว และซ้ำกันได้ทันที
  • มุมมองรายละเอียดของแต่ละคำขอประกอบด้วยส่วนหัว เนื้อหา (พร้อมการจัดรูปแบบ JSON) คุกกี้ และการแบ่งเวลาการทำงานตามเฟส
  • การแบ่งเฟส Timing (DNS, TCP, TLS, Request, Response) ช่วยระบุสาเหตุของคำขอที่ช้าได้อย่างแม่นยำ
  • การส่งออกเป็น HAR ช่วยบันทึกเซสชันเพื่อส่งต่อให้เพื่อนร่วมงานหรือวิเคราะห์ในเครื่องมือภายนอก เช่น Charles Proxy
  • สำหรับสถานการณ์ที่ซับซ้อนกว่านี้ ให้ใช้ Charles Proxy หรือ Proxyman — รองรับการดักจับทราฟฟิกระดับระบบปฏิบัติการและการทำงานกับ iOS

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม