ต่อไปนี้คือฟีเจอร์ใหม่ใน Android Studio Hedgehog
ข้อมูลอัปเดตเกี่ยวกับแพลตฟอร์ม IntelliJ IDEA 2023.1
Android Studio Hedgehog มีการอัปเดตจาก IntelliJ IDEA 2023.1 ซึ่งช่วยปรับปรุง Studio IDE ดูรายละเอียดการเปลี่ยนแปลงได้ที่ บันทึกประจำรุ่นของ IntelliJ IDEA 2023.1
วิเคราะห์ Android Vitals ในข้อมูลเชิงลึกเกี่ยวกับคุณภาพของแอป
ตอนนี้ข้อมูลเชิงลึกเกี่ยวกับคุณภาพแอปมี ข้อมูล Android Vitals เพื่อให้คุณเข้าถึงได้ง่ายขึ้น เมตริกหลักที่รวบรวมโดย Google Play และปรับปรุงประสบการณ์ของผู้ใช้ ใช้ Android Vitals แก้ปัญหาเกี่ยวกับความเสถียรของแอปเพื่อช่วยปรับปรุง คุณภาพแอปบน Google Play
คุณสามารถดูปัญหาของ Android Vitals, กรองปัญหา และข้ามจากสแต็กเทรซไปยัง โค้ดทั้งหมดจากหน้าต่างเครื่องมือข้อมูลเชิงลึกเกี่ยวกับคุณภาพแอป หากต้องการเริ่มต้นใช้งาน ให้ทําตาม ขั้นตอนเหล่านี้:
- ลงชื่อเข้าใช้บัญชีนักพัฒนาแอปใน Android Studio โดยใช้ไอคอนโปรไฟล์
ที่
ส่วนปลายของแถบเครื่องมือ
- เปิดข้อมูลเชิงลึกเกี่ยวกับคุณภาพแอปโดยคลิกหน้าต่างเครื่องมือใน Android Studio หรือคลิกดู > หน้าต่างเครื่องมือ > ข้อมูลเชิงลึกเกี่ยวกับคุณภาพของแอป
- คลิกแท็บ Android Vitals ในข้อมูลเชิงลึกเกี่ยวกับคุณภาพแอป
จำนวนที่แตกต่างกันระหว่าง Android Vitals กับ Crashlytics
โปรดทราบว่า Android Vitals และ Crashlytics อาจรายงานค่าที่แตกต่างกันสำหรับ จำนวนผู้ใช้และเหตุการณ์ที่เชื่อมโยงกับข้อขัดข้องเดียวกัน ความคลาดเคลื่อนเหล่านี้ เกิดขึ้นเนื่องจาก Play และ Crashlytics สามารถตรวจจับข้อขัดข้องได้ในเวลาที่ต่างกัน ผู้ใช้ที่แตกต่างกัน สาเหตุ 2 ข้อที่ทำให้ Play และ Crashlytics มีดังนี้ จํานวนอาจต่างกัน เช่น
- Play ตรวจจับข้อขัดข้องตั้งแต่เปิดเครื่อง ขณะที่ Crashlytics ตรวจจับได้ ข้อขัดข้องที่เกิดขึ้นหลังจาก Crashlytics SDK เริ่มต้น
- หากผู้ใช้เลือกไม่ใช้การรายงานข้อขัดข้องเมื่อได้รับโทรศัพท์เครื่องใหม่ ข้อขัดข้องเหล่านั้น จะไม่รายงานไปยัง Play อย่างไรก็ตาม Crashlytics จะตรวจจับข้อขัดข้องตาม นโยบายความเป็นส่วนตัวของตนเอง
เครื่องมือสร้างโปรไฟล์ขั้นสูงใหม่
Power Profiler จะแสดงการใช้พลังงานเริ่มตั้งแต่ Android Studio Hedgehog บนอุปกรณ์ต่างๆ คุณดูข้อมูลใหม่นี้ได้ใน On Device Power Rails Monitor (ODPM) ODPM แบ่งข้อมูลตามระบบย่อยที่เรียกว่า Power Rails ดูรางไฟฟ้าที่สามารถโปรไฟล์ได้ สำหรับรายการระบบย่อยที่รองรับ
การติดตามระบบ บันทึกและแสดงข้อมูลการใช้พลังงาน โดยเป็นส่วนหนึ่งของเครื่องมือสร้างโปรไฟล์ CPU ข้อมูลนี้ช่วยในการสังเกตความสัมพันธ์ของพลังงาน อุปกรณ์พร้อมด้วยการดำเนินการที่เกิดขึ้นในแอปของคุณ Power Profiler จะเปิดใช้การแสดงภาพข้อมูลนี้
หากต้องการดูข้อมูลจาก Power Profiler ใหม่ ให้ติดตามระบบใน Pixel 6 ขึ้นไป อุปกรณ์:
- เลือก มุมมอง > หน้าต่างเครื่องมือ > เครื่องมือสร้างโปรไฟล์
- คลิกที่ใดก็ได้ในไทม์ไลน์ CPU เพื่อเปิดเครื่องมือสร้างโปรไฟล์ CPU และ เริ่มการติดตามระบบ
ผู้ช่วย App Link ใหม่
App Link Assistant ใหม่ให้ภาพรวมที่ครอบคลุมเกี่ยวกับ Deep Link
ตั้งค่าในแอปของคุณ Assistant แสดง Deep Link ที่มีอยู่ทั้งหมดในแอป
AndroidManifest.xml
ตรวจสอบว่าการกำหนดค่าสำหรับ Deep Link เหล่านั้นหรือไม่
ลิงก์ถูกต้อง และเป็นวิธีที่รวดเร็วในการแก้ไขโดยอัตโนมัติ
การกำหนดค่าที่ไม่ถูกต้อง
หากต้องการเปิด Assistant สำหรับ App Link ให้ไปที่เครื่องมือ > Assistant ใน App Link Android Studio ดูข้อมูลเพิ่มเติมเกี่ยวกับลิงก์แอปได้ที่ เพิ่มลิงก์แอป Android
แป้นพิมพ์ลัดสำหรับโหมดแก้ไขด้วยตนเองที่อัปเดตแล้ว
การแก้ไขสดใน Android Studio Hedgehog มีแป้นพิมพ์ลัดใหม่สำหรับโหมดแมนวล (พุชด้วยตนเอง) ดังนี้ Control+\ (Command+\ สำหรับ macOS) โหมดแมนวลมีประโยชน์ ในสถานการณ์ที่คุณต้องการ การควบคุมที่แม่นยำว่าจะมีการอัปเดต ที่ปรับใช้กับแอปพลิเคชันที่ทำงานอยู่ เช่น ถ้าคุณสร้างข้อมูลจำนวนมาก เปลี่ยนแปลงในไฟล์และไม่ต้องการให้แสดงสถานะระหว่างกลางใน อุปกรณ์ คุณสามารถเลือกได้ระหว่างพุชด้วยตนเองหรือพุชด้วยตนเองเมื่อบันทึก ในการตั้งค่าการแก้ไขแบบสด หรือใช้ตัวบ่งชี้ UI การแก้ไขสด สำหรับข้อมูลเพิ่มเติม ให้ดูวิดีโอคลิปในการแก้ไขสดสำหรับ Jetpack เขียน
เขียนเทมเพลต Multipreview
androidx.compose.ui:ui-tooling-preview
1.6.0-alpha01+ เปิดตัวใหม่
API หลายตัวอย่าง
เทมเพลต: @PreviewScreenSizes
, @PreviewFontScales
, @PreviewLightDark
และ @PreviewDynamicColors
ดังนั้นสำหรับคำอธิบายประกอบ 1 รายการ คุณจะสามารถ
ดูตัวอย่าง UI ของ Compose ในสถานการณ์ทั่วไป
![](https://developer.android.com/static/studio/images/design/multipreview-template.png?hl=th)
เขียนโหมดแกลเลอรีตัวอย่าง
ใน Android Studio Hedgehog เราได้เปิดตัวโหมดแกลเลอรีใหม่ใน Compose Preview ซึ่งช่วยให้คุณโฟกัสที่ 1 ตัวอย่างครั้งละ 1 ตัวอย่างและ ประหยัดทรัพยากรในการแสดงภาพ เราขอแนะนำให้ใช้โหมดแกลเลอรี เมื่อต้องการทำซ้ำใน UI ของแอปและสลับไปใช้โหมดอื่นๆ เช่น ตารางกริดหรือรายการเมื่อต้องการดูตัวแปร UI
![](https://developer.android.com/static/studio/images/design/gallery-mode.gif?hl=th)
เขียนข้อมูลสถานะในโปรแกรมแก้ไขข้อบกพร่อง
เมื่อบางส่วนของ UI เขียนใหม่เกิดใหม่โดยไม่คาดคิด บางครั้งก็เป็นเรื่องยาก เพื่อทำความเข้าใจสาเหตุ ทีนี้ เมื่อตั้งค่าเบรกพอยท์ในฟังก์ชัน Composable พารามิเตอร์ debugger จะแสดงพารามิเตอร์ของ Composable และ เพื่อให้คุณสามารถระบุการเปลี่ยนแปลงที่อาจทำให้เกิด การจัดองค์ประกอบใหม่ ตัวอย่างเช่น เมื่อคุณหยุดชั่วคราวใน Composable โปรแกรมแก้ไขข้อบกพร่องจะ จะบอกคุณให้แน่ชัดว่าพารามิเตอร์ใดมีการ "เปลี่ยนแปลง" หรือยังคงเป็น "ไม่เปลี่ยนแปลง" เพื่อให้สามารถตรวจสอบสาเหตุของการจัดองค์ประกอบใหม่ได้อย่างมีประสิทธิภาพมากขึ้น
การมิเรอร์อุปกรณ์
ตอนนี้คุณสามารถมิเรอร์อุปกรณ์จริงในหน้าต่างอุปกรณ์ที่ใช้ได้แล้วใน Android Studio การสตรีมจอแสดงผลของอุปกรณ์ไปยัง Android Studio โดยตรง คุณจะสามารถดำเนินการทั่วไป เช่น การเริ่มต้นแอปและการโต้ตอบกับแอป การหมุนหน้าจอ การพับและกางโทรศัพท์ การเปลี่ยนระดับเสียง และ ได้จาก Studio IDE โดยตรง
การมิเรอร์อุปกรณ์จะพร้อมใช้งานเสมอ เมื่อมีอุปกรณ์ที่เชื่อมต่อกับ คอมพิวเตอร์ที่เปิดใช้การแก้ไขข้อบกพร่องผ่าน USB หรือไร้สาย คุณเริ่มและหยุดได้ การมิเรอร์โดยใช้หน้าต่างอุปกรณ์ที่ใช้งานอยู่หรือ โปรแกรมจัดการอุปกรณ์ (มุมมอง > หน้าต่างเครื่องมือ > โปรแกรมจัดการอุปกรณ์) นอกจากนี้คุณยัง ปรับแต่งเมื่อเปิดใช้งานการมิเรอร์อุปกรณ์ได้ในการตั้งค่า (การตั้งค่า > เครื่องมือ > การมิเรอร์อุปกรณ์)
ปัญหาที่ทราบ
อุปกรณ์บางอย่างอาจเข้ารหัสด้วยอัตราบิตที่ไม่พอที่จะรองรับได้ การมิเรอร์อุปกรณ์ ในกรณีเช่นนี้ คุณอาจเห็นข้อผิดพลาดในคอลัมน์ กำลังทำงาน อุปกรณ์ รวมถึงบันทึกที่คล้ายคลึงกับที่แสดงไว้ด้านล่าง
2023-06-01 15:32:22,675 [ 56094] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [ 56095] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [ 56289] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [ 56290] WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1
ประกาศเกี่ยวกับนโยบายความเป็นส่วนตัว
Android Studio จะเริ่มต้นได้โดยอัตโนมัติ ขึ้นอยู่กับการตั้งค่าการมิเรอร์อุปกรณ์
การมิเรอร์อุปกรณ์สำหรับอุปกรณ์ที่เชื่อมต่อและจับคู่ ซึ่งอาจส่งผลให้
การเปิดเผยข้อมูลสำหรับอุปกรณ์ที่เชื่อมต่อกับคำสั่ง adb tcpip
เนื่องจากระบบส่งข้อมูลและคำสั่งการมิเรอร์ผ่านไฟล์ที่ไม่ได้เข้ารหัส
นอกจากนี้ Android Studio ใช้ช่องทางที่ไม่ได้เข้ารหัสในการสื่อสาร
กับเซิร์ฟเวอร์ adb ดังนั้นผู้ใช้คนอื่นๆ อาจขัดขวางการมิเรอร์ข้อมูลได้
ในเครื่องโฮสต์ของคุณ
การส่งต่ออินพุตฮาร์ดแวร์
ตอนนี้คุณเปิดใช้การส่งต่ออินพุตของฮาร์ดแวร์เวิร์กสเตชันแบบโปร่งใสได้แล้ว
เช่น เมาส์และแป้นพิมพ์ เข้ากับอุปกรณ์จริงและอุปกรณ์เสมือนที่เชื่อมต่อกัน ถึง
เปิดใช้การส่งต่อแบบโปร่งใส คลิกอินพุตฮาร์ดแวร์
สำหรับอุปกรณ์เป้าหมายในหน้าต่างอุปกรณ์ที่ใช้งานอยู่
จัดการอุปกรณ์ได้โดยตรงจากหน้าต่าง "อุปกรณ์ที่ใช้งานอยู่"
ตอนนี้คุณเริ่มใช้อุปกรณ์เสมือน Android (AVD) หรือเริ่มมิเรอร์
อุปกรณ์ที่ต้องการได้ทันทีจากหน้าต่างอุปกรณ์ที่ใช้งานอยู่ด้วยการคลิก
+
และเลือกอุปกรณ์ เพื่อหยุดโรค AVD หรือการมิเรอร์ของร่างกาย
อุปกรณ์ ให้ปิดแท็บอุปกรณ์
เครื่องมือตรวจสอบเลย์เอาต์แบบฝัง
ใน Android Studio Hedgehog Canary 2 คุณสามารถเรียกใช้ เครื่องมือตรวจสอบการออกแบบใน หน้าต่างเครื่องมืออุปกรณ์ที่ใช้งานอยู่ ฟีเจอร์ทดลองนี้ช่วยรักษาหน้าจอ ที่ดินและช่วยจัดระเบียบเวิร์กโฟลว์การดีบัก UI ของคุณในหน้าต่างเครื่องมือเดียว ใน โหมดแบบฝังที่คุณสามารถแสดงลำดับชั้นการดู ตรวจสอบคุณสมบัติของแต่ละมุมมอง และเข้าถึงฟีเจอร์เครื่องมือตรวจสอบเลย์เอาต์ทั่วไปอื่นๆ เข้าถึงชุดหนังสือทั้งชุด คุณยังคงต้องเรียกใช้เครื่องมือตรวจสอบการออกแบบในหน้าต่างแบบสแตนด์อโลน (ไฟล์ > การตั้งค่า > ทดลอง > เครื่องมือตรวจสอบการออกแบบใน Windows หรือ Android Studio > การตั้งค่า > ทดลอง > เครื่องมือตรวจสอบเลย์เอาต์ใน macOS)
ข้อจำกัดของเครื่องมือตรวจสอบการออกแบบที่ฝังไว้คือ โหมด 3 มิติมีให้ใช้งานเฉพาะใน สแนปชอต
เพื่อช่วยเราปรับปรุงเครื่องมือตรวจสอบการออกแบบที่ฝังไว้ โปรดส่ง ความคิดเห็นจากคุณ
การปรับปรุง UI ใหม่
UI ใหม่ สำหรับ Android Studio ทำให้ Studio มีรูปลักษณ์ที่ทันสมัยและสะอาดตายิ่งขึ้น IDE เราได้รับฟังความคิดเห็นของคุณและได้แก้ไขปัญหาเกี่ยวกับ ฟีเจอร์ต่อไปนี้ใน Android Studio Hedgehog
- โหมดกะทัดรัด
- รองรับการแยกแนวตั้งหรือแนวนอน
- แท็บโปรเจ็กต์สำหรับ macOS
- แก้ไขโหมดที่ไม่มีสิ่งรบกวน
- การตั้งค่าขั้นสูงเพื่อให้แสดงการทำงานของหน้าต่างเครื่องมือเสมอ
ข้อมูลอัปเดตเกี่ยวกับ Assistant Upgrade สำหรับการอัปเกรด SDK
ผู้ช่วยการอัปเกรด SDK มอบ
ขั้นตอนของวิซาร์ดแบบทีละขั้นตอนเพื่อช่วยคุณ
targetSdkVersion
การอัปเกรด การอัปเดตตัวช่วยอัปเกรด SDK ใน Android Studio มีดังนี้
เม่นน้อย:
- ดูการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบสำหรับอัปเกรดเป็น Android 14
- เพิ่มตัวกรองความเกี่ยวข้องแล้ว ระบบจึงนำบางขั้นตอนที่ไม่จำเป็นออก
- สำหรับการเปลี่ยนแปลงบางอย่าง ให้ระบุตำแหน่งที่แน่นอนในโค้ดที่การเปลี่ยนแปลงจะต้อง ทำ
ปิดใช้การเพิ่มประสิทธิภาพบิลด์สำหรับระดับ API เป้าหมายเท่านั้น
ตอนนี้คุณสามารถปิดใช้การเพิ่มประสิทธิภาพ IDE สำหรับระดับ API ของอุปกรณ์เป้าหมายได้แล้ว โดย โดยค่าเริ่มต้น Android Studio จะลดเวลาบิลด์โดยรวมด้วยการปรับ Dexing ให้เหมาะสม สำหรับระดับ API ของอุปกรณ์เป้าหมายที่คุณกำลังทำให้ใช้งานได้ หากต้องการหมุน ปิดฟีเจอร์ ให้ไปที่ไฟล์ > การตั้งค่า > ทดลอง (Android Studio > การตั้งค่า > รุ่นทดลองบน macOS) และยกเลิกการเลือกเพิ่มประสิทธิภาพบิลด์สำหรับเป้าหมาย ระดับ API ของอุปกรณ์เท่านั้น โปรดทราบว่าการปิดการเพิ่มประสิทธิภาพบิลด์นี้อาจ ทำให้เวลาบิลด์เพิ่มขึ้น
[Windows เท่านั้น] ลดผลกระทบที่ซอฟต์แวร์ป้องกันไวรัสมีต่อความเร็วในการสร้าง
ตัววิเคราะห์บิลด์จะแจ้งให้คุณทราบหากซอฟต์แวร์ป้องกันไวรัสอาจส่งผลต่อบิลด์ของคุณ ด้านประสิทธิภาพ กรณีนี้อาจเกิดขึ้นหากซอฟต์แวร์ป้องกันไวรัส เช่น Windows Defender กำลังสแกนไดเรกทอรีที่ Gradle ใช้อยู่แบบเรียลไทม์ ตัววิเคราะห์บิลด์ จะแนะนำรายการไดเรกทอรีที่จะยกเว้นจากการสแกนที่ใช้งานอยู่และ หากเป็นไปได้ จะมีลิงก์ให้เพิ่มลงใน Windows Defender รายการยกเว้นโฟลเดอร์
ไม่รองรับโปรเจ็กต์ Eclipse Android Development Tool อีกต่อไป
Android Studio Hedgehog ขึ้นไปไม่รองรับการนำเข้า Eclipse ADT โปรเจ็กต์ คุณยังคงเปิดโปรเจ็กต์เหล่านี้ได้ แต่โปรเจ็กต์จะไม่มีให้บริการอีกต่อไป ว่าเป็นโปรเจ็กต์ Android หากต้องการนำเข้าโปรเจ็กต์ประเภทนี้ คุณสามารถใช้ Android Studio เวอร์ชันก่อนหน้าได้ หาก Android เวอร์ชันที่กำหนด Studio ไม่สามารถนำเข้าโปรเจ็กต์ของคุณ คุณสามารถลองโดยใช้ เวอร์ชันก่อนหน้า เมื่อแปลงโปรเจ็กต์เป็นโปรเจ็กต์ Android โดยใช้ไฟล์ Android Studio เวอร์ชันก่อนหน้า คุณสามารถใช้ตัวช่วยอัปเกรด AGP เพื่อทำงาน ในโปรเจ็กต์นั้นโดยใช้ Android Studio เวอร์ชันล่าสุด
ใช้อุปกรณ์ Firebase Test Lab กับอุปกรณ์ที่จัดการโดย Gradle
เมื่อใช้ AGP 8.2.0-alpha03 ขึ้นไป คุณสามารถเรียกใช้เครื่องมืออัตโนมัติ ทดสอบในวงกว้าง Firebase Test Lab เมื่อ โดยใช้อุปกรณ์ที่จัดการโดย Gradle Test Lab ช่วยให้คุณทำการทดสอบพร้อมกัน บนอุปกรณ์ Android หลากหลายประเภท ทั้ง ทั้งจริงและเสมือนจริง การทดสอบเหล่านี้ดำเนินการในศูนย์ข้อมูลระยะไกลของ Google ด้วย รองรับอุปกรณ์ที่จัดการโดย Gradle (GMD) ระบบบิลด์สามารถจัดการอย่างสมบูรณ์ได้แล้ว ทำการทดสอบกับอุปกรณ์ Test Lab เหล่านี้ตามการกำหนดค่าใน ไฟล์ Gradle ของโปรเจ็กต์
เริ่มต้นใช้งานอุปกรณ์ Firebase Test Lab ที่มีการจัดการโดย Gradle
ขั้นตอนต่อไปนี้อธิบายวิธีเริ่มใช้อุปกรณ์ Firebase Test Lab ด้วย GMD โปรดทราบว่าขั้นตอนเหล่านี้ใช้ gcloud CLI ในการระบุข้อมูลเข้าสู่ระบบของผู้ใช้ ซึ่ง อาจใช้ไม่ได้กับสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ทั้งหมด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ กระบวนการตรวจสอบสิทธิ์ที่จะใช้ตามความต้องการของคุณ โปรดดู วิธีการทำงานของข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
หากต้องการสร้างโปรเจ็กต์ Firebase ให้ไปที่ คอนโซล Firebase คลิก เพิ่มโปรเจ็กต์และทำตามข้อความแจ้งบนหน้าจอเพื่อสร้างโปรเจ็กต์ จำรหัสโปรเจ็กต์ไว้
- หากต้องการติดตั้ง Google Cloud CLI ให้ทำตามขั้นตอนใน ติดตั้ง gcloud CLI
- กำหนดค่าสภาพแวดล้อมในเครื่อง
- ลิงก์กับโปรเจ็กต์ Firebase ใน gcloud:
gcloud config set project FIREBASE_PROJECT_ID
ให้สิทธิ์การใช้ข้อมูลเข้าสู่ระบบของผู้ใช้สำหรับการเข้าถึง API คำแนะนำจากเรา การให้สิทธิ์โดยการส่งผ่าน ไฟล์ JSON ของบัญชีบริการไปยัง Gradle โดยใช้ DSL ในสคริปต์บิลด์ระดับโมดูล
Kotlin
firebaseTestLab { ... serviceAccountCredentials.set(file(SERVICE_ACCOUNT_JSON_FILE)) }
ดึงดูด
firebaseTestLab { ... serviceAccountCredentials = file(SERVICE_ACCOUNT_JSON_FILE) }
หรือคุณสามารถให้สิทธิ์ด้วยตนเองโดยใช้เครื่องชำระเงินต่อไปนี้ คำสั่ง:
gcloud auth application-default login
ไม่บังคับ: เพิ่มโปรเจ็กต์ Firebase เป็นโปรเจ็กต์โควต้า ขั้นตอนนี้ จำเป็นต่อเมื่อคุณ โควต้าแบบไม่มีค่าใช้จ่ายสำหรับ Test Lab
gcloud auth application-default set-quota-project FIREBASE_PROJECT_ID
- ลิงก์กับโปรเจ็กต์ Firebase ใน gcloud:
เปิดใช้ API ที่จำเป็น
ใน หน้าไลบรารี Google Developers Console API เปิดใช้ Cloud Testing API และ API ผลลัพธ์ของเครื่องมือระบบคลาวด์ โดยพิมพ์ชื่อ API เหล่านี้ลงในช่องค้นหาที่ด้านบนของคอนโซล และ แล้วคลิกเปิดใช้ API ในหน้าภาพรวมของ API แต่ละรายการ
กำหนดค่าโปรเจ็กต์ Android
เพิ่มปลั๊กอิน Firebase Test Lab ในสคริปต์บิลด์ระดับบนสุด
Kotlin
plugins { ... id("com.google.firebase.testlab") version "0.0.1-alpha05" apply false }
ดึงดูด
plugins { ... id 'com.google.firebase.testlab' version '0.0.1-alpha05' apply false }
เปิดใช้ประเภทอุปกรณ์ที่กำหนดเองในไฟล์
gradle.properties
:android.experimental.testOptions.managedDevices.customDevice=true
เพิ่มปลั๊กอิน Firebase Test Lab ในสคริปต์บิลด์ระดับโมดูล ดังนี้
Kotlin
plugins { ... id "com.google.firebase.testlab" }
ดึงดูด
plugins { ... id 'com.google.firebase.testlab' }
สร้างและทำการทดสอบในอุปกรณ์ Firebase Test Lab ที่มีการจัดการโดย Gradle
คุณระบุอุปกรณ์ Firebase Test Lab สำหรับ Gradle เพื่อใช้ทดสอบ ในสคริปต์บิลด์ระดับโมดูล ตัวอย่างโค้ดต่อไปนี้สร้าง Pixel 3 ที่ใช้ API ระดับ 30 เป็นอุปกรณ์ Test Lab ที่จัดการโดย Gradle
ftlDevice
การบล็อกfirebaseTestLab {}
จะพร้อมใช้งานเมื่อคุณใช้com.google.firebase.testlab
ไปยังโมดูลของคุณ ค่าต่ำสุดที่รองรับ เวอร์ชันปลั๊กอิน Android Gradle คือ 8.2.0-alpha01Kotlin
firebaseTestLab { managedDevices { create("ftlDevice") { device = "Pixel3" apiLevel = 30 } } ... }
ดึงดูด
firebaseTestLab { managedDevices { ftlDevice { device = "Pixel3" apiLevel = 30 } } ... }
หากต้องการทำการทดสอบโดยใช้อุปกรณ์ Test Lab ที่จัดการโดย Gradle ที่คุณกำหนดค่าไว้ ให้ใช้ คำสั่งต่อไปนี้
device-name
คือชื่อของอุปกรณ์ที่คุณกำหนดค่าไว้ สคริปต์บิลด์ Gradle ของคุณ เช่นftlDevice
และBuildVariant
เป็นบิลด์ ของแอปที่ต้องการทดสอบ โปรดทราบว่า Gradle ไม่ได้เรียกใช้การทดสอบใน พร้อมกันหรือรองรับการกำหนดค่าอื่นๆ ของ Google Cloud CLI สำหรับอุปกรณ์ Test Labบน Windows:
gradlew device-nameBuildVariantAndroidTest
ใน Linux หรือ macOS ให้ทำดังนี้
./gradlew device-nameBuildVariantAndroidTest
ผลลัพธ์ทดสอบประกอบด้วยเส้นทางไปยังไฟล์ HTML ที่มีรายงานการทดสอบ คุณ ยังสามารถนำเข้าผลการทดสอบไปยัง Android Studio เพื่อวิเคราะห์เพิ่มเติมได้โดย คลิก Run > ประวัติการทดสอบใน IDE
สร้างและทำการทดสอบในกลุ่มอุปกรณ์
หากต้องการปรับขนาดการทดสอบ ให้เพิ่มอุปกรณ์ Firebase Test Lab ที่จัดการระดับ Gradle ลงใน กลุ่มอุปกรณ์ แล้วทำการทดสอบในอุปกรณ์ทั้งหมดด้วยคำสั่งเดียว พูดเลย ตั้งค่าอุปกรณ์ไว้หลายเครื่องดังนี้
firebaseTestLab { managedDevices { create("GalaxyS23Ultra") { ... } create("GalaxyZFlip3") { ... } create("GalaxyZFold3") { ... } create("GalaxyTabS2") { ... } } }
หากต้องการเพิ่มอุปกรณ์เหล่านี้ไปยังกลุ่มอุปกรณ์ชื่อ
samsungGalaxy
ให้ใช้บล็อกgroups {}
:firebaseTestLab { managedDevices {...} } android { ... testOptions { managedDevices { groups { create("samsungGalaxy") { targetDevices.add(devices["GalaxyS23Ultra"]) targetDevices.add(devices["GalaxyZFlip3"]) targetDevices.add(devices["GalaxyZFold3"]) targetDevices.add(devices["GalaxyTabS3"]) } } } } }
หากต้องการเรียกใช้การทดสอบในอุปกรณ์ทุกเครื่องในกลุ่มอุปกรณ์ ให้ใช้คำสั่งต่อไปนี้
บน Windows:
gradlew group-nameGroupBuildVariantAndroidTest
ใน Linux หรือ macOS ให้ทำดังนี้
./gradlew group-nameGroupBuildVariantAndroidTest
การทดสอบ Optimize ทำงานด้วยชาร์ดดิ้งอัจฉริยะ
ตอนนี้การทดสอบในอุปกรณ์ Test Lab ที่จัดการโดย Gradle รองรับการชาร์ดอัจฉริยะแล้ว อัจฉริยะ ชาร์ดจะกระจายการทดสอบไปยังชาร์ดโดยอัตโนมัติเพื่อให้ชาร์ดแต่ละรายการ ทำงานไปพร้อมๆ กันโดยประมาณ ช่วยลดความพยายามจัดสรรด้วยตนเอง ระยะเวลาการทดสอบโดยรวม การชาร์ดอัจฉริยะใช้ประวัติการทดสอบหรือข้อมูลของคุณ เกี่ยวกับระยะเวลาที่ใช้ในการทดสอบก่อนหน้านี้ เพื่อกระจายการทดสอบใน วิธีที่ดีที่สุด โปรดทราบว่าคุณต้องมีปลั๊กอิน Gradle เวอร์ชัน 0.0.1-alpha05 สำหรับ Firebase Test Lab เพื่อใช้การชาร์ดดิ้งอัจฉริยะ
หากต้องการเปิดใช้สมาร์ทชาร์ด ให้ระบุระยะเวลาการทดสอบภายในชาร์ดแต่ละรายการ ที่ควรทราบ คุณควรตั้งค่าระยะเวลาชาร์ดเป้าหมายเป็นอย่างน้อย 5 นาทีน้อยกว่า
timeoutMinutes
เพื่อหลีกเลี่ยงสถานการณ์ที่ชาร์ด ยกเลิกก่อนที่การทดสอบจะเสร็จสิ้นfirebaseTestLab { ... testOptions { targetedShardDurationMinutes = 2 } }
หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่านตัวเลือก DSL ใหม่
อัปเดต DSL สำหรับอุปกรณ์ Firebase Test Lab ที่มีการจัดการโดย Gradle
มีตัวเลือก DSL อื่นๆ ที่คุณกําหนดค่าได้เพื่อช่วยปรับแต่งการเรียกใช้การทดสอบ หรือ ย้ายข้อมูลจากโซลูชันอื่นๆ ที่คุณอาจใช้อยู่แล้ว ดูตัวเลือกเหล่านี้บางส่วน ตามที่อธิบายไว้ในข้อมูลโค้ดต่อไปนี้
firebaseTestLab { ... /** * A path to a JSON file that contains service account credentials to access to * a Firebase Test Lab project. */ serviceAccountCredentials.set(file("your_service_account_credentials.json")) testOptions { fixture { /** * Whether to grant permissions on the device before tests begin. * Available options are "all" or "none". * * Default value is "all". */ grantedPermissions = "all" /** * Map of files to push to the device before starting the test. * * The key is the location on the device. * The value is the location of the file, either local or in Google Cloud. */ extraDeviceFiles["/sdcard/dir1/file1.txt"] = "local/file.txt" extraDeviceFiles["/sdcard/dir2/file2.txt"] = "gs://bucket/file.jpg" /** * The name of the network traffic profile. * * Specifies network conditions to emulate when running tests. * * Default value is empty. */ networkProfile = "LTE" } execution { /** * The maximum time to run the test execution before cancellation, * measured in minutes. Does not include the setup or teardown of device, * and is handled server-side. * * The maximum possible testing time is 45 minutes on physical devices * and 60 minutes on virtual devices. * * Defaults to 15 minutes. */ timeoutMinutes = 30 /** * Number of times the test should be rerun if tests fail. * The number of times a test execution should be retried if one * or more of its test cases fail. * * The max number of times is 10. * * The default number of times is 0. */ maxTestReruns = 2 /** * Ensures only a single attempt is made for each execution if * an infrastructure issue occurs. This doesn't affect `maxTestReruns`. * Normally, two or more attempts are made by Firebase Test Lab if a * potential infrastructure issue is detected. This is best enabled for * latency sensitive workloads. The number of execution failures might be * significantly greater with `failFast` enabled. * * Defaults to false. */ failFast = false /** * The number of shards to split the tests across. * * Default to 0 for no sharding. */ numUniformShards = 20 /** * For smart sharding, the target length of time each shard should takes in * minutes. Maxes out at 50 shards for physical devices and 100 shards for * virtual devices. * * Only one of numUniformShards or targetedShardDurationMinutes can be set. * * Defaults to 0 for no smart sharding. */ targetedShardDurationMinutes = 15 } results { /** * The name of the Google storage bucket to store the test results in. * * If left unspecified, the default bucket is used. * * Please refer to Firebase Test Lab permissions for required permissions * for using the bucket. */ cloudStorageBucket = "bucketLocationName" /** * Name of test results for the Firebase console history list. * All tests results with the same history name are grouped * together in the Firebase console in a time-ordered test history list. * * Defaults to the application label in the APK manifest in Flank/Fladle. */ resultsHistoryName = "application-history" /** * List of paths to copy from the test device's storage to the test * results folder. These must be absolute paths under /sdcard or * /data/local/tmp. */ directoriesToPull.addAll( "/sdcard/path/to/something" ) /** * Whether to enable video recording during the test. * * Disabled by default. */ recordVideo = false /** * Whether to enable performance metrics. If enabled, monitors and records * performance metrics such as CPU, memory, and network usage. * * Defaults to false. */ performanceMetrics = true } } }