ต่อไปนี้เป็นหมายเหตุประจำรุ่นของ Android Studio 3.6 และต่ำกว่า รวมถึงปลั๊กอิน Android Gradle 3.6.0 และต่ำกว่า
Android Studio รุ่นก่อนหน้า
3.6 (กุมภาพันธ์ 2020)
Android Studio 3.6 เป็นรุ่นหลักที่มีฟีเจอร์ใหม่ๆ และการปรับปรุงมากมาย
และขอขอบคุณผู้มีส่วนร่วมของชุมชนทุกคนที่ช่วยเราในการเผยแพร่ผลงานครั้งนี้
3.6.3 (เมษายน 2020)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องหลายรายการ หากต้องการดูรายการข้อบกพร่องที่แก้ไขแล้วที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องในบล็อกการอัปเดตรุ่น
3.6.2 (มีนาคม 2020)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องหลายรายการ หากต้องการดูรายการข้อบกพร่องที่แก้ไขแล้วที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องในบล็อกการอัปเดตรุ่น
3.6.1 (กุมภาพันธ์ 2020)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องหลายรายการ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่น่าสนใจ ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
เครื่องมือออกแบบ
Android Studio เวอร์ชันนี้มีการอัปเดตเครื่องมือออกแบบหลายอย่าง ซึ่งรวมถึงเครื่องมือแก้ไขเลย์เอาต์และเครื่องมือจัดการทรัพยากร
แยกมุมมองและซูมเข้าในตัวแก้ไขดีไซน์
การอัปเดตเครื่องมือแก้ไขการออกแบบภาพต่อไปนี้รวมอยู่ในรุ่นนี้
-
ตอนนี้เครื่องมือแก้ไขการออกแบบ เช่น ตัวแก้ไขเลย์เอาต์และตัวแก้ไขการนําทาง มีมุมมองแยกที่ช่วยให้คุณดูทั้งมุมมองการออกแบบและโค้ดของ UI ได้พร้อมกัน ที่มุมบนขวา ของหน้าต่างตัวแก้ไข ตอนนี้จะมี 3 ปุ่ม
สำหรับการเปลี่ยนไปมาระหว่างตัวเลือกการดู
-
หากต้องการเปิดใช้มุมมองแบบแยก ให้คลิกไอคอนแยก
-
หากต้องการเปิดใช้มุมมองแหล่งที่มา XML ให้คลิกไอคอนแหล่งที่มา
-
หากต้องการเปิดใช้มุมมองการออกแบบ ให้คลิกไอคอนการออกแบบ
-
หากต้องการเปิดใช้มุมมองแบบแยก ให้คลิกไอคอนแยก
-
มีการย้ายการควบคุมสำหรับการซูมและการเลื่อนภายในเครื่องมือแก้ไขการออกแบบ ไปยังแผงแบบลอยที่มุมขวาล่างของหน้าต่างเครื่องมือแก้ไข
ดูข้อมูลเพิ่มเติมได้ที่สร้าง UI ด้วยเครื่องมือแก้ไขการออกแบบ
แท็บแหล่งข้อมูลของตัวเลือกสี
ตอนนี้ IDE จะป้อนค่าแหล่งข้อมูลสีให้คุณเพื่อช่วยอัปเดตค่าแหล่งข้อมูลสีในแอปได้อย่างรวดเร็วเมื่อคุณใช้เครื่องมือเลือกสีใน XML หรือเครื่องมือออกแบบ
เครื่องมือจัดการทรัพยากร
เครื่องมือจัดการทรัพยากรมีการอัปเดตต่อไปนี้
- ขณะนี้ตัวจัดการทรัพยากรรองรับประเภททรัพยากรส่วนใหญ่แล้ว
- เมื่อค้นหาทรัพยากร ตอนนี้ตัวจัดการทรัพยากรจะแสดงผลลัพธ์จากข้อบังคับของโปรเจ็กต์ทั้งหมด ก่อนหน้านี้ การค้นหาจะแสดงผลลัพธ์จากโมดูลที่เลือกเท่านั้น
- ปุ่มตัวกรองให้คุณดูทรัพยากรจากโมดูลที่เกี่ยวข้องในเครื่อง ไลบรารีภายนอก และเฟรมเวิร์ก Android คุณยังใช้ตัวกรองเพื่อ แสดงแอตทริบิวต์ธีม
- คุณสามารถเปลี่ยนชื่อของทรัพยากรในระหว่างกระบวนการนำเข้าได้โดยคลิกภายใน กล่องข้อความเหนือทรัพยากร
ดูข้อมูลเพิ่มเติมได้ที่ จัดการทรัพยากร UI ของแอปด้วยตัวจัดการทรัพยากร
การอัปเดตปลั๊กอิน Android Gradle
ปลั๊กอิน Android Gradle เวอร์ชันล่าสุดมีการอัปเดตหลายอย่าง ซึ่งรวมถึงการเพิ่มประสิทธิภาพสำหรับความเร็วในการสร้าง การรองรับการเผยแพร่ Maven และรองรับ View Binding หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน บันทึกประจำรุ่นฉบับเต็ม
ดูการเชื่อมโยง
ดูการเชื่อมโยงช่วยให้คุณ เขียนโค้ดที่โต้ตอบกับมุมมองได้อย่างง่ายดายด้วยการสร้างคลาสการเชื่อมโยงสำหรับ XML แต่ละรายการ ใหม่ คลาสเหล่านี้มีการอ้างอิงโดยตรงไปยังมุมมองทั้งหมดที่มีรหัสในเลย์เอาต์ที่เกี่ยวข้อง
เนื่องจากเป็นการแทนที่ findViewById()
การเชื่อมโยงข้อมูลพร็อพเพอร์ตี้จึงช่วยลดความเสี่ยงที่จะเกิดข้อยกเว้นเกี่ยวกับ Null Pointer อันเนื่องมาจากรหัสข้อมูลพร็อพเพอร์ตี้ที่ไม่ถูกต้อง
หากต้องการเปิดใช้การเชื่อมโยงมุมมอง คุณต้องใช้ปลั๊กอิน Android Gradle 3.6.0 ขึ้นไป และใส่ข้อมูลต่อไปนี้ในไฟล์ build.gradle
ของแต่ละโมดูล
android { buildFeatures.viewBinding = true }
android { buildFeatures.viewBinding = true }
ใช้การเปลี่ยนแปลง
ในตอนนี้ คุณสามารถเพิ่มชั้นเรียน แล้วทำให้การเปลี่ยนแปลงโค้ดนั้นใช้งานได้ในแอปที่ทำงานอยู่ โดยทำดังนี้ คลิกใช้การเปลี่ยนแปลงโค้ด หรือใช้การเปลี่ยนแปลงและเริ่มต้นกิจกรรมใหม่
ดูข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างการดำเนินการ 2 อย่างนี้ได้ที่ใช้การเปลี่ยนแปลง
ตัวเลือกเมนูเปลี่ยนโครงสร้างภายในโค้ดเพื่อเปิดใช้การสนับสนุน Instant Apps
ตอนนี้คุณเปิดใช้โมดูลพื้นฐานได้ทันทีทุกเมื่อหลังจากสร้างโปรเจ็กต์แอป ดังนี้
- เปิดแผงโครงการโดยเลือกมุมมอง > หน้าต่างเครื่องมือ > โปรเจ็กต์ จากแถบเมนู
- คลิกขวาที่โมดูลฐาน ซึ่งโดยทั่วไปจะใช้ชื่อว่า "แอป" แล้วเลือก เปลี่ยนโครงสร้างภายในโค้ด > เปิดใช้การสนับสนุน Instant Apps
- ในกล่องโต้ตอบที่ปรากฏขึ้น ให้เลือกโมดูลพื้นฐานจากเมนูแบบเลื่อนลง
- คลิกตกลง
หมายเหตุ: ตัวเลือกในการเปิดใช้โมดูลแอปพื้นฐานทันที จากวิซาร์ดสร้างโปรเจ็กต์ใหม่ถูกนำออกแล้ว
ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ Google Play Instant
ถอดรหัสไบต์โค้ดของคลาสและเมธอดในตัววิเคราะห์ APK
เมื่อใช้เครื่องมือวิเคราะห์ APK เพื่อ ตรวจสอบไฟล์ DEX คุณสามารถถอดรหัสไบต์โค้ดคลาสและเมธอดได้ดังนี้
- เลือกสร้าง > วิเคราะห์ APK จากแถบเมนู
- ในกล่องโต้ตอบที่ปรากฏขึ้น ให้ไปยัง APK ที่ต้องการตรวจสอบและ เลือกรายการดังกล่าว
- คลิกเปิด
- ในเครื่องมือวิเคราะห์ APK ให้เลือกไฟล์ DEX ที่ต้องการตรวจสอบ
- ในโปรแกรมดูไฟล์ DEX ให้โหลดการแมป ProGuard สำหรับ APK ที่คุณ ที่กำลังวิเคราะห์อยู่
- คลิกขวาที่คลาสหรือวิธีการที่ต้องการตรวจสอบและเลือก แสดงไบต์โค้ด
เครื่องมือเริ่มต้น
การอัปเดตต่อไปนี้รองรับการพัฒนาแบบดั้งเดิม (C/C++) ใน Android Studio
การรองรับ Kotlin
ฟีเจอร์ NDK ต่อไปนี้ใน Android Studio ซึ่งก่อนหน้านี้รองรับใน Java ตอนนี้รองรับใน Kotlin แล้วเช่นกัน
-
นำทางจากการประกาศ JNI ไปยังฟังก์ชันการใช้งานที่เกี่ยวข้อง ใน C/C++ ดูการแมปนี้โดยวางเมาส์เหนือเครื่องหมายรายการ C หรือ C++ ใกล้ หมายเลขบรรทัดในไฟล์ซอร์สโค้ดที่มีการจัดการ
-
สร้างฟังก์ชันการติดตั้งใช้งานต้นขั้วสำหรับการประกาศ JNI โดยอัตโนมัติ กำหนดการประกาศ JNI ก่อนแล้วพิมพ์ "jni" หรือชื่อเมธอดใน ไฟล์ C/C++ เพื่อเปิดใช้งาน
-
ระบบจะไฮไลต์ฟังก์ชันการใช้งานเนทีฟที่ไม่ได้ใช้งานเป็นคำเตือนใน ซอร์สโค้ด การประกาศ JNI ที่ไม่มีการติดตั้งใช้งานก็ ที่ระบุว่าเป็นข้อผิดพลาด
-
เมื่อคุณเปลี่ยนชื่อ (เปลี่ยนโครงสร้างภายในโค้ด) ฟังก์ชันการใช้งานแบบเนทีฟ มีการอัปเดตประกาศ JNI ที่เกี่ยวข้อง เปลี่ยนชื่อการประกาศ JNI เพื่ออัปเดตฟังก์ชันการใช้งานแบบเนทีฟ
-
การตรวจสอบลายเซ็นสําหรับการติดตั้งใช้งาน JNI ที่เชื่อมโยงโดยนัย
การปรับปรุง JNI อื่นๆ
ตอนนี้ตัวแก้ไขโค้ดใน Android Studio รองรับการพัฒนา JNI ที่ราบรื่นมากขึ้นแล้ว ซึ่งรวมถึงคำแนะนำประเภทที่ปรับปรุงใหม่ การเติมข้อความอัตโนมัติ การตรวจสอบ และ การเปลี่ยนโครงสร้างโค้ด
กำลังโหลด APK ซ้ำสำหรับไลบรารีเนทีฟ {:#3.6-reload-apk}
คุณไม่จําเป็นต้องสร้างโปรเจ็กต์ใหม่อีกต่อไปเมื่อ APK ในโปรเจ็กต์ได้รับการอัปเดตนอก IDE Android Studio จะตรวจหาการเปลี่ยนแปลงใน APK และมอบ ตัวเลือกในการนำเข้าอีกครั้ง
แนบแหล่งที่มาของ APK สำหรับ Kotlin เท่านั้น
ตอนนี้คุณสามารถแนบแหล่งที่มาของ APK ภายนอกที่เป็น Kotlin เท่านั้นเมื่อทำโปรไฟล์และแก้ไขข้อบกพร่องของ APK ที่สร้างไว้ล่วงหน้าได้แล้ว ดูข้อมูลเพิ่มเติมได้ที่แนบซอร์สโค้ด Kotlin/Java
การตรวจจับการรั่วไหลในเครื่องมือสร้างโปรไฟล์หน่วยความจำ
เมื่อวิเคราะห์ฮีปดัมป์ในเครื่องมือสร้างโปรไฟล์หน่วยความจำ ตอนนี้คุณสามารถกรองโปรไฟล์ได้แล้ว
ข้อมูลที่ Android Studio คิดว่าอาจบ่งชี้ถึงการรั่วไหลของหน่วยความจำสำหรับ Activity
และ
Fragment
อินสแตนซ์ในแอปของคุณ
ประเภทข้อมูลที่ตัวกรองแสดงมีดังนี้
-
อินสแตนซ์
Activity
ที่ถูกทำลายแล้ว แต่ยังมีการอ้างอิงอยู่ -
Fragment
อินสแตนซ์ที่ไม่มีFragmentManager
แต่ยังคง ถูกอ้างอิง
แนบแหล่งที่มาของ APK สำหรับ Kotlin เท่านั้น
ตอนนี้คุณจะแนบแหล่งที่มา APK ภายนอกของ Kotlin เท่านั้นได้เมื่อคุณสร้างโปรไฟล์ และแก้ไขข้อบกพร่องของ APK ที่สร้างไว้ล่วงหน้า ดูข้อมูลเพิ่มเติมได้ที่ แนบซอร์ส Kotlin/Java
การตรวจจับการรั่วไหลในเครื่องมือสร้างโปรไฟล์หน่วยความจำ
เมื่อวิเคราะห์ฮีปดัมป์ในเครื่องมือสร้างโปรไฟล์หน่วยความจำ ตอนนี้คุณสามารถกรองโปรไฟล์ได้แล้ว
ข้อมูลที่ Android Studio คิดว่าอาจบ่งชี้ถึงการรั่วไหลของหน่วยความจำสำหรับ Activity
และ
Fragment
อินสแตนซ์ในแอปของคุณ
ประเภทข้อมูลที่ตัวกรองแสดงมีดังนี้
-
อินสแตนซ์
Activity
รายการถูกทำลายแล้ว แต่ยังคงอยู่ ถูกอ้างอิง -
อินสแตนซ์
Fragment
ที่ไม่มีFragmentManager
ที่ถูกต้องแต่ยังคงมีการอ้างอิง
ในบางสถานการณ์ เช่น ต่อไปนี้ ตัวกรองอาจให้ผลบวกที่ผิดพลาด
- สร้าง
Fragment
แล้วแต่ยังไม่ได้ใช้งาน - ระบบแคช
Fragment
ไว้ แต่ไม่ได้เป็นส่วนหนึ่งของFragmentTransaction
หากต้องการใช้ฟีเจอร์นี้ ก่อนอื่นให้คุณ บันทึกฮีปดัมป์ หรือนำเข้าไฟล์ฮีปดัมป์ ลงใน Android Studio หากต้องการแสดงข้อมูลโค้ดที่อาจมีการรั่วไหลของหน่วยความจํา ให้เลือกช่องทําเครื่องหมายการรั่วไหลของกิจกรรม/ข้อมูลโค้ดในแผงการดัมพ์กองของเครื่องมือวิเคราะห์หน่วยความจํา
การกรองฮีปดัมป์เพื่อหาการรั่วไหลของหน่วยความจำ
โปรแกรมจำลอง
Android Studio 3.6 ช่วยให้คุณใช้ประโยชน์จากการอัปเดตต่างๆ ที่รวมอยู่ใน Android Emulator 29.2.7 ขึ้นไป ตามที่อธิบายไว้ด้านล่าง
ปรับปรุงการสนับสนุนตำแหน่ง
โปรแกรมจำลอง Android 29.2.7 ขึ้นไปให้การสนับสนุนเพิ่มเติมสำหรับการจำลอง พิกัด GPS และข้อมูลเส้นทาง เมื่อเปิดโปรแกรมจำลอง การควบคุมเพิ่มเติม ตอนนี้ตัวเลือกในแท็บ "ตำแหน่ง" แบ่งออกเป็น 2 แท็บดังนี้ จุดเดี่ยวและเส้นทาง
จุดเดียว
ในแท็บจุดเดี่ยว คุณสามารถใช้ WebView ของ Google Maps เพื่อค้นหา เหมือนที่ทำเมื่อใช้ Google Maps บนโทรศัพท์ หรือ เบราว์เซอร์ เมื่อคุณค้นหาหรือคลิกสถานที่ในแผนที่ คุณสามารถบันทึก โดยเลือก บันทึกจุด ซึ่งอยู่ใกล้กับด้านล่างของแผนที่ สถานที่ทั้งหมดที่บันทึกไว้จะแสดงอยู่ทางด้านขวาของหน้าต่างการควบคุมแบบขยาย
หากต้องการตั้งค่าตำแหน่งของโปรแกรมจำลองเป็นตำแหน่งที่คุณเลือกบนแผนที่ ให้คลิกปุ่มตั้งค่าตำแหน่งที่ด้านขวาล่างของหน้าต่างการควบคุมแบบขยาย
เส้นทาง
เช่นเดียวกับแท็บจุดเดี่ยว แท็บเส้นทางจะมีไอคอน WebView ของ Maps ที่คุณสามารถใช้สร้างเส้นทางระหว่างสถานที่ 2 แห่งขึ้นไป ในการสร้างและบันทึกเส้นทาง ให้ทำดังนี้
- ในมุมมองแผนที่ ให้ใช้ช่องข้อความเพื่อค้นหาจุดหมายแรกใน เส้นทางของคุณ
- เลือกสถานที่จากผลการค้นหา
- เลือกช่องทำเครื่องหมายนำทาง
- เลือกจุดเริ่มต้นของเส้นทางจากแผนที่
- (ไม่บังคับ) คลิกเพิ่มจุดหมายเพื่อเพิ่มจุดแวะพักเพิ่มเติมลงในเส้นทาง
- บันทึกเส้นทางโดยคลิกบันทึกเส้นทางในมุมมองแผนที่
- ระบุชื่อเส้นทางแล้วคลิกบันทึก
หากต้องการจำลองการจำลองเส้นทางตามเส้นทางที่คุณบันทึกไว้ ให้เลือกเส้นทางจากรายการเส้นทางที่บันทึกไว้ แล้วคลิกเล่นเส้นทางบริเวณด้านขวาล่างของหน้าต่างการควบคุมแบบขยาย หากต้องการหยุดการจำลอง ให้คลิกหยุดเส้นทาง
หากต้องการจำลองโปรแกรมจำลองอย่างต่อเนื่องตามเส้นทางที่ระบุ ให้เปิดใช้ ถัดจากเล่นซ้ำ วิธีเปลี่ยนความเร็วในการทำตามโปรแกรมจำลอง เส้นทางที่ระบุ เลือกตัวเลือกจากเมนูแบบเลื่อนลงความเร็วในการเล่น
การรองรับหลายจอภาพ
ตอนนี้ Android Emulator ให้คุณทำให้แอปใช้งานได้ในหลายหน้าจอ ซึ่งรองรับมิติข้อมูลที่ปรับแต่งได้ และช่วยคุณทดสอบแอปที่รองรับ multi-window และ multi-display ขณะที่อุปกรณ์เสมือนกำลังทำงานอยู่ คุณสามารถเพิ่มจอแสดงผลได้สูงสุด 2 จอ ดังนี้
-
เปิดการควบคุมแบบขยาย แล้วไปที่แท็บจอแสดงผล
-
เพิ่มจอแสดงผลอื่นโดยคลิกเพิ่มจอแสดงผลรอง
-
จากเมนูแบบเลื่อนลงในส่วนจอแสดงผลรอง ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
-
เลือกสัดส่วนภาพที่กำหนดล่วงหน้า 1 แบบ
-
เลือกกำหนดเองและตั้งค่าความสูง ความกว้าง และ dpi สำหรับ โฆษณาแบบดิสเพลย์ที่กำหนดเอง
-
(ไม่บังคับ) คลิกเพิ่มจอแสดงผลรอง เพื่อเพิ่มจอแสดงผลที่สาม
-
คลิกใช้การเปลี่ยนแปลงเพื่อเพิ่มจอแสดงผลที่ระบุลงในอุปกรณ์เสมือนที่ทำงานอยู่
อุปกรณ์เสมือนจริงและเทมเพลตโปรเจ็กต์ใหม่สำหรับ Android Automotive OS
เมื่อสร้างโปรเจ็กต์ใหม่โดยใช้ Android Studio คุณสามารถเลือกจาก เทมเพลต 3 รายการจากแท็บยานยนต์ในสร้างโปรเจ็กต์ใหม่ วิซาร์ด: ไม่มีกิจกรรม บริการสื่อ และบริการรับส่งข้อความ สำหรับโปรเจ็กต์ที่มีอยู่ คุณสามารถเพิ่มการรองรับอุปกรณ์ Android Automotive ได้โดยเลือกไฟล์ > ใหม่ > โมดูลใหม่จากแถบเมนู แล้วเลือกโมดูลยานยนต์ จากนั้นวิซาร์ดสร้างโมดูลใหม่จะแนะนำคุณในการสร้างโมดูลใหม่โดยใช้เทมเพลตโปรเจ็กต์ Android Automotive
นอกจากนี้ คุณสามารถ สร้างอุปกรณ์เสมือน Android (AVD) สําหรับอุปกรณ์ Android Automotive OS โดยเลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ ในแท็บ Automotive ในวิซาร์ดการกําหนดค่าอุปกรณ์เสมือน
- Polestar 2: สร้าง AVD ที่จำลองจอภาพส่วนกลางของ Polestar 2
- ยานยนต์ (แนวนอน 1024p): สร้าง AVD สำหรับจอภาพส่วนกลาง Android Automotive ทั่วไปขนาด 1024 x 768 พิกเซล
ดาวน์โหลด SDK ที่ดำเนินการต่อได้
เมื่อดาวน์โหลดคอมโพเนนต์และเครื่องมือ SDK โดยใช้เครื่องมือจัดการ SDK ตอนนี้ Android Studio ให้คุณกลับมาดาวน์โหลดต่อได้หากดาวน์โหลดถูกขัดจังหวะ (เช่น เนื่องจากปัญหาเครือข่าย) แทนที่จะต้องเริ่มดาวน์โหลดใหม่ตั้งแต่ต้น ช่วงเวลานี้ มีประโยชน์อย่างยิ่งสำหรับการดาวน์โหลดขนาดใหญ่ เช่น โปรแกรมจำลองหรือรูปภาพของระบบ เมื่อการเชื่อมต่ออินเทอร์เน็ตไม่เสถียร
นอกจากนี้ หากคุณมีงานการดาวน์โหลด SDK ที่ทำงานอยู่ในเบื้องหลัง คุณสามารถ หยุดชั่วคราวหรือดาวน์โหลดต่อโดยใช้ตัวควบคุมในแถบสถานะ
งานดาวน์โหลดในพื้นหลังในแถบสถานะที่มี ที่ช่วยให้คุณหยุดการดาวน์โหลดชั่วคราวหรือเล่นต่อได้
เลิกใช้งาน Win32 แล้ว
Android Studio เวอร์ชัน 32 บิตสำหรับ Windows จะไม่ได้รับการอัปเดตอีกต่อไป หลังเดือนธันวาคม 2019 และจะไม่รับการสนับสนุนอีกต่อไปหลังจากเดือนธันวาคม 2020 คุณที่จะใช้ Android Studio ต่อไปได้ แต่หากต้องการรับข้อมูลอัปเดตเพิ่มเติม อัปเกรดเวิร์กสเตชันเป็น Windows เวอร์ชัน 64 บิต
ดูข้อมูลเพิ่มเติมได้ที่บล็อกการเลิกใช้งาน Windows 32 บิต
ตัวเลือกใหม่สำหรับเพิ่มประสิทธิภาพเวลาในการซิงค์ Gradle
ในรุ่นก่อนหน้า Android Studio ได้เรียกข้อมูลรายการงานจาก Gradle ทั้งหมด ระหว่าง Gradle Sync สำหรับโปรเจ็กต์ขนาดใหญ่ การเรียกรายการงานอาจทำให้เกิด เวลาซิงค์ช้า
หากต้องการปรับปรุงประสิทธิภาพของ Gradle Sync ให้ไปที่ไฟล์ > การตั้งค่า > ทดลอง แล้วเลือก "ไม่สร้างรายการงาน Gradle" ระหว่างการซิงค์ Gradle
เมื่อคุณเปิดใช้ตัวเลือกนี้ Android Studio จะข้ามการสร้างรายการงานระหว่างการซิงค์ ซึ่งจะช่วยให้การซิงค์ Gradle เสร็จสมบูรณ์เร็วขึ้นและปรับปรุงการตอบสนองของ UI โปรดทราบว่าเมื่อ IDE ข้ามการสร้างรายการงาน รายการงานในแผง Gradle จะว่างเปล่า และการเติมชื่องานอัตโนมัติในไฟล์บิลด์จะไม่ทำงาน
ตำแหน่งใหม่สำหรับสลับโหมดออฟไลน์ของ Gradle
หากต้องการเปิดหรือปิดใช้โหมดออฟไลน์ของ Gradle ให้เลือกก่อน
มุมมอง > หน้าต่างเครื่องมือ > Gradle จากแถบเมนู จากนั้น บริเวณด้านบนของ
ในหน้าต่าง Gradle คลิก Toggle Offline Mode
IntelliJ IDEA 2019.2
Android Studio IDE หลักได้รับการอัปเดตพร้อมการปรับปรุงจาก IntelliJ IDEA ผ่านรุ่น 2019.2
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการปรับปรุงจาก IntelliJ เวอร์ชันอื่นๆ ที่ ซึ่งรวมมากับเวอร์ชัน 2019.2 โปรดดูหน้าต่อไปนี้
ผู้สนับสนุนของชุมชน
ขอขอบคุณชุมชนผู้สนับสนุนทุกคนที่ช่วยเราค้นหาข้อบกพร่อง และวิธีอื่นๆ ในการปรับปรุง Android Studio 3.6 โดยเฉพาะอย่างยิ่ง เราต้องการขอบคุณ ผู้ที่รายงานข้อบกพร่องต่อไปนี้:
|
|
|
3.5 (สิงหาคม 2019)
Android Studio 3.5 เป็นรุ่นหลักและเป็นผลมาจาก Project Marble ตั้งแต่การเปิดตัว Android Studio 3.3 โครงการริเริ่ม Project Marble ได้ครอบคลุมหลายรุ่นที่มุ่งเน้นการปรับปรุง 3 ด้านหลักของ IDE ได้แก่ ประสิทธิภาพของระบบ การปรับปรุงฟีเจอร์ และการแก้ไขข้อบกพร่อง
สำหรับข้อมูลเกี่ยวกับการอัปเดตเหล่านี้และการอัปเดตอื่นๆ ของ Project Marble โปรดอ่าน บล็อกโพสต์ของนักพัฒนาแอป Android หรือส่วนต่างๆ ด้านล่าง
และขอขอบคุณ ผู้มีส่วนร่วมในชุมชนซึ่งมี ช่วยเราในการเปิดตัวครั้งนี้
3.5.3 (ธันวาคม 2019)
การอัปเดตเล็กน้อยนี้ครอบคลุมถึงการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพด้านต่างๆ
3.5.2 (พฤศจิกายน 2019)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพหลายรายการ หากต้องการดูรายการข้อบกพร่องที่แก้ไขแล้วที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องในบล็อกการอัปเดตรุ่น
3.5.1 (ตุลาคม 2019)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพหลายรายการ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่น่าสนใจ ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
Project Marble: ประสิทธิภาพของระบบ
ส่วนนี้จะอธิบายการเปลี่ยนแปลงใน Android Studio 3.5 ที่มุ่งเน้นไปที่ ปรับปรุงประสิทธิภาพการทำงานของระบบ
การตั้งค่าหน่วยความจำที่แนะนำ
ตอนนี้ Android Studio จะแจ้งให้คุณทราบหากตรวจพบว่าคุณสามารถปรับปรุงประสิทธิภาพได้ด้วยการเพิ่ม RAM สูงสุดที่ระบบปฏิบัติการควรจัดสรรให้กับกระบวนการของ Android Studio เช่น IDE หลัก เดรัม Gradle และเดรัม Kotlin คุณ ยอมรับการตั้งค่าที่แนะนำโดยคลิกลิงก์การดำเนินการใน หรือปรับการตั้งค่าเหล่านี้ด้วยตนเองได้โดยเลือก ไฟล์ > การตั้งค่า (หรือ Android Studio > ค่ากำหนดใน macOS) แล้วค้นหา ส่วนการตั้งค่าหน่วยความจำในส่วน ลักษณะที่ปรากฏและ พฤติกรรม > การตั้งค่าระบบ หากต้องการทราบข้อมูลเพิ่มเติม ดูขนาดฮีปสูงสุด
การแจ้งเตือนเกี่ยวกับการตั้งค่าหน่วยความจำที่แนะนำ
รายงานการใช้หน่วยความจำ
บางครั้งปัญหาเกี่ยวกับหน่วยความจำใน Android Studio ก็จำลองปัญหาได้ยาก รายงาน Android Studio ให้คุณสร้างความทรงจำเพื่อช่วยแก้ปัญหานี้ รายงานการใช้งานโดยคลิกความช่วยเหลือ > วิเคราะห์การใช้งานหน่วยความจำจากแถบเมนู วันและเวลา เพื่อทำความสะอาด IDE ในเครื่องจะล้างข้อมูล เพื่อเป็นข้อมูลส่วนบุคคลก่อน เพื่อถามว่าคุณต้องการส่งไปยังทีม Android Studio เพื่อให้ช่วยระบุว่า แหล่งที่มาของปัญหาหน่วยความจํา โปรดดูข้อมูลเพิ่มเติมที่หัวข้อเรียกใช้การใช้งานหน่วยความจำ รายงาน
รายงานการใช้หน่วยความจำ
Windows: การเพิ่มประสิทธิภาพ I/O ไฟล์ป้องกันไวรัส
ตอนนี้ Android Studio จะตรวจสอบโดยอัตโนมัติว่าไดเรกทอรีโปรเจ็กต์บางรายการ จากการสแกนไวรัสแบบเรียลไทม์ กรณีที่สามารถปรับ ปรับปรุงประสิทธิภาพของบิลด์ โดย Android Studio จะแจ้งเตือนคุณและให้คำแนะนำ เกี่ยวกับวิธีเพิ่มประสิทธิภาพการกำหนดค่าโปรแกรมป้องกันไวรัส ดูข้อมูลเพิ่มเติมได้ที่หัวข้อลดผลกระทบของซอฟต์แวร์ป้องกันไวรัสต่อความเร็วในการสร้าง
Project Marble: ขัดเกลาฟีเจอร์
ส่วนนี้จะอธิบายการเปลี่ยนแปลงใน Android Studio 3.5 ที่มุ่งเน้นไปที่ ปรับปรุงฟีเจอร์ที่มีอยู่เดิม
ใช้การเปลี่ยนแปลง
ใช้การเปลี่ยนแปลงช่วยให้คุณพุชการเปลี่ยนแปลงโค้ดและทรัพยากรไปยังแอปที่ทำงานอยู่ได้โดยไม่ต้องรีสตาร์ทแอป และในบางกรณีอาจไม่ต้องรีสตาร์ทกิจกรรมปัจจุบัน ใช้การเปลี่ยนแปลงเป็นการใช้แนวทางใหม่ในการคง สถานะของแอป ซึ่งแตกต่างจากการเรียกใช้ทันทีที่เขียน Bytecode ของ APK ใหม่ แต่ "ใช้การเปลี่ยนแปลง" จะกำหนดคลาสใหม่ขณะดำเนินการโดยใช้เครื่องมือวัดประสิทธิภาพรันไทม์ที่รองรับใน Android 8.0 (API ระดับ 26) ขึ้นไป
ดูข้อมูลเพิ่มเติมได้ที่ใช้การเปลี่ยนแปลง
ปุ่มแถบเครื่องมือสำหรับใช้การเปลี่ยนแปลง
ขั้นตอนการทำให้แอปใช้งานได้
IDE มีเมนูแบบเลื่อนลงใหม่ ที่ช่วยให้คุณเลือกอุปกรณ์ที่ต้องการ ที่ต้องการทำให้แอปของคุณใช้งานได้ เมนูนี้ยังมีตัวเลือกใหม่ที่ช่วยให้คุณ เรียกใช้แอปของคุณบนอุปกรณ์หลายเครื่องพร้อมกัน
เมนูแบบเลื่อนลงของอุปกรณ์เป้าหมาย
การซิงค์ Gradle และการตรวจจับแคชที่ปรับปรุงให้ดีขึ้น
ตอนนี้ IDE จะตรวจจับได้ดีขึ้นเมื่อ Gradle ล้างแคชการสร้างเป็นระยะๆ เพื่อลดการใช้ฮาร์ดดิสก์ ในเวอร์ชันก่อนหน้านี้ สถานะนี้ทําให้ IDE รายงานการขาดการพึ่งพาและซิงค์ Gradle ไม่สําเร็จ ตอนนี้ IDE ดาวน์โหลดทรัพยากร Dependency ที่จำเป็นเพื่อให้การซิงค์ Gradle เสร็จสมบูรณ์ สำเร็จ
ปรับปรุงเอาต์พุตข้อผิดพลาดของรุ่น
ตอนนี้หน้าต่างสร้าง
มีการรายงานข้อผิดพลาดที่ดีขึ้น เช่น ลิงก์ไปยังไฟล์และบรรทัดของข้อผิดพลาดที่รายงาน สำหรับกระบวนการสร้างต่อไปนี้
- การคอมไพล์และการลิงก์ AAPT
- R8 และ ProGuard
- เดกซ์ซิง
- การรวมทรัพยากร
- การแยกวิเคราะห์ไฟล์ XML
- การคอมไพล์ Javac, Kotlinc และ CMake
การอัปเกรดโปรเจ็กต์
ปรับปรุงประสบการณ์การอัปเดตเพื่อให้ข้อมูลและการดำเนินการที่จะช่วยคุณมากขึ้น อัปเดต IDE และปลั๊กอิน Android Gradle ตัวอย่างเช่น การซิงค์และสร้าง ข้อผิดพลาดจะรวมถึงการดำเนินการที่ช่วยลดข้อผิดพลาดเมื่ออัปเดต
โปรดทราบว่าคุณสามารถอัปเดต IDE แยกต่างหากจาก เช่น ปลั๊กอิน Android Gradle คุณจึงอัปเดต IDE ได้อย่างปลอดภัย ทันทีที่มีเวอร์ชันใหม่ และอัปเดตคอมโพเนนต์อื่นๆ ในภายหลัง
เครื่องมือแก้ไขเลย์เอาต์
Android Studio 3.5 มีการปรับปรุงหลายอย่างในการแสดงภาพ การจัดการ และการโต้ตอบ
เมื่อทำงานกับ ConstraintLayout
ข้อจำกัดใหม่
ในแผงแอตทริบิวต์จะแสดงความสัมพันธ์ของข้อจำกัด
คอมโพเนนต์ UI ที่เลือก คุณสามารถเลือกข้อจำกัดจากพื้นผิวการออกแบบหรือจากรายการข้อจำกัดเพื่อไฮไลต์ข้อจำกัดในทั้ง 2 พื้นที่ได้
จำกัดความสัมพันธ์สำหรับองค์ประกอบ UI ที่เลือก
ในทำนองเดียวกัน ตอนนี้คุณสามารถลบข้อจำกัดโดยการเลือกข้อจำกัดนั้น แล้วกด
Delete
นอกจากนี้ คุณยังลบข้อจำกัดได้โดยกดแป้น Control
ค้างไว้ (Command
ใน macOS) แล้วคลิกจุดยึดข้อจำกัด โปรดทราบว่าเมื่อคุณกด Control
หรือ
Command
และวางเมาส์เหนือแท็ก Anchor, ข้อจำกัดที่เกี่ยวข้อง
เปลี่ยนเป็นสีแดงเพื่อระบุว่าคุณสามารถคลิกเพื่อลบได้
เมื่อเลือกมุมมองแล้ว คุณสามารถสร้างข้อจำกัดได้โดยคลิกไอคอน + ใดก็ได้ในส่วนวิดเจ็ตข้อจำกัดของแผงแอตทริบิวต์ ดังที่แสดงในภาพต่อไปนี้ เมื่อคุณสร้างข้อจำกัดใหม่ เค้าโครง ตอนนี้ Editor จะเลือกและไฮไลต์ข้อจำกัด ซึ่งช่วยให้เห็นภาพได้ทันที ความคิดเห็นเกี่ยวกับสิ่งที่คุณเพิ่งเพิ่ม
การใช้วิดเจ็ตข้อจำกัดเพื่อสร้างข้อจำกัด
เมื่อสร้างข้อจำกัด เครื่องมือแก้ไขเลย์เอาต์จะแสดงเฉพาะโฆษณา Anchor ที่มีสิทธิ์เท่านั้น จุดที่คุณสามารถจำกัดได้ ก่อนหน้านี้ เครื่องมือแก้ไขการออกแบบจะไฮไลต์ทั้งหมด ของมุมมองทั้งหมด ไม่ว่าคุณจะยึดติดกับมุมมองเหล่านั้นหรือไม่ก็ตาม นอกจากนี้ การวางซ้อนสีน้ำเงินจะไฮไลต์เป้าหมายของจุดยึด ช่วงเวลานี้ การไฮไลต์จะมีประโยชน์เป็นพิเศษเมื่อพยายามจะจำกัดคอมโพเนนต์ ที่ทับซ้อนกับอีกรายการ
การสร้างข้อจำกัดสำหรับคอมโพเนนต์ที่ทับซ้อนกันใน Android Studio 3.4
การสร้างข้อจำกัดสำหรับคอมโพเนนต์ที่ทับซ้อนกันใน Android Studio 3.5
นอกจากการอัปเดตข้างต้นแล้ว Android Studio 3.5 ยังมีข้อปรับปรุงต่อไปนี้ในเครื่องมือแก้ไขเลย์เอาต์
- ใช้ วิดเจ็ต Constraint และรายการแบบเลื่อนลงสำหรับระยะขอบเริ่มต้นแล้ว ทำให้คุณใช้ทรัพยากรมิติข้อมูลสำหรับขอบได้
- ในแถบเครื่องมือเครื่องมือแก้ไขเลย์เอาต์ รายการอุปกรณ์ที่กำหนดขนาดของพื้นผิวการออกแบบได้รับการอัปเดตแล้ว นอกจากนี้ เรายังได้ปรับปรุงลักษณะการยึดขณะปรับขนาด และตอนนี้แฮนเดิลการปรับขนาดบนพื้นที่ออกแบบจะปรากฏอยู่เสมอ เมื่อปรับขนาด การวางซ้อนใหม่จะปรากฏขึ้นเพื่อแสดงอุปกรณ์ที่พบได้ทั่วไป ขนาดต่างๆ
- เครื่องมือแก้ไขเลย์เอาต์มีรูปแบบสีใหม่ที่ช่วยเพิ่มความสอดคล้องและลดความคมชัดระหว่างคอมโพเนนต์ ข้อความ และข้อจำกัด
- ขณะนี้โหมดพิมพ์เขียวมีการรองรับข้อความสำหรับคอมโพเนนต์บางอย่างที่ไม่มีข้อความ ที่กำลังแสดงอยู่
อ่านข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่ Android Studio Project Marble: เครื่องมือแก้ไขเลย์เอาต์
การผูกข้อมูล
นอกจากการรองรับการประมวลผลคำอธิบายประกอบเพิ่มเติมสำหรับการเชื่อมโยงข้อมูลแล้ว IDE ยังปรับปรุงฟีเจอร์และประสิทธิภาพของเครื่องมือแก้ไขอัจฉริยะเมื่อสร้างนิพจน์การเชื่อมโยงข้อมูลใน XML
ประสิทธิภาพของตัวแก้ไขโค้ดใน Android Studio 3.4

ปรับปรุงประสิทธิภาพการแก้ไขโค้ดใน Android Studio 3.5
ปรับปรุงการสนับสนุนสำหรับโครงการ C/C++
Android Studio 3.5 มีการเปลี่ยนแปลงหลายอย่างที่ปรับปรุงการรองรับ C/C++ โปรเจ็กต์
สร้างการปรับปรุงแผงตัวแปรสำหรับการซิงค์ตัวแปรเดียว
ตอนนี้คุณสามารถระบุทั้งตัวแปรบิลด์ที่ใช้งานอยู่และ ABI ที่ใช้งานอยู่ใน แผงสร้างตัวแปร ฟีเจอร์นี้ช่วยลดความซับซ้อนของการกำหนดค่าบิลด์ต่อโมดูล และยังช่วยปรับปรุงประสิทธิภาพการซิงค์ของ Gradle
ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนตัวแปรของบิลด์
แผง "สร้างตัวแปร" ที่มีการเลือกตัวแปรเดียวโดย ABI
NDK เวอร์ชันแสดงคู่กัน
ตอนนี้คุณใช้ NDK หลายเวอร์ชันร่วมกันได้แล้ว ฟีเจอร์นี้ให้ คุณจะมีความยืดหยุ่นมากขึ้นในการกำหนดค่าโปรเจ็กต์ เช่น ที่ใช้ NDK เวอร์ชันต่างๆ กันในเครื่องเดียวกัน
หากโปรเจ็กต์ใช้ปลั๊กอิน Android Gradle 3.5.0 ขึ้นไป คุณจะระบุ เวอร์ชันของ NDK ที่แต่ละโมดูลในโปรเจ็กต์ควรใช้ คุณสามารถใช้ฟีเจอร์นี้เพื่อสร้างบิลด์ที่ซ้ำได้และเพื่อลดความเข้ากันไม่ได้ระหว่างเวอร์ชัน NDK กับปลั๊กอิน Android Gradle
ดูข้อมูลเพิ่มเติมได้ที่ติดตั้งและกำหนดค่า NDK, CMake และ LLDB
การสนับสนุน ChromeOS
ขณะนี้ Android Studio รองรับอุปกรณ์ ChromeOS อย่างเป็นทางการ เช่น HP Chromebook x360 14, Acer Chromebook 13/Spin 13 และอื่นๆ ที่คุณอ่านได้ ในข้อกำหนดของระบบ หากต้องการเริ่มต้นใช้งาน ให้ดาวน์โหลด Android Studio ในอุปกรณ์ ChromeOS ที่เข้ากันได้ แล้วทำตามวิธีการติดตั้ง
หมายเหตุ: ขณะนี้ Android Studio ใน ChromeOS รองรับการทำให้แอปของคุณใช้งานได้เฉพาะ อุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อ หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน เรียกใช้แอปในฮาร์ดแวร์ อุปกรณ์
การส่งแบบมีเงื่อนไขสำหรับโมดูลฟีเจอร์
การนำส่งตามเงื่อนไขช่วยให้คุณกำหนดข้อกำหนดในการกำหนดค่าอุปกรณ์บางอย่างได้ เพื่อให้ดาวน์โหลดโมดูลฟีเจอร์โดยอัตโนมัติระหว่างการติดตั้งแอป ตัวอย่างเช่น คุณสามารถกำหนดค่าโมดูลฟีเจอร์ที่มี ฟังก์ชันสำหรับ Augmented Reality (AR) จะพร้อมใช้งานเมื่อติดตั้งแอปเท่านั้น อุปกรณ์ที่รองรับ AR
ปัจจุบันกลไกการแสดงโฆษณานี้รองรับการควบคุมการดาวน์โหลดโมดูล ณ เวลาติดตั้งแอปตามการกำหนดค่าอุปกรณ์ต่อไปนี้
- ฟีเจอร์สำหรับฮาร์ดแวร์และซอฟต์แวร์ของอุปกรณ์ รวมถึงเวอร์ชัน OpenGL ES
- ประเทศของผู้ใช้
- ระดับ API
หากอุปกรณ์ไม่เป็นไปตามข้อกำหนดทั้งหมดที่คุณระบุ โมดูลจะไม่ ดาวน์โหลด ณ เวลาที่ติดตั้งแอป อย่างไรก็ตาม แอปอาจขอดาวน์โหลดโมดูลตามคําขอในภายหลังโดยใช้ไลบรารี Play Core อ่านข้อมูลเพิ่มเติมได้ที่หัวข้อกำหนดค่าการแสดงโฆษณาแบบมีเงื่อนไข
IntelliJ IDEA 2019.1
Android Studio IDE หลักได้รับการอัปเดตพร้อมการปรับปรุงจาก IntelliJ IDEA ผ่านรุ่น 2019.1 เช่น การปรับแต่งธีม
IntelliJ เวอร์ชันล่าสุดที่รวมอยู่ใน Android Studio คือ 2018.3.4 ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับปรุงจาก IntelliJ เวอร์ชันอื่นๆ ซึ่งรวมอยู่ใน Android Studio รุ่นนี้ทั้งหมด โปรดดู การอัปเดตแก้ไขข้อบกพร่องดังต่อไปนี้:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
การอัปเดตปลั๊กอิน Android Gradle 3.5.0
ดูข้อมูลเกี่ยวกับฟีเจอร์ใหม่ในปลั๊กอิน Android Gradle 3.5.0 เช่น การรองรับการประมวลผลคำอธิบายประกอบแบบเพิ่มทีละรายการและการทดสอบหน่วยที่แคชได้ที่ได้รับการปรับปรุงแล้วได้ที่หมายเหตุประจำรุ่น
ผู้ร่วมให้ข้อมูลในชุมชน
ขอขอบคุณชุมชนผู้สนับสนุนทุกคนที่ช่วยเราค้นหาข้อบกพร่อง และวิธีอื่นๆ ในการปรับปรุง Android Studio 3.5 โดยเฉพาะอย่างยิ่ง เราต้องการขอบคุณ บุคคลที่รายงานข้อบกพร่องระดับ P0 และ P1 มีดังต่อไปนี้
|
|
|
3.4 (เมษายน 2019)
Android Studio 3.4 เป็นรุ่นหลักที่มีฟีเจอร์ใหม่ๆ มากมาย และการปรับปรุง
3.4.2 (กรกฎาคม 2019)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพหลายรายการ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่น่าสนใจ ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
3.4.1 (พฤษภาคม 2019)
การอัปเดตเล็กน้อยนี้มีการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพหลายรายการ หากต้องการดูรายการข้อบกพร่องที่แก้ไขแล้วที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องในบล็อกการอัปเดตรุ่น
3.4.0 ปัญหาที่ทราบ
การทำโปรไฟล์จะถูกปิดใช้ขณะทำให้แอปใช้งานได้ในอุปกรณ์ ที่ใช้ Android Q รุ่นเบต้า
- เมื่อใช้ไลบรารีการเชื่อมโยงข้อมูล
LiveDataListener.onChanged()
อาจล้มเหลวเมื่อใช้ NPE การแก้ไข ของปัญหานี้จะรวมอยู่ใน Android Studio 3.4.1 และได้รวมอยู่ใน มีในเวอร์ชันล่าสุด เวอร์ชันตัวอย่างของ Android Studio 3.5 (ดูปัญหา #122066788)
IntelliJ IDEA 2018.3.4
Android Studio IDE หลักได้รับการอัปเดตพร้อมการปรับปรุงจาก IntelliJ นำเสนอไอเดียผ่าน รุ่น 2018.3.4
การอัปเดตปลั๊กอิน Android Gradle 3.4.0
ดูข้อมูลเกี่ยวกับฟีเจอร์ใหม่ในปลั๊กอิน Android Gradle 3.4.0 ได้ที่บันทึกประจำรุ่น
กล่องโต้ตอบโครงสร้างโปรเจ็กต์ใหม่
กล่องโต้ตอบโครงสร้างโครงการ (PSD) ใหม่ช่วยให้อัปเดตได้ง่ายขึ้น ทรัพยากร Dependency และกำหนดค่าด้านต่างๆ ของโปรเจ็กต์ เช่น โมดูล ตัวแปรของบิลด์ การกำหนดค่าการรับรอง และตัวแปรบิลด์
คุณเปิด PSD ได้โดยเลือกไฟล์ > โครงสร้างโปรเจ็กต์จากแถบเมนู นอกจากนี้คุณยังเปิด PSD ได้โดยกด Ctrl+Shift+Alt+S
ใน Windows และ
Linux หรือ Command+;
(เซมิโคลอน) ใน macOS คุณสามารถดูคำอธิบายของ
ส่วนใหม่และอัปเดตของ PSD ด้านล่าง
ตัวแปร
ส่วนตัวแปรใหม่ของ PSD ช่วยให้คุณสร้างและจัดการบิลด์ได้ เช่น ตัวแปรต่างๆ เช่น ตัวแปรเพื่อให้หมายเลขเวอร์ชันสำหรับทรัพยากร Dependency สอดคล้องกัน ทั่วทั้งโปรเจ็กต์ของคุณ
- ดูและแก้ไขตัวแปรการสร้างที่มีอยู่ในสคริปต์การสร้าง Gradle ของโปรเจ็กต์ได้อย่างรวดเร็ว
- เพิ่มตัวแปรการสร้างใหม่ในระดับโปรเจ็กต์หรือโมดูลจาก PSD โดยตรง
หมายเหตุ: หากไฟล์การกําหนดค่าบิลด์ที่มีอยู่กําหนดค่าผ่านสคริปต์ Groovy ที่ซับซ้อน คุณอาจแก้ไขค่าเหล่านั้นผ่าน PSD ไม่ได้ นอกจากนี้ คุณยังแก้ไขไฟล์บิลด์ที่เขียนด้วย Kotlin โดยใช้ PSD ไม่ได้
โมดูล
กำหนดค่าพร็อพเพอร์ตี้ที่ใช้กับตัวแปรของบิลด์ทั้งหมดใน
หรือเพิ่มโมดูลใหม่ลงในโครงการของคุณได้จากส่วนโมดูล สำหรับ
ตัวอย่างเช่น คุณสามารถกำหนดค่าพร็อพเพอร์ตี้ defaultConfig
หรือจัดการ
การกำหนดค่าการรับรอง
ทรัพยากร Dependency
ตรวจสอบและแสดงภาพทรัพยากร Dependency แต่ละรายการในกราฟทรัพยากร Dependency ตามการแก้ไขโดย Gradle ระหว่างการซิงค์โปรเจ็กต์ โดยทำตามขั้นตอนต่อไปนี้ ขั้นตอน:
- ในแผงด้านซ้ายของ PSD ให้เลือก Dependencies
- ในแผงโมดูล ให้เลือกโมดูลที่คุณต้องการตรวจสอบการตั้งค่า ทรัพยากร Dependency ที่ได้รับการแก้ไขแล้ว
- ที่ด้านขวาของ PSD ให้เปิดแผงการขึ้นต่อกันที่แก้ไขแล้ว แสดงอยู่ด้านล่าง
คุณยังสามารถค้นหาและเพิ่มทรัพยากร Dependency ลงในโปรเจ็กต์ได้อย่างรวดเร็ว เลือกโมดูลจากส่วนการขึ้นต่อกันของ PSD แล้วคลิก ปุ่ม (+) ในส่วนการขึ้นต่อกันที่ประกาศ และเลือกประเภท ของทรัพยากร Dependency ที่ต้องการเพิ่ม
คุณควรเห็นกล่องโต้ตอบคล้ายกับด้านล่าง ซึ่งจะช่วยให้คุณเพิ่มข้อกำหนดในโมดูลได้ ทั้งนี้ขึ้นอยู่กับประเภทของข้อกำหนดที่เลือก
สร้างตัวแปร
ในส่วนนี้ของ PSD ให้สร้างและกำหนดค่าผลิตภัณฑ์ย่อยและผลิตภัณฑ์ สำหรับแต่ละโมดูลในโครงการของคุณ คุณสามารถเพิ่มตัวยึดตำแหน่งไฟล์ Manifest ไฟล์ ProGuard, กำหนดคีย์ Signing และอื่นๆ
คำแนะนำ
ดูการอัปเดตที่แนะนำสำหรับทรัพยากร Dependency ของโปรเจ็กต์และตัวแปรการสร้างในส่วนคำแนะนำดังที่แสดงด้านล่าง
เครื่องมือจัดการทรัพยากรแบบใหม่
เครื่องมือจัดการทรัพยากรเป็นหน้าต่างเครื่องมือใหม่สำหรับการนำเข้า สร้าง จัดการ และ โดยใช้ทรัพยากรในแอป คุณสามารถเปิดหน้าต่างเครื่องมือได้โดยเลือก มุมมอง > หน้าต่างเครื่องมือ > เครื่องมือจัดการทรัพยากรจากแถบเมนู แหล่งข้อมูล เครื่องมือจัดการช่วยให้คุณทำสิ่งต่อไปนี้ได้
- แสดงภาพแหล่งข้อมูล: คุณสามารถดูตัวอย่างรายการที่ถอนออกได้ สี และเลย์เอาต์เพื่อ ค้นหาแหล่งข้อมูลที่คุณต้องการได้อย่างรวดเร็ว
- นำเข้าหลายรายการพร้อมกัน: คุณนำเข้าเนื้อหาที่ถอนออกได้หลายรายการพร้อมกันโดยทำอย่างใดอย่างหนึ่งต่อไปนี้ ลากและวางรายการเหล่านี้ลงในหน้าต่างเครื่องมือเครื่องมือจัดการทรัพยากร หรือโดย โดยใช้วิซาร์ดนำเข้าเนื้อหาที่ถอนออกได้ หากต้องการเข้าถึงวิซาร์ด ให้เลือกเครื่องหมาย (+) ที่มุมซ้ายบนของหน้าต่างเครื่องมือ แล้วเลือก นำเข้าเนื้อหาที่ถอนออกได้จากเมนูแบบเลื่อนลง
-
แปลง SVG เป็นออบเจ็กต์
VectorDrawable
: คุณสามารถใช้ นำเข้าวิซาร์ด" ที่ถอนออกได้เพื่อแปลงรูปภาพ SVG เป็นVectorDrawable
ออบเจ็กต์ - ลากและวางเนื้อหา: จากหน้าต่างเครื่องมือเครื่องมือจัดการทรัพยากร คุณสามารถทำสิ่งต่อไปนี้ ลากและวางสิ่งที่ถอนออกได้ลงในทั้งมุมมองการออกแบบและ XML ของเลย์เอาต์ ผู้แก้ไข
- ดูเวอร์ชันอื่น: ตอนนี้คุณดูเวอร์ชันอื่นของทรัพยากรได้โดยดับเบิลคลิกทรัพยากรภายในหน้าต่างเครื่องมือ มุมมองนี้ จะแสดงเวอร์ชันต่างๆ ที่คุณสร้างขึ้นและตัวระบุที่มี รวมไว้ด้วย
- มุมมองไทล์และมุมมองรายการ: คุณเปลี่ยนมุมมองภายในหน้าต่างเครื่องมือเพื่อแสดงทรัพยากรในลักษณะต่างๆ ได้
หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่านคู่มือเกี่ยวกับวิธี จัดการทรัพยากรของแอป
การตรวจสอบรหัสบิลด์เมื่อทำโปรไฟล์และแก้ไขข้อบกพร่องของ APK
เมื่อคุณให้ไฟล์สัญลักษณ์การแก้ไขข้อบกพร่องสำหรับไลบรารีที่ใช้ร่วมกัน .so
รายการภายใน
APK ของคุณ Android Studio จะตรวจสอบว่า
รหัสบิลด์ของไฟล์สัญลักษณ์ที่ระบุตรงกัน
รหัสบิลด์ของไลบรารี .so
ภายใน APK
หากคุณสร้างไลบรารีเนทีฟใน APK ด้วยรหัสบิลด์ Android Studio ตรวจสอบว่ารหัสบิลด์ในไฟล์สัญลักษณ์ตรงกับรหัสบิลด์ใน ไลบรารีแบบเนทีฟและปฏิเสธไฟล์สัญลักษณ์หากข้อมูลไม่ตรงกัน หากคุณไม่ได้สร้างด้วยรหัสบิลด์ การให้ไฟล์สัญลักษณ์ที่ไม่ถูกต้องอาจทำให้เกิดปัญหาในการแก้ไขข้อบกพร่อง
R8 เปิดใช้อยู่โดยค่าเริ่มต้น
R8 ผสานรวมน้ำตาล การลดขนาด การสร้างความสับสน การเพิ่มประสิทธิภาพ และการจัดระเบียบทั้งหมดในขั้นตอนเดียว ซึ่งส่งผลให้เกิด การปรับปรุงประสิทธิภาพบิลด์ที่สังเกตเห็นได้ R8 เปิดตัวในปลั๊กอิน Android Gradle 3.3.0 และตอนนี้เปิดใช้โดยค่าเริ่มต้นสำหรับทั้งโปรเจ็กต์แอปและไลบรารี Android ที่ใช้ปลั๊กอิน 3.4.0 ขึ้นไป
รูปภาพด้านล่างแสดงภาพรวมระดับสูงของกระบวนการคอมไพล์ก่อนเปิดตัว R8
ตอนนี้มี R8, การลดน้ำตาล, ลดขนาด, ปรับให้ยากต่อการอ่าน (Obfuscate), เพิ่มประสิทธิภาพ และ Dexing (D8) ก็เสร็จสมบูรณ์ในขั้นตอนเดียวตามที่แสดงไว้ด้านล่าง
โปรดทราบว่า R8 ออกแบบมาให้ทำงานร่วมกับกฎ ProGuard ที่มีอยู่ คุณจึงอาจไม่ต้องดำเนินการใดๆ เพื่อรับประโยชน์จาก R8 อย่างไรก็ตาม เพราะเป็นเทคโนโลยีที่แตกต่างจาก ProGuard ซึ่งออกแบบมาโดยเฉพาะ สำหรับโปรเจ็กต์ Android การย่อขนาดและการเพิ่มประสิทธิภาพอาจส่งผลให้เกิดการนำโค้ดออก ที่ ProGuard อาจไม่ได้มี ดังนั้น ในสถานการณ์ที่ไม่น่าจะเกิดขึ้นนี้ คุณอาจต้อง ใส่กฎเพิ่มเติมเพื่อเก็บโค้ดนั้นไว้ในเอาต์พุตของบิลด์
หากพบปัญหาในการใช้ R8 โปรดอ่าน
คําถามที่พบบ่อยเกี่ยวกับความเข้ากันได้ของ R8
เพื่อดูว่ามีวิธีแก้ปัญหาของคุณหรือไม่ หากไม่มีวิธีแก้ปัญหาที่บันทึกไว้ โปรดรายงานข้อบกพร่อง
คุณปิดใช้ R8 ได้โดยการเพิ่มบรรทัดใดบรรทัดหนึ่งต่อไปนี้ลงในโปรเจ็กต์
gradle.properties
ไฟล์:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
หมายเหตุ: สำหรับประเภทบิลด์หนึ่งๆ หากคุณตั้งค่า useProguard
เป็น false
ในไฟล์ build.gradle
ของโมดูลแอป ปลั๊กอิน Android Gradle จะใช้ R8 เพื่อลดขนาดโค้ดของแอปสำหรับประเภทบิลด์นั้น ไม่ว่าคุณจะปิดใช้ R8 ในไฟล์ gradle.properties
ของโปรเจ็กต์หรือไม่ก็ตาม
ตัวแก้ไขการนำทางรองรับอาร์กิวเมนต์ทุกประเภทแล้ว
ประเภทอาร์กิวเมนต์ทั้งหมดที่คอมโพเนนต์การนำทางรองรับมีการสนับสนุนแล้วใน ตัวแก้ไขการนำทาง ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่รองรับได้ที่ ส่งข้อมูลระหว่างปลายทาง
การปรับปรุงตัวแก้ไขเลย์เอาต์ {:#layout-editor}
แผงแอตทริบิวต์ในเครื่องมือแก้ไขการออกแบบได้รับการปรับปรุงให้มีประสิทธิภาพยิ่งขึ้น ซึ่งมีส่วนที่คุณสามารถขยายเพื่อดูแอตทริบิวต์ที่คุณสามารถกำหนดค่าได้ แผงแอตทริบิวต์ยังมีการอัปเดตต่อไปนี้ด้วย
- ส่วนแอตทริบิวต์ที่ประกาศใหม่จะแสดงแอตทริบิวต์ที่ไฟล์เลย์เอาต์ระบุไว้ และช่วยให้คุณเพิ่มแอตทริบิวต์ใหม่ได้อย่างรวดเร็ว
- ตอนนี้แผงแอตทริบิวต์จะมีตัวบ่งชี้ถัดจากแอตทริบิวต์แต่ละรายการด้วย จะแข็งเมื่อค่าของแอตทริบิวต์เป็นการอ้างอิงทรัพยากร และว่างเปล่า หรือไม่เช่นนั้น
- ระบบจะไฮไลต์แอตทริบิวต์ที่มีข้อผิดพลาดหรือคำเตือน ข้อความไฮไลต์สีแดงบ่งบอกถึงข้อผิดพลาด (เช่น เมื่อคุณใช้ค่าเลย์เอาต์ที่ไม่ถูกต้อง) และข้อความไฮไลต์สีส้มบ่งบอกถึงคําเตือน (เช่น เมื่อคุณใช้ค่าที่เขียนตายตัว)
การดำเนินการโดยเจตนาใหม่เพื่อนำเข้าทรัพยากร Dependency อย่างรวดเร็ว
หากคุณเริ่มใช้คลาส Jetpack และ Firebase บางคลาสในโค้ด การดําเนินการตามเจตนาใหม่จะแนะนําให้เพิ่มการพึ่งพาไลบรารี Gradle ที่จําเป็นลงในโปรเจ็กต์ หากคุณยังไม่ได้ดำเนินการดังกล่าว เช่น หากคุณอ้างอิงคลาส WorkManager
โดยไม่นําเข้าการพึ่งพา android.arch.work:work-runtime
ที่จําเป็นก่อน การดําเนินการตามเจตนาจะช่วยให้คุณทําได้อย่างง่ายดายในคลิกเดียว ดังที่แสดงด้านล่าง
โดยเฉพาะอย่างยิ่ง เนื่องจาก Jetpack ได้จัดแพ็กเกจไลบรารีการสนับสนุนใหม่ออกเป็นรูปย่อยๆ แพ็กเกจที่ง่ายต่อการจัดการและอัปเดต การดำเนินการผ่านความตั้งใจนี้จะช่วยคุณ เพิ่มเฉพาะทรัพยากร Dependency ที่ต้องการสำหรับคอมโพเนนต์ Jetpack ที่ต้องการอย่างรวดเร็ว ในการใช้กัน
3.3 (มกราคม 2019)
Android Studio 3.3 เป็นรุ่นหลักที่มีฟีเจอร์และการปรับปรุงใหม่ๆ มากมาย
3.3.2 (มีนาคม 2019)
การอัปเดตเล็กน้อยนี้ครอบคลุมถึงการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพด้านต่างๆ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่น่าสนใจ ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
3.3.1 (กุมภาพันธ์ 2019)
การอัปเดตเล็กน้อยนี้ครอบคลุมถึงการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพด้านต่างๆ
IntelliJ IDEA 2018.2.2
IDE หลักของ Android Studio ได้รับการอัปเดตด้วยการปรับปรุงจาก IntelliJ IDEA ผ่านรุ่น 2018.2.2
การอัปเดตปลั๊กอิน Android Gradle
สำหรับข้อมูลว่ามีอะไรใหม่ในปลั๊กอิน Android Gradle โปรดดูที่ บันทึกประจำรุ่น
เครื่องมือแก้ไขการนําทาง
เครื่องมือแก้ไขการนำทางช่วยให้คุณเห็นภาพและสร้างการนำทางใน โดยใช้ คอมโพเนนต์สถาปัตยกรรมการนำทาง
ดูข้อมูลเพิ่มเติมได้ที่ใช้การนําทางด้วยคอมโพเนนต์สถาปัตยกรรมการนําทาง
ลบไดเรกทอรี Android Studio ที่ไม่ได้ใช้
เมื่อใช้งาน Android Studio เวอร์ชันหลักเป็นครั้งแรก ระบบจะมองหา ไดเรกทอรีที่มีแคช การตั้งค่า ดัชนี และบันทึกสำหรับเวอร์ชันของ Android Studio ที่ไม่พบการติดตั้งที่เกี่ยวข้อง จากนั้นกล่องโต้ตอบลบไดเรกทอรี Android Studio ที่ไม่ได้ใช้จะแสดงตำแหน่ง ขนาด และเวลาที่แก้ไขล่าสุดของไดเรกทอรีที่ไม่ได้ใช้เหล่านี้ รวมถึงมีตัวเลือกให้ลบไดเรกทอรีดังกล่าว
ไดเรกทอรีที่ Android Studio พิจารณาเพื่อลบมีดังนี้
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
การปรับปรุง Lint
เมื่อเรียกใช้ Lint จาก Gradle จะเร็วกว่ามาก โปรเจ็กต์ขนาดใหญ่สามารถ คาดว่าจะทำงานของ Lint ได้เร็วขึ้นถึง 4 เท่า
สร้างวิซาร์ดโปรเจ็กต์ใหม่
วิซาร์ดสร้างโปรเจ็กต์ใหม่มีรูปลักษณ์ใหม่และมีการอัปเดตที่ช่วย เพิ่มประสิทธิภาพในการสร้างโปรเจ็กต์ Android Studio ใหม่
โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสร้างโปรเจ็กต์
การอัปเดตเครื่องมือสร้างโปรไฟล์
Android Studio 3.3 มีการอัปเดตเครื่องมือวิเคราะห์แต่ละรายการ
ประสิทธิภาพเพิ่มขึ้น
ประสิทธิภาพการแสดงผลขณะใช้เครื่องมือวิเคราะห์โปรไฟล์ได้รับการปรับปรุงอย่างมากตามความคิดเห็นของผู้ใช้ โปรดแสดงความคิดเห็นต่อไป โดยเฉพาะในกรณีที่ยังพบปัญหาด้านประสิทธิภาพ
ตัวเลือกการติดตามการจัดสรรหน่วยความจำของเครื่องมือสร้างโปรไฟล์
ตอนนี้ เครื่องมือวิเคราะห์หน่วยความจำจะสุ่มตัวอย่างการจัดสรรหน่วยความจำเป็นระยะโดยค่าเริ่มต้นเพื่อปรับปรุงประสิทธิภาพของแอปขณะทำโปรไฟล์ หากต้องการ คุณเปลี่ยนลักษณะการทํางานนี้ได้โดยใช้เมนูแบบเลื่อนลงการติดตามการกําหนดเมื่อทดสอบในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป
ในการใช้เมนูแบบเลื่อนลงการติดตามการจัดสรร คุณสามารถเลือกจากรายการต่อไปนี้ โหมด:
-
เต็ม: บันทึกการจัดสรรหน่วยความจำของออบเจ็กต์ทั้งหมด โปรดทราบว่าหากคุณมีแอป ซึ่งจัดสรรออบเจ็กต์จำนวนมาก คุณอาจพบปัญหาด้านประสิทธิภาพที่สำคัญ ขณะทำโปรไฟล์
-
สุ่มตัวอย่าง: บันทึกตัวอย่างการจัดสรรหน่วยความจำของออบเจ็กต์เป็นระยะ นี่คือ ลักษณะการทำงานเริ่มต้นและส่งผลต่อประสิทธิภาพของแอปน้อยกว่าเมื่อทำโปรไฟล์ คุณอาจพบปัญหาด้านประสิทธิภาพบางอย่างกับแอปที่จัดสรร ออบเจ็กต์ได้ภายในระยะเวลาสั้นๆ
-
ปิด: ปิดการจัดสรรหน่วยความจำ หากยังไม่ได้เลือก โหมดนี้จะ เปิดใช้โดยอัตโนมัติขณะบันทึก CPU แล้วกลับไปยัง การตั้งค่าก่อนหน้าเมื่อการบันทึกเสร็จสิ้น คุณเปลี่ยนลักษณะการทำงานนี้ได้ในกล่องโต้ตอบการกําหนดค่าการบันทึก CPU
การติดตามจะมีผลกับทั้งออบเจ็กต์ Java และการอ้างอิง JNI
ตรวจสอบข้อมูลการแสดงภาพเฟรม
ใน CPU Profiler ตอนนี้คุณสามารถตรวจสอบได้ว่า แอป Java ใช้เวลานานเท่าใดในการแสดงผลแต่ละเฟรมบนเทรด UI หลัก และ RenderThread ข้อมูลนี้อาจมีประโยชน์เมื่อตรวจสอบจุดคอขวดที่ ทำให้ UI กระตุกและอัตราเฟรมต่ำ ตัวอย่างเช่น เฟรมแต่ละเฟรมที่ใช้เวลานานกว่า 16 มิลลิวินาทีซึ่งจําเป็นต่อการคงอัตราเฟรมให้ราบรื่นจะแสดงเป็นสีแดง
หากต้องการดูข้อมูลการแสดงเฟรม ให้บันทึกการติดตาม โดยใช้การกำหนดค่าที่ให้คุณติดตามการเรียกใช้ของระบบได้ หลังการบันทึก การติดตาม ให้มองหาข้อมูลเกี่ยวกับแต่ละเฟรมในไทม์ไลน์สำหรับการบันทึก ใต้ส่วนที่ชื่อเฟรมดังที่แสดงด้านล่าง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสํารวจและแก้ไขปัญหาอัตราเฟรมได้ที่การแสดงผลช้า
ส่วนย่อยในไทม์ไลน์เหตุการณ์
ตอนนี้ไทม์ไลน์เหตุการณ์จะแสดงเมื่อมีการแนบและแยกส่วนออก นอกจากนี้ เมื่อคุณวางเมาส์เหนือส่วนย่อย เคล็ดลับเครื่องมือจะแสดงส่วนย่อย สถานะ
ดูข้อความที่จัดรูปแบบสำหรับเพย์โหลดการเชื่อมต่อในเครื่องมือสร้างโปรไฟล์เครือข่าย
ก่อนหน้านี้ เครื่องมือวิเคราะห์เครือข่ายจะแสดงเฉพาะข้อความดิบจากเพย์โหลดการเชื่อมต่อ ตอนนี้ Android Studio 3.3 จัดรูปแบบข้อความบางประเภทโดยค่าเริ่มต้นแล้ว ซึ่งรวมถึง JSON, XML และ HTML ในแท็บการตอบกลับและคำขอ ให้คลิก ลิงก์ดูแยกวิเคราะห์เพื่อแสดงข้อความที่จัดรูปแบบ แล้วคลิก ลิงก์ ดูแหล่งที่มา เพื่อแสดงข้อความดิบ
ดูข้อมูลเพิ่มเติมได้ที่ตรวจสอบการรับส่งข้อมูลในเครือข่ายด้วยเครื่องมือวิเคราะห์เครือข่าย
การดาวน์โหลดคอมโพเนนต์ SDK โดยอัตโนมัติ
เมื่อโปรเจ็กต์ต้องใช้คอมโพเนนต์ SDK จากแพลตฟอร์ม SDK, NDK หรือ CMake ตอนนี้ Gradle จะพยายามดาวน์โหลดแพ็กเกจที่จำเป็นโดยอัตโนมัติ ตราบใดที่คุณได้ยอมรับข้อตกลงการอนุญาตให้ใช้สิทธิที่เกี่ยวข้องก่อนหน้านี้โดยใช้เครื่องมือจัดการ SDK
สำหรับข้อมูลเพิ่มเติม โปรดดู ดาวน์โหลดแพ็กเกจที่หายไปโดยอัตโนมัติด้วย Gradle
รองรับ Clang-Tidy
ขณะนี้ Android Studio มีการสนับสนุนสำหรับการวิเคราะห์โค้ดแบบคงที่โดยใช้ Clang-Tidy สำหรับโปรเจ็กต์ที่มี โค้ดแบบเนทีฟ เมื่อต้องการเปิดใช้การสนับสนุนสำหรับ Clang-Tidy อัปเดต NDK เป็น r18 ขึ้นไป
จากนั้นคุณจะเปิดใช้หรือเปิดใช้การตรวจสอบอีกครั้งได้โดยเปิดการตั้งค่า หรือ กล่องโต้ตอบค่ากำหนด แล้วไปที่ เอดิเตอร์ > การตรวจสอบ > C/C++ ทั่วไป > Clang-Tidy เมื่อเลือกการตรวจสอบนี้ในกล่องโต้ตอบการตั้งค่าหรือค่ากําหนด คุณจะเห็นรายการการตรวจสอบ Clang-Tidy ที่เปิดและปิดใช้ในส่วนตัวเลือกของแผงด้านขวาสุดด้วย หากต้องการเปิดใช้การตรวจสอบเพิ่มเติม ให้เพิ่มการตรวจสอบลงในรายการ แล้วคลิกใช้
หากต้องการกำหนดค่า Clang-Tidy ด้วยตัวเลือกเพิ่มเติม ให้คลิกกำหนดค่าตัวเลือกการตรวจสอบ Clang-Tidy แล้วเพิ่มรายการเหล่านั้นในกล่องโต้ตอบที่ เปิดขึ้นมา
การนำตัวเลือกการปรับแต่ง C++ ออก
ระบบนำตัวเลือกต่อไปนี้ออกจากปรับแต่งการสนับสนุน C++ แล้ว กล่องโต้ตอบ:
- การสนับสนุนข้อยกเว้น (-fexceptions)
- การรองรับข้อมูลประเภทรันไทม์ (-ftti)
ระบบจะเปิดใช้ลักษณะการทํางานที่เกี่ยวข้องในโปรเจ็กต์ทั้งหมดที่สร้างขึ้นผ่าน Android Studio
CMake เวอร์ชัน 3.10.2
ขณะนี้ CMake เวอร์ชัน 3.10.2 รวมอยู่ใน SDK Manager แล้ว โปรดทราบว่า Gradle ยังคง ใช้เวอร์ชัน 3.6.0 โดยค่าเริ่มต้น
หากต้องการระบุเวอร์ชัน CMake ให้ Gradle ใช้ ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์ build.gradle
ของโมดูล
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า CMake ใน build.gradle
โปรดดู
กำหนดค่า Gradle ด้วยตนเอง
ไวยากรณ์ "+" ใหม่เพื่อระบุเวอร์ชัน CMake ขั้นต่ำ
เมื่อระบุเวอร์ชันของ CMake ในไฟล์ build.gradle
ของโมดูลหลัก
คุณสามารถเพิ่ม "+" ต่อท้ายลักษณะการทำงานของ CMake
cmake_minimum_required()
คำสั่ง
ข้อควรระวัง: การใช้ "+" ไวยากรณ์กับไวยากรณ์อื่น สร้างทรัพยากร Dependency เนื่องจากทรัพยากร Dependency แบบไดนามิกอาจทำให้เกิดการอัปเดตเวอร์ชันที่ไม่คาดคิดและ ปัญหาในการแก้ไขความแตกต่างของเวอร์ชัน
Android App Bundle รองรับ Instant App แล้ว
ตอนนี้ Android Studio ให้คุณสร้าง Android App Bundle ด้วย รองรับ Google Play Instant อย่างเต็มรูปแบบ กล่าวคือ ตอนนี้คุณสามารถสร้างและติดตั้งใช้งานทั้งแอปที่ติดตั้งและประสบการณ์การใช้งาน Instant จากโปรเจ็กต์ Android Studio โปรเจ็กต์เดียว และรวมไว้ใน Android App Bundle รายการเดียว
หากคุณสร้างโปรเจ็กต์ Android Studio ใหม่โดยใช้กล่องโต้ตอบสร้างโปรเจ็กต์ใหม่ ให้ตรวจสอบว่าได้เลือกช่องข้างกำหนดค่าโปรเจ็กต์ > โปรเจ็กต์นี้จะรองรับแอปด่วน แอนดรอยด์ จากนั้น Studio จะสร้างโปรเจ็กต์แอปใหม่ตามปกติ แต่จะมี พร็อพเพอร์ตี้ต่อไปนี้ในไฟล์ Manifest ของคุณเพื่อเพิ่มการรองรับ Instant App ลงในไฟล์ โมดูลฐาน:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
จากนั้นคุณจะสามารถ สร้างฟีเจอร์ที่เปิดใช้ Instant โดยเลือก File > ใหม่ > โมดูลใหม่จากแถบเมนู จากนั้น เลือก Instant Dynamic Feature Module จากสร้างโมดูลใหม่ กล่องโต้ตอบ โปรดทราบว่าการสร้างโมดูลนี้จะเปิดใช้โมดูลฐานของแอปโดยทันทีด้วย
วิธีทำให้แอปใช้งานได้กับอุปกรณ์ในเครื่องเพื่อประสบการณ์การใช้งานแบบใช้งานได้ทันที แก้ไขการกำหนดค่าการเรียกใช้ และตรวจสอบ ที่อยู่ถัดจาก ทั่วไป > ทำให้ใช้งานได้เป็น Instant App
การซิงค์โปรเจ็กต์แบบตัวแปรเดียว
การซิงค์โปรเจ็กต์กับการกำหนดค่าบิลด์เป็นขั้นตอนสำคัญในการช่วยให้ Android Studio เข้าใจโครงสร้างโปรเจ็กต์ อย่างไรก็ตาม กระบวนการนี้อาจใช้เวลานานสำหรับโปรเจ็กต์ขนาดใหญ่ ถ้า โปรเจ็กต์ใช้ตัวแปรบิลด์หลายรายการ ตอนนี้คุณสามารถเพิ่มประสิทธิภาพการซิงค์โปรเจ็กต์ได้โดย โดยจำกัดให้มีเฉพาะตัวแปรที่คุณเลือกไว้ในปัจจุบันเท่านั้น
คุณต้องใช้ Android Studio 3.3 ขึ้นไปกับปลั๊กอิน Android Gradle 3.3.0 ขึ้นไปเพื่อเปิดใช้การเพิ่มประสิทธิภาพนี้ เมื่อมีคุณสมบัติตรงตามข้อกำหนดเหล่านี้ IDE จะแจ้งให้คุณเปิดใช้การเพิ่มประสิทธิภาพนี้เมื่อซิงค์โปรเจ็กต์ การเพิ่มประสิทธิภาพจะเปิดใช้โดยค่าเริ่มต้นในโปรเจ็กต์ใหม่ด้วย
หากต้องการเปิดใช้การเพิ่มประสิทธิภาพนี้ด้วยตนเอง ให้คลิก ไฟล์ > การตั้งค่า > ทดลอง > เกรเดิล (Android Studio > ค่ากำหนด > ทดลอง > Gradle บน Mac) แล้วเลือก ช่องทำเครื่องหมายซิงค์เฉพาะตัวแปรที่ใช้งานอยู่
หมายเหตุ: ปัจจุบันการเพิ่มประสิทธิภาพนี้รองรับเฉพาะโปรเจ็กต์ที่มีภาษาโปรแกรม Java เท่านั้น ตัวอย่างเช่น หาก IDE ตรวจพบโค้ด Kotlin หรือ C++ ใน โปรเจ็กต์ไม่ได้เปิดใช้การเพิ่มประสิทธิภาพนี้โดยอัตโนมัติ และคุณควร อย่าเปิดใช้ด้วยตนเอง
สำหรับข้อมูลเพิ่มเติม โปรดดู เปิดใช้การซิงค์โปรเจ็กต์ตัวแปรเดียว
แสดงความคิดเห็นอย่างรวดเร็ว
หากเลือกแชร์สถิติการใช้งานเพื่อช่วยปรับปรุง Android Studio คุณจะเห็นไอคอนใหม่ 2 ไอคอนนี้ในแถบสถานะที่ด้านล่างของหน้าต่าง IDE


เพียงคลิกที่ไอคอนที่แสดงถึงประสบการณ์การใช้งานในปัจจุบันของคุณเมื่อใช้ IDE ได้ดีที่สุด เมื่อทำเช่นนั้น IDE จะส่งสถิติการใช้งานที่อนุญาตให้ Android Studio เข้าใจความรู้สึกของคุณได้ดีขึ้น ในบางกรณี เช่น เมื่อคุณระบุว่าได้รับประสบการณ์ที่ไม่ดีจาก IDE คุณจะมีสิทธิ์ส่งความคิดเห็นเพิ่มเติม
คุณสามารถเปิดใช้การแชร์สถิติการใช้งานได้โดยดำเนินการดังนี้ เปิดกล่องโต้ตอบการตั้งค่าค่ากำหนดใน Mac) ไปที่ ลักษณะที่ปรากฏและ พฤติกรรม > การตั้งค่าระบบ > การแชร์ข้อมูลและการตรวจสอบ ส่งสถิติการใช้งานไปยัง Google
3.2 (กันยายน 2018)
Android Studio 3.2 เป็นรุ่นหลักที่มีฟีเจอร์และการปรับปรุงใหม่ๆ มากมาย
3.2.1 (ตุลาคม 2018)
การอัปเดต Android Studio 3.2 นี้จะมีการเปลี่ยนแปลงและการแก้ไขดังต่อไปนี้
- ตอนนี้ Kotlin เวอร์ชันที่รวมอยู่คือ 1.2.71
- เวอร์ชันของเครื่องมือสร้างเริ่มต้นคือ 28.0.3
- ในคลังการนำทาง เราได้เปลี่ยนชื่อประเภทอาร์กิวเมนต์จาก
type
เป็นargType
- ข้อบกพร่องต่อไปนี้ได้รับการแก้ไขแล้ว
- เมื่อใช้ไลบรารีการเชื่อมโยงข้อมูล ชื่อตัวแปรที่มีขีดล่าง ทำให้เกิดข้อผิดพลาดในการคอมไพล์
- CMake ทำให้ IntelliSense และฟีเจอร์ CLion อื่นๆ ล้มเหลว
- การเพิ่ม
SliceProvider
ทำให้เกิดข้อผิดพลาดในการคอมไพล์ ในโปรเจ็กต์ที่ไม่ได้ใช้ไลบรารีandroidx.*
- ไม่ได้เรียกใช้การทดสอบยูนิต Kotlin บางรายการ
- ปัญหาการเชื่อมโยงข้อมูลทําให้
PsiInvalidElementAccessException
- บางครั้งองค์ประกอบ
<merge>
รายการทำให้ เครื่องมือแก้ไขเลย์เอาต์ขัดข้อง
3.2.0 ปัญหาที่ทราบ
หมายเหตุ: ปัญหาเหล่านี้ได้รับการแก้ไขแล้วใน Android Studio 3.2.1
เราไม่แนะนำให้ใช้ Kotlin เวอร์ชัน 1.2.70
Kotlin เวอร์ชัน 1.2.61 แก้ไขปัญหาที่อาจทำให้ Android Studio ค้าง แต่ Kotlin 1.2.70 ไม่ได้รวมการแก้ไขนี้
อย่างไรก็ตาม Kotlin เวอร์ชัน 1.2.71 ขึ้นไปจะรวมการแก้ไขนี้ไว้ด้วย
-
แม้ว่าโดยทั่วไปแล้วคุณไม่จำเป็นต้องระบุเวอร์ชันของเครื่องมือสร้าง เมื่อใช้ปลั๊กอิน Android Gradle 3.2.0 กับ ตั้งค่า
renderscriptSupportModeEnabled
เป็นtrue
คุณ จะต้องใส่ข้อมูลต่อไปนี้ในbuild.gradle
ของแต่ละโมดูล ไฟล์:android.buildToolsVersion "28.0.3"
มีอะไรใหม่เกี่ยวกับ Assistant
ผู้ช่วยใหม่จะแจ้งให้คุณทราบเกี่ยวกับการเปลี่ยนแปลงล่าสุดใน Android Studio
Assistant จะเปิดขึ้นเมื่อคุณเริ่มใช้ Android Studio หลังจากการติดตั้งใหม่ หรือ อัปเดตหากตรวจพบว่ามีข้อมูลใหม่ที่จะแสดง คุณยังสามารถเปิด Assistant โดยเลือก ความช่วยเหลือ > มีอะไรใหม่ใน Android Studio
Android Jetpack
Android Jetpack ช่วยเร่งการพัฒนา Android ด้วยคอมโพเนนต์ เครื่องมือ และคำแนะนำที่ช่วยลดงานที่ต้องทำซ้ำๆ และช่วยให้คุณสร้างแอปที่ทดสอบได้และมีคุณภาพสูงได้อย่างรวดเร็วและง่ายดาย Android Studio ประกอบด้วย อัปเดตเพื่อรองรับ Jetpack สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารประกอบของ Jetpack
ตัวแก้ไขการนำทาง
เครื่องมือแก้ไขการนําทางแบบใหม่ผสานรวมกับคอมโพเนนต์การนําทางของ Android Jetpack เพื่อแสดงมุมมองแบบกราฟิกสําหรับสร้างโครงสร้างการนําทางของแอป เครื่องมือแก้ไขการนําทางช่วยให้การออกแบบและการใช้งานการนําทางระหว่างปลายทางในแอปง่ายขึ้น
ใน Android Studio 3.2 ตัวแก้ไขการนำทางเป็นฟีเจอร์ทดลอง ถึง เปิดใช้ตัวแก้ไขการนำทาง คลิกไฟล์ > การตั้งค่า (Android Studio > ค่ากำหนด บน Mac) เลือกหมวดหมู่ทดลอง ในแผงด้านซ้าย ให้เลือกช่องข้างเปิดใช้ตัวแก้ไขการนำทาง และ รีสตาร์ท Android Studio
หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน เอกสารประกอบของตัวแก้ไขการนำทาง
การย้ายข้อมูล AndroidX
เรากําลังย้ายข้อมูลไลบรารีการสนับสนุน Android ไปยังไลบรารีส่วนขยาย Android ใหม่โดยใช้เนมสเปซ androidx
เป็นส่วนหนึ่งของ Jetpack สำหรับข้อมูลเพิ่มเติม
โปรดดู
ภาพรวม AndroidX
Android Studio 3.2 จะช่วยคุณดำเนินการขั้นตอนนี้ด้วยฟีเจอร์การย้ายข้อมูลใหม่
หากต้องการย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยัง AndroidX ให้เลือกปรับโครงสร้าง > ย้ายข้อมูลไปยัง AndroidX หากคุณมีไลบรารี Maven ที่ไม่ได้ย้ายข้อมูลไปยังเนมสเปซ AndroidX ระบบในรุ่นของ Android Studio จะแปลงไลบรารีเหล่านั้นโดยอัตโนมัติด้วย
ปลั๊กอิน Android Gradle มี Flag ทั่วโลกที่คุณตั้งค่าได้ดังต่อไปนี้
ในไฟล์ gradle.properties
android.useAndroidX
: เมื่อตั้งค่าเป็นtrue
แฟล็กนี้ หมายความว่าคุณต้องการเริ่มใช้ AndroidX นับจากนี้เป็นต้นไป หากแฟล็กคือ หากไม่มี Android Studio จะทำงานเสมือนว่ามีการตั้งค่า Flag เป็นfalse
android.enableJetifier
: เมื่อตั้งค่าเป็นtrue
แฟล็กนี้จะระบุว่าคุณต้องการการสนับสนุนเครื่องมือ (จากปลั๊กอิน Android Gradle) เพื่อแปลงไลบรารีของบุคคลที่สามที่มีอยู่โดยอัตโนมัติราวกับว่าเขียนขึ้นสำหรับ AndroidX หากไม่มีธงไว้ Android Studio จะทำงานเป็น หากตั้งค่าสถานะเป็นfalse
แฟล็กทั้ง 2 แบบจะตั้งค่าเป็น true
เมื่อคุณใช้
คำสั่ง Migrate to AndroidX
หากคุณต้องการเริ่มใช้ไลบรารี AndroidX ทันทีและไม่ต้อง
แปลงไลบรารีของบุคคลที่สามที่มีอยู่ คุณจะตั้งค่า
android.useAndroidX
แจ้งไปยัง true
และ
แจ้งว่า android.enableJetifier
ไม่เหมาะสมไปยัง false
Android App Bundle
Android App Bundle เป็นรูปแบบการอัปโหลดรูปแบบใหม่ที่รวมโค้ดและทรัพยากรที่คอมไพล์แล้วทั้งหมดของแอป แต่เลื่อนการสร้างและการลงนาม APK ไปยัง Google Play Store
จากนั้นโมเดลการนำส่งแอปแบบใหม่ของ Google Play จะใช้ App Bundle ของคุณเพื่อสร้างและนำส่ง APK ที่เพิ่มประสิทธิภาพแล้วสำหรับการกำหนดค่าอุปกรณ์ของผู้ใช้แต่ละราย เพื่อให้ผู้ใช้แต่ละรายดาวน์โหลดเฉพาะโค้ดและทรัพยากรที่จำเป็นต่อการเรียกใช้แอปของคุณ คุณจึงไม่ต้องสร้าง รับรอง และจัดการ APK หลายรายการอีกต่อไป และผู้ใช้จะดาวน์โหลดไฟล์ที่มีขนาดเล็กลงและเพิ่มประสิทธิภาพมากขึ้น
นอกจากนี้ คุณสามารถเพิ่มโมดูลฟีเจอร์ลงในโปรเจ็กต์แอป และ ให้รวมแอปเหล่านั้นใน App Bundle ของคุณ จากนั้นผู้ใช้จะดาวน์โหลดและติดตั้งฟีเจอร์ของแอปได้ตามต้องการ
หากต้องการสร้างแพ็กเกจ ให้เลือกสร้าง > สร้างชุด / APK > สร้างแพ็กเกจ
สำหรับข้อมูลเพิ่มเติม รวมถึงวิธีการในการสร้างและวิเคราะห์ Android App Bundle โปรดดู Android App Bundle
ข้อมูลตัวอย่างในเครื่องมือแก้ไขเลย์เอาต์
เลย์เอาต์ Android จำนวนมากมีข้อมูลรันไทม์ที่อาจทำให้เห็นภาพลักษณะของเลย์เอาต์ได้ยากในขั้นตอนการออกแบบการพัฒนาแอป คุณ
ก็จะสามารถดูตัวอย่างมุมมองของคุณได้ง่ายๆ ใน "เครื่องมือแก้ไขการออกแบบ"
ข้อมูลตัวอย่าง เมื่อคุณเพิ่มมุมมอง ปุ่ม
จะปรากฏใต้มุมมองในหน้าต่างการออกแบบ คลิกปุ่มนี้เพื่อตั้งค่า
แอตทริบิวต์มุมมองเวลาออกแบบ คุณเลือกจากเทมเพลตข้อมูลตัวอย่างที่หลากหลายและระบุจํานวนรายการตัวอย่างที่จะใช้สร้างมุมมองได้
หากต้องการลองใช้ข้อมูลตัวอย่าง ให้เพิ่ม
RecyclerView
ไปยังเลย์เอาต์ใหม่ ให้คลิกปุ่มแอตทริบิวต์เวลาออกแบบ
ด้านล่างมุมมอง แล้วเลือกตัวเลือกจากภาพสไลด์ของข้อมูลตัวอย่าง
เทมเพลต
Slice
Slices เป็นวิธีใหม่ในการฝังฟังก์ชันการทำงานของแอปบางส่วนไว้ใน แพลตฟอร์มอินเทอร์เฟซผู้ใช้อื่นๆ บน Android เช่น ข้อมูลส่วนช่วยให้แสดงฟังก์ชันการทำงานและเนื้อหาของแอปในคำแนะนำของ Google Search ได้
Android Studio 3.2 มีเทมเพลตในตัวเพื่อช่วยคุณขยายแอปด้วย Slice Provider API ใหม่ รวมถึงการตรวจสอบ Lint ใหม่เพื่อให้คุณ ทำตามแนวทางปฏิบัติแนะนำเมื่อสร้าง Slice
เมื่อต้องการเริ่มต้น ให้คลิกขวาที่โฟลเดอร์โปรเจ็กต์แล้วเลือก ใหม่ > อื่นๆ > Slice Provider
ดูข้อมูลเพิ่มเติม รวมถึงวิธีทดสอบการโต้ตอบกับข้อมูลในแผงข้อมูลได้ที่คู่มือเริ่มต้นใช้งานข้อมูลในแผงข้อมูล
Kotlin 1.2.61
Android Studio 3.2 มี Kotlin 1.2.61 และ Android SDK ใหม่ผสานรวม ได้ดียิ่งขึ้นด้วย Kotlin สำหรับข้อมูลเพิ่มเติม โปรดดู บล็อกของนักพัฒนาแอป Android
IntelliJ IDEA 2018.1.6
IDE หลักของ Android Studio ได้รับการอัปเดตด้วยการปรับปรุงจาก IntelliJ IDEA ผ่านรุ่น 2018.1.6
เครื่องมือสร้างโปรไฟล์ Android
ลองใช้เครื่องมือสร้างโปรไฟล์ Android ใหม่ต่อไปนี้ ใน Android Studio 3.2
เซสชัน
ตอนนี้คุณสามารถบันทึกข้อมูลเครื่องมือวิเคราะห์เป็นเซสชันเพื่อกลับมาดูและตรวจสอบในภายหลัง เครื่องมือสร้างโปรไฟล์จะเก็บข้อมูลเซสชันไว้จนกว่าคุณจะรีสตาร์ท IDE
เมื่อคุณ บันทึกการติดตามเมธอด หรือ จับภาพฮีปดัมป์ IDE จะเพิ่มข้อมูลดังกล่าว (พร้อมด้วยเครือข่ายของแอป ) เป็นรายการแยกต่างหากไปยังเซสชันปัจจุบัน และคุณสามารถเปลี่ยน กลับไปกลับมาระหว่างการบันทึกเพื่อเปรียบเทียบข้อมูล
การติดตามของระบบ
ในเครื่องมือวิเคราะห์ประสิทธิภาพ CPU ให้เลือกการกําหนดค่าการติดตามระบบใหม่เพื่อตรวจสอบ CPU ของระบบและกิจกรรมเธรดของอุปกรณ์ การกำหนดค่าการติดตามนี้สร้างขึ้นเมื่อ
systrace
และมีประโยชน์ในการตรวจสอบปัญหาระดับระบบ เช่น การกระตุกของ UI
ขณะใช้การกําหนดค่าการติดตามนี้ คุณสามารถทําเครื่องหมายรูทีนโค้ดที่สําคัญในไทม์ไลน์ของเครื่องมือวิเคราะห์ประสิทธิภาพได้โดยการติดแท็กโค้ด C/C++ ด้วย Native Tracing API หรือโค้ด Java ด้วยคลาส Trace
ตรวจสอบการอ้างอิง JNI ในเครื่องมือสร้างโปรไฟล์หน่วยความจำ
หากคุณทำให้แอปใช้งานได้ในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป ตอนนี้คุณสามารถตรวจสอบการจัดสรรหน่วยความจำสำหรับรหัส JNI ของแอปได้โดยใช้ เครื่องมือสร้างโปรไฟล์หน่วยความจำ
ขณะที่แอปทํางานอยู่ ให้เลือกส่วนของไทม์ไลน์ที่ต้องการตรวจสอบ แล้วเลือก JNI heap จากเมนูแบบเลื่อนลงเหนือรายการคลาส ดังที่แสดงด้านล่าง จากนั้นคุณจะตรวจสอบออบเจ็กต์ในฮีปได้ตามปกติและ ดับเบิลคลิกออบเจ็กต์ในแท็บสแต็กการเรียกใช้การจัดสรรเพื่อดูตำแหน่งที่ JNI ระบบจะจัดสรรและเผยแพร่การอ้างอิงในโค้ดของคุณ

นําเข้า ส่งออก และตรวจสอบไฟล์ฮีปดัมป์หน่วยความจํา
ตอนนี้คุณนำเข้า ส่งออก และตรวจสอบไฟล์ฮีปดัมป์ของหน่วยความจำ .hprof
ที่สร้างขึ้นได้แล้ว
ด้วยเครื่องมือสร้างโปรไฟล์หน่วยความจำ
นำเข้าไฟล์ .hprof
ของคุณโดยคลิกเริ่มเซสชันเครื่องมือสร้างโปรไฟล์ใหม่
ในช่วง
แผงเซสชันของเครื่องมือสร้างโปรไฟล์ แล้วเลือกโหลดจากไฟล์ จากนั้นคุณจะสามารถ
ตรวจสอบข้อมูลในเครื่องมือสร้างโปรไฟล์หน่วยความจำเช่นเดียวกับที่คุณทำกับฮีปดัมป์อื่นๆ
หากต้องการบันทึกข้อมูลฮีปดัมป์เพื่อตรวจสอบภายหลัง ให้ใช้ปุ่มส่งออกฮีปดัมป์ที่
ทางด้านขวาของรายการฮีปดัมป์ในแผงเซสชัน ใน
กล่องโต้ตอบส่งออกเป็นที่ปรากฏขึ้น ให้บันทึกไฟล์ด้วยชื่อไฟล์ .hprof
ส่วนขยาย
บันทึกกิจกรรมของ CPU ระหว่างที่เริ่มต้นแอป
ตอนนี้คุณสามารถบันทึกกิจกรรมของ CPU ระหว่างที่แอปเริ่มต้นทำงานได้โดยทำดังนี้
- เลือกเรียกใช้ > แก้ไขการกำหนดค่าจากเมนูหลัก
- เลือกช่องทำเครื่องหมายในแท็บการทำโปรไฟล์ของการกำหนดค่าการเรียกใช้ที่คุณต้องการ ซึ่งอยู่ถัดจากเริ่มบันทึกการติดตามเมธอดเมื่อเริ่มต้นใช้งาน
- เลือกการกำหนดค่าการบันทึก CPU ที่จะใช้จากเมนูแบบเลื่อนลง
- ทำให้แอปใช้งานได้ในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไปโดย เลือก Run > โปรไฟล์
ส่งออกการติดตาม CPU
หลังจากที่คุณบันทึกกิจกรรม CPU ด้วยเครื่องมือสร้างโปรไฟล์ CPU แล้ว คุณสามารถส่งออกข้อมูลในรูปแบบ
ไฟล์ .trace
เพื่อแชร์กับผู้อื่นหรือตรวจสอบในภายหลัง
หากต้องการส่งออกการติดตามหลังจากบันทึกกิจกรรมของ CPU แล้ว ให้ทำดังนี้
- คลิกขวาที่ไฟล์บันทึกเสียงที่ต้องการส่งออกจากไทม์ไลน์ CPU
- เลือกส่งออกการติดตามจากเมนูแบบเลื่อนลง
- ไปที่ตำแหน่งที่ต้องการบันทึกไฟล์ แล้วคลิกบันทึก
นําเข้าและตรวจสอบไฟล์การติดตาม CPU
ตอนนี้คุณสามารถนำเข้าและตรวจสอบไฟล์ .trace
รายการที่สร้างด้วย
แก้ไขข้อบกพร่อง API หรือ
เครื่องมือสร้างโปรไฟล์ CPU (ปัจจุบัน คุณ
ไม่สามารถนำเข้าไฟล์การติดตามระบบได้)
นำเข้าไฟล์การติดตามโดยคลิกเริ่มเซสชันเครื่องมือสร้างโปรไฟล์ใหม่
ในช่วง
แผงเซสชันของเครื่องมือสร้างโปรไฟล์ แล้วเลือก
โหลดจากไฟล์ จากนั้นคุณจะสามารถ
ตรวจสอบข้อมูลในเครื่องมือสร้างโปรไฟล์ CPU ในลักษณะเดียวกับที่คุณทำตามปกติ
ข้อยกเว้นต่อไปนี้
- กิจกรรม CPU จะไม่ปรากฏในไทม์ไลน์ของ CPU
- ไทม์ไลน์กิจกรรมของชุดข้อความระบุเฉพาะตําแหน่งที่มีข้อมูลการติดตามสําหรับ แต่ละชุดข้อความ ไม่ใช่สถานะของชุดข้อความจริง (เช่น กำลังดำเนินการ กำลังรอ หรือ การนอนหลับ)
บันทึกกิจกรรมของ CPU โดยใช้ Debug API
คุณจะเริ่มและหยุดบันทึกกิจกรรมของ CPU ในเครื่องมือสร้างโปรไฟล์ CPU ได้แล้วโดย
วัดคุมแอปของคุณด้วย Debug API หลัง
เมื่อคุณทำให้แอปใช้งานได้ในอุปกรณ์ เครื่องมือสร้างโปรไฟล์จะเริ่มบันทึก CPU โดยอัตโนมัติ
กิจกรรมเมื่อแอปของคุณโทร
startMethodTracing(String tracePath)
และเครื่องมือสร้างโปรไฟล์จะหยุดบันทึกเมื่อแอปเรียกใช้
stopMethodTracing()
ขณะที่
บันทึกกิจกรรม CPU ที่ทริกเกอร์โดยใช้ API นี้ เครื่องมือสร้างโปรไฟล์ CPU จะแสดง
Debug API เป็นการกำหนดค่าการบันทึก CPU ที่เลือก
เครื่องมือสร้างโปรไฟล์พลังงาน
เครื่องมือวิเคราะห์พลังงานจะแสดงภาพการใช้พลังงานโดยประมาณของแอป รวมถึงเหตุการณ์ของระบบที่ส่งผลต่อการใช้พลังงาน เช่น การล็อกที่ตื่นอยู่ การปลุก และงาน
เครื่องมือสร้างโปรไฟล์พลังงานจะปรากฏเป็นแถวใหม่ที่ด้านล่างของ Profiler เมื่อคุณเรียกใช้แอปในอุปกรณ์ที่เชื่อมต่อหรือเรียกใช้โปรแกรมจำลอง Android Android 8.0 (API 26) ขึ้นไป
คลิกแถวพลังงานเพื่อเพิ่มมุมมองเครื่องมือสร้างโปรไฟล์พลังงานให้ได้สูงสุด วางเมาส์ ชี้ไปที่แถบในไทม์ไลน์เพื่อดูรายละเอียดการใช้พลังงานตาม CPU ทรัพยากรเครือข่าย และตำแหน่ง (GPS) ตลอดจนเหตุการณ์ของระบบที่เกี่ยวข้อง
เหตุการณ์ของระบบที่ส่งผลต่อการใช้พลังงานจะแสดงในไทม์ไลน์ระบบใต้ไทม์ไลน์พลังงาน รายละเอียดเหตุการณ์ของระบบภายในช่วงเวลาที่ระบุจะแสดงในแผงเหตุการณ์เมื่อคุณเลือกช่วงเวลาในไทม์ไลน์พลังงาน
หากต้องการดูสแต็กการเรียกและรายละเอียดอื่นๆ ของเหตุการณ์ของระบบ เช่น การล็อกให้ตื่น ให้เลือกเหตุการณ์นั้นในแผงเหตุการณ์ หากต้องการไปที่โค้ดที่ทำให้เกิดเหตุการณ์ของระบบ ดับเบิลคลิกรายการในสแต็กการเรียกใช้
การตรวจสอบขุยผ้า
Android Studio 3.2 มาพร้อมฟีเจอร์ใหม่ๆ และฟีเจอร์ที่ได้รับการปรับปรุงมากมายสำหรับ การตรวจสอบ Lint
การตรวจสอบ Lint ใหม่ช่วยให้คุณค้นหาและระบุปัญหาที่พบบ่อยเกี่ยวกับโค้ด ตั้งแต่คำเตือนเกี่ยวกับปัญหาด้านความสามารถในการใช้งานที่อาจเกิดขึ้น ไปจนถึงข้อผิดพลาดที่มีลำดับความสำคัญสูงเกี่ยวกับ ที่อาจมีความเสี่ยงด้านความปลอดภัย
การตรวจสอบ Lint สําหรับความสามารถในการทํางานร่วมกันของ Java/Kotlin
การตรวจสอบ Lint ใหม่จะบังคับใช้แนวทางปฏิบัติแนะนำที่อธิบายไว้ในคู่มือการทำงานร่วมกันของ Kotlin เพื่อให้แน่ใจว่าโค้ด Java จะทำงานร่วมกับโค้ด Kotlin ได้อย่างราบรื่น ตัวอย่างการตรวจสอบเหล่านี้ ได้แก่ การตรวจสอบว่ามีคำอธิบายประกอบ Nullability หรือไม่ การใช้คีย์เวิร์ดแบบฮาร์ดของ Kotlin และการวางพารามิเตอร์ Lambda เป็นลำดับสุดท้าย
หากต้องการเปิดใช้การตรวจสอบเหล่านี้ ให้คลิกไฟล์ > การตั้งค่า (Android Studio > ค่ากำหนด สำหรับ Mac) เพื่อเปิดกล่องโต้ตอบการตั้งค่า ให้ไปที่ เอดิเตอร์ > การตรวจสอบ > Android > Lint > ความสามารถในการทำงานร่วมกัน > ความสามารถในการทำงานร่วมกันของ Kotlin และเลือกกฎที่คุณต้องการเปิดใช้

หากต้องการเปิดใช้การตรวจสอบเหล่านี้สำหรับบิลด์บรรทัดคำสั่ง ให้เพิ่มรายการต่อไปนี้ลงใน
build.gradle
ไฟล์:
android {
lintOptions {
check 'Interoperability'
}
}
การตรวจสอบ Lint สำหรับส่วนแบ่ง
การตรวจสอบ Lint ใหม่สำหรับ Slice จะช่วยให้มั่นใจได้ว่าคุณกำลังสร้าง Slice อย่างถูกต้อง ตัวอย่างเช่น การตรวจสอบ Lint จะเตือนคุณหากไม่ได้กำหนด ลงใน Slice
เป้าหมาย Gradle ใหม่
ใช้lintFix
งาน Gradle ใหม่เพื่อใช้การแก้ไขที่ปลอดภัยทั้งหมดที่การตรวจสอบ Lint แนะนำกับซอร์สโค้ดโดยตรง ตัวอย่างของ
การตรวจสอบ Lint ที่แนะนำการแก้ไขที่ปลอดภัยในการใช้คือ SyntheticAccessor
การอัปเดตข้อมูลเมตา
ข้อมูลเมตาต่างๆ เช่น การตรวจสอบการแคสต์บริการ ได้รับการอัปเดตสำหรับ Lint ตรวจสอบเพื่อใช้กับ Android 9 (API ระดับ 28)
คำเตือนหากเรียกใช้ Lint กับตัวแปรใหม่
ตอนนี้ Lint จะบันทึกตัวแปรและเวอร์ชันที่ใช้บันทึกข้อมูลพื้นฐาน และเตือนคุณหากเรียกใช้ตัวแปรอื่นที่ไม่ใช่ตัวแปรที่ใช้สร้างข้อมูลพื้นฐาน
การปรับปรุงการตรวจสอบ Lint ที่มีอยู่
Android Studio 3.2 มีการปรับปรุงหลายอย่างสำหรับการตรวจสอบ Lint ที่มีอยู่ สำหรับ ตัวอย่างเช่น ตอนนี้การตรวจสอบวงจรทรัพยากรจะใช้กับประเภททรัพยากรเพิ่มเติม และ เครื่องมือตรวจหาคำแปลสามารถค้นหาคำแปลที่หายไปได้ทันใจ ใน ของ Google
ค้นพบรหัสปัญหาได้ง่ายขึ้น
ตอนนี้รหัสปัญหาแสดงในที่ต่างๆ มากขึ้น ซึ่งรวมถึงในการตรวจสอบ
ผลการค้นหา ซึ่งจะช่วยให้คุณค้นหาข้อมูลที่ต้องการเพื่อเปิดหรือปิดใช้การตรวจสอบที่เฉพาะเจาะจงผ่าน lintOptions
ใน build.gradle
ได้ง่ายขึ้น
ดูข้อมูลเพิ่มเติมได้ที่กำหนดค่าตัวเลือก Lint ด้วย Gradle
การเชื่อมโยงข้อมูล V2
ตอนนี้ระบบจะเปิดใช้การเชื่อมโยงข้อมูล V2 โดยค่าเริ่มต้นและเข้ากันได้กับ V1 ซึ่งหมายความว่า กล่าวคือ หากคุณมีทรัพยากร Dependency ของไลบรารีที่คอมไพล์ด้วย V1 คุณสามารถใช้ ด้วยโปรเจ็กต์ที่ใช้ Data Binding V2 อย่างไรก็ตาม โปรดทราบว่าโปรเจ็กต์ที่ใช้ V1 จะใช้ทรัพยากร Dependencies ที่คอมไพล์ด้วย V2 ไม่ได้
การกรองน้ำตาลออกจาก D8
ใน Android Studio 3.1 เราได้ผสานรวมขั้นตอนการลดน้ำตาลลงในเครื่องมือ D8 ในฐานะ ฟีเจอร์ทดลอง ซึ่งช่วยลดเวลาโดยรวมในการสร้าง ใน Android Studio 3.2 ระบบจะเปิดการกรอง Sugar ออกด้วย D8 ไว้โดยค่าเริ่มต้น
ตัวลดขนาดโค้ดใหม่
R8 เป็นเครื่องมือใหม่สำหรับการย่อโค้ดและปรับให้ยากต่อการอ่าน (Obfuscation) ที่มาแทนที่ ProGuard คุณ
สามารถเริ่มใช้ R8 เวอร์ชันตัวอย่างโดยใส่ข้อมูลต่อไปนี้ลงใน
ไฟล์ gradle.properties
ของโปรเจ็กต์:
android.enableR8 = true
เปลี่ยน ABI เริ่มต้นสำหรับ APK หลายรายการ
เมื่อสร้าง APK หลายรายการ
แต่ละรายการกำหนดเป้าหมาย ABI ที่แตกต่างกัน ปลั๊กอินจะไม่สร้าง APK สำหรับ
ABI ต่อไปนี้โดยค่าเริ่มต้น: mips
, mips64
และ armeabi
หากต้องการสร้าง APK ที่กำหนดเป้าหมายเป็น ABI เหล่านี้ คุณต้องใช้
NDK r16b หรือต่ำกว่า และระบุ ABI
ในไฟล์ build.gradle
ของคุณตามที่แสดงด้านล่าง
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
หมายเหตุ: การเปลี่ยนแปลงลักษณะการทำงานนี้รวมอยู่ใน Android Studio 3.1 RC1 และ สูงขึ้น
ปรับปรุงฟีเจอร์เครื่องมือแก้ไขสำหรับไฟล์บิลด์ของ CMake
หากคุณใช้ CMake เพื่อ เพิ่มโค้ด C และ C++ ลงในโปรเจ็กต์ของคุณ ตอนนี้ Android Studio มีฟีเจอร์สำหรับตัดต่อ ที่ได้รับการปรับปรุงเพื่อช่วยให้คุณตัดต่อ เขียนสคริปต์บิลด์ดังต่อไปนี้
- การไฮไลต์ไวยากรณ์และการเติมโค้ด: ตอนนี้ IDE จะไฮไลต์และแนะนำการเติมโค้ดสำหรับคำสั่ง CMake ทั่วไป นอกจากนี้ คุณยังไปที่ไฟล์ได้ด้วยการคลิกไฟล์ขณะที่กด แป้น Control (Command ใน Mac)
- การจัดรูปแบบโค้ดใหม่: ตอนนี้คุณใช้ตัวเลือกการจัดรูปแบบโค้ดใหม่ของ IntelliJ เพื่อใช้รูปแบบโค้ดกับสคริปต์การสร้าง CMake ได้แล้ว
- การจัดระเบียบโค้ดอย่างปลอดภัย: ตอนนี้เครื่องมือการจัดระเบียบโค้ดในตัวของ IDE จะตรวจสอบด้วยว่าคุณกำลังเปลี่ยนชื่อหรือลบไฟล์ที่อ้างอิงในสคริปต์การสร้าง CMake หรือไม่
ไปยังส่วนต่างๆ ของไฟล์ส่วนหัวภายนอก
เมื่อใช้หน้าต่างโปรเจ็กต์ใน Android Studio เวอร์ชันก่อนหน้า คุณจะ สามารถไปยังส่วนต่างๆ และตรวจสอบเฉพาะไฟล์ส่วนหัวที่เป็นของไลบรารีที่คุณ สร้างจากโปรเจ็กต์ที่อยู่ในเครื่อง โดยในรุ่นนี้ คุณจะดูและตรวจสอบ ไฟล์ส่วนหัวที่รวมทรัพยากร Dependency ของไลบรารี C/C++ ภายนอกที่คุณนำเข้า ลงในโปรเจ็กต์แอปของคุณ
หากคุณมี รวมโค้ด C/C++ และไลบรารีไว้ในโปรเจ็กต์ เปิดหน้าต่างโปรเจ็กต์ทางด้านซ้ายของ IDE โดยเลือก มุมมอง > หน้าต่างเครื่องมือ > โครงการ จากเมนูหลักแล้วเลือก Android จาก เมนูแบบเลื่อนลง ในไดเรกทอรี cpp ส่วนหัวทั้งหมดที่อยู่ภายใน ขอบเขตของโปรเจ็กต์แอปจะได้รับการจัดระเบียบภายใต้โหนด include สําหรับแต่ละโหนด ทรัพยากร Dependency ของไลบรารี C/C++ ในเครื่อง ดังที่แสดงด้านล่าง

เปิดใช้งาน Multidex เนทีฟโดยค่าเริ่มต้น
Android Studio เวอร์ชันเก่าเปิดใช้ MultiDex เดิมเมื่อนำแอปเวอร์ชันแก้ไขข้อบกพร่องไปติดตั้งในอุปกรณ์ที่ใช้ Android API ระดับ 21 ขึ้นไป ตอนนี้
ไม่ว่าคุณจะกำลังทำให้ใช้งานได้ในอุปกรณ์ หรือกำลังสร้าง APK สำหรับการเปิดตัว Android
ปลั๊กอินสำหรับ Gradle เปิดใช้งาน Multidex แบบเนทีฟสำหรับโมดูลทั้งหมดที่ตั้งค่า
minSdkVersion=21
ขึ้นไป
AAPT2 ย้ายไปที่เก็บ Maven ของ Google แล้ว
เริ่มต้นด้วย Android Studio 3.2 ซึ่งเป็นแหล่งที่มาของ AAPT2 (เครื่องมือการจัดแพ็กเกจเนื้อหา Android 2) คือที่เก็บ Maven ของ Google
หากต้องการใช้ AAPT2 โปรดตรวจสอบว่าคุณมีทรัพยากร Dependency google()
ใน
build.gradle
ตามที่แสดงไว้ที่นี่
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
AAPT2 เวอร์ชันใหม่แก้ไขปัญหาต่างๆ มากมาย รวมถึงปรับปรุงการจัดการอักขระที่ไม่ใช่ ASCII ใน Windows
การนำการกำหนดค่าออกตามคำขอ
ระบบได้นำค่ากำหนดกำหนดค่าตามคำขอออกจาก Android Studio แล้ว
Android Studio ไม่ผ่าน --configure-on-demand
อีกต่อไป
กับ Gradle
ผู้ช่วยการเชื่อมต่อ ADB
ผู้ช่วยการเชื่อมต่อ ADB ใหม่มีวิธีการแบบทีละขั้นตอนเพื่อช่วยคุณตั้งค่าและใช้อุปกรณ์ผ่านการเชื่อมต่อ Android Debug Bridge (ADB)
เมื่อต้องการเริ่มใช้ผู้ช่วย ให้เลือกเครื่องมือ > ผู้ช่วยการเชื่อมต่อ
ผู้ช่วยการเชื่อมต่อ ADB มีวิธีการ การควบคุมตามบริบท และรายการอุปกรณ์ที่เชื่อมต่อในชุดหน้าเว็บในแผง Assistant
การปรับปรุงโปรแกรมจำลอง
ตอนนี้คุณบันทึกและโหลดสแนปชอตของ AVD (อุปกรณ์เสมือน Android) ได้ที่ เมื่อใดก็ได้ในโปรแกรมจำลอง Android จึงทำให้สามารถส่งคืน จำลองอุปกรณ์เป็นสถานะที่รู้จักเพื่อทำการทดสอบ เมื่อแก้ไข AVD โดยใช้ AVD Manager คุณจะระบุสแนปชอต AVD ที่จะโหลดเมื่อ AVD เริ่มทํางานได้
ตอนนี้การควบคุมสำหรับการบันทึก โหลด และจัดการภาพรวม AVD จะอยู่ในแท็บภาพรวมในหน้าต่างการควบคุมเพิ่มเติมของโปรแกรมจำลอง
ดูรายละเอียดได้ที่สแนปชอต
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งใหม่ๆ และการเปลี่ยนแปลงในโปรแกรมจำลอง ให้ดูที่ บันทึกประจำรุ่นของโปรแกรมจำลอง
3.1 (มีนาคม 2018)
Android Studio 3.1.0 เป็นรุ่นหลักที่มีฟีเจอร์และการปรับปรุงใหม่ๆ มากมาย
3.1.4 (สิงหาคม 2018)
การอัปเดต Android Studio 3.1 นี้จะมีการเปลี่ยนแปลงและการแก้ไขดังต่อไปนี้
- ตอนนี้ Kotlin ที่รวมไว้มีเวอร์ชัน 1.2.50
-
ระบบจะสร้างโปรเจ็กต์ใหม่ด้วย
kotlin-stdlib-jdk* artifacts
แทนที่จะใช้อาร์ติแฟกต์kotlin-stdlib-jre*
ซึ่งเลิกใช้งานแล้ว - การแยกวิเคราะห์ R8 ของกฎ ProGuard ได้รับการปรับปรุงแล้ว
- ข้อบกพร่องต่อไปนี้ได้รับการแก้ไขแล้ว
-
การพยายามเรียกใช้คลาส Kotlin Main ล้มเหลวโดยมีข้อผิดพลาด
"Error: Could not find or load main class..."
- R8 วนลูปที่ไม่สิ้นสุดขณะทำการเพิ่มประสิทธิภาพบางอย่าง
- การใช้คำสั่งเรียกใช้การทดสอบที่ล้มเหลวอีกครั้งในหน้าต่างเรียกใช้ บางครั้งแสดงข้อความ "ไม่พบการทดสอบ" อย่างไม่ถูกต้อง
-
D8 ไม่ได้จัดการอินสแตนซ์
invoke-virtual
อย่างถูกต้อง ทำให้เกิดข้อขัดข้องกับVerifyError
:invoke-super/virtual can't be used on private method
-
คอมไพเลอร์การเชื่อมโยงข้อมูลใช้
com.android.tools:annotations
เวอร์ชันเก่า ตอนนี้คอมไพเลอร์จะใช้ เครื่องมือเสริมจากโปรเจ็กต์พื้นฐาน หากมี - Android Studio ขัดข้องระหว่างการเปลี่ยนเฟรมเมื่อใช้เครื่องมือวิเคราะห์
- โปรแกรมแก้ไขข้อบกพร่องเกิดข้อขัดข้องเมื่อแก้ไขข้อบกพร่องของเลย์เอาต์ด้วยกล่องข้อความ
- D8 ไม่สามารถอ่านไฟล์ ZIP บางไฟล์ที่มีสัญลักษณ์พิเศษ
3.1.3 (มิถุนายน 2018)
การอัปเดต Android Studio 3.1 นี้ประกอบด้วยการแก้ไขข้อบกพร่องต่อไปนี้
- การรั่วไหลของหน่วยความจำทำให้ Android Studio ทำงานช้าและไม่ตอบสนอง หลังจากที่คุณใช้ตัวแก้ไขเลย์เอาต์แล้ว การอัปเดตนี้มีการแก้ไขสำหรับปัญหาเหล่านี้ส่วนใหญ่ เราตั้งใจที่จะเผยแพร่การอัปเดตอีกรายการในเร็วๆ นี้เพื่อจัดการกับการรั่วไหลของหน่วยความจำเพิ่มเติม
- แอปพลิเคชันบางรายการที่สร้างด้วย D8 ขัดข้องในแท็บเล็ต Verizon Ellipsis บางรุ่น
-
การติดตั้งแอปพลิเคชันที่สร้างขึ้นด้วย D8 ไม่สำเร็จเนื่องจากข้อผิดพลาด
INSTALL_FAILED_DEXOPT
ในอุปกรณ์ที่ใช้ Android 5.0 หรือ 5.1 (API ระดับ 21 หรือ 22) - แอปพลิเคชันบางรายการที่ใช้ไลบรารี OkHttp และสร้างขึ้นด้วย D8 ขัดข้องในอุปกรณ์ที่ใช้ Android 4.4 (API ระดับ 19)
-
บางครั้ง Android Studio ไม่สามารถเริ่มทำงาน โดย
ProcessCanceledException
ระหว่างการเริ่มต้นชั้นเรียนสำหรับcom.intellij.psi.jsp.JspElementType
3.1.2 (เมษายน 2018)
การอัปเดต Android Studio 3.1 นี้มีการแก้ไขข้อบกพร่องต่อไปนี้
- ในบางกรณี Android Studio จะแขวนไว้โดยไม่มีกำหนดในระหว่างการออก
-
บิลด์ที่กำหนดค่าด้วยชุดแหล่งที่มา ล้มเหลวโดยมีข้อความต่อไปนี้เมื่อเปิดใช้งาน Instant Run:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- เมื่อเปิดใช้ Instant Run บิลด์ของโปรเจ็กต์ Kotlin ใหม่จะล้มเหลวเมื่อ เรียกใช้โดยคำสั่งเรียกใช้
-
ในระหว่างการแก้ไขไฟล์
build.gradle
มีบางครั้งที่ ความล่าช้าที่เห็นได้ชัดระหว่างการพิมพ์อักขระและตัวอักษรที่ปรากฏ บนหน้าจอ -
การสร้างไม่สำเร็จระหว่างการทำ Dex ในบางโปรเจ็กต์ที่มีโมดูลหรือทรัพยากรภายนอกจํานวนมาก โดยมีข้อความแสดงข้อผิดพลาดดังต่อไปนี้
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- การคำนวณรายการ DEX หลัก D8 ไม่ได้นำ คำขอแบบสะท้อนความรู้สึก
การอัปเดตนี้ยังมีการเปลี่ยนแปลงที่ทำให้การเรียกใช้การตรวจสอบ Lint จาก Gradle เร็วขึ้นมากในบางสถานการณ์
3.1.1 (เมษายน 2018)
การอัปเดต Android Studio 3.1 นี้ประกอบด้วยการแก้ไขข้อบกพร่องต่อไปนี้
-
ในบางกรณีเมื่อเปิดโปรเจ็กต์ที่สร้างใน Android Studio 3.0 เป็นครั้งแรกใน Android Studio 3.1 งาน "สร้างโดยรับรู้ถึง Gradle" ถูกนำออกจากพื้นที่ก่อนเปิดในเรียกใช้/แก้ไขข้อบกพร่อง การกำหนดค่า ผลที่ได้คือโปรเจ็กต์ไม่สร้างเมื่อคลิกปุ่มเรียกใช้หรือแก้ไขข้อบกพร่อง ซึ่งส่งผลให้เกิดความล้มเหลว เช่น การติดตั้งใช้งาน APK ที่ไม่ถูกต้องและการขัดข้องเมื่อใช้การเรียกใช้ทันที
Android Studio 3.1.1 จะแก้ปัญหานี้ด้วยการเพิ่มงาน Make ที่รองรับ Gradle ลงในการกำหนดค่าการเรียกใช้สำหรับโปรเจ็กต์ที่ไม่มีรายการนี้ การแก้ไขนี้เกิดขึ้นหลังจากการซิงค์ Gradle ครั้งแรกเมื่อโปรเจ็กต์ โหลดแล้ว
- โปรแกรมแก้ไขข้อบกพร่องเกิดข้อขัดข้องเมื่อแก้ไขข้อบกพร่องของเลย์เอาต์ด้วยกล่องข้อความ หากเป็นขั้นสูง เปิดใช้งานการทำโปรไฟล์แล้ว
- Android Studio ค้างหลังจากคุณคลิกบิลด์ตัวแปร
- ระบบแยกไฟล์ AAR (Android Archive) 2 ครั้ง โดยแยก 1 ครั้งระหว่างกระบวนการซิงค์ Gradle และอีก 1 ครั้งระหว่างกระบวนการบิลด์ Gradle
- องค์ประกอบหายไปจากเวกเตอร์ที่ถอนออกได้บางรายการที่นำเข้าจากไฟล์ SVG
-
คำเตือนเกี่ยวกับการเลิกใช้งาน
compile
มีการอัปเดตการกำหนดค่าทรัพยากร Dependency ให้มีคำแนะนำที่ดีขึ้นเกี่ยวกับ การกำหนดค่าimplementation
และapi
โปรดดูรายละเอียดเกี่ยวกับการย้ายข้อมูลออกจากการใช้การกำหนดค่าcompile
ที่หัวข้อเอกสารประกอบสำหรับการกำหนดค่าใหม่ของ Dependency
การเขียนโค้ด/IDE
IntelliJ 2017.3.3
IDE หลักของ Android Studio ได้รับการอัปเดตด้วยการปรับปรุงจาก IntelliJ IDEA ผ่านรุ่น 2017.3.3 การปรับปรุงต่างๆ ได้แก่ การวิเคราะห์โฟลว์การควบคุมที่ดีขึ้นสำหรับคอลเล็กชันและสตริง การอนุมานค่าที่เป็นไปได้ที่ดีขึ้น การแก้ไขด่วนแบบใหม่ และอื่นๆ อีกมากมาย
ดูรายละเอียดได้จากบันทึกประจำรุ่นของ JetBrains สำหรับเวอร์ชัน IntelliJ IDEA 2017.2 และ 2017.3 ในฐานะ รวมถึงบันทึกประจำรุ่นของ JetBrains การอัปเดตแก้ไขข้อบกพร่อง
การปรับปรุงการแก้ไข SQL ด้วยห้องแชท
เมื่อคุณใช้ ไลบรารีฐานข้อมูลของห้อง คุณสามารถใช้ประโยชน์จากการปรับปรุงการแก้ไข SQL ได้หลายอย่าง:
- การเติมโค้ดภายใน
Query
เข้าใจตาราง SQL (เอนทิตี) คอลัมน์ พารามิเตอร์การค้นหา ชื่อแทน การรวม การค้นหาย่อย และวลี "มี" - การไฮไลต์ไวยากรณ์ SQL ใช้งานได้แล้ว
- คุณสามารถคลิกขวาที่ชื่อตารางใน SQL และเปลี่ยนชื่อได้ ซึ่ง เขียนโค้ด Java หรือ Kotlin ที่เกี่ยวข้องใหม่ (เช่น ประเภทผลลัพธ์ของคำค้นหา) เปลี่ยนชื่อผลงานในอีกทิศทางหนึ่ง ดังนั้นการเปลี่ยนชื่อคลาสหรือฟิลด์ Java จะเป็นการเขียน SQL ที่สอดคล้องกัน โค้ด
- การใช้งาน SQL จะแสดงเมื่อใช้ค้นหาการใช้งาน (คลิกขวาและ ให้เลือกค้นหาการใช้งานจากเมนูตามบริบท)
- วิธีไปยังการประกาศของเอนทิตี SQL ในโค้ด Java หรือ Kotlin คุณสามารถกด Control (Command ใน Mac) ค้างไว้ขณะคลิกเอนทิตีนั้นๆ ได้
สำหรับข้อมูลเกี่ยวกับการใช้ SQL กับห้องแชท โปรดดู บันทึกข้อมูลในเครื่อง ฐานข้อมูลโดยใช้ห้องแชท
การอัปเดตข้อมูล การเชื่อมโยง
การอัปเดตนี้มีการปรับปรุงหลายอย่างสำหรับ การเชื่อมโยงข้อมูล
-
ตอนนี้คุณสามารถใช้
LiveData
เป็นฟิลด์ที่สังเกตได้ในนิพจน์การเชื่อมโยงข้อมูลViewDataBinding
ตอนนี้มีเมธอดsetLifecycle()
ใหม่ที่คุณใช้ สังเกตการณ์LiveData
ออบเจ็กต์ -
ObservableField
สามารถยอมรับObservable
อ็อบเจ็กต์ในตัวสร้างของโมเดล -
คุณดูตัวอย่างคอมไพเลอร์ส่วนเพิ่มใหม่สำหรับการเชื่อมโยงข้อมูลได้ ใหม่ สำหรับรายละเอียดเกี่ยวกับคอมไพเลอร์ใหม่นี้และวิธีการเปิดใช้ ดูสิ คอมไพเลอร์การเชื่อมโยงข้อมูล V2
ประโยชน์ของคอมไพเลอร์ใหม่มีดังนี้
-
ชั้นเรียน
ViewBinding
สร้างโดย Android ปลั๊กอินสำหรับ Gradle ก่อนคอมไพเลอร์ Java - ไลบรารีจะเก็บคลาสการเชื่อมโยงที่สร้างขึ้นเมื่อแอป แทนที่จะสร้างขึ้นใหม่ทุกครั้ง สิ่งนี้สามารถ ช่วยเพิ่มประสิทธิภาพให้กับโปรเจ็กต์ที่มีหลายโมดูลได้อย่างมาก
-
ชั้นเรียน
คอมไพเลอร์และ Gradle
D8 คือคอมไพเลอร์ DEX เริ่มต้น
ขณะนี้ระบบจะใช้คอมไพเลอร์ D8 โดยค่าเริ่มต้นสำหรับการสร้างไบต์โค้ด DEX
คอมไพเลอร์ DEX ใหม่นี้มีประโยชน์มากมาย รวมถึง ดังต่อไปนี้:
- Dexing ที่เร็วขึ้น
- การใช้หน่วยความจําน้อยลง
- การสร้างโค้ดที่ดีขึ้น (การจัดสรรรีจิสเตอร์ที่ดีขึ้น ตารางสตริงที่ฉลาดขึ้น)
- ประสบการณ์การแก้ไขข้อบกพร่องที่ดีขึ้นเมื่ออ่านโค้ดต่างๆ
คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงใดๆ กับโค้ดหรือการพัฒนาของคุณ เพื่อรับสิทธิประโยชน์เหล่านี้ เว้นแต่ว่าคุณจะต้องดำเนินการด้วยตนเอง ปิดใช้งานคอมไพเลอร์ D8
หากคุณตั้งค่า android.enableD8
เป็น false
ใน gradle.properties
ให้ลบการแจ้งว่าไม่เหมาะสมนั้นหรือตั้งค่าเป็น true
android.enableD8=true
โปรดดูรายละเอียดที่หัวข้อคอมไพเลอร์ DEX ใหม่
การกรองน้ำตาลออกทีละน้อย
สําหรับโปรเจ็กต์ที่ใช้ฟีเจอร์ภาษา Java 8 ระบบจะเปิดใช้การกรอง Sugar ทีละน้อยโดยค่าเริ่มต้น ซึ่งจะช่วยปรับปรุงเวลาในการบิลด์
การทำ Conversion ด้วยน้ำตาล น้ำตาลสังเคราะห์ ให้อยู่ในรูปแบบที่คอมไพเลอร์สามารถประมวลผลได้อย่างมีประสิทธิภาพมากขึ้น
คุณสามารถปิดใช้การละลายน้ำตาลส่วนเพิ่มได้โดยการระบุข้อมูลต่อไปนี้ใน
ไฟล์ gradle.properties
ของโปรเจ็กต์:
android.enableIncrementalDesugaring=false
หน้าต่างเอาต์พุตแบบง่าย
เราได้แทนที่คอนโซล Gradle ด้วยหน้าต่างบิลด์ซึ่งมีแท็บซิงค์และบิลด์
สำหรับรายละเอียดเกี่ยวกับวิธีใช้หน้าต่างบิลด์ใหม่ที่ใช้งานง่าย ดูตรวจสอบบิลด์ ขั้นตอน
การอัปเดตและการจัดทำดัชนีเป็นกลุ่ม การเกิดขึ้นพร้อมกัน
ตอนนี้กระบวนการซิงค์ Gradle และการจัดทำดัชนี IDE มีประสิทธิภาพมากขึ้นมาก ซึ่งช่วยลดเวลาโดยเสียเวลาไปกับการดำเนินการจัดทำดัชนีที่ซ้ำซ้อนจำนวนมาก
C++ และ LLDB
เราได้ทำการปรับปรุงคุณภาพและประสิทธิภาพหลายอย่างในระยะการเขียนโค้ด การซิงค์ การสร้าง และการแก้ไขข้อบกพร่องของการพัฒนา C++ การปรับปรุงมีดังนี้
-
หากทํางานกับโปรเจ็กต์ C++ ขนาดใหญ่ คุณควรสังเกตเห็นการปรับปรุงที่ดีขึ้นอย่างมากในการลดเวลาที่ใช้ในการสร้างสัญลักษณ์ เวลาซิงค์ก็นานมาก สำหรับโปรเจ็กต์ขนาดใหญ่
-
ประสิทธิภาพเมื่อสร้างและซิงค์กับ CMake ได้รับการปรับปรุงผ่านการนําผลลัพธ์ที่แคชไว้มาใช้ซ้ำอย่างมีประสิทธิภาพมากขึ้น
-
การเพิ่มตัวจัดรูปแบบ ("เครื่องพิมพ์สวยๆ") สำหรับโครงสร้างข้อมูล C++ เพิ่มเติม ทำให้อ่านเอาต์พุต LLDB ได้ง่ายขึ้น
-
ขณะนี้ LLDB ใช้ได้เฉพาะกับ Android 4.1 (API ระดับ 16) เท่านั้น และสูงกว่า
หมายเหตุ: การแก้ไขข้อบกพร่องแบบเนทีฟด้วย Android Studio 3.0 ขึ้นไปจะไม่ทำงานใน Windows 32 บิต หากคุณใช้ Windows 32 บิตและต้องแก้ไขข้อบกพร่องโค้ดเนทีฟ ให้ใช้ Android Studio 2.3
Kotlin
Kotlin อัปเกรดเป็นเวอร์ชัน 1.2.30
Android Studio 3.1 มี คอตลิน เวอร์ชัน 1.2.30
ตอนนี้ระบบวิเคราะห์โค้ด Kotlin ด้วยการตรวจสอบ Lint ในบรรทัดคำสั่งแล้ว
ตอนนี้การเรียกใช้ Lint จากบรรทัดคำสั่งจะวิเคราะห์คลาส Kotlin
สำหรับแต่ละโปรเจ็กต์ที่คุณต้องการเรียกใช้ Lint
ผู้เชี่ยวชาญ Google
ที่เก็บ ต้องรวมอยู่ใน build.gradle
ระดับบนสุด
พื้นที่เก็บข้อมูล Maven จะรวมอยู่ในโปรเจ็กต์ที่สร้างใน Android Studio 3.0 ขึ้นไปอยู่แล้ว
เครื่องมือด้านประสิทธิภาพ
ตัวอย่างกระบวนการ C++ เนทีฟด้วยเครื่องมือวิเคราะห์โปรไฟล์ CPU
เครื่องมือสร้างโปรไฟล์ CPU ในขณะนี้ มีการกำหนดค่าเริ่มต้นเพื่อบันทึกการติดตามตัวอย่างของแอป ชุดข้อความแบบเนทีฟ คุณสามารถใช้การกำหนดค่านี้โดยทำให้แอปใช้งานได้ใน อุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป จากนั้นเลือก สุ่มตัวอย่าง (เนทีฟ) จากบันทึกของเครื่องมือสร้างโปรไฟล์ CPU ของเมนูแบบเลื่อนลง "การกำหนดค่า" หลังจากนั้น ให้บันทึกและตรวจสอบร่องรอยตามปกติ
คุณเปลี่ยนการตั้งค่าเริ่มต้น เช่น ช่วงการสุ่มตัวอย่างได้โดย การสร้าง การกำหนดค่าการบันทึก
หากต้องการสลับกลับไปติดตามชุดข้อความ Java ให้เลือก สุ่มตัวอย่าง (Java) หรือ Instrumented (Java) การกำหนดค่า
กรองการติดตาม CPU, หน่วยความจำ ผลการจัดสรรและฮีปดัมป์
เครื่องมือวิเคราะห์โปรไฟล์ CPU และเครื่องมือวิเคราะห์โปรไฟล์หน่วยความจำมีฟีเจอร์การค้นหาที่ช่วยให้คุณกรองผลลัพธ์จากการบันทึกการติดตามเมธอด การจัดสรรหน่วยความจำ หรือการถ่ายโอนข้อมูลกองขยะได้

หากต้องการค้นหา ให้คลิกตัวกรอง ที่มุมขวาบนของแผง จากนั้นพิมพ์ข้อความค้นหาแล้วกด Enter
เคล็ดลับ: เปิดช่องค้นหาโดยกด Control + F ได้เช่นกัน (Command + F ใน Mac)
ในแท็บแผนภูมิ Flame Chart ของเครื่องมือสร้างโปรไฟล์ CPU สแต็กการเรียกใช้ที่มี เมธอดที่เกี่ยวข้องกับคำค้นหาของคุณจะถูกไฮไลต์และย้ายไปทางซ้าย ของแผนภูมิ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกรองตามวิธีการ คลาส หรือชื่อแพ็กเกจ โปรดดูที่ บันทึกและตรวจสอบการติดตามเมธอด
แท็บคําขอในเครื่องมือวิเคราะห์เครือข่าย
ตอนนี้เครื่องมือวิเคราะห์เครือข่ายมีแท็บคําขอที่ให้รายละเอียดเกี่ยวกับคําขอเครือข่ายในช่วงไทม์ไลน์ที่เลือก ในเวอร์ชันก่อนหน้า เครือข่าย เครื่องมือสร้างโปรไฟล์ให้ข้อมูลเกี่ยวกับการตอบสนองของเครือข่ายเท่านั้น
มุมมองชุดข้อความในเครื่องมือสร้างโปรไฟล์เครือข่าย
หลังจากเลือกส่วนหนึ่งของไทม์ไลน์ใน เครื่องมือสร้างโปรไฟล์เครือข่าย คุณสามารถเลือกหนึ่งใน แท็บต่อไปนี้เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับกิจกรรมในเครือข่าย กรอบเวลา:
- มุมมองการเชื่อมต่อ: ให้ข้อมูลเดียวกับเวอร์ชันก่อนหน้าของ Android Studio - จะแสดงรายการไฟล์ที่ส่งหรือรับระหว่าง ส่วนที่เลือกไว้ในไทม์ไลน์ ในเทรด CPU ของแอปทั้งหมด สำหรับ แต่ละคำขอ คุณสามารถตรวจสอบขนาด ประเภท สถานะ และระยะเวลาการส่ง
- มุมมองเทรด: แสดงกิจกรรมในเครือข่ายของชุดข้อความ CPU ของแต่ละแอป มุมมองนี้ช่วยให้คุณตรวจสอบได้ว่าเธรดใดของแอปของคุณที่รับผิดชอบคำขอเครือข่ายแต่ละรายการ

เครื่องมือตรวจสอบเลย์เอาต์
เครื่องมือตรวจสอบการออกแบบใหม่ รวมถึงฟังก์ชันบางอย่างที่ก่อนหน้านี้ให้บริการโดย โปรแกรมดูลำดับชั้นและเครื่องมือ Pixel Perfect
- ปุ่มซูมและแป้นพิมพ์ลัดสำหรับการไปยังส่วนต่างๆ และตรวจสอบเลย์เอาต์
- การวางซ้อนตารางกริดอ้างอิง
- ความสามารถในการโหลดรูปภาพอ้างอิงและใช้เป็นภาพซ้อนทับ (มีประโยชน์สำหรับ เปรียบเทียบการจัดวางของคุณกับการจำลอง UI)
- แสดงผลพรีวิวแผนผังย่อยเพื่อแยกมุมมองในเลย์เอาต์ที่ซับซ้อน

เครื่องมือแก้ไขเลย์เอาต์
ชุดสีใน เครื่องมือแก้ไขเลย์เอาต์ ได้รับการปรับปรุงหลายอย่าง ได้แก่
- การจัดระเบียบหมวดหมู่ใหม่สำหรับมุมมองและเลย์เอาต์
- หมวดหมู่ทั่วไปใหม่สำหรับมุมมองและเลย์เอาต์ ซึ่งคุณเพิ่มลงในหมวดหมู่ได้โดยใช้คำสั่งรายการโปรด
- เพิ่มขึ้น ค้นหาข้อมูลการดู และเลย์เอาต์
- คำสั่งใหม่สำหรับการเปิดเอกสารประกอบสำหรับองค์ประกอบมุมมองหรือเลย์เอาต์ที่เฉพาะเจาะจง
คุณสามารถใช้คำสั่งแปลงมุมมองใหม่ในต้นไม้คอมโพเนนต์หรือเครื่องมือแก้ไขการออกแบบเพื่อแปลงมุมมองหรือเลย์เอาต์เป็นมุมมองหรือเลย์เอาต์ประเภทอื่น
ตอนนี้คุณสร้างข้อจำกัดสำหรับรายการที่อยู่ใกล้กับมุมมองที่เลือกได้อย่างง่ายดายโดยใช้ปุ่มสร้างการเชื่อมต่อ ใหม่ในเครื่องมือตรวจสอบมุมมองที่ด้านบนของหน้าต่างแอตทริบิวต์
เรียกใช้และรันแบบทันใจ
ลักษณะการทำงานของใช้การเลือกเดียวกันในอนาคต เปิดตัวในตัวเลือกเลือกเป้าหมายการทำให้ใช้งานได้ กล่องโต้ตอบให้สอดคล้องกันมากขึ้น หากช่อง ใช้การ์ดที่เหมือนกัน ระบบจะเปิดใช้ตัวเลือกแล้ว จากนั้นเลือกเลือกการทำให้ใช้งานได้ กล่องโต้ตอบเป้าหมายจะเปิดขึ้นเฉพาะครั้งแรกที่คุณใช้ คำสั่งเรียกใช้จนกว่าอุปกรณ์ที่เลือกจะเลิกใช้งาน เชื่อมต่อ แล้ว
เมื่อกำหนดเป้าหมายเป็นอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป Instant Run ใช้งานได้ เปลี่ยนแปลงทรัพยากรโดยไม่ทำให้แอปพลิเคชันรีสตาร์ท นี่คือ เป็นไปได้เพราะทรัพยากรอยู่ใน APK แยก
โปรแกรมจำลอง
สำหรับรายละเอียดว่ามีอะไรใหม่และการเปลี่ยนแปลงในโปรแกรมจำลองตั้งแต่ Android Studio 3.0 โปรดดูบันทึกประจำรุ่นของ Android Emulator จาก เวอร์ชัน 27.0.2 ถึงเวอร์ชัน 27.1.12
การปรับปรุงหลักๆ มีดังนี้
- สแนปชอตการเปิดเครื่องอย่างรวดเร็วสำหรับการบันทึกสถานะโปรแกรมจำลองและเริ่มต้นได้เร็วขึ้น ด้วยความสามารถในการใช้คำสั่งบันทึกทันทีเพื่อบันทึก สถานะเริ่มต้นที่กำหนดเอง
- หน้าจอโปรแกรมจำลองแบบไม่มีหน้าต่าง
- อิมเมจระบบสำหรับ Android 8.0 (API ระดับ 26), Android 8.1 (ระดับ API 27) และตัวอย่างสำหรับนักพัฒนาแอป Android P
อินเทอร์เฟซผู้ใช้และประสบการณ์ของผู้ใช้ การปรับปรุง
เคล็ดลับเครื่องมือ แป้นพิมพ์ลัดเพิ่มเติม และข้อความที่เป็นประโยชน์
เราได้เพิ่มเคล็ดลับเครื่องมือและข้อความที่มีประโยชน์ซ้อนทับในหลายๆ ที่ทั่วทั้ง Android Studio
หากต้องการดูแป้นพิมพ์ลัดของคำสั่งหลายรายการ ให้กดเมาส์ค้างไว้ วางเมาส์ไว้เหนือปุ่มจนกว่าเคล็ดลับเครื่องมือจะปรากฏขึ้น
เครื่องมือ > นำเมนู Android ออกแล้ว
ระบบได้นำเมนูเครื่องมือ > Android ออกแล้ว คำสั่ง ซึ่งเคยอยู่ใต้เมนูนี้ได้ย้ายไปแล้ว
- คำสั่งหลายรายการที่ย้ายไปอยู่ใต้เครื่องมือโดยตรง เมนู
- คำสั่งซิงค์โปรเจ็กต์ที่มีไฟล์ Gradle ย้ายไปที่ เมนูไฟล์
- เราได้นำคำสั่งการตรวจสอบอุปกรณ์ออกแล้ว เนื่องจาก ดังที่อธิบายไว้ด้านล่าง
การตรวจสอบอุปกรณ์พร้อมใช้งาน จากบรรทัดคำสั่ง
ใน Android Studio 3.1 เครื่องมือตรวจสอบอุปกรณ์จะมีบทบาทน้อยลงกว่าที่เคย ในหลายกรณี ฟังก์ชันการทำงานที่ใช้ได้ผ่านเครื่องมือตรวจสอบอุปกรณ์ตอนนี้มีให้ใช้งานผ่านเครื่องมือใหม่ที่ได้รับการปรับปรุงแล้ว
ดูวิธีการเรียกใช้เครื่องมือตรวจสอบอุปกรณ์จากบรรทัดคำสั่งและรายละเอียดของเครื่องมือที่ใช้ได้ผ่านเครื่องมือตรวจสอบอุปกรณ์ได้ที่เอกสารประกอบของเครื่องมือตรวจสอบอุปกรณ์
3.0 (ตุลาคม 2017)
Android Studio 3.0.0 เป็นรุ่นหลักที่มีฟีเจอร์ใหม่ๆ มากมาย ฟีเจอร์และการปรับปรุงต่างๆ
ผู้ใช้ macOS: หากคุณกำลังอัปเดต Android Studio เวอร์ชันเก่า คุณอาจพบข้อความแสดงข้อผิดพลาดในการอัปเดตที่ระบุว่า "ข้อขัดแย้งบางอย่าง ที่พบในพื้นที่ติดตั้ง" เพียงแค่ไม่ต้องสนใจข้อผิดพลาดนี้ และคลิก ยกเลิก เพื่อดำเนินการติดตั้งต่อ
3.0.1 (พฤศจิกายน 2017)
นี่เป็นการอัปเดตเล็กๆ น้อยๆ ของ Android Studio 3.0 ที่มีข้อบกพร่องทั่วไป การแก้ไขและปรับปรุงประสิทธิภาพ
ปลั๊กอิน Android สำหรับ Gradle 3.0.0
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชันใหม่มีการปรับปรุงและฟีเจอร์ใหม่ๆ มากมาย แต่ที่สำคัญที่สุดคือการปรับปรุงประสิทธิภาพการสร้างสำหรับโปรเจ็กต์ที่มีโมดูลจํานวนมาก เมื่อใช้ปลั๊กอินใหม่กับโปรเจ็กต์ขนาดใหญ่เหล่านี้ คุณควรได้รับประสบการณ์ต่อไปนี้
- เวลากำหนดค่าบิลด์ที่เร็วขึ้นเนื่องจากการแก้ไขทรัพยากร Dependency แบบใหม่ที่ล่าช้า
- การแก้ไขข้อกำหนดที่รับรู้ตัวแปรสำหรับโปรเจ็กต์และตัวแปรที่คุณสร้างเท่านั้น
- ใช้เวลาบิลด์เพิ่มขึ้นเร็วขึ้นเมื่อใช้การเปลี่ยนแปลงง่ายๆ กับโค้ด หรือ ที่ไม่ซับซ้อน
หมายเหตุ: การปรับปรุงเหล่านี้จำเป็นต้องมีการเปลี่ยนแปลงที่สำคัญซึ่งทำลาย ลักษณะการทำงานของปลั๊กอิน, DSL และ API การอัปเกรดเป็นเวอร์ชัน 3.0.0 อาจต้องมีการเปลี่ยนแปลงไฟล์บิลด์และปลั๊กอิน Gradle
เวอร์ชันนี้ยังมีฟีเจอร์ต่อไปนี้ด้วย
- รองรับ Android 8.0
- สนับสนุนการสร้าง APK แยกต่างหากตามทรัพยากรด้านภาษา
- รองรับไลบรารี Java 8 และฟีเจอร์ภาษาของ Java 8 (โดยไม่มีคอมไพเลอร์ Jack)
- การรองรับไลบรารีการสนับสนุนการทดสอบ Android 1.0 (Android Test Utility และ Android Test Orchestrator)
- ปรับปรุงความเร็วของบิวด์ ndk-build และ cmake
- ปรับปรุงความเร็วในการซิงค์ Gradle
- ระบบจะเปิดใช้ AAPT2 โดยค่าเริ่มต้นแล้ว
- ตอนนี้มีการจำกัดการใช้
ndkCompile
มากขึ้น คุณจึงควรย้ายข้อมูลไปยัง โดยใช้ CMake หรือ ndk-build เพื่อรวบรวมโค้ดเนทีฟที่คุณต้องการสร้างแพ็กเกจ ลงใน APK ของคุณ หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน ย้ายข้อมูลจาก ndkcompile
ดูข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เปลี่ยนแปลงไปได้ที่ปลั๊กอิน Android สำหรับ Gradle บันทึกประจำรุ่น
หากคุณพร้อมที่จะอัปเกรดเป็นปลั๊กอินใหม่ ให้ดูที่ ย้ายข้อมูลไปยัง Android Plugin for Gradle 3.0.0
การรองรับ Kotlin
ตามที่ประกาศไว้ใน Google I/O 2017 ตอนนี้ Android รองรับภาษาโปรแกรม Kotlin อย่างเป็นทางการแล้ว ดังนั้น Android Studio เวอร์ชันนี้จึงรองรับภาษา Kotlin สําหรับการพัฒนาแอป Android
คุณรวม Kotlin ไว้ในโปรเจ็กต์ได้โดยแปลงไฟล์ Java เป็น Kotlin (คลิกโค้ด > แปลงไฟล์ Java เป็นไฟล์ Kotlin) หรือสร้างโปรเจ็กต์ใหม่ที่เปิดใช้ Kotlin โดยใช้วิซาร์ดโปรเจ็กต์ใหม่
วิธีเริ่มต้น อ่านวิธีเพิ่ม Kotlin ลงในโปรเจ็กต์ของคุณ

การรองรับฟีเจอร์ภาษาของ Java 8
ตอนนี้คุณสามารถใช้ฟีเจอร์บางอย่างของ Java 8 และ ใช้ไลบรารีที่สร้างด้วย Java 8 ไม่จำเป็นต้องใช้ Jack อีกต่อไป และคุณ ควรปิดใช้งาน Jack ก่อน เพื่อใช้การรองรับ Java 8 ที่ปรับปรุงใหม่ซึ่งมีอยู่ใน Toolchain เริ่มต้น
หากต้องการอัปเดตโปรเจ็กต์ให้รองรับ Toolchain ของภาษา Java 8 ใหม่ ให้ทำดังนี้ อัปเดตความเข้ากันได้ของแหล่งที่มาและความเข้ากันได้ของเป้าหมายเป็น 1.8 ในกล่องโต้ตอบโครงสร้างโครงการ (คลิกไฟล์ > โครงสร้างของโครงการ) ดูข้อมูลเพิ่มเติมได้ที่วิธีใช้ฟีเจอร์ภาษาของ Java 8

เครื่องมือวิเคราะห์ประสิทธิภาพของ Android
Android Profiler ใหม่มาแทนที่เครื่องมือ Android Monitor พร้อมมอบ ชุดเครื่องมือใหม่ในการวัดการใช้งาน CPU, หน่วยความจำ และเครือข่ายของแอปใน แบบเรียลไทม์ คุณติดตามเมธอดแบบอิงตามตัวอย่างเพื่อจับเวลาโค้ดได้ การดำเนินการ บันทึกฮีปดัมป์ ดูการจัดสรรหน่วยความจำ และตรวจสอบรายละเอียด ของไฟล์ที่เครือข่ายส่ง
หากต้องการเปิด ให้คลิกดู > หน้าต่างเครื่องมือ > เครื่องมือสร้างโปรไฟล์ Android (หรือคลิกเครื่องมือสร้างโปรไฟล์ Android ในแถบเครื่องมือ)
ไทม์ไลน์ของเหตุการณ์ที่ด้านบนของหน้าต่างจะแสดงเหตุการณ์การแตะ แป้น และกิจกรรมเปลี่ยนแปลง เพื่อให้คุณมีบริบทมากขึ้นในการทำความเข้าใจ เกี่ยวกับประสิทธิภาพ ในไทม์ไลน์
หมายเหตุ: มุมมอง Logcat ยังถูกย้ายไปยัง หน้าต่างแยกต่างหาก (ก่อนหน้านี้อยู่ใน Android Monitor ซึ่งถูกนำออกแล้ว)

จากไทม์ไลน์ภาพรวมของเครื่องมือวิเคราะห์ประสิทธิภาพ Android ให้คลิกไทม์ไลน์ CPU, MEMORY หรือ NETWORK เพื่อเข้าถึงเครื่องมือวิเคราะห์ประสิทธิภาพที่เกี่ยวข้อง
เครื่องมือสร้างโปรไฟล์ CPU
เครื่องมือสร้างโปรไฟล์ CPU จะช่วยคุณวิเคราะห์การใช้งานเทรด CPU ของแอปโดย การทริกเกอร์ตัวอย่างหรือการติดตาม CPU แบบมีการวัด จากนั้น คุณจะ แก้ปัญหาประสิทธิภาพของ CPU โดยใช้มุมมองและตัวกรองข้อมูลต่างๆ
สําหรับข้อมูลเพิ่มเติม โปรดดูคู่มือเครื่องมือสร้างโปรไฟล์ CPU

เครื่องมือสร้างโปรไฟล์หน่วยความจำ
เครื่องมือวิเคราะห์หน่วยความจำช่วยคุณระบุการรั่วไหลของหน่วยความจำและการเปลี่ยนแปลงหน่วยความจำที่อาจทําให้แอปกระตุก ค้าง หรือแม้แต่ขัดข้อง โดยจะแสดงกราฟแบบเรียลไทม์ของ การใช้หน่วยความจำของแอป ช่วยให้คุณบันทึกฮีปดัมป์ บังคับให้เก็บขยะ และติดตามการจัดสรรหน่วยความจำ
โปรดดูข้อมูลเพิ่มเติมในคู่มือเครื่องมือสร้างโปรไฟล์หน่วยความจำ

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

การสร้างโปรไฟล์และการแก้ไขข้อบกพร่องของ APK
ขณะนี้ Android Studio ให้คุณสร้างโปรไฟล์และแก้ไขข้อบกพร่อง APK โดยไม่ต้องสร้างจากโปรเจ็กต์ Android Studio ตราบใดที่ APK สร้างขึ้นเพื่อเปิดใช้การแก้ไขข้อบกพร่อง และ คุณมีสิทธิ์เข้าถึงสัญลักษณ์การแก้ไขข้อบกพร่องและไฟล์ต้นฉบับ
ในการเริ่มต้นใช้งาน ให้คลิกโปรไฟล์หรือแก้ไขข้อบกพร่อง APK จาก หน้าจอต้อนรับของ Android Studio หรือหากคุณเปิดโปรเจ็กต์ไว้แล้ว ให้คลิก ไฟล์ > สร้างโปรไฟล์หรือแก้ไขข้อบกพร่อง APK จากแถบเมนู ซึ่งจะแสดง ไฟล์ APK ที่คลายการแพคแล้ว แต่ไม่แยกคอมไพล์โค้ด ดังนั้นหากต้องการเพิ่มเบรกพอยท์และดูสแต็กเทรซอย่างถูกต้อง คุณต้องแนบไฟล์ซอร์สของ Java และสัญลักษณ์การแก้ไขข้อบกพร่องของระบบ
สำหรับข้อมูลเพิ่มเติม โปรดดู โปรไฟล์และแก้ไขข้อบกพร่องของ APK ที่สร้างไว้ล่วงหน้า

เครื่องมือสำรวจไฟล์ในอุปกรณ์
Device File Explorer ใหม่จะให้คุณตรวจสอบ ระบบไฟล์ และโอนไฟล์ระหว่างอุปกรณ์ดังกล่าวกับคอมพิวเตอร์ ซึ่งจะแทนที่เครื่องมือระบบไฟล์ที่มีอยู่ใน DDMS
หากต้องการเปิด ให้คลิกดู > หน้าต่างเครื่องมือ > Device File Explorer
สำหรับข้อมูลเพิ่มเติม โปรดดู คู่มือ File Explorer ของอุปกรณ์

การรองรับ Instant Apps
การรองรับแอปด่วนของ Android แบบใหม่ช่วยให้คุณสร้างแอปด่วนในโปรเจ็กต์ได้โดยใช้โมดูล 2 ประเภทใหม่ ได้แก่ โมดูลแอปด่วนและโมดูลฟีเจอร์ (คุณจะต้องติดตั้ง SDK การพัฒนาแอปด่วน)

นอกจากนี้ Android Studio ยังมีการดำเนินการแยกส่วนใหม่เพื่อช่วยคุณเพิ่มการรองรับ Instant App ในโปรเจ็กต์ที่มีอยู่ เช่น หากต้องการปรับโครงสร้างโปรเจ็กต์เพื่อวางคลาสบางคลาสในโมดูลฟีเจอร์ Instant App ให้เลือกคลาสในหน้าต่างโปรเจ็กต์ แล้วคลิกปรับโครงสร้าง > แบ่งออกเป็นโมดูล ในกล่องโต้ตอบที่ปรากฏขึ้น ให้เลือกโมดูลที่จะจัดชั้นเรียน ควรไปและคลิกตกลง
และเมื่อพร้อมที่จะทดสอบ Instant App แล้ว คุณสามารถสร้างและเรียกใช้ โมดูล Instant App บนอุปกรณ์ที่เชื่อมต่อโดยการระบุ URL ของ Instant App ภายในการเปิดตัวการกำหนดค่าการเรียกใช้ options: เลือกเรียกใช้ > แก้ไขการกำหนดค่า เลือกโมดูล Instant App แล้วตั้งค่า URL ในส่วนตัวเลือกการเปิดใช้งาน
สำหรับข้อมูลเพิ่มเติม โปรดดู Android Instant Apps
โมดูล Android Things
เทมเพลต Android Things ใหม่ในวิซาร์ดโปรเจ็กต์ใหม่และโมดูลใหม่เพื่อช่วย คุณเริ่มพัฒนาสำหรับอุปกรณ์ IOT ที่ทำงานบน Android
ดูข้อมูลเพิ่มเติมได้ที่วิธีสร้างโปรเจ็กต์ Android Things
วิซาร์ดไอคอนแบบปรับอัตโนมัติ
ตอนนี้ Image Asset Studio รองรับรูปภาพที่วาดได้แบบเวกเตอร์และให้คุณสร้างไอคอน Launcher แบบปรับอัตโนมัติสำหรับ Android 8.0 ไปพร้อมๆ กับการสร้างไอคอนแบบดั้งเดิม ("ไอคอนเดิม") สำหรับอุปกรณ์รุ่นเก่า
เมื่อต้องการเริ่มต้น ให้คลิกขวาที่โฟลเดอร์ res ใน โปรเจ็กต์ แล้วคลิกใหม่ > ชิ้นงานรูปภาพ ในหน้าต่าง Asset Studio เลือก Launcher Icons (ปรับอัตโนมัติและแบบเดิม) เป็นประเภทไอคอน
หมายเหตุ: คุณต้องตั้ง compileSdkVersion
เป็น 26 ขึ้นไปเพื่อใช้ Launcher แบบปรับอัตโนมัติ
ไอคอน
สำหรับข้อมูลเพิ่มเติม โปรดอ่านเกี่ยวกับ ไอคอนแบบปรับอัตโนมัติ

การรองรับแหล่งข้อมูลแบบอักษร
Android Studio มีเครื่องมือเลือกทรัพยากรแบบอักษรเพื่อช่วยรวมแบบอักษรไว้ในแอปหรือกำหนดค่าโปรเจ็กต์ให้ดาวน์โหลดแบบอักษรในอุปกรณ์ (หากมี) เพื่อรองรับทรัพยากรแบบอักษรใหม่ใน Android 8.0 เลย์เอาต์ ก็จะแสดงตัวอย่างแบบอักษรในเลย์เอาต์ได้ด้วย
หากต้องการลองใช้แบบอักษรที่ดาวน์โหลดได้ โปรดตรวจสอบว่าอุปกรณ์หรือโปรแกรมจำลองทำงานอยู่ บริการ Google Play v11.2.63 ขึ้นไป สำหรับข้อมูลเพิ่มเติม โปรดอ่านเกี่ยวกับ แบบอักษรที่ดาวน์โหลดได้

ผู้ช่วยการจัดทําดัชนีแอปของ Firebase
Firebase Assistant ได้รับการอัปเดตให้มีบทแนะนำใหม่เพื่อทดสอบแอป การจัดทำดัชนี หากต้องการเปิด Assistant ให้เลือกเครื่องมือ > Firebase จากนั้นเลือก การจัดทำดัชนีแอป > ทดสอบการจัดทำดัชนีแอป
บทแนะนำนี้มีปุ่มใหม่สำหรับทดสอบการจัดทำดัชนีเนื้อหาสาธารณะและเนื้อหาส่วนตัว ดังนี้
- ในขั้นตอนที่ 2 ให้คลิกดูตัวอย่างผลการค้นหาเพื่อยืนยันว่า URL ของคุณ แสดงในผลการค้นหาของ Google
- ในขั้นตอนที่ 3 คลิกตรวจสอบข้อผิดพลาดเพื่อยืนยันว่าหน้าดัชนีสามารถจัดทำดัชนีได้ มีการเพิ่มออบเจ็กต์ในแอปของคุณในดัชนีเนื้อหาส่วนบุคคล
ผู้ช่วย Android App Link
App Link Assistant ได้รับการอัปเดตด้วยความสามารถใหม่ดังต่อไปนี้:
-
เพิ่มการทดสอบ URL สำหรับการแมป URL แต่ละรายการเพื่อให้มั่นใจว่าตัวกรอง Intent จัดการ URL ในชีวิตจริง
นอกจากนี้ คุณยังกำหนดการทดสอบ URL เหล่านี้ด้วยตนเองได้โดยใช้
<tools:validation>
ดังที่อธิบายไว้ด้านล่าง -
สร้างไฟล์ลิงก์เนื้อหาดิจิทัลโดยสร้างรายการออบเจ็กต์ที่เหมาะสมเพื่อ รองรับ Google Smart Lock แล้วเพิ่มแท็ก
asset_statements
<meta-data>
ที่เกี่ยวข้องลงใน Manifest

โปรแกรมตรวจสอบตัวกรอง Intent ของ URL
ตอนนี้ Android Studio รองรับแท็กพิเศษในไฟล์ Manifest ที่ช่วยให้คุณ เพื่อทดสอบ URL ตัวกรอง Intent แท็กเหล่านี้เป็นแท็กเดียวกับที่ลิงก์แอป Assistant สร้างให้คุณได้
วิธีประกาศ URL ทดสอบ
สำหรับตัวกรอง Intent ให้เพิ่มเอลิเมนต์ <tools:validation>
ควบคู่ไปกับ
องค์ประกอบ <intent-filter>
ที่สอดคล้องกัน เช่น
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
อย่าลืมใส่ xmlns:tools="http://schemas.android.com/tools"
ในแท็ก <manifest>
ด้วย
หาก URL ทดสอบรายการใดรายการหนึ่งไม่ผ่านคําจํากัดความตัวกรอง Intent ข้อผิดพลาดเกี่ยวกับ Lint จะปรากฏขึ้น ข้อผิดพลาดเช่นนี้ยังคงช่วยให้คุณสร้างตัวแปรการแก้ไขข้อบกพร่องได้ แต่จะทำให้บิลด์รุ่น ของคุณเสียหาย

เครื่องมือแก้ไขเลย์เอาต์
อัปเดตเครื่องมือแก้ไขเลย์เอาต์แล้ว ด้วยการเพิ่มประสิทธิภาพต่างๆ รวมถึงสิ่งต่อไปนี้
- รูปแบบและไอคอนใหม่ของแถบเครื่องมือ
- อัปเดตเลย์เอาต์ในแผนผังคอมโพเนนต์
- ปรับปรุงการแทรกมุมมองแบบลากและวาง
- แผงข้อผิดพลาดใหม่ใต้เครื่องมือแก้ไข ซึ่งจะแสดงปัญหาทั้งหมดพร้อมคําแนะนําในการแก้ไข (หากมี)
- การปรับปรุง UI ต่างๆ สำหรับการสร้างด้วย
ConstraintLayout
ซึ่งรวมถึงรายการต่อไปนี้- การสนับสนุนใหม่ๆ เพื่อสร้างอุปสรรค
- การรองรับใหม่ในการสร้างกลุ่ม: ในแถบเครื่องมือ ให้เลือกหลักเกณฑ์ > เพิ่มกลุ่ม (ต้องใช้ ConstraintLayout 1.1.0 beta 2 หรือสูงกว่า)
- UI ใหม่สำหรับการสร้างเชน: เลือกมุมมองหลายรายการ แล้วคลิกขวา แล้วเลือกสาขา

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

ตัววิเคราะห์ APK
ขณะนี้คุณสามารถใช้เครื่องมือวิเคราะห์ APK จากบรรทัดคำสั่งกับ
apkanalyzer
ตัววิเคราะห์ APK ยังได้รับการอัปเดตให้มีการปรับปรุงดังต่อไปนี้ด้วย
- สำหรับ APK ที่สร้างด้วย ProGuard คุณสามารถโหลดไฟล์การแมป ProGuard ที่เพิ่ม
ให้กับโปรแกรมดู DEX ดังนี้
- โหนดตัวหนาที่บ่งชี้ว่าไม่ควรนำโหนดออกเมื่อ โค้ดที่เล็กลง
- ปุ่มสำหรับแสดงโหนดที่ถูกนำออกในกระบวนการย่อ
- ปุ่มที่คืนค่าชื่อเดิมของโหนดในมุมมองแบบต้นไม้ที่ สร้างความสับสนโดย ProGuard
- ตอนนี้เครื่องมือดู DEX จะแสดงผลกระทบด้านขนาดโดยประมาณของแพ็กเกจ คลาส และเมธอดแต่ละรายการ
- ตัวเลือกการกรองใหม่ทางด้านบนเพื่อแสดงและซ่อนฟิลด์และวิธีการ
- ในมุมมองต้นไม้ โหนดที่เป็นข้อมูลอ้างอิงที่ไม่ได้กำหนดไว้ในไฟล์ DEX จะปรากฏเป็นเอียง
สำหรับข้อมูลเพิ่มเติม โปรดดูวิเคราะห์บิลด์ของคุณด้วยตัววิเคราะห์ APK
ตัวอย่างสำหรับคอมไพเลอร์ D8 DEX
Android Studio 3.0 มีคอมไพเลอร์ DEX ใหม่ที่เรียกว่า D8 ซึ่งจะเข้ามาแทนที่คอมไพเลอร์ DX ในที่สุด แต่คุณเลือกใช้คอมไพเลอร์ D8 ใหม่ได้ตั้งแต่ตอนนี้
การคอมไพล์ DEX ส่งผลโดยตรงต่อเวลาบิลด์ของแอป ไฟล์ .dex
ขนาดและประสิทธิภาพรันไทม์ และเมื่อเปรียบเทียบคอมไพเลอร์ D8 ใหม่กับ
คอมไพเลอร์ DX ในปัจจุบัน, D8 คอมไพเลอร์ได้เร็วขึ้นและส่งออกไฟล์ .dex
ที่เล็กลงในขณะที่
มีประสิทธิภาพรันไทม์ของแอปเหมือนเดิมหรือดีกว่า
หากต้องการลองใช้ ให้ตั้งค่าต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableD8=true
โปรดดูข้อมูลเพิ่มเติมที่บล็อกโพสต์เกี่ยวกับคอมไพเลอร์ D8
ที่เก็บ Maven ของ Google
ตอนนี้ Android Studio ใช้ที่เก็บ Maven ของ Google โดยค่าเริ่มต้นแทน ขึ้นอยู่กับ Android SDK Manager ในการรับอัปเดตสำหรับไลบรารีการสนับสนุนของ Android บริการ Google Play, Firebase และทรัพยากร Dependency อื่นๆ วิธีนี้ช่วยให้คุณอัปเดตไลบรารีได้ง่ายขึ้น โดยเฉพาะเมื่อใช้ระบบการผสานรวมอย่างต่อเนื่อง (CI)
ตอนนี้โปรเจ็กต์ใหม่ทั้งหมดจะมีที่เก็บ Maven ของ Google โดยค่าเริ่มต้น เพื่ออัปเดต
โปรเจ็กต์ที่มีอยู่ ให้เพิ่ม google()
ในบล็อก repositories
ของ
ไฟล์ build.gradle
ระดับบนสุด:
allprojects {
repositories {
google()
}
}
ดูข้อมูลเพิ่มเติมเกี่ยวกับที่เก็บ Maven ของ Google ที่นี่
การเปลี่ยนแปลงอื่นๆ
- การแก้ไขข้อบกพร่องของระบบด้วย Android Studio ไม่รองรับ Windows แบบ 32 บิตอีกต่อไป เราจึงเลือกที่จะมุ่งเน้นที่แพลตฟอร์มอื่นๆ เนื่องจากมีนักพัฒนาแอปเพียงไม่กี่รายที่ใช้แพลตฟอร์มนี้ หากคุณใช้ Windows แบบ 32 บิต และคุณวางแผนที่จะแก้ไขข้อบกพร่องของระบบ คุณควรใช้ Android Studio 2.3 ต่อไป
- อัปเกรด IDE พื้นฐานเป็น IntelliJ 2017.1.2 ซึ่งเพิ่มฟีเจอร์ใหม่ๆ จำนวนมากจาก 2016.3 และ 2017.1 เช่น การจัดระเบียบโค้ดภาษา Java 8, คำแนะนำพารามิเตอร์, การไฮไลต์ตามความหมาย, จุดหยุดพักที่ลากได้, ผลการค้นหาทันที และอื่นๆ อีกมากมาย
- เพิ่มการตรวจสอบ Lint ใหม่หลายรายการ
- และดูการอัปเดตล่าสุดของโปรแกรมจำลอง Android ด้วย
2.3 (มีนาคม 2017)
หลักๆ แล้ว Android Studio 2.3.0 คือการแก้ไขข้อบกพร่องและความเสถียร ยังมีฟีเจอร์ใหม่ๆ อีกมากมาย
2.3.3 (มิถุนายน 2017)
นี่เป็นการอัปเดตย่อยเพื่อเพิ่มการรองรับสำหรับ Android O (API ระดับ 26)
2.3.2 (เมษายน 2017)
นี่เป็นการอัปเดตเล็กๆ น้อยๆ ของ Android Studio 2.3 เมื่อมีการเปลี่ยนแปลงดังต่อไปนี้
- เครื่องมือจัดการ AVD อัปเดตเพื่อรองรับ Google Play ในภาพระบบ
- การแก้ไขข้อบกพร่องสำหรับบิลด์ NDK เมื่อใช้ NDK เวอร์ชัน R14 ขึ้นไป
โปรดดูการอัปเดตที่เกี่ยวข้องสำหรับ Android Emulator 26.0.3 ด้วย
2.3.1 (เมษายน 2017)
การอัปเดตนี้เป็นการอัปเดตเล็กๆ น้อยๆ ของ Android Studio 2.3 ซึ่งแก้ปัญหาบางอย่าง อุปกรณ์ Android ทางกายภาพทำงานไม่ถูกต้องกับ Instant Run (ดูปัญหา #235879)
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
New > Vector Asset</b>), you can now filter the list of available icons by
category or by icon name. For more information, see <a href=
"/studio/write/vector-asset-studio.html#materialicon">Adding a material
icon</a>.
</li>
<li>
<a href="/studio/write/annotations.html#accessibility">New and updated
annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
classes, and packages lets you restrict an API. The updated
<code>@VisibleForTesting</code> annotation now has an optional
<code>otherwise</code> argument that lets you designate what the visibility
of a method should be if not for the need to make it visible for testing.
Lint uses the <code>otherwise</code> option to enforce the intended
visibility of the method.
</li>
<li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
allows you to use a snapshot of your project's current set of warnings as a
baseline for future inspection runs so only new issues are reported. The
baseline snapshot lets you start using lint to fail the build for new issues
without having to go back and address all existing issues first.
</li>
<li>New lint checks, including the following:
<ul>
<li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
code that checks for SDK versions.
</li>
<li>Object Animator Validation: Lint analyzes your code to make sure that
your <code>ObjectAnimator</code> calls reference valid methods with the
right signatures and checks that those methods are annotated with <code>
@Keep</code> to prevent ProGuard from renaming or removing them during
release builds.
</li>
<li>Unnecessary Item Decorator Copy: Older versions of the
<code>RecyclerView</code> library did not include a divider decorator
class, but one was provided as a sample in the support demos. Recent
versions of the library have a divider decorator class. Lint looks for
the old sample and suggests replacing it with the new one.
</li>
<li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.3.0.</a>
</p>
<p class="note">
<b>Known issue:</b> Some device manufacturers block apps from automatically
launching after being installed on the device. When deploying your app to a
physical device using Android Studio 2.3, this restriction breaks the
intended behavior of Instant Run and causes the following error output:
<code>Error: Not found; no service started</code>. To avoid this issue,
either <a href="/studio/run/emulator.html">use the emulator</a> or enable
automatic launching for your app in your device's settings. The procedure
for doing this is different for each device, so check the instructions
provided by the manufacturer. To learn more about this issue, see
<a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
#235879</a>.
</p>
2.2 (กันยายน 2016)
2.2.3 (ธันวาคม 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a bug fixes
focused around gradle, the core IDE, and lint.
</p>
<p>
Highlighted build changes:
</p>
<ul>
<li>ProGuard version rollback. Due to a <a href=
"https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
have worked with the ProGuard team on getting a fix quickly, and we expect
to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
</li>
<li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
not working properly (<a href="http://b.android.com/224167">issue
224167</a>)
</li>
<li>Bug fix for Gradle autodownload for Constraint Layout library
(<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
212128</a>)
</li>
<li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
"http://b.android.com/227729">issue 227729</a>)
</li>
</ul>
<p>
<a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.2.3</a>.
</p>
2.2.2 (ตุลาคม 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a number of small
changes and bug fixes, including:
</p>
<ul>
<li>When reporting Instant Run issues through the IDE, the report now also
includes logcat output for <code>InstantRun</code> events. To help us
improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</li>
<li>A number of small bug fixes for Gradle.
</li>
<li>A fix for problems with generating multiple APKs.
</li>
</ul>
2.2.1 (ตุลาคม 2016)
<p>
This is a minor update to Android Studio 2.2. It includes several bug fixes
and a new feature to enable extra logging to help us troubleshoot Instant
Run issues—to help us improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</p>
ใหม่
- การจัดวางใหม่ทั้งหมด Editor พร้อมเครื่องมือที่สร้างขึ้นมาโดยเฉพาะเพื่อรองรับ ConstraintLayout
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <strong>Network type</strong> control.
</li>
<li>Added simulated vertical swipes for scrolling through vertical menus
with a mouse wheel.
</li>
</ul>
</li>
<li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
Configuration</a></strong> features:
<ul>
<li>The <strong>Debugger</strong> tab of the Android App and Android
Tests templates now contain several new options for debugging with LLDB.
</li>
<li>The <strong>Profiling</strong> tab of the Android App and Android
Tests templates now contain a <strong>Capture GPU Commands</strong>
option for enabling GPU tracing. You can display GPU traces in the GPU
Debugger (a beta feature).
</li>
<li>The Android Tests template now has a <strong>Firebase Test Lab Device
Matrix</strong> option for the <strong>Deployment Target</strong>.
</li>
<li>The Native Application template has been deprecated. If you use this
template in a project, Android Studio automatically converts it to the
Android App template.
</li>
<li>The Android Application template has been renamed to Android App.
</li>
</ul>
</li>
<li>Improved installation, configuration, performance, and UI features in the
<strong><a href="/studio/debug/am-gpu-debugger.html">GPU
Debugger</a></strong> (currently in beta).
</li>
<li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
Existing projects still use the JDK specified in <strong>File > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > SDK
Location</strong> and checking the <strong>Use embedded JDK</strong>
checkbox.
</li>
<li>Added new <strong>help menus and buttons</strong> in the UI so you can
more easily find the online documentation.
</li>
การเปลี่ยนแปลง
- อัปเดตฐานของโค้ด IDE จาก IntelliJ 15 เป็น IntelliJ 1
- ตอนนี้ Instant Run กำหนดให้ต้องติดตั้ง SDK ของแพลตฟอร์มที่สอดคล้องกับระดับ API ของอุปกรณ์เป้าหมาย
- Instant Run จะปิดโดยอัตโนมัติหากผู้ใช้เรียกใช้แอปภายใต้ โปรไฟล์งานหรือในฐานะผู้ใช้รอง
- แก้ไขปัญหาความน่าเชื่อถือหลายอย่างสำหรับ Instant Run ซึ่งมีการเปลี่ยนแปลง
ไม่ได้รับการติดตั้งใช้งาน หรือแอปจะขัดข้อง
- ไม่ได้ทำให้ชิ้นงานแอปบางรายการใช้งานได้กับแอปที่ทำงานอยู่ ( ข้อบกพร่อง: #213454)
- แอปขัดข้องเมื่อผู้ใช้สลับระหว่างเซสชันการเรียกใช้แบบทันทีกับการเรียกใช้แบบไม่ทันทีที่คลาส Serializable ไม่ได้กําหนด serialVersionUID (ข้อบกพร่อง: #209006)
- การเปลี่ยนแปลงรูปแบบจะไม่แสดงผลเมื่อใช้ Instant Run (ข้อบกพร่อง: #210851)
- เซสชัน Instant Run ไม่น่าเชื่อถือและทำให้เกิด FileNotFoundException (ข้อบกพร่อง: #213083)
- การเปลี่ยนแปลงในส่วนที่ถอนออกได้จะไม่แสดงผลจนกว่าจะดำเนินการสร้างใหม่ทั้งหมด สำหรับ KitKat (ข้อบกพร่อง: #21530)
- การเปลี่ยนแปลงทรัพยากรจะไม่แสดงด้วย Instant Run เมื่อกำหนดเอง sourceSets มีเส้นทางที่ซ้อนกัน (ข้อบกพร่อง: #219145)
- การสลับแบบร้อนและอบอุ่นไม่ทำงานหากคลาสที่เปลี่ยนแปลงมีคำอธิบายประกอบ ด้วยค่า enum (ข้อบกพร่อง: #209047)
- การเปลี่ยนแปลงข้อมูลคำอธิบายประกอบจะไม่ส่งผลกับ Instant Run (ข้อบกพร่อง: #210089)
- Instant Run ไม่ตรวจจับการเปลี่ยนแปลงโค้ดหากคุณทำการเปลี่ยนแปลงภายนอก IDE (ข้อบกพร่อง: #213205)
- เซสชันการเรียกใช้ทันทีไม่น่าเชื่อถือเนื่องจากโทเค็นความปลอดภัยไม่ตรงกัน (ข้อบกพร่อง: #211989
- Cold Swap จะไม่สำเร็จสำหรับอุปกรณ์ที่ไม่รองรับการเรียกใช้แทนอย่างถูกต้อง (ข้อบกพร่อง: #210875)
- แอปขัดข้องหลังจากรีสตาร์ท Instant Run (ข้อบกพร่อง: #219744)
- ClassNotFoundException สังเกตเห็นเมื่อเปลี่ยนจาก Instant Run เป็น แก้ไขข้อบกพร่องทันที (ข้อบกพร่อง: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (เมษายน 2016)
การเปลี่ยนแปลงหลักๆ ในการอัปเดตครั้งนี้จะสนับสนุนการพัฒนาด้วย Android N Preview
2.1.3 (สิงหาคม 2016)
การอัปเดตนี้เพิ่มความเข้ากันได้กับ Gradle 2.14.1 ที่มาพร้อมประสิทธิภาพ การปรับปรุง ฟีเจอร์ใหม่ๆ และการแก้ไขด้านความปลอดภัยที่สำคัญ ดูรายละเอียดเพิ่มเติมได้ที่บันทึกประจำรุ่นของ Gradle
โดยค่าเริ่มต้น โปรเจ็กต์ใหม่ใน Android Studio 2.1.3 จะใช้ Gradle 2.14.1 สำหรับ โปรเจ็กต์ที่มีอยู่ IDE จะแจ้งให้คุณอัปเกรดเป็น Gradle 2.14.1 และ ปลั๊กอิน Android สำหรับ Gradle 2.1.3 ซึ่งจำเป็นเมื่อใช้ Gradle 2.14.1 และ สูงขึ้น
2.1.2 (มิถุนายน 2016)
การอัปเดตนี้ประกอบด้วยการเปลี่ยนแปลงเล็กน้อยและการแก้ไขข้อบกพร่อง:
- การอัปเดตและแก้ไขข้อบกพร่องของ Instant Run
- การปรับปรุงประสิทธิภาพ LLDB และการแจ้งเตือนข้อขัดข้อง
- แก้ไขการถดถอยในการอัปเดตความปลอดภัยของ Android Studio 2.1.1 ซึ่ง
ทำให้
git rebase
ล้มเหลว
2.1.1 (พฤษภาคม 2016)
การอัปเดตรุ่นความปลอดภัย
แพลตฟอร์ม Android N เพิ่มการรองรับฟีเจอร์ภาษาของ Java 8 ซึ่งต้องใช้คอมไพเลอร์เวอร์ชันทดลองใหม่ชื่อ Jack Jack เวอร์ชันล่าสุดคือ ขณะนี้รองรับเฉพาะใน Android Studio 2.1 เท่านั้น ดังนั้นหากคุณต้องการใช้ Java 8 คุณต้องใช้ Android Studio 2.1 ในการสร้างแอป
หมายเหตุ: การเรียกใช้ทันทีจะปิดอยู่เมื่อคุณเปิดใช้คอมไพเลอร์ Jack เนื่องจากปัจจุบันยังไม่เข้ากันได้
แม้ว่า Android Studio 2.1 จะมีความเสถียรแล้วในตอนนี้ แต่คอมไพเลอร์ Jack ยังคง
เวอร์ชันทดลองและคุณต้องเปิดใช้ด้วย jackOptions
ในไฟล์ build.gradle
นอกจากการเปลี่ยนแปลงเพื่อรองรับรุ่นตัวอย่างของ N แล้ว Android Studio 2.1 ยังมีการแก้ไขข้อบกพร่องเล็กน้อยและการเพิ่มประสิทธิภาพต่อไปนี้
- ขณะนี้ โปรแกรมแก้ไขข้อบกพร่อง C++ แบบ Java-Aware จะเปิดใช้โดยค่าเริ่มต้นเมื่อคุณ ใช้อุปกรณ์หรือโปรแกรมจำลอง N และเลือกโหมดโปรแกรมแก้ไขข้อบกพร่องเนทีฟ (ในแท็บโปรแกรมแก้ไขข้อบกพร่องสำหรับการกำหนดค่าการเรียกใช้/แก้ไขข้อบกพร่อง)
สำหรับการปรับปรุงบิลด์อื่นๆ รวมถึงการคอมไพล์ Java แบบเพิ่มขึ้นเรื่อยๆ และ dexing-in-process อัปเดตปลั๊กอิน Android สำหรับ Gradle เป็นเวอร์ชัน 2.1.0.
2.0 (เมษายน 2016)
หมายเหตุ: หากคุณกำลังพัฒนาเพื่อการแสดงตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ N คุณ ควรใช้ Android Studio 2.1 Preview Android Studio 2.0 ไม่รองรับฟีเจอร์ทั้งหมดที่จําเป็นในการกําหนดเป้าหมายเป็นเวอร์ชันตัวอย่างของ N
Instant Run
- ตอนนี้ Android Studio ช่วยให้บิลด์ที่สะอาดใช้งานได้เร็วกว่าที่เคย นอกจากนี้ การพุชการเปลี่ยนแปลงโค้ดที่เพิ่มขึ้น ไปยังโปรแกรมจำลองหรือแท็ก อุปกรณ์เกือบจะทันที ตรวจสอบการอัปเดตโดยไม่ต้องติดตั้งใช้งาน บิลด์การแก้ไขข้อบกพร่องใหม่ หรือในหลายกรณีโดยไม่ต้องรีสตาร์ทแอป
- การเรียกใช้ทันทีรองรับการพุชการเปลี่ยนแปลงต่อไปนี้ไปยังแอปที่ทำงานอยู่
- การเปลี่ยนแปลงการใช้เมธอดของอินสแตนซ์ที่มีอยู่ หรือ เมธอดแบบคงที่
- การเปลี่ยนแปลงทรัพยากรแอปที่มีอยู่
- การเปลี่ยนแปลงโค้ดโครงสร้าง เช่น ลายเซ็นเมธอดหรือแบบคงที่ (ต้องมีอุปกรณ์เป้าหมายที่ใช้ API ระดับ 21 ขึ้นไป)
- อ่านเอกสารประกอบเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการทันใจ
Run
หมายเหตุ: ระบบจะสนับสนุน Instant Run เฉพาะเมื่อคุณทำให้ แก้ไขข้อบกพร่องของตัวแปรบิลด์ ใช้ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 2.0.0 ขึ้นไป และกำหนดค่าระดับโมดูลของแอป
build.gradle
ไฟล์สำหรับminSdkVersion 15
ขึ้นไป กำหนดค่าแอปสำหรับminSdkVersion 21
ขึ้นไปเพื่อประสิทธิภาพที่ดีที่สุด
ฟีเจอร์ใหม่ที่เพิ่มเข้ามาใน Lint:
- การตรวจสอบคำสั่ง
switch
โดยใช้จำนวนเต็มที่มีคำอธิบายประกอบ@IntDef
เพื่อให้มั่นใจว่า ค่าคงที่ทั้งหมดจะได้รับการจัดการ หากต้องการเพิ่มคำสั่งที่ขาดหายไปอย่างรวดเร็ว ให้ใช้ เมนูแบบเลื่อนลง "การดำเนินการตามความตั้งใจ" และเลือกเพิ่ม @IntDef ที่ขาดหายไป ค่าคงที่ - แจ้งว่าพยายามใช้การแทรกสตริงเพื่อแทรกหมายเลขเวอร์ชันในไฟล์
build.gradle
อย่างไม่ถูกต้อง - การแจ้งสำหรับชั้นเรียนที่ไม่ระบุชื่อซึ่งขยายคลาส
Fragment
- แฟล็กสำหรับโค้ดเนทีฟในตำแหน่งที่ไม่ปลอดภัย เช่น
res/
และasset/
โฟลเดอร์ Flag นี้แนะนำให้จัดเก็บโค้ดเนทีฟไว้ในโฟลเดอร์libs/
ซึ่งจะได้รับการแพ็กเกจอย่างปลอดภัยไว้ในโฟลเดอร์data/app-lib/
ของแอปพลิเคชัน ณ เวลาที่ติดตั้ง AOSP: #169950 - การแจ้งสำหรับการเรียกไปยัง
Runtime.load()
และSystem.load()
ที่ไม่ปลอดภัย AOSP: #179980 - ค้นหาและนำทรัพยากรที่ไม่ได้ใช้ออกโดยเลือกเปลี่ยนโครงสร้างภายในโค้ด > นำออก
ทรัพยากรที่ไม่ได้ใช้จากแถบเมนู การตรวจหาทรัพยากรที่ไม่ได้ใช้งานในขณะนี้
สนับสนุนทรัพยากรที่อ้างอิงโดยทรัพยากรที่ไม่ได้ใช้เท่านั้น และการอ้างอิงในรูปแบบ RAW
เช่น
.html
รูปภาพอ้างอิง และtools:keep
และ แอตทริบิวต์tools:discard
ที่เครื่องมือลดขนาดทรัพยากรของ Gradle พิจารณาชุดแหล่งที่มาที่ไม่ได้ใช้งาน (เช่น ทรัพยากรที่ใช้ในบิลด์อื่น รสชาติ) และจัดการการนำเข้าฟิลด์แบบคงที่อย่างเหมาะสม - ตรวจสอบว่าระบบรองรับการอ้างอิง API โดยนัยในแพลตฟอร์มทั้งหมด
กำหนดเป้าหมายโดย
minSdkVersion
- แจ้งการใช้งาน
RecyclerView
อย่างไม่เหมาะสม และParcelable
- ขณะนี้มีการตรวจสอบ
@IntDef
,@IntRange
และ@Size
สำหรับint
อาร์เรย์และตัวแปร
การปรับปรุงเพิ่มเติม
- เพิ่มประสิทธิภาพสำหรับ Android Emulator 2.0 ซึ่งเร็วกว่าที่เคย รองรับอุปกรณ์เสมือนจริงที่หลากหลายมากขึ้น และมี UI ที่ปรับปรุงใหม่อย่างมาก ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมจำลองใหม่ได้ในบันทึกประจำรุ่นของเครื่องมือ SDK
- การปรับปรุงเครื่องมือจัดการอุปกรณ์เสมือน Android มีดังนี้
- หมวดหมู่อิมเมจระบบได้รับการจัดหมวดหมู่ไว้ในแท็บต่อไปนี้ แนะนำ, x86 และอื่นๆ
- คุณสามารถเปิดใช้การสนับสนุนแบบหลายแกนและ ระบุจำนวนแกนที่โปรแกรมจำลองจะใช้ได้
- ในการตั้งค่าขั้นสูง คุณกำหนดวิธีแสดงผลกราฟิกได้
ในโปรแกรมจำลองโดยเลือกหนึ่งในตัวเลือกต่อไปนี้
- ฮาร์ดแวร์: ใช้การ์ดแสดงผลของคอมพิวเตอร์ การแสดงผลได้เร็วขึ้น
- ซอฟต์แวร์: ใช้การแสดงผลตามซอฟต์แวร์
- อัตโนมัติ: ปล่อยให้โปรแกรมจำลองตัดสินใจเลือกตัวเลือกที่ดีที่สุด ช่วงเวลานี้ เป็นการตั้งค่าเริ่มต้น
- ปรับปรุงเวลาการสร้างแพ็กเกจ AAPT ด้วยการระบุเป้าหมายการใช้งานก่อนแอป ได้สร้างขึ้น วิธีนี้ช่วยให้ Android Studio แพ็กเกจเฉพาะทรัพยากรที่จําเป็นต่ออุปกรณ์ที่ระบุได้อย่างมีประสิทธิภาพ
- เพิ่มการผสานรวม Cloud Test Lab เพื่อให้สามารถทดสอบแอปแบบออนดีมานด์กับ ความสะดวกและความสามารถในการปรับขนาดของบริการระบบคลาวด์ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ Cloud Test Lab กับ Android Studio
- เพิ่มการแสดงตัวอย่างโปรแกรมแก้ไขข้อบกพร่อง GPU ใหม่ สำหรับงานกราฟิก แอปพลิเคชันที่ใช้งานจำนวนมาก ตอนนี้คุณสามารถดูโค้ด OpenGL ES แบบเห็นภาพได้ เพื่อเพิ่มประสิทธิภาพแอปหรือเกม
- เพิ่มการทดสอบการจัดทําดัชนีแอปของ Google เพิ่มการรองรับ URL, การจัดทำดัชนีแอป และฟังก์ชันการค้นหาลงในแอปเพื่อช่วยเพิ่มการเข้าชมแอป ค้นพบว่าเนื้อหาแอปใดมีการใช้งานมากที่สุด และดึงดูดผู้ใช้ใหม่ ทดสอบและตรวจสอบความถูกต้องของ URL ในแอปได้ทั้งหมดภายใน Android Studio โปรดดู URL และแอปที่รองรับ การจัดทำดัชนีใน Android Studio
- อัปเกรดจาก IntelliJ 15 รุ่นล่าสุด รวมถึงโค้ดที่ปรับปรุงใหม่ การวิเคราะห์และประสิทธิภาพ โปรดดูมีอะไรใหม่ใน IntelliJ สำหรับ คำอธิบายที่ครบถ้วนเกี่ยวกับฟีเจอร์และการเพิ่มประสิทธิภาพใหม่ๆ
- ขณะนี้เครื่องมือแก้ไข XML เติมข้อความอัตโนมัติจะเพิ่มเครื่องหมายคำพูดเมื่อกรอกข้อมูล หากต้องการตรวจสอบว่ามีการเปิดใช้ตัวเลือกนี้หรือไม่ ให้เปิดการตั้งค่า หรือ กล่องโต้ตอบค่ากำหนด ให้ไปที่ตัวแก้ไข > ทั่วไป > อัจฉริยะ คีย์ และเลือกช่องข้างเพิ่มเครื่องหมายคำพูดสำหรับค่าแอตทริบิวต์ใน การเติมแอตทริบิวต์ ปัญหา: 195113
- ตอนนี้ตัวแก้ไข XML รองรับการเติมโค้ดสำหรับการเชื่อมโยงข้อมูลแล้ว นิพจน์
Android Studio v1.5.1 (ธันวาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขปัญหาการแสดงผลไม่สำเร็จในเครื่องมือแก้ไขเลย์เอาต์ ปัญหา: 194612
- เพิ่มความสามารถในการเปลี่ยนแปลงแอตทริบิวต์ไฟล์ Manifest
description
ตามการกำหนดค่า ปัญหา: 194705 - ปรับปรุงคอนทราสต์ของธีมรูปลักษณ์ของ Android Studio Darcula ใน Vector Asset Studio ปัญหา: 191819
- เพิ่มการรองรับปุ่มความช่วยเหลือใน Vector Asset Studio
- เพิ่มการรองรับโอเปอเรเตอร์
%
สำหรับการเชื่อมโยงข้อมูล ปัญหา: 194045 - แก้ไขกรณีที่การเปิดแอปเพื่อแก้ไขข้อบกพร่องส่งผลให้โปรแกรมแก้ไขข้อบกพร่องเชื่อมต่อกับ ผิดอุปกรณ์ ปัญหา: 195167
- แก้ไขข้อยกเว้นเกี่ยวกับ Null Pointer ที่อาจเกิดขึ้นเมื่อพยายามเรียกใช้แอปในบางสถานการณ์
Android Studio v1.5.0 (พฤศจิกายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มความสามารถในการวิเคราะห์ของเครื่องมือตรวจสอบหน่วยความจำใหม่ลงในเครื่องมือตรวจสอบ Android เมื่อคุณดูไฟล์ HPROF ที่ถ่ายจากจอภาพนี้ จอแสดงผลจะมีประโยชน์มากขึ้นเพื่อให้คุณค้นหา เช่น หน่วยความจำรั่วไหล หากต้องการใช้จอภาพนี้ ให้คลิก Android Monitor ที่ ด้านล่างของหน้าต่างหลัก ใน Android Monitor ให้คลิกแท็บหน่วยความจำ ขณะที่ ที่จอภาพทำงานอยู่ ให้คลิกไอคอน Dump Java Heap แล้วคลิก จับภาพในหน้าต่างหลัก แล้วดับเบิลคลิกไฟล์เพื่อดู คลิก บันทึกการวิเคราะห์ทางด้านขวา (เครื่องมือตรวจสอบอุปกรณ์ Android ทำงานพร้อมกันกับเครื่องมือตรวจสอบ Android ไม่ได้)
- เพิ่มการรองรับ Deep Link และลิงก์แอปใหม่แล้ว ตัวแก้ไขโค้ดสามารถสร้าง
ตัวกรอง Intent สำหรับการทำ Deep Link ในไฟล์
AndroidManifest.xml
นอกจากนี้ ยังสามารถสร้างโค้ดเพื่อช่วยให้คุณผสานรวมกับ App Indexing API ในกิจกรรมในไฟล์ Java ได้ด้วย ฟีเจอร์การทดสอบ Deep Link ช่วยยืนยันว่า Deep Link ที่ระบุสามารถเปิดแอปได้ ในส่วนทั่วไป ของกล่องโต้ตอบ Run/Debug Configurations คุณสามารถระบุการเปิด Deep Link ตัวเลือก นอกจากนี้คุณยังทดสอบการเรียก API การจัดทำดัชนีแอปในกิจกรรมได้โดยใช้ Android Monitor logcat ขณะนี้เครื่องมือlint
ของ Android มีคำเตือนสำหรับ ปัญหาบางอย่างที่เกี่ยวข้องกับ Deep Link และ API การจัดทำดัชนีแอป - เพิ่มความสามารถในการใช้ชื่อย่อเมื่อเติมโค้ดในมุมมองที่กำหนดเองในเครื่องมือแก้ไขโค้ด
- เพิ่มการรองรับองค์ประกอบ
VectorDrawable
เพิ่มเติมใน Vector Asset Studio สำหรับความเข้ากันได้แบบย้อนหลัง Vector Asset Studio สามารถใช้องค์ประกอบเหล่านี้เพื่อแปลงรูปภาพที่วาดได้แบบเวกเตอร์เป็นภาพแรสเตอร์ PNG เพื่อใช้กับ Android 4.4 (API ระดับ 20) และต่ำกว่า - เพิ่มการตรวจสอบ
lint
ใหม่สำหรับ Android TV และ Android Auto เพื่อมอบให้กับคุณ ความคิดเห็นที่นำไปใช้ได้จริงได้ทันทีใน Android Studio พร้อมกับการแก้ไขอย่างรวดเร็วหลายอย่าง เช่น สำหรับ Android TV เครื่องมือนี้จะรายงานและให้วิธีแก้ปัญหาด่วนสำหรับสิทธิ์ ฮาร์ดแวร์ที่ไม่รองรับ องค์ประกอบuses-feature
และปัญหาแบนเนอร์ที่หายไป สำหรับ Android Auto สามารถ ตรวจสอบการใช้งานที่ถูกต้องในไฟล์ข้อบ่งชี้ที่มาจากAndroidManifest.xml
ให้รายงานหากไม่มีตัวกรอง IntentMediaBrowserService
และระบุปัญหาการสั่งงานด้วยเสียงบางอย่าง - เพิ่มการตรวจสอบ
lint
ใหม่สำหรับ Broadcast Receiver ที่ไม่ปลอดภัยSSLCertificateSocketFactory
และHostnameVerifier
การใช้งานในชั้นเรียน และFile.setReadable()
และFile.setWritable()
สาย และตรวจพบ การค้นหาทรัพยากรไฟล์ Manifest ที่ไม่ถูกต้อง โดยเฉพาะสำหรับทรัพยากรที่แตกต่างกันไปตามการกำหนดค่า - แก้ไขปัญหาด้านความเสถียรหลายรายการ
Android Studio v1.4.1 (ตุลาคม 2015)
การแก้ไขและเพิ่มประสิทธิภาพ
- แก้ไขปัญหาการแคชโมเดล Gradle ที่อาจทําให้เกิดการซิงค์ Gradle มากเกินไปเมื่อ IDE เริ่มทํางานอีกครั้ง
- แก้ไขปัญหาข้อขัดข้องในการแก้ไขข้อบกพร่องแบบเนทีฟ
- แก้ไขปัญหาที่บล็อกผู้ใช้ระบบควบคุมเวอร์ชัน Subversion 1.9
- แก้ไขปัญหาเกี่ยวกับกล่องโต้ตอบเครื่องมือเลือกอุปกรณ์ที่หลังจากเชื่อมต่ออุปกรณ์ที่ไม่ได้รับอนุญาตแล้ว คุณจะเลือกโปรแกรมจำลองไม่ได้อีกต่อไป ปัญหา: 189658
- แก้ไขการรายงานข้อผิดพลาดในการแปลที่ไม่ถูกต้องสำหรับภาษาที่มีตัวระบุภูมิภาคและ การแปลในภูมิภาคนั้นๆ (ไม่ใช่ในภาษาหลัก) ปัญหา: 188577
- แก้ไขปัญหาการติดตายในตัวแก้ไขธีมที่เกี่ยวข้องกับการโต้ตอบกับเลย์เอาต์ ผู้แก้ไข ปัญหา: 188070
- แก้ไขปัญหาการโหลดซ้ำและการแก้ไขของเครื่องมือแก้ไขธีมขัดแย้งกัน ซึ่งทําให้อัปเดตแอตทริบิวต์ไม่ถูกต้อง ปัญหา: 187726
- ปรับปรุงประสิทธิภาพของเครื่องมือแก้ไขธีม
- แก้ไขปัญหาที่ระบบละเว้นแอตทริบิวต์
android:required
ในไฟล์ Manifest ปัญหา: 187665
Android Studio v1.4.0 (กันยายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มเครื่องมือ Vector Asset Studio สำหรับการนําเข้ากราฟิกเวกเตอร์ เช่น ไอคอนวัสดุและไฟล์ SVG หากต้องการใช้เครื่องมือนี้ ในมุมมอง Android ของหน้าต่างโครงการ ให้คลิกขวาที่ โฟลเดอร์ res แล้วเลือกใหม่ > เนื้อหาเวกเตอร์
- เพิ่มฟังก์ชันใหม่ในเครื่องมือตรวจสอบ Android ได้แก่ GPU และเครือข่าย หากต้องการใช้เครื่องมือตรวจสอบเหล่านี้ ให้คลิกเครื่องมือตรวจสอบ Android ที่ด้านล่างของหน้าต่างหลัก การตรวจสอบอุปกรณ์ Android ทำงานพร้อมกับ Android Monitor ไม่ได้
- เพิ่มตัวอย่างก่อนเปิดตัวของเครื่องมือแก้ไขธีมใหม่ หากต้องการใช้ฟีเจอร์นี้ ให้เลือก เครื่องมือ > Android > ตัวแก้ไขธีม
- อัปเดตเทมเพลต Android สําหรับคลังการสนับสนุนการออกแบบ เทมเพลตมีการสนับสนุนแล้ว
สำหรับข้อมูลจำเพาะของดีไซน์ Material รวมถึงไลบรารีการสนับสนุนของ
appcompat
เพื่อหาความเข้ากันได้กับรุ่นก่อนหน้า
Android Studio v1.3.2 (สิงหาคม 2015)
การแก้ไขและเพิ่มประสิทธิภาพ
- เพิ่มการรองรับ Android 6.0 (API ระดับ 23) รวมถึงไอคอนใหม่และการรองรับเครื่องมือจัดการ AVD ในการสร้างอุปกรณ์ที่มีความหนาแน่นของหน้าจอใหม่
- แก้ไขข้อยกเว้นที่เกิดขึ้นระหว่างการตรวจสอบการอัปเดต ปัญหา: 183068
- แก้ไขปัญหาที่พิกัดมุมมองที่ยังไม่ได้รับการแก้ไขอาจทําให้เครื่องมือแก้ไขเลย์เอาต์ขัดข้อง ปัญหา: 178690
- แก้ปัญหาคำเตือนประเภททรัพยากรที่ไม่ถูกต้อง ปัญหา: 182433
- แก้ไขการตรวจสอบ Lint ที่แจ้งว่าทรัพยากรเป็นส่วนตัวอย่างไม่ถูกต้อง ปัญหา: 183120
Android Studio v1.3.1 (สิงหาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขการรองรับการสร้างอุปกรณ์เสมือน (AVD) สำหรับ Android Wear บน Windows
- อัปเดตวิซาร์ดโปรเจ็กต์ให้ใช้ชื่อโปรเจ็กต์ที่ป้อน
- เพิ่มการสนับสนุนเพื่ออนุญาตให้จัดเก็บ Android SDK ในไดเรกทอรีแบบอ่านอย่างเดียว
- อัปเดตปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.3.0 แล้ว
- แก้ไขปัญหาเกี่ยวกับการเปิดเซสชันการแก้ไขข้อบกพร่องจากเชลล์ Unix ของ Android Debug Bridge (adb)
- แก้ไขข้อความการเปลี่ยนชื่อแพ็กเกจ Java เพื่อแสดงชื่อแพ็กเกจที่ถูกต้อง
Android Studio v1.3.0 (กรกฎาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มตัวเลือกในการเปิดใช้บริการสําหรับนักพัฒนาแอป เช่น Google AdMob และ Analytics ในแอปจากภายใน Android Studio
- เพิ่มหมายเหตุเพิ่มเติม
เช่น
@RequiresPermission
,@CheckResults
และ@MainThread
- เพิ่มความสามารถในการสร้างการดัมพ์กองขยะ Java และวิเคราะห์การจัดสรรเธรดจากเครื่องมือตรวจสอบหน่วยความจำ นอกจากนี้คุณยัง แปลงไฟล์รูปแบบไบนารี HPROF เฉพาะ Android เป็นรูปแบบ HPROF มาตรฐานจากภายใน Android Studio
- ผสานรวมเครื่องมือจัดการ SDK
ลงใน Android Studio เพื่อลดความซับซ้อนในการเข้าถึงแพ็กเกจและเครื่องมือ รวมถึงส่งการแจ้งเตือนการอัปเดต
หมายเหตุ: SDK Manager แบบสแตนด์อโลนยังคงมีให้บริการจาก บรรทัดคำสั่งได้ แต่แนะนำให้ใช้กับ SDK แบบสแตนด์อโลนเท่านั้น ครั้ง
- เพิ่มคำสั่ง
finger
ในคอนโซลโปรแกรมจำลองเพื่อจำลองแล้ว ลายนิ้วมือ การตรวจสอบสิทธิ์ - เพิ่มการประกาศทรัพยากร
<public>
เพื่อกำหนดไลบรารีแล้ว ทรัพยากรเป็น สาธารณะและส่วนตัว ที่ไม่ซับซ้อนหมายเหตุ: ต้องมี ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.3 ขึ้นไป
- เพิ่มการรองรับการเชื่อมโยงข้อมูลลงใน สร้างเค้าโครงแบบประกาศที่จะเชื่อมโยงตรรกะแอปพลิเคชันของคุณกับองค์ประกอบการออกแบบ
- เพิ่มการรองรับโมดูล APK ทดสอบแยกต่างหากเพื่อสร้าง APK ทดสอบใน Android Studio
- อัปเดต AVD Manager ด้วย HAXM การเพิ่มประสิทธิภาพและการแจ้งเตือนที่ปรับปรุงใหม่
- เพิ่มการรองรับโปรแกรมจำลอง ARM และ MIPS 64 บิตสำหรับ QEMU 2.1
- ทำให้การแก้ไขคำเตือนของ Lint ง่ายขึ้น ด้วยการเพิ่มการแก้ไขอย่างรวดเร็ว เช่น การสร้างอัตโนมัติ พาร์เซล การใช้งานของคุณ
- เพิ่มการรองรับเทมเพลตแบบเรียลไทม์สําหรับการแทรกข้อมูลโค้ดอย่างรวดเร็ว
Android Studio v1.2.2 (มิถุนายน 2015)
การแก้ไขและเพิ่มประสิทธิภาพ
- แก้ไขปัญหาบิลด์ที่บล็อกบิลด์ไม่ให้เสร็จสมบูรณ์
Android Studio v1.2.1 (พฤษภาคม 2015)
การแก้ไขและเพิ่มประสิทธิภาพ
- แก้ไขปัญหาเล็กๆ น้อยๆ ด้านประสิทธิภาพและฟีเจอร์
Android Studio v1.2.0 (เมษายน 2015)
การแก้ไขและเพิ่มประสิทธิภาพ
- อัปเดตหน้าต่างรันไทม์ของ Android ให้รวมเครื่องมือตรวจสอบหน่วยความจำและเพิ่มแท็บ สำหรับการตรวจสอบประสิทธิภาพของ CPU
- เพิ่มแท็บการบันทึกในขอบด้านซ้ายเพื่อแสดงไฟล์ข้อมูลประสิทธิภาพหน่วยความจำและ CPU ที่บันทึกไว้ เช่น การติดตามเมธอด CPU และภาพรวมฮีปหน่วยความจำ
- หมายเหตุแบบขยาย รองรับคำอธิบายประกอบข้อมูลเมตาเพิ่มเติมและความสามารถในการเว้นว่างที่อนุมาน
- ปรับปรุงเครื่องมือแก้ไขการแปลด้วยการสนับสนุนเพิ่มเติมสำหรับหมวดหมู่ที่ดีที่สุด แนวทางปฏิบัติปัจจุบัน (BCP) 47 ซึ่งใช้รหัสภาษาและรหัสภูมิภาค 3 ตัวอักษร
- ผสานรวมฟีเจอร์ IntelliJ 14 และ 14.1 เพื่อการวิเคราะห์โค้ดและ ประสิทธิภาพ:
-
- การแก้ไขข้อบกพร่องขั้นสูงเพื่อแสดงค่าในบรรทัดสำหรับตัวแปรและ ทำการอ้างอิงแบบอินไลน์ของ lambda และ นิพจน์โอเปอเรเตอร์
- เพิ่มการตรวจหารูปแบบโค้ดสำหรับขนาดแท็บและการเยื้อง
- เพิ่มไฟล์สคริปต์สำหรับทดสอบโค้ดและสร้างต้นแบบโดยไม่ต้องใช้ไฟล์โปรเจ็กต์
- เพิ่มการแทรกแท็กเปิดและปิดพร้อมกันใน HTML และ XML
- เพิ่ม Decompiler คลาส Java ในตัวเพื่อให้คุณสามารถดู ภายในไลบรารีที่ไม่มีซอร์สโค้ดพร้อมใช้งาน
ดูมีอะไรใหม่ใน IntelliJ เพื่อดูคำอธิบายฟีเจอร์และการเพิ่มประสิทธิภาพใหม่ๆ อย่างครบถ้วน
- เพิ่มข้อมูลพร็อพเพอร์ตี้ของโครงการเพิ่มเติมสำหรับ Scratches, ไฟล์โปรเจ็กต์, ปัญหา เวอร์ชันที่ใช้งานจริงและการทดสอบเพื่อเพิ่มประสิทธิภาพการจัดการโปรเจ็กต์และ สิทธิ์การเข้าถึง
- ปรับปรุงเมนูและกล่องโต้ตอบไฟล์ > การตั้งค่าเพื่อปรับปรุงการเข้าถึงและการจัดการการตั้งค่า
- เพิ่มการรองรับจอแสดงผลความหนาแน่นสูงสำหรับ Windows และ Linux
- เพิ่มการรองรับทรัพยากร 280 dpi ใน
res/drawable-280dpi/
โฟลเดอร์
Android Studio v1.1.0 (กุมภาพันธ์ 2015)
การแก้ไขและปรับปรุงต่างๆ
- เพิ่มการรองรับนาฬิกา Android Wear เทมเพลต
- แก้ไขการสร้างโปรเจ็กต์และโมดูลใหม่ให้รวม
res/mipmap
โฟลเดอร์สำหรับ ไอคอน Launcher ที่แบ่งตามความหนาแน่น โฟลเดอร์res/mipmap
เหล่านี้จะมาแทนที่โฟลเดอร์res/drawable
สำหรับไอคอน Launcher - อัปเดตไอคอน Launcher ให้มี
ดีไซน์ Material แต่มีรูปลักษณ์
ไอคอน Launcher ของ
xxxhdpi
- การตรวจสอบ Lint ที่เพิ่มและปรับปรุง สำหรับชุดค่าผสมของภูมิภาคและภาษา ไอคอน Launcher ชื่อทรัพยากร และเวอร์ชันทั่วไปอื่นๆ ปัญหาเกี่ยวกับโค้ด
- เพิ่มการรองรับแท็กภาษาแนวทางปฏิบัติที่ดีที่สุด (BCP) 47
Android Studio v1.0.1 (ธันวาคม 2014)
การแก้ไขและปรับปรุงต่างๆ
- แก้ไขปัญหาการล็อกไฟล์ AVD Manager และ device.xml
- แก้ไขบันทึกโปรแกรมจำลองในระบบ Windows
- แก้ไขปัญหาการสร้าง AVD ด้วย Android Studio และ Android SDK ที่ติดตั้งในไดรฟ์ต่างๆ ในระบบ Windows
- ตั้งค่าเวอร์ชันการอัปเดตเริ่มต้นสำหรับการดาวน์โหลดใหม่เป็นเสถียร หากคุณติดตั้ง Android Studio เวอร์ชัน 1.0.0 และต้องการที่จะใช้การอัปเดตเวอร์ชันที่เสถียรและพร้อมใช้งานจริง ให้ใช้ไฟล์ > การตั้งค่า > การอัปเดตเพื่อเปลี่ยนเป็นช่องทางการอัปเดตที่เสถียร
Android Studio v1.0 (ธันวาคม 2014)
การเปิดตัว Android Studio เป็นครั้งแรก
Android Studio v0.8.14 (ตุลาคม 2014)
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.8.6 (สิงหาคม 2014)
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.8.0 (มิถุนายน 2014)
เพิ่มการรองรับโปรเจ็กต์ Android Wear
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.5.2 (พฤษภาคม 2014)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.4.6 (มีนาคม 2014)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.4.2 (ม.ค. 2014)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.3.2 (ต.ค. 2013)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.2.x (กรกฎาคม 2013)
- ผสานรวมในการเปลี่ยนแปลงฐานของโค้ด IntelliJ ล่าสุดแล้ว รวมถึงการแก้ไขปัญหาที่ผู้ใช้ Studio รายงาน เช่น การปรับแต่งขนาดแบบอักษรและการแสดงแบบอักษรของ Linux
- ปลั๊กอิน Android Gradle อัปเดตเป็น 0.5.0
ข้อควรระวัง: เวอร์ชันใหม่นี้ใช้ร่วมกับเวอร์ชันเก่าไม่ได้ เมื่อเปิดโปรเจ็กต์ที่ใช้ปลั๊กอินเวอร์ชันเก่า Studio จะแสดงข้อผิดพลาด โดยพูดว่า Gradle <project_name> รีเฟรชโปรเจ็กต์ไม่สำเร็จ
ปลั๊กอิน Gradle ที่อัปเดตแล้วมีการเปลี่ยนแปลงต่อไปนี้
- แก้ไขโมเดล IDE ให้รวมไฟล์เอาต์พุตแม้ว่าจะปรับแต่งผ่าน DSL ก็ตาม และ
แก้ไข DSL เพื่อรับ/ตั้งค่าไฟล์เอาต์พุตในออบเจ็กต์รูปแบบเพื่อที่จะไม่ต้อง
ใช้
variant.packageApplication or variant.zipAlign
- แก้ไขความละเอียดของทรัพยากร Dependency แล้ว เราจึงแก้ปัญหาการรวมกันของ (การกำหนดค่าเริ่มต้น ประเภทบิลด์ รสต่างๆ รวมกันแทนที่จะแยกกัน
- ทรัพยากร Dependency ที่กำหนดตายตัวสำหรับการทดสอบของโปรเจ็กต์ไลบรารีเพื่อรวมทรัพยากร Dependency ทั้งหมดอย่างถูกต้อง ของไลบรารีก็ได้
- กรณีแบบตายตัวที่ทรัพยากร Dependency 2 รายการมีชื่อ Leaf เหมือนกัน
- แก้ปัญหาการใช้ไฟล์กฎ Proguard กับเวอร์ชันไม่ได้
บันทึกประจำรุ่นของปลั๊กอิน Gradle ทั้งหมดอยู่ที่ http://tools.android.com/tech-docs/new-build-system
- แก้ไขโมเดล IDE ให้รวมไฟล์เอาต์พุตแม้ว่าจะปรับแต่งผ่าน DSL ก็ตาม และ
แก้ไข DSL เพื่อรับ/ตั้งค่าไฟล์เอาต์พุตในออบเจ็กต์รูปแบบเพื่อที่จะไม่ต้อง
ใช้
- ข้อผิดพลาด Gradle จาก aapt จะไม่ชี้ไปยังไฟล์เอาต์พุตที่ผสานไว้ในโฟลเดอร์บิลด์/ อีกต่อไป ชี้กลับไปยังตำแหน่งต้นทางจริง
- บิลด์คู่ขนาน ตอนนี้คุณใช้การบิลด์แบบขนานของ Gradle ได้แล้ว โปรดทราบว่าการสร้างแบบขนานยังอยู่ใน "ระยะทดลอง" (ดูเอกสารประกอบของ Gradle) ฟีเจอร์นี้ปิดอยู่โดยค่าเริ่มต้น หากต้องการเปิดใช้ ให้ไปที่ ค่ากำหนด > Compiler และเลือกช่อง Compile โมดูลอิสระพร้อมกัน
- การทำงานเพิ่มเติมกับที่เก็บทรัพยากรใหม่ซึ่งใช้สำหรับการแสดงผลเลย์เอาต์และทรัพยากร
ในเครื่องมือแก้ไข และอื่นๆ เช่น
- การสนับสนุนพื้นฐานสำหรับทรัพยากร Dependency ของไลบรารี .aar (เช่น การใช้ไลบรารีโดยไม่มีสำเนาในตัวเครื่องของ แหล่งที่มา) ยังใช้สำหรับการตรวจสอบและการไปยังส่วนต่างๆ ใน XML ของทรัพยากรในตัวแก้ไขแหล่งที่มาไม่ได้
- การตรวจจับรอบในการอ้างอิงทรัพยากร
- ตอนนี้เอกสารประกอบด่วน (F1) ซึ่งแสดงคำแปลทั้งหมดของสตริงใต้เคอร์เซอร์จะแสดงการวางซ้อนทรัพยากรทั้งหมดจาก Flavour และประเภทบิลด์ Gradle ต่างๆ รวมถึงไลบรารีด้วย มีการแสดงรายการตามลำดับการวางซ้อนทรัพยากรแบบย้อนกลับ โดยมีขีดทับบน เวอร์ชันของสตริงที่ถูกมาสก์
- การแก้ไขเพื่อจัดการการอัปเดตทรัพยากรที่ผสานรวมเมื่อชุดทรัพยากร Dependency ของโมดูล เปลี่ยน
- การแก้ไขการแสดงผล XML เพื่อจัดการการประกาศเอนทิตีอักขระและ XML และ Unicode อย่างเหมาะสม หลบหนี
- รองรับการบันทึกภาพหน้าจอสำหรับหน้าต่างแสดงตัวอย่างเลย์เอาต์และหน้าต่างเครื่องมือแก้ไขเลย์เอาต์
- แก้ไขข้อบกพร่องของเทมเพลต
- แก้ไขข้อบกพร่องของ Lint
- การแก้ไขต่างๆ ในรายงานข้อขัดข้อง ขอขอบคุณและโปรดส่งรายงานข้อขัดข้องต่อไป
Android Studio v0.1.x (พฤษภาคม 2013)
- การแก้ไขข้อบกพร่องหลายรายการ รวมถึงการแก้ไขปัญหาการติดตั้ง Windows ที่พบบ่อย
ปลั๊กอิน Android Gradle รุ่นก่อนหน้า
3.6.0 (กุมภาพันธ์ 2020)
ปลั๊กอิน Android เวอร์ชันนี้ต้องการสิ่งต่อไปนี้
-
Gradle 5.6.4 หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่านส่วนเกี่ยวกับการอัปเดต Gradle
การอัปเดตย่อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นใหม่และ ฟีเจอร์สำหรับ ระดับการมองเห็นแพ็กเกจ ใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
ฟีเจอร์ใหม่
ปลั๊กอิน Android Gradle เวอร์ชันนี้ประกอบด้วย ใหม่ๆ
ดูการเชื่อมโยง
การเชื่อมโยงการแสดงผลจะให้ความปลอดภัยขณะคอมไพล์เมื่ออ้างอิงมุมมองใน
โค้ดของคุณ ขณะนี้คุณสามารถแทนที่ findViewById()
ด้วย
การอ้างอิงคลาสการเชื่อมโยงที่สร้างขึ้นโดยอัตโนมัติ ในการเริ่มใช้การเชื่อมโยงการแสดงผล
ใส่ข้อมูลต่อไปนี้ในไฟล์ build.gradle
ของแต่ละโมดูล
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
หากต้องการเรียนรู้เพิ่มเติม โปรดอ่านหัวข้อ มุมมอง การเชื่อมโยงเอกสารประกอบ
การสนับสนุนปลั๊กอิน Maven Publish
ปลั๊กอิน Android Gradle มีการสนับสนุนสำหรับ ผู้เชี่ยวชาญ เผยแพร่ปลั๊กอิน Gradle ซึ่งช่วยให้คุณเผยแพร่อาร์ติแฟกต์ของบิลด์ไปยัง ที่เก็บ Apache Maven ปลั๊กอิน Android Gradle สร้าง คอมโพเนนต์ สำหรับอาร์ติแฟกต์ตัวแปรของบิลด์แต่ละรายการในแอปหรือโมดูลไลบรารี คุณสามารถ ใช้เพื่อปรับแต่ง สื่อเผยแพร่ ไปยังที่เก็บของ Maven
ดูข้อมูลเพิ่มเติมได้ที่หน้าวิธี ใช้ Maven Publish Plugin
เครื่องมือจัดแพ็กเกจเริ่มต้นใหม่
เมื่อสร้างแอปเวอร์ชันแก้ไขข้อบกพร่อง ปลั๊กอินจะใช้เครื่องมือแพ็กเกจใหม่ที่เรียกว่า zipflinger เพื่อสร้าง APK เครื่องมือใหม่นี้จะช่วยปรับปรุงความเร็วในการสร้าง หากเครื่องมือทำแพ็กเกจใหม่
ไม่ทำงานตามที่คุณคาดหวัง
โปรดรายงานข้อบกพร่อง คุณเปลี่ยนกลับไปใช้เครื่องมือแพ็กเกจแบบเก่าได้โดยใส่ข้อมูลต่อไปนี้ในไฟล์ gradle.properties
android.useNewApkCreator=false
การระบุแหล่งที่มาของบิลด์เนทีฟ
ตอนนี้คุณกำหนดระยะเวลาที่ Clang ใช้ในการสร้างและลิงก์ไฟล์ C/C++ แต่ละไฟล์ในโปรเจ็กต์ได้แล้ว Gradle แสดงผลลัพธ์เป็นการติดตาม Chrome ได้ ที่มีการประทับเวลาสำหรับเหตุการณ์คอมไพเลอร์เหล่านี้เพื่อให้คุณสามารถ เข้าใจเวลาที่ต้องใช้ในการสร้างโปรเจ็กต์ เพื่อส่งออกบิลด์นี้ โปรดทำตามขั้นตอนต่อไปนี้
-
เพิ่มแฟล็ก
-Pandroid.enableProfileJson=true
เมื่อ กำลังใช้บิลด์ Gradle เช่นgradlew assembleDebug -Pandroid.enableProfileJson=true
-
เปิดเบราว์เซอร์ Chrome และพิมพ์
chrome://tracing
แถบค้นหา -
คลิกปุ่มโหลดและไปที่
<var>project-root</var>/build/android-profile
เพื่อค้นหาไฟล์ ไฟล์ได้รับการตั้งชื่อแล้วprofile-<var>timestamp</var>.json.gz
คุณสามารถดูข้อมูลการระบุแหล่งที่มาของบิลด์เนทีฟใกล้กับด้านบนของ ผู้ดู:
การเปลี่ยนแปลงลักษณะการทำงาน
เมื่อใช้ปลั๊กอินเวอร์ชันนี้ คุณอาจพบสิ่งต่อไปนี้ การเปลี่ยนแปลงของลักษณะการทำงาน
ไลบรารีเนทีฟได้รับการบีบอัดโดย ค่าเริ่มต้น
เมื่อคุณสร้างแอป ปลั๊กอินจะตั้งค่า
extractNativeLibs
ถึง "false"
ตาม
"ค่าเริ่มต้น" กล่าวคือ ไลบรารีเนทีฟจะมีการจัดแนวตามหน้าและจัดแพ็กเกจ
ไม่ได้บีบอัด แม้ว่าวิธีนี้จะทำให้ไฟล์ที่อัปโหลดมีขนาดใหญ่ขึ้น แต่ผู้ใช้จะได้รับประโยชน์ต่อไปนี้
- ขนาดการติดตั้งแอปเล็กลงเนื่องจากแพลตฟอร์มเข้าถึงโฆษณาเนทีฟได้ ไลบรารีโดยตรงจาก APK ที่ติดตั้ง โดยไม่ต้องสร้างสำเนาของ ห้องสมุด
- ขนาดการดาวน์โหลดเล็กลงเนื่องจากโดยทั่วไปการบีบอัดของ Play Store ดีขึ้นเมื่อรวมไลบรารีแบบเนทีฟที่ไม่ได้บีบอัดไว้ใน APK หรือ Android App Bundle
หากต้องการให้ปลั๊กอิน Android Gradle บีบอัดแพ็กเกจแทน ไลบรารีแบบเนทีฟ ซึ่งรวมถึงรายการต่อไปนี้ในไฟล์ Manifest ของแอป
<application
android:extractNativeLibs="true"
... >
</application>
หมายเหตุ: ไฟล์ Manifest ของ extractNativeLibs
มีการแทนที่แอตทริบิวต์ด้วย useLegacyPackaging
DSL
ตัวเลือก ดูข้อมูลเพิ่มเติมได้ในบันทึกประจำรุ่น
ใช้ DSL เพื่อบีบอัดแพ็กเกจ
ไลบรารีแบบเนทีฟ
เวอร์ชัน NDK เริ่มต้น
หากคุณดาวน์โหลด NDK หลายเวอร์ชัน ปลั๊กอิน Android Gradle
จะเลือกเวอร์ชันเริ่มต้นเพื่อคอมไพล์ไฟล์ซอร์สโค้ด
ก่อนหน้านี้ปลั๊กอินจะเลือก NDK เวอร์ชันล่าสุดที่ดาวน์โหลด
ใช้พร็อพเพอร์ตี้ android.ndkVersion
ในโมดูล
build.gradle
เพื่อลบล้างค่าเริ่มต้นที่ปลั๊กอินเลือก
การสร้างคลาส R อย่างง่าย
ปลั๊กอิน Android Gradle ลดความซับซ้อนของเส้นทางการคอมไพล์ด้วยการสร้างคลาส R เพียงคลาสเดียวสําหรับโมดูลไลบรารีแต่ละรายการในโปรเจ็กต์ และแชร์คลาส R เหล่านั้นกับโมดูล Dependency อื่นๆ การเพิ่มประสิทธิภาพนี้ จะทำให้สร้างได้เร็วขึ้น แต่คุณต้องเก็บ ดังต่อไปนี้
- เนื่องจากคอมไพเลอร์แชร์คลาส R กับโมดูลอัปสตรีม ทรัพยากร Dependency จำเป็นที่แต่ละโมดูลในโปรเจ็กต์ของคุณต้องใช้ ชื่อแพ็กเกจที่ไม่ซ้ำกัน
- ระดับการเข้าถึงคลาส R ของไลบรารีสำหรับทรัพยากร Dependency อื่นๆ ของโปรเจ็กต์จะกำหนดโดยการกำหนดค่าที่ใช้รวมไลบรารีเป็น Dependency ตัวอย่างเช่น หากไลบรารี ก มีไลบรารี ข เป็นข้อกําหนด "api" ไลบรารี ก และไลบรารีอื่นๆ ที่ขึ้นกับไลบรารี ก จะมีสิทธิ์เข้าถึงคลาส R ของไลบรารี ข แต่ไลบรารีอื่นๆ อาจไม่มี
สิทธิ์เข้าถึงคลาส R ของไลบรารี B หากไลบรารี ก ใช้การกำหนดค่า
implementation
ความเกี่ยวข้อง เพื่อเรียนรู้ เพิ่มเติม อ่านเกี่ยวกับ การอ้างอิง การกำหนดค่า
นำทรัพยากรที่หายไปออกจากค่าเริ่มต้น การกำหนดค่า
สำหรับโมดูลห้องสมุด หากคุณรวมทรัพยากรสำหรับภาษาที่คุณ
ห้ามรวมอยู่ในชุดทรัพยากรเริ่มต้น เช่น หากใส่
hello_world
เป็นทรัพยากรสตริงใน
/values-es/strings.xml
แต่คุณไม่ได้กําหนดทรัพยากรนั้นใน
/values/strings.xml
- ปลั๊กอิน Android Gradle จะไม่มีให้บริการอีกต่อไป
รวมทรัพยากรนั้นเมื่อคอมไพล์โปรเจ็กต์ การเปลี่ยนแปลงลักษณะการทำงานนี้
น่าจะทำให้ข้อยกเว้นรันไทม์ลดลง Resource Not Found
และปรับปรุงความเร็วของ
การสร้างแอป
ตอนนี้ D8 เป็นไปตามนโยบายการเก็บรักษาข้อมูลของชั้นเรียนแล้ว สำหรับคำอธิบายประกอบ
เมื่อคอมไพล์แอป ตอนนี้ D8 จะทำงานตามเดิมเมื่อคำอธิบายประกอบใช้ CLASS นโยบายการเก็บรักษา และคำอธิบายประกอบเหล่านั้นจะไม่มีให้ใช้งานอีกต่อไปที่ รันไทม์ ลักษณะการทำงานนี้ก็เกิดขึ้นได้เช่นกันเมื่อตั้งค่า SDK เป้าหมายของแอปเป็น API ระดับ 23 ซึ่งก่อนหน้านี้ได้อนุญาตให้เข้าถึงคำอธิบายประกอบเหล่านี้ระหว่าง รันไทม์เมื่อคอมไพล์แอปโดยใช้ Android Gradle เวอร์ชันเก่า และ D8
การเปลี่ยนแปลงลักษณะการทำงานอื่นๆ
-
aaptOptions.noCompress
จะไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ในแพลตฟอร์มทั้งหมดอีกต่อไป (ทั้งสำหรับ APK และ App Bundle) และจะยึดตามเส้นทางที่ใช้อักขระตัวพิมพ์ใหญ่ -
ขณะนี้การเชื่อมโยงข้อมูลจะเป็นแบบเพิ่มขึ้นเรื่อยๆ โดยค่าเริ่มต้น ดูข้อมูลเพิ่มเติมได้ที่ ปัญหา #110061530
-
ตอนนี้การทดสอบ 1 หน่วยทั้งหมด รวมถึงการทดสอบ 1 หน่วยของ Roboelectric แคชได้ทั้งหมดแล้ว ดูข้อมูลเพิ่มเติมได้ที่ ปัญหา #115873047
การแก้ไขข้อบกพร่อง
ปลั๊กอิน Android Gradle เวอร์ชันนี้มีข้อบกพร่องดังนี้ การแก้ไข:
- ปัจจุบัน การทดสอบหน่วย Robolectric ได้รับการสนับสนุนในโมดูลไลบรารีที่ใช้ การผูกข้อมูล ดูข้อมูลเพิ่มเติมได้ที่ ปัญหา #126775542
- ตอนนี้คุณสามารถเรียกใช้
connectedAndroidTest
งานใน หลายโมดูลขณะที่ Gradle ขนาน โหมดการดำเนินการเปิดอยู่
ปัญหาที่ทราบ
ส่วนนี้อธิบายปัญหาที่ทราบในปลั๊กอิน Android Gradle 3.6.0
งาน Android Lint ทำงานช้า
Android Lint อาจใช้เวลานานขึ้นมากในการดำเนินการบางโปรเจ็กต์เนื่องจาก การถดถอยในโครงสร้างพื้นฐานการแยกวิเคราะห์ส่งผลให้การคำนวณช้าลง ของประเภทที่อนุมานสำหรับ lambda ในการสร้างโค้ดบางอย่าง
มีการรายงานปัญหาเป็น ข้อบกพร่องใน IDEA และจะได้รับการแก้ไขในปลั๊กอิน Android Gradle 4.0
ไม่มีคลาสไฟล์ Manifest {:#agp-missing-manifest}
หากแอปกำหนดสิทธิ์ที่กำหนดเองในไฟล์ Manifest โดยปกติแล้วปลั๊กอิน Gradle ของ Android จะสร้างคลาส Manifest.java
ที่มีสิทธิ์ที่กำหนดเองเป็นสตริงคงที่ แพ็กเกจปลั๊กอิน
คลาสนี้ได้ด้วยแอปของคุณ เพื่อให้
คุณสามารถอ้างอิงเนื้อหาเหล่านั้น
สิทธิ์ขณะรันไทม์
การสร้างคลาสไฟล์ Manifest เสียหายในปลั๊กอิน Android Gradle 3.6.0
หากคุณสร้างแอปโดยใช้ปลั๊กอินเวอร์ชันนี้ และปลั๊กอินอ้างอิงถึง
คลาสไฟล์ Manifest คุณอาจเห็นกลุ่ม ClassNotFoundException
ข้อยกเว้น ในการแก้ไขปัญหานี้ โปรดดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
-
อ้างอิงสิทธิ์ที่กำหนดเองตามชื่อที่สมบูรณ์ในตัวเอง ตัวอย่างเช่น
"com.example.myapp.permission.DEADLY_ACTIVITY"
-
ให้นิยามค่าคงที่ของคุณเองดังที่แสดงด้านล่าง
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (สิงหาคม 2019)
ปลั๊กอิน Android Gradle 3.5.0 พร้อมกับ Android Studio 3.5 เป็นรุ่นหลักและผลลัพธ์ของ Project Marble ซึ่งมุ่งเน้นที่การปรับปรุง 3 ด้านหลักของเครื่องมือสำหรับนักพัฒนาแอป Android ได้แก่ ประสิทธิภาพของระบบ การปรับปรุงฟีเจอร์ และการแก้ไขข้อบกพร่อง สิ่งที่น่าสังเกตคือการปรับปรุงความเร็วในการสร้างโปรเจ็กต์เป็นจุดสนใจหลักของการอัปเดตนี้
สำหรับข้อมูลเกี่ยวกับการอัปเดตเหล่านี้และการอัปเดตอื่นๆ ของ Project Marble โปรดอ่าน Android บล็อกโพสต์ของนักพัฒนาซอฟต์แวร์หรือส่วนด้านล่าง
ปลั๊กอิน Android เวอร์ชันนี้ต้องการสิ่งต่อไปนี้
-
Gradle 5.4.1 หากต้องการเรียนรู้เพิ่มเติม โปรดอ่านส่วนที่เกี่ยวกับ การอัปเดต Gradle
-
เครื่องมือสร้าง SDK 28.0.3 ขึ้นไป
การอัปเดตย่อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นใหม่และ ฟีเจอร์สำหรับ ระดับการมองเห็นแพ็กเกจ ใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
3.5.3 (ธันวาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.5.3 และมีข้อบกพร่องต่างๆ การแก้ไขและปรับปรุงประสิทธิภาพ
3.5.2 (พฤศจิกายน 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.5.2 รวมถึงมีการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพต่างๆ หากต้องการดูรายการข้อบกพร่องที่ควรทราบ โปรดอ่านโพสต์ที่เกี่ยวข้องในบล็อกการอัปเดตรุ่น
3.5.1 (ตุลาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.5.1 และมีข้อบกพร่องต่างๆ การแก้ไขและปรับปรุงประสิทธิภาพ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่ชัดเจน ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
การประมวลผลคำอธิบายประกอบที่เพิ่มขึ้น
การผูกข้อมูล
ตัวประมวลผลคำอธิบายประกอบรองรับ
การประมวลผลคำอธิบายประกอบที่เพิ่มขึ้น
หากคุณตั้งค่า android.databinding.incremental=true
ใน
gradle.properties
ไฟล์ การเพิ่มประสิทธิภาพนี้ส่งผลให้ประสิทธิภาพของบิลด์เพิ่มขึ้น ดูรายการประมวลผลคําอธิบายประกอบแบบเพิ่มประสิทธิภาพทั้งหมดได้ในตารางตัวประมวลผลคําอธิบายประกอบแบบเพิ่ม
นอกจากนี้ KAPT 1.3.30 ขึ้นไปยังรองรับคำอธิบายประกอบแบบเพิ่มขึ้นเรื่อยๆ
ผู้ประมวลผลข้อมูล ซึ่งคุณสามารถเปิดใช้โดยการรวม kapt.incremental.apt=true
ไว้ใน
ไฟล์ gradle.properties
การทดสอบ 1 หน่วยที่แคชได้
เมื่อคุณเปิดใช้การทดสอบ 1 หน่วยเพื่อใช้ทรัพยากร เนื้อหา และของ Android
ไฟล์ Manifest ตามการตั้งค่า
includeAndroidResources
เป็น true
ปลั๊กอิน Android Gradle จะสร้างไฟล์การกำหนดค่าทดสอบ
มีเส้นทางสัมบูรณ์ ซึ่งจะทำลายความสามารถในการระบุตำแหน่งใหม่ของแคช คุณสามารถแนะนำวิธีการ
ปลั๊กอินเพื่อสร้างการกำหนดค่าการทดสอบโดยใช้เส้นทางแบบสัมพัทธ์
ช่วยให้งาน AndroidUnitTest
สามารถแคชได้อย่างสมบูรณ์
โดยรวมรายการต่อไปนี้ในไฟล์ gradle.properties
ของคุณ
android.testConfig.useRelativePath = true
ปัญหาที่ทราบ
-
เมื่อใช้ปลั๊กอิน Kotlin Gradle 1.3.31 หรือเวอร์ชันก่อนหน้า คุณอาจเห็น คำเตือนต่อไปนี้เมื่อสร้างหรือซิงค์โปรเจ็กต์ของคุณ:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
หากต้องการแก้ไขปัญหานี้ ให้อัปเกรดปลั๊กอินเป็นเวอร์ชัน 1.3.40 ขึ้นไป
3.4.0 (เมษายน 2019)
ปลั๊กอิน Android เวอร์ชันนี้ต้องการสิ่งต่อไปนี้
-
แกรเดิล 5.1.1 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่ส่วนการอัปเดต Gradle
หมายเหตุ: เมื่อใช้ Gradle 5.0 ขึ้นไป ฟิลด์ ขนาดฮีปหน่วยความจำของ Gradle เดมอนเริ่มต้น ลดลงจาก 1 GB เป็น 512 MB ซึ่งอาจส่งผลให้ประสิทธิภาพของบิลด์ การถดถอย หากต้องการลบล้างการตั้งค่าเริ่มต้นนี้ ระบุขนาดฮีปของ Gradle แบบ Daemon ในไฟล์
gradle.properties
ของโปรเจ็กต์ -
เครื่องมือสร้าง SDK 28.0.3 ขึ้นไป
การอัปเดตย่อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นใหม่และ ฟีเจอร์สำหรับ ระดับการมองเห็นแพ็กเกจ ใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
3.4.2 (กรกฎาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.4.2 และมีข้อบกพร่องต่างๆ การแก้ไขและปรับปรุงประสิทธิภาพ หากต้องการดูรายการข้อบกพร่องที่ควรทราบ โปรดอ่านโพสต์ที่เกี่ยวข้องในบล็อกการอัปเดตรุ่น
3.4.1 (พฤษภาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.4.1 รวมถึงมีการแก้ไขข้อบกพร่องและการปรับปรุงประสิทธิภาพต่างๆ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่ชัดเจน ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
ฟีเจอร์ใหม่
-
การกำหนดค่าใหม่สำหรับทรัพยากรที่ต้องพึ่งพาในการตรวจสอบโปรแกรมวิเคราะห์โค้ดภาษาจาวา:
lintChecks
มีการเปลี่ยนแปลงลักษณะการทำงานและมีการเปิดตัวการกำหนดค่าใหม่สำหรับทรัพยากรที่ต้องพึ่งพาอย่างlintPublish
เพื่อให้คุณควบคุมได้มากขึ้นว่าจะรวมการตรวจสอบโปรแกรมวิเคราะห์โค้ดภาษาจาวารายการใดไว้ในไลบรารี Android-
lintChecks
: นี่คือการกำหนดค่าที่มีอยู่ซึ่ง ที่คุณควรใช้สำหรับการตรวจสอบ Lint ที่คุณต้องการให้เรียกใช้เมื่อสร้าง โปรเจ็กต์ของคุณในเครื่อง หากก่อนหน้านี้คุณใช้ การกำหนดค่าทรัพยากร Dependency ของlintChecks
ที่จะรวม Lint ตรวจสอบใน AAR ที่เผยแพร่ คุณจะต้องย้ายข้อมูลทรัพยากร Dependency เหล่านั้น เพื่อใช้การกำหนดค่าlintPublish
ใหม่แทน ดังที่อธิบายไว้ด้านล่าง -
lintPublish
: ใช้การกําหนดค่าใหม่นี้ในโปรเจ็กต์ไลบรารีสําหรับการตรวจสอบ Lint ที่ต้องการรวมไว้ใน AAR ที่เผยแพร่ ดังที่แสดงด้านล่าง ซึ่งหมายความว่าโปรเจ็กต์ที่ใช้ไลบรารีของคุณ ให้ใช้การตรวจสอบ Lint เหล่านั้นด้วย
ตัวอย่างโค้ดต่อไปนี้ใช้การกำหนดค่าทรัพยากร Dependency ทั้ง 2 รายการใน โครงการไลบรารี Android ในเครื่อง
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
โดยทั่วไปงานบรรจุภัณฑ์และการรับรองควรเห็นงานสร้างโดยรวม เร็วขึ้น หากสังเกตเห็นประสิทธิภาพที่ลดลงที่เกี่ยวข้องกับงานเหล่านี้ โปรดรายงานข้อบกพร่อง
-
การเปลี่ยนแปลงลักษณะการทำงาน
-
การเลิกใช้งานฟีเจอร์ปลั๊กอิน Android Instant Apps คำเตือน: หากคุณยังใช้
com.android.feature
เพื่อสร้าง Instant App ปลั๊กอิน Android Gradle 3.4.0 จะแสดงคำเตือนการเลิกใช้งาน โปรดย้ายข้อมูล Instant App ของคุณไปใช้ปลั๊กอินฟีเจอร์แบบไดนามิกเพื่อให้คุณยังคงสร้าง Instant App ได้ในปลั๊กอินเวอร์ชันในอนาคต ซึ่งจะช่วยให้คุณเผยแพร่ทั้งประสบการณ์การใช้งานแบบติดตั้งและแบบใช้งานได้ทันทีจาก Android App Bundle รายการเดียวได้ -
เปิดใช้ R8 โดยค่าเริ่มต้น: R8 รวมการกรอง Sugar, การลดขนาด, การสร้างความสับสน, การเพิ่มประสิทธิภาพ และการแปลงเป็น Dex ไว้ในขั้นตอนเดียว ซึ่งส่งผลให้ประสิทธิภาพของบิลด์ดีขึ้นอย่างเห็นได้ชัด R8 เปิดตัวในปลั๊กอิน Android Gradle 3.3.0 และ เปิดใช้โดยค่าเริ่มต้นสำหรับทั้งแอปและโปรเจ็กต์ไลบรารี Android แล้ว โดยใช้ปลั๊กอิน 3.4.0 ขึ้นไป
รูปภาพด้านล่างแสดงภาพรวมระดับสูงของกระบวนการคอมไพล์ ก่อนที่จะมีการเปิดตัว R8

ตอนนี้มี R8, การลดน้ำตาล, ลดขนาด, ปรับให้ยากต่อการอ่าน (Obfuscate), เพิ่มประสิทธิภาพ และ Dexing (D8) ก็เสร็จสมบูรณ์ในขั้นตอนเดียวตามที่แสดงไว้ด้านล่าง

โปรดทราบว่า R8 ออกแบบมาให้ทำงานร่วมกับกฎ ProGuard ที่มีอยู่ คุณจึงอาจไม่ต้องดำเนินการใดๆ เพื่อรับประโยชน์จาก R8 อย่างไรก็ตาม เนื่องจากเป็นเทคโนโลยีที่แตกต่างจาก ProGuard ซึ่งออกแบบมาเพื่อโปรเจ็กต์ Android โดยเฉพาะ การลดขนาดและการเพิ่มประสิทธิภาพอาจส่งผลให้มีการนำโค้ดออกซึ่ง ProGuard อาจจะไม่นำออก ดังนั้น ในสถานการณ์ที่ไม่ค่อยเกิดขึ้นนี้ คุณอาจต้อง เพื่อเพิ่มกฎอื่นๆ เพื่อเก็บโค้ดนั้นไว้ในเอาต์พุตของบิลด์
หากพบปัญหาในการใช้ R8 โปรดอ่าน
คําถามที่พบบ่อยเกี่ยวกับความเข้ากันได้ของ R8
เพื่อดูว่ามีวิธีแก้ปัญหาของคุณหรือไม่ หากไม่มีบันทึกวิธีแก้ปัญหา โปรดรายงานข้อบกพร่อง
คุณสามารถปิดใช้ R8 ได้โดยเพิ่มบรรทัดใดบรรทัดหนึ่งต่อไปนี้ลงในไฟล์ gradle.properties
ของโปรเจ็กต์
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
หมายเหตุ: สำหรับประเภทบิลด์หนึ่งๆ หากคุณตั้งค่า useProguard
เป็น false
ในไฟล์ build.gradle
ของโมดูลแอป ปลั๊กอิน Android Gradle จะใช้ R8 เพื่อลดขนาดโค้ดของแอปสำหรับประเภทบิลด์นั้น ไม่ว่าคุณจะปิดใช้ R8 ในไฟล์ gradle.properties
ของโปรเจ็กต์หรือไม่ก็ตาม
-
ndkCompile
เลิกใช้งานแล้ว: ตอนนี้คุณจะได้รับข้อผิดพลาดในการสร้างหากพยายามใช้ndkBuild
เพื่อคอมไพล์ไลบรารีแบบเนทีฟ คุณควรใช้ CMake หรือ ndk-build เพื่อเพิ่มโค้ด C และ C++ ลงในโปรเจ็กต์แทน
ปัญหาที่ทราบ
-
ปัจจุบันไม่มีการบังคับใช้การใช้ชื่อแพ็กเกจที่ไม่ซ้ำกันอย่างถูกต้อง แต่จะเข้มงวดมากขึ้นกับปลั๊กอินรุ่นต่อๆ ไป บน Android ปลั๊กอิน Gradle เวอร์ชัน 3.4.0 คุณสามารถเลือกใช้เพื่อตรวจสอบว่า โปรเจ็กต์ประกาศชื่อแพ็กเกจที่ยอมรับได้โดยการเพิ่มบรรทัดด้านล่างไปยัง ไฟล์
gradle.properties
android.uniquePackageNames = true
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าชื่อแพ็กเกจผ่าน Android Gradle ปลั๊กอิน โปรดดู ตั้งค่ารหัสแอปพลิเคชัน
3.3.0 (มกราคม 2019)
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
-
Gradle 4.10.1 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่ส่วนการอัปเดต Gradle
หมายเหตุ: เมื่อใช้ Gradle 5.0 ขึ้นไป ฟิลด์ ค่าเริ่มต้น ขนาดฮีปหน่วยความจำของ Gradle เดมอนลดลงจาก 1 GB เป็น 512 MB ช่วงเวลานี้ อาจส่งผลให้ประสิทธิภาพของบิลด์ถดถอย วิธีลบล้างค่าเริ่มต้นนี้ การตั้งค่า ระบุ ขนาดฮีปของ Gradle เดมอนในโปรเจ็กต์ของคุณ
gradle.properties
ไฟล์ -
SDK Build Tools 28.0.3 ขึ้นไป
การอัปเดตเล็กน้อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นและฟีเจอร์ใหม่สำหรับระดับการเข้าถึงแพ็กเกจใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
3.3.2 (มีนาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.3.2 และมีข้อบกพร่องต่างๆ การแก้ไขและปรับปรุงประสิทธิภาพ ถ้าต้องการดูรายการการแก้ไขข้อบกพร่องที่ชัดเจน ให้อ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเผยแพร่
3.3.1 (กุมภาพันธ์ 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.3.1 และมีข้อบกพร่องต่างๆ การแก้ไขและปรับปรุงประสิทธิภาพ
ฟีเจอร์ใหม่
-
การซิงค์ classpath ที่ได้รับการปรับปรุง: เมื่อแก้ไขปัญหานี้ ที่ใช้รันไทม์และคอมไพล์เส้นทางคลาสเวลา ซึ่งเป็นระบบ Android ปลั๊กอิน Gradle พยายามแก้ไขข้อขัดแย้งของเวอร์ชันดาวน์สตรีมสำหรับ ทรัพยากร Dependency ที่ปรากฏในหลายคลาส
ตัวอย่างเช่น หากคลาสพาธรันไทม์มีไลบรารี A เวอร์ชัน 2.0 และ compile classpath มีไลบรารี A เวอร์ชัน 1.0 ปลั๊กอินโดยอัตโนมัติ อัปเดตทรัพยากร Dependency ในคลาสพาธคอมไพล์ไปยังไลบรารี A เวอร์ชัน 2.0 เป็น เพื่อหลีกเลี่ยงข้อผิดพลาด
แต่หากคลาสพาธรันไทม์มีไลบรารี A เวอร์ชัน 1.0 และ คอมไพล์มีไลบรารี A เวอร์ชัน 2.0 แต่ปลั๊กอินจะไม่ปรับลดรุ่น ขึ้นอยู่กับคลาสพาธคอมไพล์ไปยังไลบรารี A เวอร์ชัน 1.0 คุณจึงจะได้รับ ข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่แก้ไขความขัดแย้งระหว่าง classpath
-
การคอมไพล์ Java แบบเพิ่มประสิทธิภาพเมื่อใช้โปรแกรมประมวลผลคำอธิบายประกอบที่ปรับปรุงแล้ว: การอัปเดตนี้ช่วยลดเวลาในการสร้างโดยปรับปรุงการรองรับการคอมไพล์ Java แบบเพิ่มประสิทธิภาพเมื่อใช้โปรแกรมประมวลผลคำอธิบายประกอบ
หมายเหตุ: ฟีเจอร์นี้ใช้ได้กับ Gradle 4.10.1 ขึ้นไป ยกเว้น Gradle 5.1 เนื่องจาก Gradle ฉบับ 8194
-
สำหรับโปรเจ็กต์ที่ใช้ Kapt (โปรเจ็กต์ที่ใช้ Kotlin ส่วนใหญ่และ โปรเจ็กต์แบบไฮบริดของ Kotlin-Java): การคอมไพล์ Java ที่เพิ่มขึ้น เปิดใช้งานอยู่ แม้ว่าคุณจะใช้การเชื่อมโยงข้อมูล หรือแลมบ์ดาย้อนยุค ปลั๊กอิน การประมวลผลคำอธิบายประกอบโดยงาน Kapt ยังไม่เพิ่มขึ้น
-
สำหรับโปรเจ็กต์ที่ไม่ได้ใช้ Kapt (โปรเจ็กต์ Java เท่านั้น): หากโปรแกรมประมวลผลคำอธิบายประกอบที่คุณใช้ทั้งหมดรองรับการประมวลผลคำอธิบายประกอบแบบเพิ่มทีละรายการ ระบบจะเปิดใช้การคอมไพล์ Java แบบเพิ่มทีละรายการโดยค่าเริ่มต้น เพื่อตรวจสอบการเพิ่ม การใช้งานตัวประมวลผลคำอธิบายประกอบ, การดู Gradle ฉบับ 5277
อย่างไรก็ตาม หากตัวประมวลผลคำอธิบายประกอบอย่างน้อยหนึ่งตัวไม่รองรับส่วนเพิ่ม ไม่มีการคอมไพล์ Java แบบเพิ่มขึ้นเรื่อยๆ แต่คุณสามารถใส่ Flag ต่อไปนี้ในไฟล์
gradle.properties
แทนได้android.enableSeparateAnnotationProcessing=true
เมื่อคุณใส่ Flag นี้ ปลั๊กอิน Gradle ของ Android จะเรียกใช้โปรแกรมประมวลผลคำอธิบายประกอบในภารกิจแยกต่างหาก และอนุญาตให้งานคอมไพล์ Java ทำงานแบบเพิ่มทีละรายการ
-
-
ข้อมูลการแก้ไขข้อบกพร่องที่ดีขึ้นเมื่อใช้ API ที่ล้าสมัย: เมื่อ ปลั๊กอินตรวจพบว่า ถ้าคุณกำลังใช้ API ที่ไม่ได้รับการสนับสนุนอีกต่อไป ตอนนี้สามารถให้ รายละเอียดเพิ่มเติมเพื่อช่วยให้คุณระบุที่ที่ใช้งาน API ได้ หากต้องการดูข้อมูลเพิ่มเติม คุณต้องใส่ข้อมูลต่อไปนี้ในไฟล์
gradle.properties
ของโปรเจ็กต์android.debug.obsoleteApi=true
นอกจากนี้คุณยังเปิดใช้การตั้งค่าสถานะได้โดยส่ง
-Pandroid.debug.obsoleteApi=true
จากบรรทัดคำสั่ง -
คุณสามารถเรียกใช้การทดสอบการใช้เครื่องมือในโมดูลฟีเจอร์ได้จากคำสั่ง บรรทัด
การเปลี่ยนแปลงลักษณะการทำงาน
-
การกำหนดค่างานแบบ Lazy Loading: ตอนนี้ปลั๊กอินจะใช้ API การสร้างงานใหม่ของ Gradle เพื่อหลีกเลี่ยงการเริ่มต้นและกำหนดค่างานที่ไม่จำเป็นต้องทำให้เสร็จ บิลด์ปัจจุบัน (หรืองานที่ไม่ได้อยู่ในกราฟงานการดำเนินการ) ตัวอย่างเช่น หาก คุณมีตัวแปรบิลด์หลายรายการ เช่น บิลด์ "รุ่น" และ "แก้ไขข้อบกพร่อง" ตัวแปร และคุณกำลังสร้างเวอร์ชัน “แก้ไขข้อบกพร่อง” ของแอป นั่นคือปลั๊กอิน หลีกเลี่ยงการเริ่มต้นและกำหนดค่างานสำหรับเวอร์ชัน "รุ่น" แอป
การเรียกใช้เมธอดเก่าบางรายการใน Variants API เช่น
variant.getJavaCompile()
อาจยังคงบังคับให้กําหนดค่างาน หากต้องการให้บิลด์เพิ่มประสิทธิภาพสำหรับการกำหนดค่าแบบ Lazy ให้เรียกใช้เมธอดใหม่ที่แสดงผลออบเจ็กต์ TaskProvider แทน เช่นvariant.getJavaCompileProvider()
หากคุณเรียกใช้งานบิลด์ที่กำหนดเอง โปรดดูวิธีปรับให้เข้ากับ API การสร้างงานใหม่ของ Gradle
-
สำหรับประเภทบิลด์หนึ่งๆ เมื่อตั้งค่า
useProguard false
ตอนนี้ปลั๊กอินจะใช้ R8 แทน ProGuard เพื่อลดขนาดและสร้างความสับสนให้กับโค้ดและทรัพยากรของแอป หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ R8 โปรดอ่าน บล็อกโพสต์นี้ จากบล็อกของนักพัฒนาแอป Android -
การสร้างคลาส R เร็วขึ้นสำหรับโปรเจ็กต์ไลบรารี: ก่อนหน้านี้ ปลั๊กอิน Android Gradle จะสร้างไฟล์
R.java
สำหรับแต่ละรายการที่ต้องใช้ของโปรเจ็กต์ จากนั้นจะคอมไพล์คลาส R เหล่านั้นควบคู่ไปกับคลาสอื่นๆ ของแอป ตอนนี้ปลั๊กอินจะสร้าง JAR ที่มีคลาส R ที่คอมไพล์ของแอปแล้ว โดยตรงโดยไม่ต้องสร้างคลาสR.java
ระดับกลางก่อน ช่วงเวลานี้ การเพิ่มประสิทธิภาพอาจปรับปรุงประสิทธิภาพบิลด์สำหรับโปรเจ็กต์ที่ รวมโปรเจ็กต์ย่อยและทรัพยากร Dependency ของไลบรารีหลายรายการ ตลอดจนปรับปรุงการจัดทำดัชนี ใน Android Studio -
เมื่อสร้าง Android App Bundle, APK ที่สร้างขึ้นจาก ตอนนี้ App Bundle ที่กำหนดเป้าหมายเป็น Android 6.0 (API ระดับ 23) ขึ้นไปประกอบด้วย เวอร์ชันที่ไม่มีการบีบอัดของไลบรารีเนทีฟโดยค่าเริ่มต้น การเพิ่มประสิทธิภาพนี้ ทำให้คุณไม่ต้องใช้อุปกรณ์ทำสำเนาไลบรารี ซึ่งจะช่วยลด ขนาดบนดิสก์ของแอป หากคุณต้องการปิดการใช้งานการเพิ่มประสิทธิภาพนี้ ให้เพิ่ม ต่อไปนี้ลงในไฟล์
gradle.properties
ของคุณ:android.bundle.enableUncompressedNativeLibs = false
-
ปลั๊กอินจะบังคับใช้เวอร์ชันขั้นต่ำของปลั๊กอินบุคคลที่สามบางรายการ
-
การซิงค์โปรเจ็กต์ตัวแปรเดียว: กำลังซิงค์โปรเจ็กต์ ด้วยการกำหนดค่าบิลด์เป็นขั้นตอนสำคัญที่ช่วยให้ Android Studio เข้าใจโครงสร้างของโปรเจ็กต์ อย่างไรก็ตาม กระบวนการนี้อาจเป็นไปได้ ใช้เวลานานสำหรับโปรเจ็กต์ขนาดใหญ่ หากโปรเจ็กต์ใช้ตัวแปรบิลด์หลายรายการ ตอนนี้คุณสามารถเพิ่มประสิทธิภาพการซิงค์โปรเจ็กต์ได้โดยจำกัดให้ซิงค์เฉพาะตัวแปรที่คุณเลือกอยู่ในปัจจุบัน
คุณต้องใช้ Android Studio 3.3 ขึ้นไปกับปลั๊กอิน Android Gradle 3.3.0 หรือสูงกว่าเพื่อเปิดใช้การเพิ่มประสิทธิภาพนี้ เมื่อมีคุณสมบัติตรงตามข้อกำหนดเหล่านี้ IDE จะแจ้งให้คุณเปิดใช้การเพิ่มประสิทธิภาพนี้เมื่อซิงค์โปรเจ็กต์ นอกจากนี้ ระบบจะเปิดใช้การเพิ่มประสิทธิภาพในโปรเจ็กต์ใหม่โดยค่าเริ่มต้นด้วย
หากต้องการเปิดใช้การเพิ่มประสิทธิภาพนี้ด้วยตนเอง ให้คลิก ไฟล์ > การตั้งค่า > ทดลอง > Gradle (Android Studio > ค่ากำหนด > ทดลอง > Gradle ใน Mac) แล้วเลือกช่องทำเครื่องหมายซิงค์เฉพาะตัวแปรที่ใช้งานอยู่
หมายเหตุ: การเพิ่มประสิทธิภาพนี้รองรับโปรเจ็กต์ที่มีภาษา Java และ C++ อย่างเต็มรูปแบบ และรองรับ Kotlin บางส่วน เมื่อเปิดใช้ การเพิ่มประสิทธิภาพสําหรับโปรเจ็กต์ที่มีเนื้อหา Kotlin แล้ว การซิงค์ Gradle จะกลับไปเป็น โดยใช้ตัวแปรแบบเต็มภายใน
-
การดาวน์โหลดแพ็กเกจ SDK ที่หายไปโดยอัตโนมัติ: ฟังก์ชันนี้มี เพื่อรองรับ NDK ดูข้อมูลเพิ่มเติมได้ที่หัวข้อดาวน์โหลดแพ็กเกจที่ขาดหายไปโดยอัตโนมัติด้วย Gradle
แก้ไขบั๊ก
-
ปลั๊กอิน Android Gradle 3.3.0 แก้ปัญหาต่อไปนี้
- กระบวนการสร้างที่เรียกใช้
android.support.v8.renderscript.RenderScript
instead of the AndroidX version, despite Jetifier being enabled - เกิดข้อขัดข้องเนื่องจาก
androidx-rs.jar
ซึ่งรวมอยู่ในแพ็กเกจแบบคงที่annotation.AnyRes
- เมื่อใช้ RenderScript คุณไม่จำเป็นต้องตั้งค่า Build Tools ด้วยตนเองอีกต่อไป
เวอร์ชันในไฟล์
build.gradle
ไฟล์
- กระบวนการสร้างที่เรียกใช้
3.2.0 (กันยายน 2018)
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
- Gradle 4.6 ขึ้นไป หากต้องการเรียนรู้เพิ่มเติม โปรดอ่านส่วนที่เกี่ยวกับ การอัปเดต Gradle
- เครื่องมือสร้าง SDK 28.0.3 ขึ้นไป
3.2.1 (ตุลาคม 2018)
การอัปเดตนี้ทำให้คุณไม่จําเป็นต้องระบุเวอร์ชันสําหรับเครื่องมือสร้าง SDK อีกต่อไป ตอนนี้ปลั๊กอิน Android Gradle ใช้เวอร์ชัน 28.0.3 โดยค่าเริ่มต้น
ฟีเจอร์ใหม่
-
การรองรับการสร้าง Android App Bundle: App Bundle คือรูปแบบการอัปโหลดรูปแบบใหม่ที่รวมโค้ดและทรัพยากรที่คอมไพล์แล้วทั้งหมดของแอปไว้ด้วย ขณะที่เลื่อนการสร้างและการลงนาม APK ไปยัง Google Play Store คุณไม่จำเป็นต้องสร้าง รับรอง และจัดการ APK หลายรายการอีกต่อไป และผู้ใช้จะดาวน์โหลดไฟล์ที่มีขนาดเล็กลงซึ่งเพิ่มประสิทธิภาพให้เหมาะกับอุปกรณ์ของตน ดูข้อมูลเพิ่มเติมได้ที่เกี่ยวกับ Android App Bundle
-
รองรับความเร็วบิลด์ที่เพิ่มขึ้นเมื่อใช้ตัวประมวลผลคำอธิบายประกอบ
AnnotationProcessorOptions
DSL ขยายการใช้งานแล้วCommandLineArgumentProvider
ซึ่งให้คุณหรือผู้เขียนผู้ประมวลผลข้อมูลคำอธิบายประกอบสามารถใส่คำอธิบายประกอบ อาร์กิวเมนต์สำหรับตัวประมวลผลที่ใช้ คำอธิบายประกอบประเภทพร็อพเพอร์ตี้บิลด์ที่เพิ่มขึ้น การใช้หมายเหตุเหล่านี้จะช่วยปรับปรุงความถูกต้องและประสิทธิภาพของ บิลด์เพิ่มเติมและแคชที่สะอาด หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน ส่งอาร์กิวเมนต์ไปยังตัวประมวลผลคำอธิบายประกอบ -
เครื่องมือย้ายข้อมูลสำหรับ AndroidX: เมื่อใช้ Android Gradle Plugin 3.2.0 กับ Android 3.2 ขึ้นไป คุณสามารถย้ายข้อมูล Dependency ของโปรเจ็กต์ในเครื่องและ Maven เพื่อใช้ไลบรารี AndroidX ใหม่ได้โดยเลือกปรับโครงสร้าง >ย้ายข้อมูลไปยัง AndroidX จากแถบเมนู การใช้เครื่องมือย้ายข้อมูลนี้ยังตั้งค่า ค่าสถานะต่อไปนี้ไปยัง
true
ในไฟล์gradle.properties
ของคุณ-
android.useAndroidX
: เมื่อตั้งค่าเป็นtrue
ปลั๊กอิน Android จะใช้ ไลบรารี AndroidX ที่เหมาะสมแทนไลบรารีการสนับสนุน หากไม่ได้ระบุ Flag นี้ ปลั๊กอินจะตั้งค่าเป็นfalse
โดยค่าเริ่มต้น -
android.enableJetifier
: เมื่อตั้งค่าเป็นtrue
ปลั๊กอิน Android ย้ายไลบรารีของบุคคลที่สามที่มีอยู่ไปใช้ AndroidX โดยอัตโนมัติภายในวันที่ การเขียนไบนารีใหม่ หากไม่ได้ระบุ Flag นี้ ปลั๊กอินจะตั้งค่าเป็นfalse
โดยค่าเริ่มต้น คุณสามารถตั้งค่า Flag นี้เป็นtrue
ได้เฉพาะเมื่อตั้งค่าandroid.useAndroidX
เป็นtrue
ด้วย มิฉะนั้นคุณจะได้รับข้อผิดพลาดในการสร้างอ่านข้อมูลเพิ่มเติมได้ที่ภาพรวมของ AndroidX
-
-
เครื่องมือย่อโค้ดแบบใหม่ R8: R8 เป็นเครื่องมือใหม่สำหรับการย่อโค้ดและการสร้างความสับสน ที่มาแทน ProGuard คุณสามารถเริ่มใช้เวอร์ชันตัวอย่างของ R8 ได้โดย โดยรวมค่าต่อไปนี้ในไฟล์
gradle.properties
ของโปรเจ็กต์android.enableR8 = true
android.enableR8 = true
การเปลี่ยนแปลงลักษณะการทำงาน
-
เปิดใช้การแยกข้อมูลด้วย D8 โดยค่าเริ่มต้นแล้ว
-
ตอนนี้ AAPT2 อยู่ในที่เก็บ Maven ของ Google แล้ว หากต้องการใช้ AAPT2 โปรดตรวจสอบว่าคุณมีไฟล์
google()
ที่ต้องพึ่งพาในไฟล์build.gradle
ดังที่แสดงด้านล่างbuildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
ตอนนี้ Multidex เนทีฟเปิดใช้โดยค่าเริ่มต้นแล้ว Android เวอร์ชันก่อนหน้า Studio ได้เปิดใช้มัลติเดกซ์แบบเนทีฟเมื่อทำให้แอปเวอร์ชันที่แก้ไขข้อบกพร่องใช้งานได้ อุปกรณ์ที่ใช้ Android API ระดับ 21 ขึ้นไป ตอนนี้ ไม่ว่าคุณจะติดตั้งใช้งานในอุปกรณ์หรือสร้าง APK สำหรับรุ่นที่เผยแพร่ พารามิเตอร์ของปลั๊กอิน Gradle สำหรับ Android จะเปิดใช้ MultiDex ของเนทีฟสำหรับโมดูลทั้งหมดที่ตั้งค่าเป็น
minSdkVersion=21
ขึ้นไป -
ตอนนี้ปลั๊กอินมีการบังคับใช้ปลั๊กอิน Protobuf ในเวอร์ชันขั้นต่ำ (0.8.6) ปลั๊กอิน Kotlin (1.2.50) และปลั๊กอิน Crashlytics (1.25.4)
-
ตอนนี้ปลั๊กอินโมดูลฟีเจอร์
com.android.feature
บังคับให้ใช้เฉพาะตัวอักษร ตัวเลข และขีดล่างเมื่อระบุชื่อโมดูล เช่น หากชื่อโมดูลฟีเจอร์มีขีดกลาง คุณจะได้รับข้อผิดพลาดเกี่ยวกับการสร้าง ลักษณะการทํางานนี้ตรงกับของปลั๊กอินฟีเจอร์แบบไดนามิก
การแก้ไขข้อบกพร่อง
- ขณะนี้ JavaCompile เก็บแคชได้ในโปรเจ็กต์ที่มีการเชื่อมโยงข้อมูล (ปัญหา #69243050)
- หลีกเลี่ยงการคอมไพล์ได้ดียิ่งขึ้นสําหรับโมดูลไลบรารีที่มีการเชื่อมโยงข้อมูล (ปัญหา #77539932)
- คุณเปิดใช้อีกครั้งได้แล้วในตอนนี้ การกำหนดค่าตามคำขอ ถ้าคุณปิดใช้วิธีนี้ในเวอร์ชันก่อนหน้านี้เนื่องจาก ข้อผิดพลาดในการสร้างที่คาดการณ์ไม่ได้ (ปัญหา #77910727)
3.1.0 (มีนาคม 2018)
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
-
แกรเดิล 4.4 ขึ้นไป
หากต้องการเรียนรู้เพิ่มเติม โปรดอ่านส่วนที่เกี่ยวกับ การอัปเดต Gradle
-
เครื่องมือสร้าง 27.0.3 ขึ้นไป
โปรดทราบว่าคุณไม่จำเป็นต้องระบุเวอร์ชันให้กับบิลด์อีกต่อไป เครื่องมือที่ใช้พร็อพเพอร์ตี้
android.buildToolsVersion
ซึ่งก็คือ ปลั๊กอินจะใช้เวอร์ชันขั้นต่ำที่จำเป็นโดยค่าเริ่มต้น
D8 ซึ่งเป็นคอมไพเลอร์ DEX ใหม่
โดยค่าเริ่มต้น Android Studio ใช้คอมไพเลอร์ DEX ใหม่ที่ชื่อว่า D8 ดัชนี DEX
การคอมไพล์เป็นกระบวนการแปลงไบต์โค้ด .class
เป็น
.dex
ไบต์โค้ดสำหรับ Android Runtime (หรือ Dalvik สำหรับรุ่นเก่ากว่า
เวอร์ชัน Android) เมื่อเปรียบเทียบกับคอมไพเลอร์ก่อนหน้านี้ ซึ่งเรียกว่า DX, D8
คอมไพล์ได้เร็วขึ้นและแสดงผลไฟล์ DEX ที่เล็กลง โดยที่ยังคงมีความเหมือนหรือ
ประสิทธิภาพรันไทม์ของแอปที่ดีขึ้น
D8 ไม่ควรเปลี่ยนเวิร์กโฟลว์การพัฒนาแอปในแต่ละวัน อย่างไรก็ตาม หากพบปัญหาเกี่ยวกับคอมไพเลอร์ใหม่ โปรดรายงานข้อบกพร่อง คุณสามารถชั่วคราว
ปิดใช้ D8 และใช้ DX โดยใส่โค้ดต่อไปนี้ใน
gradle.properties
ไฟล์:
android.enableD8=false
สําหรับโปรเจ็กต์ที่
ใช้ฟีเจอร์ภาษาของ Java 8
การแยกส่วนเนื้อหาส่วนเพิ่มจะเปิดใช้อยู่โดยค่าเริ่มต้น คุณสามารถปิดใช้งานได้โดย
ระบุข้อมูลต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableIncrementalDesugaring=false.
ผู้ใช้ตัวอย่าง: หากคุณใช้เวอร์ชันตัวอย่างของ D8 อยู่แล้ว โปรดทราบว่า ซึ่งตอนนี้มีการคอมไพล์กับไลบรารีที่รวมอยู่ใน เครื่องมือสร้าง SDK ไม่ใช่ JDK ดังนั้น หากคุณเข้าถึง API ที่มีอยู่ใน JDK แต่ไม่มีในไลบรารีเครื่องมือบิลด์ SDK คุณจะได้รับข้อผิดพลาดในการคอมไพล์
การเปลี่ยนแปลงลักษณะการทำงาน
-
เมื่อสร้าง APK หลายรายการ โดยแต่ละรายการกำหนดเป้าหมาย ABI ที่ต่างกัน ไม่สร้าง APK สำหรับ ABI ต่อไปนี้โดยค่าเริ่มต้นอีกต่อไป
mips
,mips64
และarmeabi
หากต้องการสร้าง APK ที่กำหนดเป้าหมายเป็น ABI เหล่านี้ คุณต้องใช้ NDK r16b หรือต่ำกว่า และ ระบุ ABI ในไฟล์
build.gradle
ของคุณตามที่แสดงด้านล่างsplits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
ตอนนี้ build cache ของปลั๊กอิน Android จะลบรายการแคชที่มีอายุมากกว่า 30 วัน
-
การส่ง
"auto"
ไปยังresConfig
จะไม่เลือกทรัพยากรสตริงโดยอัตโนมัติเพื่อรวมไว้ใน APK อีกต่อไป หากคุณยังคงใช้"auto"
ต่อไป ปลั๊กอินจะจัดแพ็กเกจสตริงทั้งหมด ทรัพยากรที่แอปของคุณและทรัพยากร Dependency มีให้ ดังนั้น คุณควรแทนที่ ระบุแต่ละภาษาที่คุณต้องการให้ปลั๊กอินรวมเข้าไว้ใน APK ของคุณ -
เนื่องจากโมดูลในเครื่องต้องไม่พึ่ง APK การทดสอบของแอปคุณ การเพิ่ม ทรัพยากร Dependency ไปยังการทดสอบแบบมีเครื่องวัดโดยใช้เครื่องมือ
androidTestApi
แทนที่จะเป็นandroidTestImplementation
ทำให้ Gradle ออก คำเตือนต่อไปนี้:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
การแก้ไข
- แก้ไขปัญหาที่ Android Studio ไม่รู้จัก ทรัพยากร Dependency ในบิลด์แบบผสม
- แก้ไขปัญหาที่คุณได้รับข้อผิดพลาดในการซิงค์โปรเจ็กต์เมื่อโหลดปลั๊กอิน Android หลายครั้งในบิลด์เดียว เช่น เมื่อโปรเจ็กต์ย่อยหลายรายการมีปลั๊กอิน Android อยู่ใน classpath ของ buildscript
3.0.0 (ตุลาคม 2017)
ปลั๊กอิน Android Gradle 3.0.0 มีการเปลี่ยนแปลงหลายอย่างที่มุ่งเน้นแก้ปัญหาด้านประสิทธิภาพของโปรเจ็กต์ขนาดใหญ่
ตัวอย่างเช่น ใน โครงสร้างตัวอย่าง โปรเจ็กต์ที่มีโมดูลประมาณ 130 รายการและทรัพยากร Dependency ภายนอกจำนวนมาก (แต่ไม่มีโค้ดหรือทรัพยากร) คุณจะได้เห็นการปรับปรุงประสิทธิภาพ ที่คล้ายกับข้อความต่อไปนี้
เวอร์ชันปลั๊กอิน Android + เวอร์ชัน Gradle | ปลั๊กอิน Android 2.2.0 + Gradle 2.14.1 | ปลั๊กอิน Android 2.3.0 + Gradle 3.3 | ปลั๊กอิน Android 3.0.0 + Gradle 4.1 |
---|---|---|---|
การกำหนดค่า (เช่น การเรียกใช้ ./gradlew --help ) |
ประมาณ 2 นาที | ประมาณ 9 วิ | ประมาณ 2.5 วิ |
การเปลี่ยนแปลง Java 1 บรรทัด (การเปลี่ยนแปลงการติดตั้งใช้งาน) | ประมาณ 2 นาที 15 วิ | ~29 วินาที | ประมาณ 6.4 วิ |
การเปลี่ยนแปลงเหล่านี้บางส่วนทำให้บิลด์ที่มีอยู่เสียหาย ดังนั้น คุณควรพิจารณา\ ความพยายามในการย้ายข้อมูลโครงการ ก่อนที่จะใช้ปลั๊กอินใหม่
หากไม่พบการปรับปรุงประสิทธิภาพดังที่อธิบายไว้ข้างต้น โปรดรายงานข้อบกพร่อง และรวมร่องรอยของบิลด์โดยใช้ Gradle Profiler
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
- Gradle 4.1 หรือสูงกว่า ดูข้อมูลเพิ่มเติมได้ที่ส่วนการอัปเดต Gradle
-
เครื่องมือสร้างรุ่น 26.0.2
หรือสูงกว่า เมื่อใช้การอัปเดตนี้ คุณไม่จำเป็นต้องระบุเวอร์ชันสำหรับ
เครื่องมือบิลด์ ปลั๊กอินจะใช้เวอร์ชันขั้นต่ำที่จำเป็นโดยค่าเริ่มต้น
ตอนนี้คุณจึงนำพร็อพเพอร์ตี้
android.buildToolsVersion
ออกได้แล้ว
3.0.1 (พฤศจิกายน 2017)
การอัปเดตนี้เป็นการอัปเดตเล็กน้อยเพื่อรองรับ Android Studio 3.0.1 รวมถึงมีการแก้ไขข้อบกพร่องทั่วไปและปรับปรุงประสิทธิภาพ
การเพิ่มประสิทธิภาพ
- ทำงานควบคู่กันไปได้ดีขึ้นสำหรับโปรเจ็กต์แบบหลายโมดูลผ่านแบบละเอียด กราฟงาน
- เมื่อทำการเปลี่ยนแปลงกับ Dependency ทาง Gradle จะทำการบิลด์ได้เร็วขึ้นโดยที่ไม่คอมไพล์โมดูลที่ไม่มีสิทธิ์เข้าถึง API ของ Dependency นั้นอีกครั้ง
คุณควรจำกัดการพึ่งพาที่เปิดเผย API ไปยังโมดูลอื่นๆ โดยใช้การกำหนดค่าการพึ่งพาใหม่ของ Gradle ดังนี้
implementation
,api
,compileOnly
และruntimeOnly
- ความเร็วในการสร้างเพิ่มขึ้นเร็วขึ้นเนื่องจากมีการถอดรหัสต่อคลาส แต่ละชั้นเรียน
ระบบจะคอมไพล์เป็นไฟล์ DEX แยกต่างหาก และเฉพาะชั้นเรียนที่
ถูกแปลงซ้ำ นอกจากนี้ คุณควรคาดหวังความเร็วในการบิลด์ที่ดีขึ้นสำหรับแอปที่ตั้งค่า
minSdkVersion
เป็น 20 หรือต่ำกว่า และใช้ Multi-Dex รุ่นเดิม - ปรับปรุงความเร็วในการสร้างโดยเพิ่มประสิทธิภาพงานบางอย่างให้ใช้เอาต์พุตที่แคชไว้ เพื่อให้ได้ประโยชน์จากการเพิ่มประสิทธิภาพนี้ ก่อนอื่นคุณต้อง เปิดใช้แคชบิลด์ของ Gradle
- ปรับปรุงการประมวลผลทรัพยากรเพิ่มเติมโดยใช้ AAPT2 ซึ่งตอนนี้เปิดใช้โดยค่าเริ่มต้นแล้ว หากพบปัญหาขณะใช้ AAPT2 โปรดรายงานข้อบกพร่อง นอกจากนี้คุณยัง
ปิดใช้ AAPT2 โดยการตั้งค่า
android.enableAapt2=false
ในgradle.properties
และรีสตาร์ท Daemon ของ Gradle ตาม ซึ่งเรียกใช้./gradlew --stop
จากบรรทัดคำสั่ง
ฟีเจอร์ใหม่
- ทรัพยากร Dependency ที่คำนึงถึงตัวแปร การจัดการ เมื่อสร้างตัวแปรหนึ่งของโมดูล ตอนนี้ปลั๊กอินจะจับคู่ตัวแปรของไลบรารีในเครื่องที่ต้องใช้กับโมดูลกับตัวแปรของโมดูลที่คุณกำลังสร้างโดยอัตโนมัติ
- รวมปลั๊กอินโมดูลฟีเจอร์ใหม่เพื่อรองรับการใช้งาน Android Instant Apps และ Android Instant Apps SDK (ที่คุณดาวน์โหลดได้ โดยใช้เครื่องมือจัดการ SDK) หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างโมดูลฟีเจอร์ด้วยปลั๊กอินใหม่ โปรดอ่าน โครงสร้างของ Instant App ที่มีหลายฟีเจอร์
- การรองรับการใช้ฟีเจอร์ภาษา Java 8 และไลบรารี Java 8 บางรายการในตัว ตอนนี้เราเลิกใช้งาน Jack แล้วและไม่จำเป็นต้องใช้อีกต่อไป คุณจึงควรปิดใช้ Jack ก่อนเพื่อใช้การรองรับ Java 8 ที่ปรับปรุงแล้วซึ่งรวมอยู่ในชุดเครื่องมือเริ่มต้น สำหรับข้อมูลเพิ่มเติม โปรดอ่าน ใช้ฟีเจอร์ภาษาของ Java 8
-
เพิ่มการรองรับการเรียกใช้การทดสอบด้วย Android Test Orchestrator ซึ่งช่วยให้คุณเรียกใช้การทดสอบของแอปแต่ละรายการภายในการเรียกใช้เครื่องมือวัดผลของแอปเองได้ เนื่องจากการทดสอบแต่ละรายการจะทำงานของตัวเอง อินสแตนซ์การใช้เครื่องมือ, สถานะที่แชร์ระหว่างการทดสอบจะไม่มีการสะสม บน CPU หรือหน่วยความจำของอุปกรณ์ และแม้ว่าการทดสอบขัดข้อง 1 ครั้ง เฉพาะอินสแตนซ์ของเครื่องมือเอง ดังนั้นการทดสอบอื่นๆ ของคุณจะยังคงทำงานอยู่
- เพิ่ม
testOptions.execution
เพื่อพิจารณาว่าจะใช้การประสานงานการทดสอบบนอุปกรณ์หรือไม่ หากต้องการใช้ Android Test Orchestrator คุณต้องระบุANDROID_TEST_ORCHESTRATOR
ดังที่แสดงด้านล่าง โดยค่าเริ่มต้น พร็อพเพอร์ตี้นี้จะตั้งค่าเป็นHOST
ซึ่งจะปิดใช้การจัดเตรียมอุปกรณ์และเป็นวิธีการมาตรฐานในการเรียกใช้การทดสอบ
- เพิ่ม
-
การกำหนดค่าทรัพยากร Dependency ของ
androidTestUtil
ใหม่ช่วยให้คุณดำเนินการต่อไปนี้ได้ ติดตั้ง APK ตัวช่วยการทดสอบอื่นก่อนเรียกใช้การทดสอบเครื่องมือ เช่น Android Test Orchestrator -
เพิ่ม
testOptions.unitTests.includeAndroidResources
ไปที่ รองรับการทดสอบ 1 หน่วยที่ต้องใช้ทรัพยากร Android เช่น Roboelectric เมื่อตั้งค่าตัวเลือกนี้ ลงในtrue
ปลั๊กอินจะดำเนินการจัดการทรัพยากร เนื้อหา และ รวมไฟล์ Manifest ก่อนเรียกใช้การทดสอบหน่วยของคุณ จากนั้น การทดสอบจะสามารถทำได้ ตรวจสอบcom/android/tools/test_config.properties
ใน classpath สำหรับคีย์ต่อไปนี้-
android_merged_assets
: เส้นทางสัมบูรณ์ไปยังไดเรกทอรีเนื้อหาที่ผสานรวมหมายเหตุ: สำหรับโมดูลไลบรารี ชิ้นงานที่ผสานจะไม่มีชิ้นงานของข้อกําหนด (ดูปัญหา #65550419)
-
android_merged_manifest
: เส้นทางสัมบูรณ์ไปยัง ไฟล์ Manifest ที่ผสานรวม -
android_merged_resources
: เส้นทางแบบสัมบูรณ์ไปยังไดเรกทอรีทรัพยากรที่ผสาน ซึ่งประกอบด้วยทรัพยากรทั้งหมดจากโมดูลและทรัพยากรที่เกี่ยวข้องทั้งหมด -
android_custom_package
: ชื่อแพ็กเกจของคลาส R สุดท้าย หากคุณแก้ไขรหัสแอปพลิเคชันแบบไดนามิก ชื่อแพ็กเกจอาจไม่ตรงกับแอตทริบิวต์package
ใน ไฟล์ Manifest ของแอป
-
- การสนับสนุนสำหรับ แบบอักษร เป็นทรัพยากร (ซึ่งเป็นฟีเจอร์ใหม่ที่เปิดตัวใน Android 8.0 (API ระดับ 26))
- รองรับ APK เฉพาะภาษาด้วย Android Instant Apps SDK 1.1 ขึ้นไป
-
ตอนนี้คุณเปลี่ยนไดเรกทอรีเอาต์พุตสำหรับบิลด์เนทีฟภายนอกได้แล้ว ตามที่แสดงด้านล่าง
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- ตอนนี้คุณสามารถ ใช้ CMake 3.7 หรือ สูงขึ้นเมื่อสร้างโปรเจ็กต์เนทีฟจาก Android Studio
-
การกำหนดค่าทรัพยากร Dependency ของ
lintChecks
ใหม่ช่วยให้คุณดำเนินการต่อไปนี้ได้ สร้าง JAR ที่กำหนดกฎ Lint ที่กำหนดเองและรวมไว้ใน AAR และโปรเจ็กต์ APKกฎ Lint ที่กําหนดเองต้องอยู่ในโปรเจ็กต์แยกต่างหากที่แสดงผล JAR ไฟล์เดียวและมีเฉพาะ
compileOnly
Dependency เท่านั้น โมดูลแอปและไลบรารีอื่นๆ จะขึ้นอยู่กับ Lint โปรเจ็กต์ที่ใช้การกำหนดค่าlintChecks
:dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
การเปลี่ยนแปลงลักษณะการทำงาน
- ปลั๊กอิน Android 3.0.0 จะนำ API บางรายการออก และบิลด์ของคุณจะขัดข้อง
หากใช้ ตัวอย่างเช่น คุณจะใช้ Variants API เพื่อเข้าถึงออบเจ็กต์
outputFile()
หรือใช้processManifest.manifestOutputFile()
เพื่อรับไฟล์ Manifest ของผลิตภัณฑ์ย่อยแต่ละรายการไม่ได้อีกต่อไป อ่านข้อมูลเพิ่มเติมได้ในการเปลี่ยนแปลง API - คุณไม่จำเป็นต้องระบุเวอร์ชันสำหรับเครื่องมือสร้างอีกต่อไป (คุณ
นำพร็อพเพอร์ตี้
android.buildToolsVersion
ออกได้แล้ว) โดยค่าเริ่มต้น ปลั๊กอินจะใช้เครื่องมือสร้างเวอร์ชันขั้นต่ำที่จำเป็นโดยอัตโนมัติสำหรับเวอร์ชันปลั๊กอิน Android ที่คุณใช้ - ตอนนี้คุณสามารถเปิด/ปิดการบีบอัด PNG ได้ในบล็อก
buildTypes
ดังที่แสดงด้านล่าง การเปิดใช้งานการตัดทอน PNG ตามค่าเริ่มต้นสำหรับทุกบิลด์ ยกเว้นบิลด์การแก้ไขข้อบกพร่อง เนื่องจากจะเพิ่มเวลาบิลด์สำหรับโปรเจ็กต์ที่ มีไฟล์ PNG หลายไฟล์ ดังนั้น ในการปรับปรุงเวลาบิลด์สำหรับบิลด์อื่นๆ คุณควรปิดใช้งานการครอบตัด PNG หรือ แปลง รูปภาพไปยัง WebP - ตอนนี้ปลั๊กอิน Android จะสร้างเป้าหมายสั่งการที่ ที่คุณกำหนดค่าในโปรเจ็กต์ CMake ภายนอก
- ตอนนี้คุณต้อง
เพิ่มคำอธิบายประกอบ
โปรเซสเซอร์ ลงในคลาสพาธของโปรเซสเซอร์โดยใช้
การกำหนดค่าทรัพยากร Dependency
annotationProcessor
- การใช้
ndkCompile
ที่เลิกใช้งานแล้วจะมีข้อจำกัดมากขึ้น คุณควรย้ายข้อมูลไปใช้ CMake หรือ ndk-build เพื่อคอมไพล์แทน โค้ดแบบเนทีฟที่คุณต้องการใส่ลงใน APK หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน ย้ายข้อมูลจาก ndkcompile
3.0.0 (ตุลาคม 2017)
ปลั๊กอิน Android Gradle 3.0.0 มีการเปลี่ยนแปลงหลายอย่าง แก้ปัญหาด้านประสิทธิภาพของโครงการขนาดใหญ่
ตัวอย่างเช่น ใน โครงสร้างตัวอย่าง โปรเจ็กต์ที่มีโมดูลประมาณ 130 รายการและทรัพยากร Dependency ภายนอกจำนวนมาก (แต่ไม่มีโค้ดหรือทรัพยากร) คุณจะได้เห็นการปรับปรุงประสิทธิภาพ ที่คล้ายกับข้อความต่อไปนี้
เวอร์ชันปลั๊กอิน Android + เวอร์ชัน Gradle | ปลั๊กอิน Android 2.2.0 + Gradle 2.14.1 | ปลั๊กอิน Android 2.3.0 + Gradle 3.3 | ปลั๊กอิน Android 3.0.0 + Gradle 4.1 |
---|---|---|---|
การกำหนดค่า (เช่น การเรียกใช้ ./gradlew --help ) |
ประมาณ 2 นาที | ประมาณ 9 วิ | ประมาณ 2.5 วิ |
การเปลี่ยนแปลง Java 1 บรรทัด (การเปลี่ยนแปลงการติดตั้งใช้งาน) | ประมาณ 2 นาที 15 วิ | ~29 วินาที | ประมาณ 6.4 วิ |
การเปลี่ยนแปลงเหล่านี้บางส่วนทำให้บิลด์ที่มีอยู่เสียหาย ดังนั้น คุณควรพิจารณา\ ความพยายามในการย้ายข้อมูลโครงการ ก่อนที่จะใช้ปลั๊กอินใหม่
หากไม่พบการปรับปรุงประสิทธิภาพดังที่อธิบายไว้ข้างต้น โปรดรายงานข้อบกพร่อง และรวมร่องรอยของบิลด์โดยใช้ Gradle Profiler
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
- Gradle 4.1 หรือสูงกว่า หากต้องการเรียนรู้เพิ่มเติม โปรดอ่านส่วนที่เกี่ยวกับ การอัปเดต Gradle
-
เครื่องมือสร้าง 26.0.2 หรือเวอร์ชันที่ใหม่กว่า เมื่อใช้การอัปเดตนี้ คุณไม่จำเป็นต้องระบุเวอร์ชันสำหรับ
เครื่องมือบิลด์ ปลั๊กอินจะใช้เวอร์ชันขั้นต่ำที่จำเป็นโดยค่าเริ่มต้น
ตอนนี้คุณก็นำพร็อพเพอร์ตี้
android.buildToolsVersion
ออกได้แล้ว
3.0.1 (พฤศจิกายน 2017)
การอัปเดตนี้เป็นการอัปเดตเล็กน้อยเพื่อรองรับ Android Studio 3.0.1 รวมถึงมีการแก้ไขข้อบกพร่องทั่วไปและปรับปรุงประสิทธิภาพ
การเพิ่มประสิทธิภาพ
- ทำงานควบคู่กันไปได้ดีขึ้นสำหรับโปรเจ็กต์แบบหลายโมดูลผ่านแบบละเอียด กราฟงาน
- เมื่อเปลี่ยนแปลงทรัพยากร Dependency แล้ว Gradle จะดำเนินการกับบิลด์ที่เร็วขึ้น
กำลังคอมไพล์โมดูลอีกครั้งที่ไม่มีสิทธิ์เข้าถึง API ของทรัพยากร Dependency
คุณควรจำกัดการพึ่งพาที่เปิดเผย API ไปยังโมดูลอื่นๆ โดยใช้การกำหนดค่าการพึ่งพาใหม่ของ Gradle ดังนี้
implementation
,api
,compileOnly
และruntimeOnly
- ความเร็วในการสร้างเพิ่มขึ้นเร็วขึ้นเนื่องจากมีการถอดรหัสต่อคลาส แต่ละชั้นเรียน
ระบบจะคอมไพล์เป็นไฟล์ DEX แยกต่างหาก และเฉพาะชั้นเรียนที่
ถูกแปลงซ้ำ คุณควรได้รับการปรับปรุงความเร็วในการสร้างสำหรับ
แอปที่ตั้งค่า
minSdkVersion
เป็น 20 หรือต่ำกว่าและใช้ มัลติเดกซ์เดิม - ปรับปรุงความเร็วในการสร้างโดยเพิ่มประสิทธิภาพงานบางอย่างให้ใช้เอาต์พุตที่แคชไว้ เพื่อให้ได้ประโยชน์จากการเพิ่มประสิทธิภาพนี้ ก่อนอื่นคุณต้อง เปิดใช้แคชบิลด์ของ Gradle
- ปรับปรุงการประมวลผลทรัพยากรที่เพิ่มขึ้นโดยใช้ AAPT2 ซึ่งตอนนี้คือ
เปิดใช้งานโดยค่าเริ่มต้น หากพบปัญหาขณะใช้ AAPT2
โปรดรายงานข้อบกพร่อง นอกจากนี้ คุณยังปิดใช้ AAPT2 ได้โดยการตั้งค่า
android.enableAapt2=false
ในไฟล์gradle.properties
แล้วรีสตาร์ทเดรัม Gradle โดยเรียกใช้./gradlew --stop
จากบรรทัดคำสั่ง
ฟีเจอร์ใหม่
- ทรัพยากร Dependency ที่คำนึงถึงตัวแปร การจัดการ เมื่อสร้างตัวแปรหนึ่งของโมดูล ตอนนี้ปลั๊กอินจะจับคู่ตัวแปรของไลบรารีในเครื่องที่ต้องใช้กับโมดูลกับตัวแปรของโมดูลที่คุณกำลังสร้างโดยอัตโนมัติ
- รวมปลั๊กอินโมดูลฟีเจอร์ใหม่เพื่อรองรับการใช้งาน Android Instant Apps และ Android Instant Apps SDK (ที่คุณดาวน์โหลดได้ โดยใช้เครื่องมือจัดการ SDK) หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโมดูลฟีเจอร์ด้วยปลั๊กอินใหม่ โปรดอ่านโครงสร้างของแอป Instant ที่มีฟีเจอร์หลายรายการ
- การสนับสนุนในตัวสำหรับการใช้ฟีเจอร์ภาษา Java 8 และ Java 8 ห้องสมุด ตอนนี้ Jack เลิกใช้งานแล้วและไม่จำเป็นต้องใช้อีกต่อไป และคุณ ควรปิดใช้งาน Jack ก่อนเพื่อใช้การสนับสนุน Java 8 ที่ปรับปรุงใหม่ซึ่งมีอยู่ใน Toolchain เริ่มต้น สำหรับข้อมูลเพิ่มเติม โปรดอ่าน ใช้ฟีเจอร์ภาษาของ Java 8
-
เพิ่มการสนับสนุนสำหรับการเรียกใช้การทดสอบกับ Android Test Orchestrator ซึ่งให้คุณเรียกใช้การทดสอบแต่ละรายการของแอปภายใน การเรียกใช้เครื่องมือของตนเอง เนื่องจากการทดสอบแต่ละรายการจะทำงานของตัวเอง อินสแตนซ์การใช้เครื่องมือ, สถานะที่แชร์ระหว่างการทดสอบจะไม่มีการสะสม บน CPU หรือหน่วยความจำของอุปกรณ์ และแม้ว่าการทดสอบขัดข้อง 1 ครั้ง เฉพาะอินสแตนซ์ของเครื่องมือเอง ดังนั้นการทดสอบอื่นๆ ของคุณจะยังคงทำงานอยู่
- เพิ่ม
testOptions.execution
แล้วเพื่อกำหนดว่าจะใช้หรือไม่ การจัดการทดสอบในอุปกรณ์เป็นกลุ่ม หากคุณต้องการ ใช้ Android Test Orchestrator คุณต้องระบุANDROID_TEST_ORCHESTRATOR
ดังที่แสดงด้านล่าง โดยค่าเริ่มต้น พร็อพเพอร์ตี้ตั้งค่าเป็นHOST
ซึ่งจะปิดใช้ในอุปกรณ์ เป็นกลุ่มและเป็นวิธีมาตรฐานในการทำการทดสอบ
- เพิ่ม
-
การกำหนดค่าทรัพยากร Dependency ของ
androidTestUtil
ใหม่ช่วยให้คุณดำเนินการต่อไปนี้ได้ ติดตั้ง APK ตัวช่วยการทดสอบอื่นก่อนเรียกใช้การทดสอบเครื่องมือ เช่น Android Test Orchestrator -
เพิ่ม
testOptions.unitTests.includeAndroidResources
ไปที่ รองรับการทดสอบ 1 หน่วยที่ต้องใช้ทรัพยากร Android เช่น Roboelectric เมื่อตั้งค่าตัวเลือกนี้ ลงในtrue
ปลั๊กอินจะดำเนินการจัดการทรัพยากร เนื้อหา และ รวมไฟล์ Manifest ก่อนเรียกใช้การทดสอบหน่วยของคุณ จากนั้น การทดสอบจะสามารถทำได้ ตรวจสอบcom/android/tools/test_config.properties
ใน classpath สำหรับคีย์ต่อไปนี้-
android_merged_assets
: เส้นทางสัมบูรณ์ไปยัง ไดเรกทอรีเนื้อหาที่ผสานรวมหมายเหตุ: สำหรับโมดูลไลบรารี ชิ้นงานที่ผสานจะไม่มีชิ้นงานของข้อกําหนด (ดูปัญหา #65550419)
-
android_merged_manifest
: เส้นทางสัมบูรณ์ไปยัง ไฟล์ Manifest ที่ผสานรวม -
android_merged_resources
: เส้นทางแบบสัมบูรณ์ไปยังไดเรกทอรีทรัพยากรที่ผสาน ซึ่งประกอบด้วยทรัพยากรทั้งหมดจากโมดูลและทรัพยากรที่เกี่ยวข้องทั้งหมด -
android_custom_package
: ชื่อแพ็กเกจของคลาส R สุดท้าย หากคุณแก้ไขรหัสแอปพลิเคชันแบบไดนามิก ชื่อแพ็กเกจอาจไม่ตรงกับแอตทริบิวต์package
ใน ไฟล์ Manifest ของแอป
-
- การสนับสนุนสำหรับ แบบอักษร เป็นทรัพยากร (ซึ่งเป็นฟีเจอร์ใหม่ที่เปิดตัวใน Android 8.0 (API ระดับ 26))
- รองรับ APK เฉพาะภาษาด้วย Android Instant Apps SDK 1.1 ขึ้นไป
-
ตอนนี้คุณเปลี่ยนไดเรกทอรีเอาต์พุตสำหรับบิลด์เนทีฟภายนอกได้แล้ว ตามที่แสดงด้านล่าง
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- ตอนนี้คุณสามารถ ใช้ CMake 3.7 หรือ สูงขึ้นเมื่อสร้างโปรเจ็กต์เนทีฟจาก Android Studio
-
การกำหนดค่าทรัพยากร Dependency ของ
lintChecks
ใหม่ช่วยให้คุณดำเนินการต่อไปนี้ได้ สร้าง JAR ที่กำหนดกฎ Lint ที่กำหนดเองและรวมไว้ใน AAR และโปรเจ็กต์ APKกฎ Lint ที่กำหนดเองต้องอยู่ในโปรเจ็กต์แยกต่างหากที่แสดงผล JAR เดียวและรวมเฉพาะ
compileOnly
ทรัพยากร Dependency โมดูลแอปและไลบรารีอื่นๆ จะขึ้นอยู่กับ Lint โปรเจ็กต์ที่ใช้การกำหนดค่าlintChecks
:dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
การเปลี่ยนแปลงลักษณะการทำงาน
- ปลั๊กอิน Android 3.0.0 จะนำ API บางรายการออก และบิลด์ของคุณจะขัดข้อง
หากใช้ ตัวอย่างเช่น คุณจะใช้ Variants API เพื่อเข้าถึงออบเจ็กต์
outputFile()
หรือใช้processManifest.manifestOutputFile()
เพื่อรับไฟล์ Manifest ของผลิตภัณฑ์ย่อยแต่ละรายการไม่ได้อีกต่อไป หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน การเปลี่ยนแปลง API - คุณไม่จำเป็นต้องระบุเวอร์ชันสำหรับเครื่องมือสร้างอีกต่อไป (คุณ
นำพร็อพเพอร์ตี้
android.buildToolsVersion
ออกได้แล้ว) โดย ค่าเริ่มต้น ปลั๊กอินจะใช้เครื่องมือสร้างขั้นต่ำที่จำเป็นโดยอัตโนมัติ เวอร์ชันสำหรับปลั๊กอิน Android ที่คุณใช้อยู่ - คุณเปิดใช้/ปิดใช้การครันช์ PNG ใน
buildTypes
แล้ว ดังที่แสดงด้านล่าง การเปิดใช้งานการตัดทอน PNG ตามค่าเริ่มต้นสำหรับทุกบิลด์ ยกเว้นบิลด์การแก้ไขข้อบกพร่อง เนื่องจากจะเพิ่มเวลาบิลด์สำหรับโปรเจ็กต์ที่ มีไฟล์ PNG หลายไฟล์ ดังนั้น ในการปรับปรุงเวลาบิลด์สำหรับบิลด์อื่นๆ คุณควรปิดใช้งานการครอบตัด PNG หรือ แปลง รูปภาพไปยัง WebP - ตอนนี้ปลั๊กอิน Android จะสร้างเป้าหมายสั่งการที่ ที่คุณกำหนดค่าในโปรเจ็กต์ CMake ภายนอก
- ตอนนี้คุณต้อง
เพิ่มคำอธิบายประกอบ
ตัวประมวลผลไปยังคลาสพาธของโปรเซสเซอร์โดยใช้
การกำหนดค่าทรัพยากร Dependency
annotationProcessor
- การใช้
ndkCompile
ที่เลิกใช้งานแล้วถูกจํากัดมากขึ้น คุณควรเปลี่ยนไปใช้ CMake หรือ ndk-build เพื่อคอมไพล์โค้ดเนทีฟที่ต้องการแพ็กลงใน APK แทน หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่าน ย้ายข้อมูลจาก ndkcompile
2.3.0 (กุมภาพันธ์ 2017)
2.3.3 (มิถุนายน 2017)
การอัปเดตนี้เป็นการอัปเดตเล็กๆ น้อยๆ ที่เพิ่มความสามารถในการใช้งานร่วมกันกับ Android Studio 2.3.3
2.3.2 (พฤษภาคม 2017)
การอัปเดตนี้เป็นการอัปเดตเล็กๆ น้อยๆ ที่เพิ่มความสามารถในการใช้งานร่วมกันกับ Android Studio 2.3.2
2.3.1 (เมษายน 2017)
การอัปเดตนี้มีไว้เพื่อแก้ไขข้อบกพร่องเล็กน้อยในปลั๊กอิน Android 2.3.0 ซึ่งทำให้อุปกรณ์ Android จริงบางเครื่องทำงานร่วมกับ Instant Run อย่างไม่ถูกต้อง (ดูปัญหา #235879)
- Dependency
-
- Gradle 3.3 ขึ้นไป
- เครื่องมือสร้างรุ่น 25.0.0 หรือสูงกว่า
- ใหม่:
-
- ใช้ Gradle 3.3 ซึ่งมีการปรับปรุงประสิทธิภาพและ ฟีเจอร์ใหม่ๆ ดูรายละเอียดเพิ่มเติมได้ที่ บันทึกประจำรุ่นของ Gradle
- แคชการบิลด์: จัดเก็บเอาต์พุตบางอย่างที่พูลกิน Android สร้างขึ้นเมื่อสร้างโปรเจ็กต์ (เช่น AAR ที่ยังไม่ได้แพ็กเกจและทรัพยากรระยะไกลที่แปลงเป็น Dex ไว้ล่วงหน้า) บิลด์ที่สะอาดจะเร็วขึ้นมากเมื่อใช้แคช เนื่องจากระบบบิลด์สามารถนำไฟล์ที่แคชไว้เหล่านั้นมาใช้ซ้ำในระหว่างการบิลด์ครั้งต่อๆ ไปแทนที่จะต้องสร้างใหม่ โปรเจ็กต์ที่ใช้ปลั๊กอิน Android 2.3.0 ขึ้นไปจะใช้แคชของบิวด์โดยค่าเริ่มต้น อ่านข้อมูลเพิ่มเติมได้ที่ปรับปรุงความเร็วในการบิลด์ด้วยแคชการบิลด์
- มีงาน
cleanBuildCache
ที่ ล้าง แคชของบิลด์ - หากคุณใช้แคชบิลด์ในเวอร์ชันทดลอง (รวมอยู่ในปลั๊กอินเวอร์ชันก่อนหน้า) คุณควร อัปเดตปลั๊กอินให้เป็น เวอร์ชันล่าสุด
- มีงาน
- การเปลี่ยนแปลง:
-
- รองรับการเปลี่ยนแปลง Instant Run ที่รวมอยู่ใน Android Studio 2.3
- เวลากำหนดค่าสำหรับโปรเจ็กต์ขนาดใหญ่มากควรเป็น เร็วขึ้นกว่าเดิมมาก
- แก้ไขปัญหาการดาวน์โหลดอัตโนมัติสำหรับ รูปแบบการจำกัด คลัง
- ตอนนี้ปลั๊กอินใช้ ProGuard เวอร์ชัน 5.3.2
- รวมถึงการแก้ไขข้อบกพร่องที่รายงานเข้ามาจำนวนมาก โปรดดำเนินการต่อเพื่อ ให้รายงานข้อบกพร่องเมื่อคุณ พบปัญหา
2.2.0 (กันยายน 2016)
- การขึ้นต่อกัน:
-
- Gradle 2.14.1 ขึ้นไป
- เครื่องมือสร้างรุ่น 23.0.2 หรือสูงกว่า
- ใหม่:
-
- ใช้ Gradle 2.14.1 ซึ่งมีการปรับปรุงประสิทธิภาพ และฟีเจอร์ใหม่ๆ ตลอดจนแก้ไขช่องโหว่ด้านความปลอดภัยที่ทำให้ การโจมตีเพื่อยกระดับสิทธิ์ภายในเมื่อใช้ Daemon ของ Gradle สำหรับข้อมูลเพิ่มเติม ดูรายละเอียดได้ที่ บันทึกประจำรุ่นของ Gradle
- การใช้
externalNativeBuild {}
DSL, Gradle ให้คุณ ลิงก์ไปยังซอร์สเนทีฟและคอมไพล์ไลบรารีเนทีฟโดยใช้ CMake หรือ ndk-build หลังจากสร้างไลบรารีแบบเนทีฟแล้ว Gradle จะแพ็กเกจไลบรารีเหล่านั้นลงใน APK หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ CMake และ ndk-build ด้วย Gradle ให้อ่านเพิ่มโค้ด C และ C++ ลงใน โปรเจ็กต์ - เมื่อคุณเรียกใช้การสร้างจากบรรทัดคำสั่ง ตอนนี้ Gradle จะพยายามดาวน์โหลดคอมโพเนนต์ SDK หรืออัปเดตที่ขาดหายไปซึ่งโปรเจ็กต์ของคุณต้องใช้โดยอัตโนมัติ หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่านดาวน์โหลดอัตโนมัติ แพ็กเกจที่หายไปจาก Gradle
- ฟีเจอร์แคชแบบใหม่ในเวอร์ชันทดลองช่วยให้ Gradle เพิ่มความเร็วในการสร้างได้ โดยการหาดัชนีไฟล์ล่วงหน้า จัดเก็บ และนำไฟล์เวอร์ชันก่อนถอดรหัสมาใช้ซ้ำ ไลบรารีของคุณ หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์ทดลองนี้ อ่านคู่มือสร้าง แคช
- ปรับปรุงประสิทธิภาพของบิลด์โดยใช้แพ็กเกจเริ่มต้นใหม่
ไปป์ไลน์ที่จัดการการซิป การลงชื่อ และการซิปไลน์ในงานเดียว คุณกลับไปใช้เครื่องมือแพ็กเกจรุ่นเก่าได้โดยเพิ่ม
android.useOldPackaging=true
ลงในไฟล์gradle.properties
ขณะใช้แพ็กเกจใหม่ เครื่องมือzipalignDebug
ไม่พร้อมใช้งาน แต่คุณสร้างเองได้โดยการเรียกใช้เมธอดcreateZipAlignTask(String taskName, File inputFile, File outputFile)
- ตอนนี้การรับรอง APK ใช้ APK Signature Scheme
v2 นอกเหนือจากการลงนาม JAR แบบดั้งเดิม แพลตฟอร์ม Android ทั้งหมดยอมรับ APK ที่ได้ การแก้ไข APK เหล่านี้หลังจากรับรอง APK ดังกล่าวจะทำให้
ลายเซ็นเวอร์ชัน 2 และป้องกันการติดตั้งในอุปกรณ์ หากต้องการปิดใช้ฟีเจอร์นี้
เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูล - สำหรับบิลด์ Multidex ตอนนี้คุณสามารถใช้กฎ ProGuard ในการระบุ
คลาส Gradle ควรคอมไพล์ลงในไฟล์ DEX หลักของแอป เนื่องจากระบบ Android จะโหลดไฟล์ DEX หลักก่อนเมื่อเริ่มแอป คุณจึงจัดลําดับความสําคัญของคลาสบางคลาสได้เมื่อเริ่มต้นใช้งานโดยคอมไพล์คลาสเหล่านั้นลงในไฟล์ DEX หลัก หลังจากที่คุณสร้างไฟล์การกำหนดค่า ProGuard สำหรับ
ไฟล์ DEX หลัก ให้ส่งเส้นทางของไฟล์การกำหนดค่าไปยัง Gradle โดยใช้
buildTypes.multiDexKeepProguard
การใช้ DSL นี้แตกต่างจากการใช้buildTypes.proguardFiles
ซึ่งให้กฎ ProGuard ทั่วไปสำหรับแอปของคุณและไม่ได้ระบุคลาสสำหรับไฟล์ DEX หลัก - เพิ่มการรองรับ Flag
android:extractNativeLibs
ซึ่งจะช่วยลดขนาดของแอปเมื่อคุณติดตั้งใน อุปกรณ์ เมื่อคุณตั้งค่าสถานะนี้เป็นfalse
ใน<application>
ของไฟล์ Manifest ของแอป แพ็กเกจ Gradle ที่ไม่มีการบีบอัด และ ไลบรารีเนทีฟเวอร์ชันที่สอดคล้องกับ APK ของคุณ ซึ่งจะป้องกันไม่ให้PackageManager
คัดลอกไลบรารีแบบเนทีฟจาก APK ไปยังระบบไฟล์ของอุปกรณ์ระหว่างการติดตั้ง และยังมีข้อดีเพิ่มเติมคือทำให้การอัปเดตแบบ Delta ของแอปมีขนาดเล็กลง - ตอนนี้คุณสามารถระบุ ได้แล้ว
versionNameSuffix
และapplicationIdSuffix
สำหรับรสชาติของผลิตภัณฑ์ (ปัญหา 59614)
- การเปลี่ยนแปลง:
-
-
ตอนนี้
getDefaultProguardFile
จะแสดงไฟล์ ProGuard เริ่มต้นที่พลั๊กอิน Android สำหรับ Gradle มีให้ และไม่ได้ใช้ไฟล์ใน Android SDK อีกต่อไป - ปรับปรุงประสิทธิภาพและคุณลักษณะของคอมไพเลอร์ Jack:
- Jack รองรับการครอบคลุมการทดสอบ Jacoco แล้วเมื่อตั้งค่า
testCoverageEnabled
ไปยังtrue
- ปรับปรุงการรองรับตัวประมวลผลคำอธิบายประกอบ หมายเหตุ
โปรเซสเซอร์ในเส้นทางคลาส เช่น
compile
ทรัพยากร Dependency จะนำไปใช้กับบิลด์ของคุณโดยอัตโนมัติ คุณสามารถ ระบุตัวประมวลผลคำอธิบายประกอบในบิลด์และบัตรผ่านด้วย โดยใช้อาร์กิวเมนต์javaCompileOptions.annotationProcessorOptions {}
DSL ใน ไฟล์build.gradle
ระดับโมดูล:android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
หากคุณต้องการใช้ตัวประมวลผลคำอธิบายประกอบเมื่อคอมไพล์ แต่ไม่รวมไว้ใน APK ของคุณ ให้ใช้ ขอบเขตทรัพยากร Dependency
annotationProcessor
:dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- โดยค่าเริ่มต้น หากฮีปของ Daemon ของ Gradle เท่ากับ 1.5 เป็นอย่างน้อย
GB ตอนนี้ Jack จะทำงานในโปรเซสเดียวกับ Gradle หากต้องการปรับ
ขนาดฮีมอนของ Daemon ให้เพิ่มรายการต่อไปนี้ลงใน
gradle.properties
ไฟล์:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
สำหรับรายการพารามิเตอร์ที่คุณสามารถตั้งค่า ให้เรียกใช้คำสั่งต่อไปนี้จาก บรรทัดคำสั่งดังนี้
java -jar /build-tools/jack.jar --help-properties
- Jack รองรับการครอบคลุมการทดสอบ Jacoco แล้วเมื่อตั้งค่า
-
ตอนนี้
2.1.0 (เมษายน 2016)
2.1.3 (สิงหาคม 2016)
การอัปเดตนี้ต้องใช้ Gradle 2.14.1 ขึ้นไป มี Gradle 2.14.1 การปรับปรุงประสิทธิภาพ ฟีเจอร์ใหม่ๆ และการแก้ไขด้านความปลอดภัยที่สำคัญ ดูรายละเอียดเพิ่มเติมได้ที่บันทึกประจำรุ่นของ Gradle
- Dependency
-
- Gradle 2.10 ขึ้นไป
- เครื่องมือสร้างรุ่น 23.0.2 หรือสูงกว่า
- ใหม่:
-
- เพิ่มการสนับสนุนสำหรับ N Developer Preview, JDK 8 และ ฟีเจอร์ภาษา Java 8 โดยใช้ Jack
Toolchain หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่านคู่มือการแสดงตัวอย่าง N
หมายเหตุ: ทันที Run ใช้ไม่ได้กับ Jack ในขณะนี้และจะถูกปิดใช้งานในขณะที่ โดยใช้เครื่องมือเชนใหม่ คุณต้องใช้ Jack เท่านั้นหากคุณกำลังพัฒนา สำหรับ N Preview และต้องการใช้ฟีเจอร์ภาษา Java 8 ที่สนับสนุน
- เพิ่มการรองรับเริ่มต้นสำหรับการคอมไพล์ Java แบบเพิ่มทีละส่วนเพื่อลดเวลาในการคอมไพล์ระหว่างการพัฒนา โดยคอมไพล์เฉพาะส่วนแหล่งที่มาที่มีการเปลี่ยนแปลงหรือจำเป็นต้องคอมไพล์อีกครั้งเท่านั้น วิธีปิดใช้
ฟีเจอร์นี้ ให้เพิ่มโค้ดต่อไปนี้ในระดับโมดูลของคุณ
build.gradle
ไฟล์: -
เพิ่มการสนับสนุนสำหรับ Dexing-in-Process ซึ่งทำ Dexing ภายในบิลด์ แทนที่จะเป็นกระบวนการ VM ภายนอกที่แยกต่างหาก ซึ่งไม่เพียงช่วยให้ จำนวนการสร้างเพิ่มขึ้นเร็วขึ้น แต่จะทำให้การสร้างชิ้นสมบูรณ์เร็วขึ้นด้วย ฟีเจอร์คือ เปิดใช้โดยค่าเริ่มต้นสำหรับโปรเจ็กต์ที่ตั้งค่าฮีปสูงสุดของ Daemon ของ Gradle ที่มีขนาดอย่างน้อย 2048 MB ซึ่งทำได้โดยใส่ข้อมูลต่อไปนี้ใน ไฟล์
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
ของโครงการ:ถ้าคุณกำหนดค่าสำหรับ
ไม่มี org.gradle.jvmargs = -Xmx3072m ```javaMaxHeapSize
ในbuild.gradle
ระดับโมดูล คุณต้องตั้งค่าorg.gradle.jvmargs
เป็นค่าjavaMaxHeapSize
+ 1024 MB ตัวอย่างเช่น หากตั้งค่าjavaMaxHeapSize
เป็น "2048m" คุณต้องเพิ่มข้อมูลต่อไปนี้ลงใน ไฟล์gradle.properties
ของโครงการ:หากต้องการปิดใช้ Dexing-In-Process ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูล
- เพิ่มการสนับสนุนสำหรับ N Developer Preview, JDK 8 และ ฟีเจอร์ภาษา Java 8 โดยใช้ Jack
Toolchain หากต้องการดูข้อมูลเพิ่มเติม โปรดอ่านคู่มือการแสดงตัวอย่าง N
2.0.0 (เมษายน 2016)
- Dependency
-
- Gradle 2.10 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 หรือใหม่กว่า
- ใหม่:
-
- เปิดใช้งาน Instant Run โดย รองรับการแทรกไบต์โค้ด และพุชโค้ดและการอัปเดตทรัพยากรไปยัง ที่เรียกใช้แอปในโปรแกรมจำลองหรืออุปกรณ์จริง
- เพิ่มการสนับสนุนสำหรับบิลด์ที่เพิ่มขึ้น แม้ว่าแอปจะไม่ได้ทำงานอยู่ก็ตาม เวลาบิลด์แบบเต็มได้รับการปรับปรุงโดยการผลักดันการเปลี่ยนแปลงทีละน้อยผ่าน Android Debug Bridge ไปยัง อุปกรณ์ที่เชื่อมต่ออยู่
- เพิ่ม
maxProcessCount
เพื่อควบคุมจำนวนกระบวนการ dex ของผู้ปฏิบัติงานที่สามารถสร้างพร้อมกันได้ โค้ดต่อไปนี้ในไฟล์build.gradle
ระดับโมดูลจะตั้งค่าจํานวนกระบวนการสูงสุดที่ทํางานพร้อมกันเป็น 4android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- ลักษณะการทำงานที่เปลี่ยนแปลง
-
- เมื่อตั้งค่า
minSdkVersion
เป็น 18 ขึ้นไป การรับรอง APK จะใช้ SHA256
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul>
- เมื่อตั้งค่า
- ปัญหาที่แก้ไขแล้ว
-
- แก้ไขปัญหาที่ทําให้เกิดความขึ้นต่อกันของ AAR ซ้ำกันทั้งในการกำหนดค่าบิลด์ทดสอบและบิลด์หลัก
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.5.0 (พฤศจิกายน 2015)
- Dependency
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- ผสานรวมปลั๊กอิน Data Binding เข้ากับปลั๊กอิน Android สำหรับ Gradle หากต้องการเปิดใช้ ให้เพิ่ม
โค้ดต่อไปนี้ลงในไฟล์
build.gradle
ต่อโปรเจ็กต์ที่ใช้องค์ประกอบ ปลั๊กอิน: - เพิ่ม Transform API ใหม่เพื่ออนุญาตให้ปลั๊กอินของบุคคลที่สามดัดแปลงไฟล์
.class
ที่คอมไพล์แล้วก่อนที่จะแปลงเป็นไฟล์.dex
Transform API ช่วยลดความซับซ้อนในการแทรกการจัดการคลาสที่กําหนดเองไปพร้อมกับมอบความยืดหยุ่นมากขึ้นเกี่ยวกับสิ่งที่คุณจัดการได้ หากต้องการแทรกการเปลี่ยนรูปแบบลงในบิลด์ ให้สร้างคลาสใหม่ที่ใช้อินเทอร์เฟซTransform
รายการใดรายการหนึ่ง และลงทะเบียนด้วยandroid.registerTransform(theTransform)
หรือandroid.registerTransform(theTransform, dependencies)
คุณไม่จำเป็นต้องเชื่อมต่องานเข้าด้วยกัน โปรดทราบข้อมูลต่อไปนี้เกี่ยวกับ Transform API - การเปลี่ยนรูปแบบใช้ได้กับสิ่งต่อไปนี้อย่างน้อย 1 รายการ ได้แก่ โปรเจ็กต์ปัจจุบัน โปรเจ็กต์ย่อย และไลบรารีภายนอก
- การเปลี่ยนรูปแบบต้องลงทะเบียนทั่วโลกซึ่งมีผลกับตัวแปรทั้งหมด
- ขณะนี้การประมวลผลโค้ดภายในผ่าน Java Code Coverage Library (JaCoCo), ProGuard และ MultiDex ใช้ Transform API อย่างไรก็ตาม Java Android Compiler Kit
(Jack) ไม่ได้ใช้ API นี้ มีเฉพาะเส้นทางโค้ด
javac/dx
เท่านั้นที่ใช้ - Gradle ดำเนินการเปลี่ยนรูปแบบตามลำดับ เช่น JaCoCo, ปลั๊กอินของบุคคลที่สาม, ProGuard ลําดับการดําเนินการของปลั๊กอินของบุคคลที่สามจะตรงกับลําดับที่ปลั๊กอินของบุคคลที่สามเพิ่มการเปลี่ยนรูปแบบ นักพัฒนาปลั๊กอินของบุคคลที่สามไม่สามารถควบคุมลําดับการดําเนินการของการเปลี่ยนรูปแบบผ่าน API ได้
- เลิกใช้งานตัวรับ
dex
จากคลาสApplicationVariant
คุณจะเข้าถึงงานDex
ผ่าน API ของตัวแปรไม่ได้อีกต่อไปเนื่องจากตอนนี้ ได้สำเร็จแล้วจากการเปลี่ยนรูปแบบ ขณะนี้ยังไม่มีวิธีอื่นในการควบคุมกระบวนการ Dex - แก้ไขการรองรับชิ้นงานที่เพิ่มขึ้น
- ปรับปรุงการรองรับ MultiDex โดยทำให้โปรเจ็กต์ทดสอบใช้งานได้ และ
ตอนนี้การทดสอบจะมี
com.android.support:multidex-instrumentation
โดยอัตโนมัติ การพึ่งพา - เพิ่มความสามารถในการทำให้บิลด์ Gradle ดำเนินการไม่สำเร็จอย่างถูกต้องและรายงานสาเหตุของข้อผิดพลาดพื้นฐานเมื่อบิลด์ Gradle เรียกใช้งานแบบไม่พร้อมกันและกระบวนการของเวิร์กเกอร์ดำเนินการไม่สำเร็จ
- เพิ่มการรองรับการกำหนดค่าอินเทอร์เฟซแบบไบนารีของแอปพลิเคชัน (ABI) ที่เฉพาะเจาะจงในตัวแปรที่มี ABI หลายรายการ
- เพิ่มการรองรับรายการหมายเลขซีเรียลของอุปกรณ์ที่คั่นด้วยคอมมาสำหรับ
ตัวแปรสภาพแวดล้อม
ANDROID_SERIAL
เมื่อติดตั้งหรือเรียกใช้การทดสอบ - แก้ไขการติดตั้งที่ไม่สำเร็จในอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 20) ขึ้นไปเมื่อชื่อ APK มีเว้นวรรค
- แก้ไขปัญหาต่างๆ ที่เกี่ยวข้องกับเอาต์พุตข้อผิดพลาดของ Android Asset Packaging Tool (AAPT)
- เพิ่มการสนับสนุนการใช้เครื่องมือที่เพิ่มขึ้นของ JaCoCo สำหรับบิลด์ที่เพิ่มขึ้นอย่างรวดเร็ว ตอนนี้ปลั๊กอิน Android สำหรับ Gradle จะเรียกใช้เครื่องมือวัดผล JaCoCo โดยตรง หากต้องการบังคับใช้เครื่องมือตรวจสอบ JaCoCo เวอร์ชันใหม่กว่า คุณต้องเพิ่มเครื่องมือดังกล่าวเป็นข้อกำหนดของสคริปต์บิลด์
- แก้ไขการสนับสนุน JaCoCo ให้ละเว้นไฟล์ที่ไม่ใช่คลาส
- เพิ่มการรองรับเวกเตอร์ที่ถอนออกได้สำหรับการสร้าง PNG ขณะสร้างเพื่อความเข้ากันได้แบบย้อนหลัง
ปลั๊กอิน Android สำหรับ Gradle สร้าง PNG สำหรับเวกเตอร์ที่ถอนออกได้ทุกรายการที่พบในทรัพยากร
ที่ไม่ได้ระบุเวอร์ชัน API หรือระบุ
แอตทริบิวต์
android:minSdkVersion
ที่มีค่าไม่เกิน 20 ใน องค์ประกอบ<uses-sdk>
ในไฟล์ Manifest ของแอป คุณสามารถตั้งค่าความหนาแน่นของ PNG ได้โดย ใช้พร็อพเพอร์ตี้generatedDensities
ในdefaultConfig
หรือproductFlavor
ส่วนของไฟล์build.gradle
- เพิ่มการแชร์
android.jar
ที่จำลองได้ ซึ่งปลั๊กอินจะสร้างเพียงครั้งเดียวและใช้สำหรับยูนิตเทสติ้ง ตอนนี้มีโมดูลหลายรายการที่ใช้พื้นที่เก็บข้อมูลเดียวกัน เช่นapp
และlib
ลบ$rootDir/build
เพื่อสร้างใหม่ - เปลี่ยนการประมวลผลของทรัพยากร Java ให้เกิดขึ้นก่อนงานการปรับให้ยากต่อการอ่าน (Obfuscation) แทน ระหว่างการทำแพ็กเกจ APK การเปลี่ยนแปลงนี้ช่วยให้งานการสร้างความสับสนมีโอกาส เพื่อปรับทรัพยากร Java ตามการปรับแพ็กเกจให้ยากต่อการอ่าน (Obfuscate)
- แก้ไขปัญหาการใช้โค้ด Java Native Interface (JNI) ในไลบรารีการทดลอง ปลั๊กอิน
- เพิ่มความสามารถในการตั้งค่าเวอร์ชันแพลตฟอร์มแยกจาก
แอตทริบิวต์
android:compileSdkVersion
ในไลบรารีการทดลอง ปลั๊กอิน
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- ผสานรวมปลั๊กอิน Data Binding เข้ากับปลั๊กอิน Android สำหรับ Gradle หากต้องการเปิดใช้ ให้เพิ่ม
โค้ดต่อไปนี้ลงในไฟล์
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.3.1 (สิงหาคม 2015)
การขึ้นต่อกัน:- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- แก้ไขงาน ZipAlign ให้ใช้เอาต์พุตของงานก่อนหน้าอย่างถูกต้องเมื่อใช้ชื่อไฟล์ที่กำหนดเอง
- Renderscript แบบคงที่ ที่มี NDK
- ให้การสนับสนุนสำหรับงานบิลด์
createDebugCoverageReport
- แก้ไขการรองรับการใช้งานพร็อพเพอร์ตี้
archiveBaseName
ที่กําหนดเองในไฟล์บิลด์build.gradle
- แก้ไข
Invalid ResourceType
คำเตือน lint ที่เกิดจากเมธอดพารามิเตอร์ การค้นหาคำอธิบายประกอบเมื่อเรียกใช้ lint นอก Android Studio
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.3.0 (กรกฎาคม 2015)
การขึ้นต่อกัน:- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
-
เพิ่มการรองรับ
com.android.build.threadPoolSize
พร็อพเพอร์ตี้สำหรับควบคุมขนาดพูลเทรดงานAndroid
จาก ไฟล์gradle.properties
หรือบรรทัดคำสั่ง ตัวอย่างต่อไปนี้ตั้งค่าพร็อพเพอร์ตี้นี้เป็น 4-Pcom.android.build.threadPoolSize=4
- ตั้งค่าลักษณะการบิลด์เริ่มต้นให้ยกเว้นไฟล์
LICENSE
และLICENSE.txt
จาก APK หากต้องการรวมไฟล์เหล่านี้ไว้ใน APK ให้นำไฟล์เหล่านี้ออกจากpackagingOptions.excludes
ในไฟล์build.gradle
เช่นandroid { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- เพิ่มงาน
sourceSets
เพื่อตรวจสอบชุดของชุดแหล่งที่มาทั้งหมดที่ใช้ได้ - การสนับสนุนการทดสอบ 1 หน่วยที่ปรับปรุงแล้วสำหรับการจดจำแบบหลายรสชาติและ
โฟลเดอร์ต้นทางของตัวแปรบิลด์ เช่น เพื่อทดสอบแอปที่มีรสที่หลากหลาย
flavor1
และflavorA
ที่มีประเภทบิลด์Debug
ชุดแหล่งที่มาทดสอบมีดังนี้- ทดสอบ
- testFlavor1
- TestFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorAแก้ไขข้อบกพร่อง
การทดสอบ Android ที่รู้จักโฟลเดอร์แหล่งที่มาหลากหลายเวอร์ชันอยู่แล้ว
- ปรับปรุงการรองรับการทดสอบ 1 หน่วยเพื่อ
- เรียกใช้
javac
ในแหล่งที่มาหลักและแหล่งที่มาทดสอบ แม้ว่าuseJack
พร็อพเพอร์ตี้ได้รับการตั้งค่าเป็นtrue
ในไฟล์บิลด์ของคุณ - จดจำทรัพยากร Dependency ของบิลด์แต่ละประเภทอย่างถูกต้อง
- เรียกใช้
- เพิ่มการรองรับการระบุอาร์กิวเมนต์เครื่องมือทดสอบจากบรรทัดคำสั่ง
เช่น
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
เพิ่มการรองรับพารามิเตอร์ Android Asset Packหีบห่อ (AAPT) เพิ่มเติมตามใจชอบ ในไฟล์
build.gradle
เช่นandroid { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- เพิ่มการสนับสนุนสำหรับ
ทดสอบโมดูล APK เป็นโมดูลทดสอบแยกต่างหาก โดยใช้
targetProjectPath
และtargetVariant
พร็อพเพอร์ตี้เพื่อตั้งค่า APK เส้นทางและตัวแปรเป้าหมายหมายเหตุ: โมดูล APK ทดสอบไม่รองรับผลิตภัณฑ์ รสชาติและกำหนดเป้าหมายได้ตัวแปรเดียวเท่านั้น นอกจากนี้ ระบบยังไม่รองรับ Jacoco
- เพิ่มการตรวจสอบชื่อทรัพยากรก่อนผสานทรัพยากร
- เมื่อสร้างแพ็กเกจ AAR (Android ARchive) สำหรับโมดูลไลบรารี คุณไม่ต้องระบุ
ตัวยึดตำแหน่ง
@{applicationId}
อัตโนมัติใน การผสานรวมไฟล์ Manifest ให้ใช้ตัวยึดตําแหน่งอื่นแทน เช่น@{libApplicationId}
แล้วระบุค่าให้ตัวยึดตําแหน่งนั้นหากต้องการรวมรหัสแอปพลิเคชันในคลังไฟล์เก็บถาวร
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.2.0 (เมษายน 2015)
- การขึ้นต่อกัน:
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- รองรับการเรียกใช้การทดสอบหน่วยด้วย Gradle ได้ดียิ่งขึ้น
- เพิ่มการสนับสนุนเพื่อรวมทรัพยากรแบบ Java ใน classpath เมื่อเรียกใช้การทดสอบหน่วยจาก Gradle โดยตรง
- เพิ่มการรองรับทรัพยากร Dependency ของ Unit Test สำหรับอาร์ติแฟกต์ Android Archive (AAR)
- เพิ่มการรองรับพร็อพเพอร์ตี้
unitTestVariants
แล้ว จึงสามารถปรับเปลี่ยนตัวแปรของการทดสอบ 1 หน่วยได้โดยใช้build.gradle
- เพิ่มโค้ดบล็อก
unitTest.all
แล้วtestOptions
เพื่อกำหนดค่างานที่กำหนดเองสำหรับหน่วย การทดสอบ โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่มการทดสอบ 1 หน่วย การตั้งค่าโดยใช้ตัวเลือกใหม่นี้android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- แก้ไขการจัดการ enum และฟิลด์อินสแตนซ์สาธารณะใน
บรรจุไฟล์
mockable-android.jar
- แก้ไขทรัพยากร Dependency ของงานโปรเจ็กต์ไลบรารีเพื่อให้คลาสทดสอบ คอมไพล์อีกครั้งหลังการเปลี่ยนแปลง
- เพิ่มพร็อพเพอร์ตี้
testProguardFile
เพื่อนำไปใช้แล้ว ProGuard เมื่อลดขนาด ทดสอบ APK - เพิ่มพร็อพเพอร์ตี้
timeOut
ในadbOptions
แล้ว สำหรับการตั้งค่าเวลาในการบันทึกสูงสุดสำหรับ หน้าจอ Android Debug Bridge บันทึก - เพิ่มการรองรับทรัพยากร 280 dpi
- ประสิทธิภาพที่ดีขึ้นระหว่างการประเมินโครงการ
- รองรับการเรียกใช้การทดสอบหน่วยด้วย Gradle ได้ดียิ่งขึ้น
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.1.3 (มีนาคม 2015)
- การขึ้นต่อกัน:
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- แก้ปัญหาทรัพยากร Dependency ที่ซ้ำกันในแอปทดสอบที่ทำให้ ProGuard ทำงานไม่สำเร็จ
- การใช้ตัวเปรียบเทียบแบบคงที่ซึ่งไม่เป็นไปตามสัญญาเปรียบเทียบ JDK และ สร้างข้อผิดพลาด JDK 7
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.1.2 (กุมภาพันธ์ 2015)
- การขึ้นต่อกัน:
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- เส้นทางที่ปรับให้เป็นมาตรฐานเมื่อสร้าง JAR ที่จำลองได้สำหรับหน่วย การทดสอบ
- แก้ไขการตั้งค่า
archivesBaseName
ในไฟล์build.gradle
- แก้ไขความล้มเหลวของตัวยึดตำแหน่งที่ยังไม่ได้แก้ไขในการผสานไฟล์ Manifest เมื่อคุณสร้างแอปพลิเคชันทดสอบไลบรารี
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.1 (กุมภาพันธ์ 2015)
- Dependency
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- ตัวแปรของบิลด์ที่แก้ไขเพื่อให้เฉพาะตัวแปรที่เป็นแพ็กเกจ ทริกเกอร์แอป Wear งานบิลด์เฉพาะสำหรับ Wear
- เปลี่ยนปัญหาเกี่ยวกับการขึ้นต่อกันให้ล้มเหลวในเวลาบิลด์ มากกว่าตอนแก้ไขข้อบกพร่อง ลักษณะการทํางานนี้ช่วยให้คุณเรียกใช้งานการวินิจฉัย (เช่น "Dependency") เพื่อช่วยแก้ไขข้อขัดแย้งได้
- แก้ไขเมธอด
android.getBootClasspath()
ให้แสดงผลค่า
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.1.0 (กุมภาพันธ์ 2015)
- Dependency
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- เพิ่มการสนับสนุนการทดสอบ 1 หน่วยใหม่แล้ว
- เปิดใช้แล้ว
หน่วย
ทดสอบเพื่อทำบน JVM ในพื้นที่เทียบกับเวอร์ชันพิเศษ
ของไฟล์
android.jar
ที่ใช้ได้กับ เช่น Mockito - เพิ่มงานทดสอบใหม่
testDebug
,testRelease
และtestMyFlavorDebug
เมื่อใช้ผลิตภัณฑ์รุ่นต่างๆ - เพิ่มโฟลเดอร์แหล่งที่มาใหม่ที่ได้รับการยอมรับว่าเป็นการทดสอบหน่วย ได้แก่
src/test/java/
,src/testDebug/java/
,src/testMyFlavor/java/
- เพิ่มการกําหนดค่าใหม่ในไฟล์
build.gradle
เพื่อประกาศการพึ่งพาสําหรับการทดสอบเท่านั้น เช่นtestCompile 'junit:junit:4.11'
,testMyFlavorCompile 'some:library:1.0'
หมายเหตุ: ทรัพยากร Dependency สำหรับการทดสอบเท่านั้น ปัจจุบันยังใช้งานร่วมกับ Jack (Java Android Compiler) ไม่ได้ ชุดอุปกรณ์)
- เพิ่มตัวเลือก
android.testOptions.unitTests.returnDefaultValues
เพื่อควบคุมลักษณะการทํางานของ android.jar ที่จำลองได้ - แทนที่
Test
ในชื่องานทดสอบด้วยAndroidTest
ตัวอย่างเช่น งานassembleDebugTest
เปลี่ยนเป็นงานassembleDebugAndroidTest
งานทดสอบหน่วย ยังมีUnitTest
อยู่ในชื่องาน เช่นassembleDebugUnitTest
- แก้ไขไฟล์การกำหนดค่า ProGuard เพื่อไม่ให้มีผลกับ APK ทดสอบอีกต่อไป ถ้า เปิดใช้การลดขนาด ProGuard จะประมวลผล APK ทดสอบและ จะใช้เฉพาะไฟล์การแมปที่สร้างขึ้นเมื่อลดขนาด APK หลัก
- อัปเดตการจัดการทรัพยากร Dependency แล้ว
- แก้ไขปัญหาเมื่อใช้
provided
และpackage
ขอบเขตหมายเหตุ: ขอบเขตเหล่านี้ ไม่สามารถทำงานร่วมกับแพ็กเกจ AAR (Android ARchive) และจะ ทำให้บิลด์ที่มีแพ็กเกจ AAR ล้มเหลว
- การแก้ไขทรัพยากร Dependency ที่แก้ไขเพื่อเปรียบเทียบการอ้างอิงของ แอปที่อยู่ภายใต้การทดสอบและแอปทดสอบ หากอาร์ติแฟกต์ที่มี พบเวอร์ชันเดียวกันสำหรับทั้ง 2 แอป แต่จะไม่มีใน แอปทดสอบและจัดแพ็กเกจอยู่สำหรับแอปที่อยู่ระหว่างการทดสอบเท่านั้น ถ้า ระบบพบอาร์ติแฟกต์ที่มีเวอร์ชันต่างกันสำหรับทั้ง 2 แอป การสร้างล้มเหลว
- แก้ไขปัญหาเมื่อใช้
- เพิ่มการรองรับ
anyDpi
แล้ว ทรัพยากร ตัวระบุในการผสานทรัพยากร - ปรับปรุงการประเมินและความเร็วในการซิงค์ IDE สำหรับโปรเจ็กต์ที่มี โมดูล Android จำนวนมาก
ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.0.1 (มกราคม 2015)
- Dependency
-
-
Gradle 2.2.1 ถึง 2.3.x
หมายเหตุ: ปลั๊กอิน Android สำหรับ Gradle เวอร์ชันนี้ใช้ร่วมกับ Gradle 2.4 ขึ้นไปไม่ได้
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
-
- หมายเหตุทั่วไป
-
- แก้ไขปัญหาเกี่ยวกับบิลด์ Gradle ไม่สำเร็จเมื่อเข้าถึง
โมดูล
extractReleaseAnnotations
(ปัญหา 81638) - แก้ไขปัญหาเกี่ยวกับ
Disable
การผ่านการตั้งค่า--no-optimize
ไปยังไบต์โค้ดของ Dalvik Executable (dex) (ปัญหา 82662) - แก้ไขปัญหาการรวมไฟล์ Manifest เมื่อนำเข้าไลบรารีที่มีไฟล์ Manifest
targetSdkVersion
น้อยกว่า 16 ปี - แก้ไขปัญหาการจัดลำดับความหนาแน่นเมื่อใช้ Android Studio กับ JDK 8
- แก้ไขปัญหาเกี่ยวกับบิลด์ Gradle ไม่สำเร็จเมื่อเข้าถึง
โมดูล
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.0.0 (ธันวาคม 2014)
- การขึ้นต่อกัน:
-
-
Gradle 2.2.1 ถึง 2.3.x
หมายเหตุ: ปลั๊กอิน Android สำหรับ Gradle เวอร์ชันนี้ใช้ร่วมกับ Gradle 2.4 ขึ้นไปไม่ได้
- เครื่องมือสร้างเวอร์ชัน 21.1.1 ขึ้นไป
-
- หมายเหตุทั่วไป
-
- การเผยแพร่ปลั๊กอินครั้งแรก