ต่อไปนี้เป็นหมายเหตุประจำรุ่นของ 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 และการรองรับการเชื่อมโยงมุมมอง หากต้องการข้อมูลเพิ่มเติม โปรดอ่านบันทึกประจำรุ่นฉบับเต็ม
การเชื่อมโยงมุมมอง
การเชื่อมโยงกับมุมมองช่วยให้คุณเขียนโค้ดที่โต้ตอบกับมุมมองได้ง่ายขึ้นด้วยการสร้างคลาสการเชื่อมโยงสําหรับไฟล์เลย์เอาต์ XML แต่ละไฟล์ คลาสเหล่านี้มีการอ้างอิงโดยตรงไปยังมุมมองทั้งหมดที่มีรหัสในเลย์เอาต์ที่สอดคล้องกัน
เนื่องจากเป็นการแทนที่ findViewById()
การเชื่อมโยงข้อมูลพร็อพเพอร์ตี้จึงช่วยลดความเสี่ยงที่จะเกิดข้อยกเว้นเกี่ยวกับ Null Pointer อันเนื่องมาจากรหัสข้อมูลพร็อพเพอร์ตี้ที่ไม่ถูกต้อง
หากต้องการเปิดใช้การเชื่อมโยงมุมมอง คุณต้องใช้ปลั๊กอิน Android Gradle 3.6.0 ขึ้นไป และใส่ข้อมูลต่อไปนี้ในไฟล์ build.gradle
ของแต่ละโมดูล
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
ใช้การเปลี่ยนแปลง
ตอนนี้คุณเพิ่มคลาสแล้วทําให้การเปลี่ยนแปลงโค้ดมีผลกับแอปที่ทํางานอยู่ได้โดยคลิกใช้การเปลี่ยนแปลงโค้ดหรือใช้การเปลี่ยนแปลงและเริ่มกิจกรรมอีกครั้ง
ดูข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างการดำเนินการ 2 อย่างนี้ได้ที่ใช้การเปลี่ยนแปลง
ตัวเลือกเมนู "ปรับโครงสร้างใหม่" เพื่อเปิดใช้การรองรับ Instant App
ตอนนี้คุณเปิดใช้โมดูลพื้นฐานได้ทันทีทุกเมื่อหลังจากสร้างโปรเจ็กต์แอป ดังนี้
- เปิดแผงโปรเจ็กต์โดยเลือกดู > หน้าต่างเครื่องมือ > โปรเจ็กต์จากแถบเมนู
- คลิกขวาที่โมดูลพื้นฐาน ซึ่งปกติจะตั้งชื่อว่า "app" แล้วเลือกปรับโครงสร้าง > เปิดใช้การรองรับ 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
หากต้องการใช้ฟีเจอร์นี้ ก่อนอื่น ให้บันทึก heap dump หรือนําเข้าไฟล์ heap dump ลงใน Android Studio หากต้องการแสดงข้อมูลโค้ดที่อาจมีการรั่วไหลของหน่วยความจํา ให้เลือกช่องทําเครื่องหมายการรั่วไหลของกิจกรรม/ข้อมูลโค้ดในแผงการดัมพ์กองของเครื่องมือวิเคราะห์หน่วยความจํา
โปรแกรมจำลอง
Android Studio 3.6 ช่วยให้คุณใช้ประโยชน์จากการอัปเดตหลายรายการที่รวมอยู่ใน Android Emulator 29.2.7 ขึ้นไปตามที่อธิบายไว้ด้านล่าง
การรองรับสถานที่ตั้งที่ดีขึ้น
Android Emulator 29.2.7 ขึ้นไปรองรับการจําลองพิกัด GPS และข้อมูลเส้นทางเพิ่มเติม เมื่อเปิดโปรแกรมจําลอง การควบคุมแบบขยาย ตัวเลือกในแท็บสถานที่จะจัดระเบียบใหม่เป็น 2 แท็บ ได้แก่ จุดเดียวและเส้นทาง
จุดเดียว
ในแท็บจุดเดียว คุณสามารถใช้เว็บวิวของ Google Maps เพื่อค้นหาจุดที่น่าสนใจได้ เช่นเดียวกับที่ใช้ Google Maps ในโทรศัพท์หรือเบราว์เซอร์ เมื่อค้นหาหรือคลิกตำแหน่งในแผนที่ คุณจะบันทึกตำแหน่งได้โดยเลือก "บันทึกจุด" บริเวณด้านล่างของแผนที่ สถานที่ทั้งหมดที่บันทึกไว้จะแสดงอยู่ทางด้านขวาของหน้าต่างการควบคุมแบบขยาย
หากต้องการตั้งค่าตำแหน่งของโปรแกรมจำลองเป็นตำแหน่งที่คุณเลือกบนแผนที่ ให้คลิกปุ่มตั้งค่าตำแหน่งที่ด้านขวาล่างของหน้าต่างการควบคุมแบบขยาย
เส้นทาง
แท็บเส้นทางมีเว็บวิว Google Maps ที่คุณสามารถใช้สร้างเส้นทางระหว่างสถานที่ตั้งแต่ 2 แห่งขึ้นไป ซึ่งคล้ายกับแท็บจุดเดียว วิธีสร้างและบันทึกเส้นทางมีดังนี้
- ในมุมมองแผนที่ ให้ใช้ช่องข้อความเพื่อค้นหาจุดหมายแรกในเส้นทาง
- เลือกสถานที่จากผลการค้นหา
- เลือกปุ่มไปยังส่วนต่างๆ
- เลือกจุดเริ่มต้นของเส้นทางจากแผนที่
- (ไม่บังคับ) คลิกเพิ่มปลายทางเพื่อเพิ่มจุดแวะพักอื่นๆ ในเส้นทาง
- บันทึกเส้นทางโดยคลิกบันทึกเส้นทางในมุมมองแผนที่
- ระบุชื่อเส้นทางแล้วคลิกบันทึก
หากต้องการจำลองการจำลองเส้นทางตามเส้นทางที่คุณบันทึกไว้ ให้เลือกเส้นทางจากรายการเส้นทางที่บันทึกไว้ แล้วคลิกเล่นเส้นทางบริเวณด้านขวาล่างของหน้าต่างการควบคุมแบบขยาย หากต้องการหยุดการจําลอง ให้คลิกหยุดเส้นทาง
หากต้องการจําลองโปรแกรมจําลองตามเส้นทางที่ระบุอย่างต่อเนื่อง ให้เปิดใช้สวิตช์ข้างเล่นซ้ำ หากต้องการเปลี่ยนความเร็วในการทํางานของเมาส์จำลองตามเส้นทางที่ระบุ ให้เลือกตัวเลือกจากเมนูแบบเลื่อนลงความเร็วในการเล่น
การรองรับหลายจอภาพ
ตอนนี้โปรแกรมจำลอง Android ให้คุณติดตั้งใช้งานแอปในหลายจอแสดงผลได้ ซึ่งรองรับมิติข้อมูลที่ปรับแต่งได้ และช่วยทดสอบแอปที่รองรับหลายหน้าต่างและหลายจอแสดงผล ขณะที่อุปกรณ์เสมือนกำลังทำงานอยู่ คุณสามารถเพิ่มจอแสดงผลได้สูงสุด 2 จอ ดังนี้
-
เปิดการควบคุมแบบขยาย แล้วไปที่แท็บจอแสดงผล
-
เพิ่มจอแสดงผลอีกจอโดยคลิกเพิ่มจอแสดงผลรอง
-
จากเมนูแบบเลื่อนลงในส่วนจอแสดงผลรอง ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
-
เลือกสัดส่วนภาพที่กำหนดล่วงหน้า
-
เลือกกําหนดเอง แล้วตั้งค่าความสูง ความกว้าง และ dpi สําหรับการแสดงผลที่กําหนดเอง
-
(ไม่บังคับ) คลิกเพิ่มจอแสดงผลรองเพื่อเพิ่มจอแสดงผลที่ 3
-
คลิกใช้การเปลี่ยนแปลงเพื่อเพิ่มจอแสดงผลที่ระบุลงในอุปกรณ์เสมือนที่ทำงานอยู่
อุปกรณ์เสมือนจริงและเทมเพลตโปรเจ็กต์ใหม่สำหรับ 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 ให้คุณกลับมาดาวน์โหลดต่อได้หากดาวน์โหลดถูกขัดจังหวะ (เช่น เนื่องจากปัญหาเครือข่าย) แทนที่จะต้องเริ่มดาวน์โหลดใหม่ตั้งแต่ต้น การปรับปรุงนี้มีประโยชน์อย่างยิ่งสำหรับการดาวน์โหลดขนาดใหญ่ เช่น โปรแกรมจำลอง Android หรือภาพระบบ เมื่อการเชื่อมต่ออินเทอร์เน็ตไม่น่าเชื่อถือ
นอกจากนี้ หากคุณมีงานดาวน์โหลด SDK ที่ทำงานอยู่เบื้องหลัง ตอนนี้คุณสามารถหยุดการดาวน์โหลดชั่วคราวหรือดาวน์โหลดต่อได้โดยใช้ตัวควบคุมในแถบสถานะ
เลิกใช้งาน Win32 แล้ว
Android Studio เวอร์ชัน Windows 32 บิตจะไม่ได้รับอัปเดตอีกต่อไปหลังจากเดือนธันวาคม 2019 และจะไม่ได้รับการรองรับอีกต่อไปหลังจากเดือนธันวาคม 2020 คุณใช้ Android Studio ต่อไปได้ อย่างไรก็ตาม หากต้องการรับการอัปเดตเพิ่มเติม ให้อัปเกรดเวิร์กสเตชันเป็น Windows เวอร์ชัน 64 บิต
ดูข้อมูลเพิ่มเติมได้ที่บล็อกการเลิกใช้งาน Windows 32 บิต
ตัวเลือกใหม่สำหรับเพิ่มประสิทธิภาพเวลาในการซิงค์ Gradle
ในรุ่นก่อนหน้า Android Studio จะดึงข้อมูลรายการงาน Gradle ทั้งหมดในระหว่างการซิงค์ Gradle สําหรับโปรเจ็กต์ขนาดใหญ่ การดึงข้อมูลรายการงานอาจทําให้เวลาในการซิงค์ช้า
หากต้องการปรับปรุงประสิทธิภาพการซิงค์ Gradle ให้ไปที่ไฟล์ > การตั้งค่า > ทดลองใช้ แล้วเลือก "อย่าสร้างรายการงาน Gradle ระหว่างการซิงค์ Gradle"
เมื่อคุณเปิดใช้ตัวเลือกนี้ Android Studio จะข้ามการสร้างรายการงานระหว่างการซิงค์ ซึ่งจะช่วยให้ Gradle Sync เสร็จสมบูรณ์เร็วขึ้นและปรับปรุงการตอบสนองของ UI โปรดทราบว่าเมื่อ IDE ข้ามการสร้างรายการงาน รายการงานในแผง Gradle จะว่างเปล่า และการเติมชื่องานอัตโนมัติในไฟล์บิลด์จะไม่ทำงาน
ตำแหน่งใหม่สำหรับสลับโหมดออฟไลน์ของ Gradle
หากต้องการเปิดหรือปิดใช้โหมดออฟไลน์ของ Gradle ก่อนอื่นให้เลือกดู > หน้าต่างเครื่องมือ > Gradle จากแถบเมนู จากนั้นคลิกสลับโหมดออฟไลน์ ใกล้กับด้านบนของหน้าต่าง Gradle
IntelliJ IDEA 2019.2
IDE หลักของ Android Studio ได้รับการอัปเดตด้วยการปรับปรุงจาก 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 พื้นที่ได้
ในทํานองเดียวกัน ตอนนี้คุณลบข้อจํากัดได้โดยเลือกข้อจํากัดแล้วกดแป้น Delete
นอกจากนี้ คุณยังลบข้อจำกัดได้โดยกดแป้น Control
ค้างไว้ (Command
ใน macOS) แล้วคลิกจุดยึดข้อจำกัด โปรดทราบว่าเมื่อคุณกดแป้น Control
หรือ Command
ค้างไว้และวางเมาส์เหนือจุดยึด ข้อจำกัดที่เกี่ยวข้องจะเปลี่ยนเป็นสีแดงเพื่อระบุว่าคุณสามารถคลิกเพื่อลบได้
เมื่อเลือกมุมมองแล้ว คุณสามารถสร้างข้อจำกัดได้โดยคลิกไอคอน + ใดก็ได้ในส่วนวิดเจ็ตข้อจำกัดของแผงแอตทริบิวต์ ดังที่แสดงในภาพต่อไปนี้ เมื่อคุณสร้างข้อจำกัดใหม่ ตอนนี้เครื่องมือแก้ไขเลย์เอาต์จะเลือกและไฮไลต์ข้อจำกัดนั้น พร้อมแสดงความคิดเห็นแบบภาพทันทีสำหรับสิ่งที่คุณเพิ่งเพิ่ม
เมื่อสร้างข้อจำกัด ตอนนี้เครื่องมือแก้ไขเลย์เอาต์จะแสดงเฉพาะจุดยึดที่มีสิทธิ์ซึ่งคุณใช้จำกัดได้ ก่อนหน้านี้ เครื่องมือแก้ไขเลย์เอาต์จะไฮไลต์จุดยึดทั้งหมดในมุมมองทั้งหมด ไม่ว่าคุณจะจำกัดจุดยึดเหล่านั้นได้หรือไม่ก็ตาม นอกจากนี้ ตอนนี้การวางซ้อนสีน้ำเงินจะไฮไลต์เป้าหมายของข้อจำกัดด้วย การไฮไลต์นี้มีประโยชน์อย่างยิ่งเมื่อพยายามจำกัดให้อยู่ภายในคอมโพเนนต์ที่ซ้อนทับกัน
นอกจากการอัปเดตข้างต้นแล้ว Android Studio 3.5 ยังมีข้อปรับปรุงต่อไปนี้ในเครื่องมือแก้ไขเลย์เอาต์
- ตอนนี้วิดเจ็ตข้อจำกัดและเมนูแบบเลื่อนลงของระยะขอบเริ่มต้นให้คุณใช้ทรัพยากรมิติข้อมูลสำหรับระยะขอบได้แล้ว
- ในแถบเครื่องมือเครื่องมือแก้ไขเลย์เอาต์ รายการอุปกรณ์ที่กำหนดขนาดของพื้นผิวการออกแบบได้รับการอัปเดตแล้ว นอกจากนี้ เรายังได้ปรับปรุงลักษณะการยึดขณะปรับขนาด และตอนนี้แฮนเดิลการปรับขนาดบนพื้นที่ออกแบบจะปรากฏอยู่เสมอ เมื่อปรับขนาด การวางซ้อนใหม่จะปรากฏขึ้นเพื่อแสดงขนาดอุปกรณ์ทั่วไป
- เครื่องมือแก้ไขเลย์เอาต์มีรูปแบบสีใหม่ที่ช่วยเพิ่มความสอดคล้องและลดความคมชัดระหว่างคอมโพเนนต์ ข้อความ และข้อจำกัด
- ตอนนี้โหมดพิมพ์เขียวรองรับข้อความสำหรับคอมโพเนนต์บางรายการที่ก่อนหน้านี้ข้อความไม่แสดง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่ Project Marble ของ Android Studio: ตัวแก้ไขเลย์เอาต์
การเชื่อมโยงข้อมูล
นอกจากการรองรับการประมวลผลคำอธิบายประกอบเพิ่มเติมสำหรับการเชื่อมโยงข้อมูลแล้ว IDE ยังปรับปรุงฟีเจอร์และประสิทธิภาพของเครื่องมือแก้ไขอัจฉริยะเมื่อสร้างนิพจน์การเชื่อมโยงข้อมูลใน XML
ปรับปรุงการรองรับโปรเจ็กต์ C/C++
Android Studio 3.5 มีการเปลี่ยนแปลงหลายอย่างที่ปรับปรุงการรองรับโปรเจ็กต์ C/C++
การปรับปรุงแผงตัวแปรของบิวด์สำหรับการซิงค์ตัวแปรเดียว
ตอนนี้คุณระบุทั้งตัวแปรบิวด์ที่ใช้งานอยู่และ ABI ที่ใช้งานอยู่ในแผงตัวแปรบิวด์ได้แล้ว ฟีเจอร์นี้ช่วยให้การกำหนดค่าบิลด์ต่อโมดูลง่ายขึ้น และยังสามารถปรับปรุงประสิทธิภาพการซิงค์ Gradle ได้ด้วย
ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนตัวแปรการสร้าง
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 รองรับการติดตั้งใช้งานแอปในอุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อเท่านั้น อ่านข้อมูลเพิ่มเติมได้ในหัวข้อเรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์
การนำส่งแบบมีเงื่อนไขสำหรับโมดูลฟีเจอร์
การนำส่งแบบมีเงื่อนไขช่วยให้คุณกำหนดข้อกำหนดในการกำหนดค่าอุปกรณ์บางอย่างเพื่อให้ระบบดาวน์โหลดโมดูลฟีเจอร์โดยอัตโนมัติระหว่างการติดตั้งแอปได้ เช่น คุณสามารถกำหนดค่าโมดูลฟีเจอร์ที่มีฟังก์ชันการทำงานสำหรับเทคโนโลยีความจริงเสริม (AR) ให้พร้อมใช้งานเมื่อติดตั้งแอปสำหรับอุปกรณ์ที่รองรับ AR เท่านั้น
ปัจจุบันกลไกการแสดงโฆษณานี้รองรับการควบคุมการดาวน์โหลดโมดูล ณ เวลาติดตั้งแอปตามการกำหนดค่าอุปกรณ์ต่อไปนี้
- ฟีเจอร์ฮาร์ดแวร์และซอฟต์แวร์ของอุปกรณ์ รวมถึงเวอร์ชัน OpenGL ES
- ประเทศของผู้ใช้
- ระดับ API
หากอุปกรณ์ไม่เป็นไปตามข้อกําหนดทั้งหมดที่คุณระบุ ระบบจะไม่ดาวน์โหลดข้อบังคับ ณ เวลาติดตั้งแอป อย่างไรก็ตาม แอปอาจขอดาวน์โหลดโมดูลตามคําขอในภายหลังโดยใช้ไลบรารี Play Core อ่านข้อมูลเพิ่มเติมได้ที่หัวข้อกำหนดค่าการแสดงโฆษณาแบบมีเงื่อนไข
IntelliJ IDEA 2019.1
IDE หลักของ Android Studio ได้รับการอัปเดตด้วยการปรับปรุงจาก 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 รุ่นเบต้า
- เมื่อใช้ Data Binding Library
LiveDataListener.onChanged()
อาจไม่สําเร็จด้วย NPE การแก้ไขสำหรับปัญหานี้จะรวมอยู่ใน Android Studio 3.4.1 และพร้อมใช้งานแล้วในเวอร์ชันตัวอย่างล่าสุดของ Android Studio 3.5 (ดู ปัญหา #122066788)
IntelliJ IDEA 2018.3.4
IDE หลักของ Android Studio ได้รับการอัปเดตด้วยการปรับปรุงจาก IntelliJ IDEA ผ่านรุ่น 2018.3.4
การอัปเดตปลั๊กอิน Android Gradle 3.4.0
ดูข้อมูลเกี่ยวกับฟีเจอร์ใหม่ในปลั๊กอิน Android Gradle 3.4.0 ได้ที่บันทึกประจำรุ่น
กล่องโต้ตอบโครงสร้างโปรเจ็กต์ใหม่
กล่องโต้ตอบโครงสร้างโปรเจ็กต์ (PSD) ใหม่ช่วยให้คุณอัปเดตข้อกำหนดและกำหนดค่าแง่มุมต่างๆ ของโปรเจ็กต์ได้ง่ายขึ้น เช่น โมดูล ตัวแปรการสร้าง การกําหนดค่าการรับรอง และตัวแปรการสร้าง
คุณเปิด PSD ได้โดยเลือกไฟล์ > โครงสร้างโปรเจ็กต์จากแถบเมนู นอกจากนี้ คุณยังเปิด PSD ได้โดยกด Ctrl+Shift+Alt+S
ใน Windows และ Linux หรือ Command+;
(เซมิโคลอน) ใน macOS คุณสามารถดูคำอธิบายของส่วนใหม่และส่วนที่อัปเดตแล้วบางส่วนของ PSD ได้ที่ด้านล่าง
ตัวแปร
ส่วนตัวแปรใหม่ของ PSD ช่วยให้คุณสร้างและจัดการตัวแปรการสร้างได้ เช่น ตัวแปรสำหรับทำให้หมายเลขเวอร์ชันของข้อกำหนดต่างๆ ที่สอดคล้องกันทั่วทั้งโปรเจ็กต์
- ดูและแก้ไขตัวแปรการสร้างที่มีอยู่ในสคริปต์การสร้าง Gradle ของโปรเจ็กต์ได้อย่างรวดเร็ว
- เพิ่มตัวแปรการสร้างใหม่ในระดับโปรเจ็กต์หรือโมดูลจาก PSD โดยตรง
หมายเหตุ: หากไฟล์การกําหนดค่าบิลด์ที่มีอยู่กําหนดค่าผ่านสคริปต์ Groovy ที่ซับซ้อน คุณอาจแก้ไขค่าเหล่านั้นผ่าน PSD ไม่ได้ นอกจากนี้ คุณยังแก้ไขไฟล์บิลด์ที่เขียนด้วย Kotlin โดยใช้ PSD ไม่ได้
โมดูล
กำหนดค่าพร็อพเพอร์ตี้ที่ใช้กับตัวแปรการสร้างทั้งหมดในโมดูลที่มีอยู่ หรือเพิ่มโมดูลใหม่ลงในโปรเจ็กต์จากส่วนโมดูล เช่น คุณสามารถกําหนดค่าพร็อพเพอร์ตี้ defaultConfig
หรือจัดการการกําหนดค่าการรับรองได้ที่นี่
ทรัพยากร Dependency
ตรวจสอบและแสดงภาพทรัพยากรแต่ละรายการในกราฟทรัพยากรของโปรเจ็กต์ตามที่ Gradle แก้ปัญหาระหว่างการซิงค์โปรเจ็กต์โดยทำตามขั้นตอนต่อไปนี้
- เลือกทรัพยากร Dependencies ในแผงด้านซ้ายของ PSD
- ในแผงโมดูล ให้เลือกโมดูลที่ต้องการตรวจสอบการพึ่งพาที่แก้ไขแล้ว
- ทางด้านขวาของ PSD ให้เปิดแผงทรัพยากรที่เกี่ยวข้องซึ่งแก้ไขแล้วที่แสดงอยู่ด้านล่าง
นอกจากนี้ คุณยังค้นหาและเพิ่มข้อกำหนดเบื้องต้นลงในโปรเจ็กต์ได้อย่างรวดเร็วโดยการเลือกโมดูลจากส่วนข้อกำหนดเบื้องต้นของ PSD ก่อน จากนั้นคลิกปุ่ม (+) ในส่วนข้อกำหนดเบื้องต้นที่ประกาศ แล้วเลือกประเภทข้อกำหนดเบื้องต้นที่ต้องการเพิ่ม
คุณควรเห็นกล่องโต้ตอบคล้ายกับด้านล่าง ซึ่งจะช่วยให้คุณเพิ่มข้อกำหนดในโมดูลได้ ทั้งนี้ขึ้นอยู่กับประเภทของข้อกำหนดที่เลือก
ตัวแปรการสร้าง
ในส่วนนี้ของ PSD ให้สร้างและกำหนดค่าตัวแปรบิลด์และรสชาติผลิตภัณฑ์สำหรับแต่ละโมดูลในโปรเจ็กต์ คุณสามารถเพิ่มตัวยึดตําแหน่งของไฟล์ Manifest, เพิ่มไฟล์ ProGuard, กําหนดคีย์การรับรอง และอื่นๆ
คำแนะนำ
ดูการอัปเดตที่แนะนำสำหรับทรัพยากร Dependency ของโปรเจ็กต์และตัวแปรการสร้างในส่วนคำแนะนำดังที่แสดงด้านล่าง
เครื่องมือจัดการทรัพยากรแบบใหม่
เครื่องมือจัดการทรัพยากรเป็นหน้าต่างเครื่องมือใหม่สำหรับการนําเข้า สร้าง จัดการ และใช้ทรัพยากรในแอป คุณสามารถเปิดหน้าต่างเครื่องมือได้โดยเลือกดู > หน้าต่างเครื่องมือ > เครื่องมือจัดการทรัพยากรจากแถบเมนู เครื่องมือจัดการทรัพยากรช่วยให้คุณทําสิ่งต่อไปนี้ได้
- แสดงทรัพยากรเป็นภาพ: คุณสามารถดูตัวอย่างรูปภาพ รูปภาพ และเทมเพลตเพื่อค้นหาทรัพยากรที่ต้องการได้อย่างรวดเร็ว
- การนําเข้าหลายรายการพร้อมกัน: คุณสามารถนําเข้าชิ้นงานที่วาดได้หลายรายการพร้อมกันได้โดยการลากและวางลงในหน้าต่างเครื่องมือเครื่องมือจัดการทรัพยากร หรือใช้วิซาร์ดนําเข้าสิ่งที่วาดได้ หากต้องการเข้าถึงวิซาร์ด ให้เลือกปุ่ม (+) ที่มุมซ้ายบนของหน้าต่างเครื่องมือ แล้วเลือกนำเข้าสิ่งที่วาดได้จากเมนูแบบเลื่อนลง
-
แปลง SVG เป็นออบเจ็กต์
VectorDrawable
: คุณสามารถใช้วิซาร์ดนําเข้าสิ่งที่วาดได้เพื่อแปลงรูปภาพ SVG เป็นออบเจ็กต์VectorDrawable
- ลากและวางชิ้นงาน: จากหน้าต่างเครื่องมือตัวจัดการทรัพยากร คุณสามารถลากและวางรายการที่วาดได้ทั้งในมุมมองการออกแบบและ XML ของเครื่องมือแก้ไขเลย์เอาต์
- ดูเวอร์ชันอื่น: ตอนนี้คุณดูเวอร์ชันอื่นของทรัพยากรได้โดยดับเบิลคลิกทรัพยากรภายในหน้าต่างเครื่องมือ มุมมองนี้แสดงเวอร์ชันต่างๆ ที่คุณสร้างและตัวกรองที่รวมไว้
- มุมมองไทล์และมุมมองรายการ: คุณเปลี่ยนมุมมองภายในหน้าต่างเครื่องมือเพื่อแสดงทรัพยากรในลักษณะต่างๆ ได้
ดูข้อมูลเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับวิธีจัดการทรัพยากรของแอป
การตรวจสอบรหัสบิลด์เมื่อทำโปรไฟล์และแก้ไขข้อบกพร่องของ APK
เมื่อคุณระบุไฟล์สัญลักษณ์การแก้ไขข้อบกพร่องสำหรับ.so
ไลบรารีที่แชร์ภายใน APK ของคุณ Android Studio จะตรวจสอบว่ารหัสบิลด์ของไฟล์สัญลักษณ์ที่ระบุตรงกับรหัสบิลด์ของไลบรารี .so
ภายใน APK
หากคุณสร้างไลบรารีแบบเนทีฟใน APK ด้วยรหัสบิลด์ Android Studio จะตรวจสอบว่ารหัสบิลด์ในไฟล์สัญลักษณ์ตรงกับรหัสบิลด์ในไลบรารีแบบเนทีฟหรือไม่ และจะปฏิเสธไฟล์สัญลักษณ์หากไม่ตรงกัน หากคุณไม่ได้สร้างด้วยรหัสบิลด์ การให้ไฟล์สัญลักษณ์ที่ไม่ถูกต้องอาจทำให้เกิดปัญหาในการแก้ไขข้อบกพร่อง
เปิดใช้ R8 โดยค่าเริ่มต้น
R8 รวมการกรอง Sugar, การลดขนาด, การสร้างความสับสน, การเพิ่มประสิทธิภาพ และการแปลงเป็น Dex ไว้ในขั้นตอนเดียว ซึ่งส่งผลให้ประสิทธิภาพของบิลด์ดีขึ้นอย่างเห็นได้ชัด R8 เปิดตัวในปลั๊กอิน Android Gradle 3.3.0 และตอนนี้เปิดใช้โดยค่าเริ่มต้นสำหรับทั้งโปรเจ็กต์แอปและไลบรารี Android ที่ใช้ปลั๊กอิน 3.4.0 ขึ้นไป
รูปภาพด้านล่างแสดงภาพรวมระดับสูงของกระบวนการคอมไพล์ก่อนเปิดตัว R8
ตอนนี้ R8 จะทำการปรับโค้ดให้ปราศจาก Sugar, การลดขนาด, การสร้างความสับสน, การเพิ่มประสิทธิภาพ และการแยกไฟล์ Dex (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 ได้จัดแพ็กเกจไลบรารีสนับสนุนใหม่เป็นแพ็กเกจแยกต่างหากที่จัดการและอัปเดตได้ง่ายขึ้น การดำเนินการตามเจตนานี้จึงช่วยให้คุณเพิ่มเฉพาะไลบรารีที่ต้องใช้ในการคอมโพเนนต์ 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 โดยโปรเจ็กต์ขนาดใหญ่จะทำงานได้เร็วขึ้นถึง 4 เท่า
วิซาร์ดสร้างโปรเจ็กต์ใหม่
วิซาร์ดสร้างโปรเจ็กต์ใหม่มีรูปลักษณ์ใหม่และมีการอัปเดตที่ช่วยปรับปรุงการสร้างโปรเจ็กต์ Android Studio ใหม่ให้มีประสิทธิภาพยิ่งขึ้น
โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสร้างโปรเจ็กต์
การอัปเดตเครื่องมือสร้างโปรไฟล์
Android Studio 3.3 มีการอัปเดตเครื่องมือวิเคราะห์แต่ละรายการ
ประสิทธิภาพเพิ่มขึ้น
ประสิทธิภาพการแสดงผลขณะใช้เครื่องมือวิเคราะห์โปรไฟล์ได้รับการปรับปรุงอย่างมากตามความคิดเห็นของผู้ใช้ โปรดแสดงความคิดเห็นต่อไป โดยเฉพาะในกรณีที่ยังพบปัญหาด้านประสิทธิภาพ
ตัวเลือกการติดตามการจัดสรรหน่วยความจําของเครื่องมือวิเคราะห์
ตอนนี้ เครื่องมือวิเคราะห์หน่วยความจำจะสุ่มตัวอย่างการจัดสรรหน่วยความจำเป็นระยะโดยค่าเริ่มต้นเพื่อปรับปรุงประสิทธิภาพของแอปขณะทำโปรไฟล์ หากต้องการ คุณเปลี่ยนลักษณะการทํางานนี้ได้โดยใช้เมนูแบบเลื่อนลงการติดตามการกําหนดเมื่อทดสอบในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป
คุณเลือกโหมดต่อไปนี้ได้โดยใช้เมนูแบบเลื่อนลงการติดตามการกําหนด
-
เต็ม: บันทึกการจัดสรรหน่วยความจําของออบเจ็กต์ทั้งหมด โปรดทราบว่าหากคุณมีแอปที่จัดสรรออบเจ็กต์จํานวนมาก คุณอาจพบปัญหาด้านประสิทธิภาพที่สำคัญขณะทำโปรไฟล์
-
สุ่มตัวอย่าง: บันทึกตัวอย่างการจัดสรรหน่วยความจําของออบเจ็กต์เป็นระยะ ซึ่งเป็นลักษณะการทำงานเริ่มต้นและส่งผลต่อประสิทธิภาพของแอปน้อยลงขณะทำโปรไฟล์ คุณอาจพบปัญหาด้านประสิทธิภาพบางอย่างกับแอปที่จัดสรรออบเจ็กต์จำนวนมากภายในระยะเวลาสั้นๆ
-
ปิด: ปิดการจัดสรรหน่วยความจำ หากยังไม่ได้เลือก ระบบจะเปิดใช้โหมดนี้โดยอัตโนมัติขณะบันทึก CPU จากนั้นจะกลับไปใช้การตั้งค่าก่อนหน้าเมื่อการบันทึกเสร็จสิ้น คุณเปลี่ยนลักษณะการทำงานนี้ได้ในกล่องโต้ตอบการกําหนดค่าการบันทึก CPU
การติดตามจะส่งผลต่อทั้งออบเจ็กต์ Java และการอ้างอิง JNI
ตรวจสอบข้อมูลการแสดงผลเฟรม
ในเครื่องมือวิเคราะห์ประสิทธิภาพ CPU ตอนนี้คุณสามารถตรวจสอบเวลาที่แอป Java ใช้ในการแสดงผลแต่ละเฟรมในเธรด UI หลักและเธรดแสดงผลได้แล้ว ข้อมูลนี้อาจมีประโยชน์เมื่อต้องการตรวจสอบปัญหาคอขวดที่ทำให้ 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_minimum_required()
ของ CMake
ข้อควรระวัง: ไม่แนะนำให้ใช้ไวยากรณ์ "+" กับข้อกําหนดของบิลด์อื่นๆ เนื่องจากข้อกําหนดแบบไดนามิกอาจทําให้เกิดการอัปเดตเวอร์ชันที่ไม่คาดคิดและแก้ไขความแตกต่างของเวอร์ชันได้ยาก
ตอนนี้ Android App Bundle รองรับ Instant App แล้ว
ตอนนี้ Android Studio ช่วยให้คุณสร้าง Android App Bundle ที่รองรับ Google Play Instant ได้อย่างเต็มรูปแบบ กล่าวคือ ตอนนี้คุณสามารถสร้างและติดตั้งใช้งานทั้งแอปที่ติดตั้งและประสบการณ์การใช้งาน Instant จากโปรเจ็กต์ Android Studio โปรเจ็กต์เดียว และรวมไว้ใน Android App Bundle รายการเดียว
หากคุณสร้างโปรเจ็กต์ Android Studio ใหม่โดยใช้กล่องโต้ตอบสร้างโปรเจ็กต์ใหม่ ให้ตรวจสอบว่าได้เลือกช่องข้างกำหนดค่าโปรเจ็กต์ > โปรเจ็กต์นี้จะรองรับแอปด่วน จากนั้น Android Studio จะสร้างโปรเจ็กต์แอปใหม่ตามปกติ แต่จะมีพร็อพเพอร์ตี้ต่อไปนี้ในไฟล์ Manifest เพื่อเพิ่มการรองรับแอปด่วนลงในโมดูลพื้นฐานของแอป
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
จากนั้นคุณสามารถสร้างโมดูลฟีเจอร์ที่พร้อมใช้งานทันทีโดยเลือกไฟล์ > ใหม่ > โมดูลใหม่จากแถบเมนู แล้วเลือกโมดูลฟีเจอร์แบบไดนามิกที่พร้อมใช้งานทันทีจากกล่องโต้ตอบสร้างโมดูลใหม่ โปรดทราบว่าการสร้างโมดูลนี้จะเปิดใช้โมดูลฐานของแอปโดยทันทีด้วย
หากต้องการทำให้แอปใช้งานได้ทันทีในอุปกรณ์เครื่องนั้น ให้แก้ไขการกําหนดค่าการเรียกใช้ แล้วเลือกช่องข้างทั่วไป > ติดตั้งใช้งานเป็นแอปที่พร้อมใช้งานทันที
การซิงค์โปรเจ็กต์แบบตัวแปรเดียว
การซิงค์โปรเจ็กต์กับการกำหนดค่าบิลด์เป็นขั้นตอนสำคัญในการช่วยให้ Android Studio เข้าใจโครงสร้างโปรเจ็กต์ อย่างไรก็ตาม กระบวนการนี้อาจใช้เวลานานสำหรับโปรเจ็กต์ขนาดใหญ่ หากโปรเจ็กต์ใช้ตัวแปรบิลด์หลายรายการ ตอนนี้คุณเพิ่มประสิทธิภาพการซิงค์โปรเจ็กต์ได้โดยจำกัดให้ซิงค์เฉพาะตัวแปรที่คุณเลือกอยู่ในปัจจุบัน
คุณต้องใช้ Android Studio 3.3 ขึ้นไปกับปลั๊กอิน Android Gradle 3.3.0 ขึ้นไปเพื่อเปิดใช้การเพิ่มประสิทธิภาพนี้ เมื่อมีคุณสมบัติตรงตามข้อกำหนดเหล่านี้ IDE จะแจ้งให้คุณเปิดใช้การเพิ่มประสิทธิภาพนี้เมื่อซิงค์โปรเจ็กต์ นอกจากนี้ ระบบจะเปิดใช้การเพิ่มประสิทธิภาพในโปรเจ็กต์ใหม่โดยค่าเริ่มต้นด้วย
หากต้องการเปิดใช้การเพิ่มประสิทธิภาพนี้ด้วยตนเอง ให้คลิกไฟล์ > การตั้งค่า > เวอร์ชันทดลอง > Gradle (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
ผู้ช่วยจะเปิดขึ้นเมื่อคุณเริ่ม Android Studio หลังจากการติดตั้งใหม่หรือการอัปเดต หากตรวจพบว่ามีข้อมูลใหม่ที่จะแสดง หรือจะเปิดผู้ช่วยโดยเลือกความช่วยเหลือ > มีอะไรใหม่ใน 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 นับจากนี้เป็นต้นไป หากไม่มี Flag นี้ Android Studio จะทํางานเสมือนว่าตั้งค่า Flag เป็นfalse
android.enableJetifier
: เมื่อตั้งค่าเป็นtrue
แฟล็กนี้จะระบุว่าคุณต้องการการสนับสนุนเครื่องมือ (จากปลั๊กอิน Android Gradle) เพื่อแปลงไลบรารีของบุคคลที่สามที่มีอยู่โดยอัตโนมัติราวกับว่าเขียนขึ้นสำหรับ AndroidX หากไม่มี Flag นี้ Android Studio จะทํางานเสมือนว่าตั้งค่า Flag เป็นfalse
ระบบจะตั้งค่า Flag ทั้ง 2 รายการเป็น true
เมื่อคุณใช้คำสั่งย้ายข้อมูลไปยัง AndroidX
หากต้องการเริ่มใช้ไลบรารี AndroidX ทันทีและไม่ต้องแปลงไลบรารีของบุคคลที่สามที่มีอยู่ ให้ตั้งค่า Flag android.useAndroidX
เป็น true
และ Flag 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
ข้อมูลโค้ดเป็นวิธีใหม่ในการฝังฟังก์ชันการทํางานบางส่วนของแอปในแพลตฟอร์มอินเทอร์เฟซผู้ใช้อื่นๆ บน Android เช่น ข้อมูลส่วนช่วยให้แสดงฟังก์ชันการทำงานและเนื้อหาของแอปในคำแนะนำของ Google Search ได้
Android Studio 3.2 มีเทมเพลตในตัวที่จะช่วยคุณขยายแอปด้วย Slice Provider API ใหม่ รวมถึงการตรวจสอบ Lint ใหม่เพื่อให้แน่ใจว่าคุณกำลังทำตามแนวทางปฏิบัติแนะนำเมื่อสร้าง Slice
หากต้องการเริ่มต้นใช้งาน ให้คลิกขวาที่โฟลเดอร์โปรเจ็กต์ แล้วเลือกใหม่ > อื่นๆ > ผู้ให้บริการข้อมูลส่วนย่อย
ดูข้อมูลเพิ่มเติม รวมถึงวิธีทดสอบการโต้ตอบกับข้อมูลในแผงข้อมูลได้ที่คู่มือเริ่มต้นใช้งานข้อมูลในแผงข้อมูล
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 Profiler ใน 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) ขึ้นไปโดยเลือกเรียกใช้ > โปรไฟล์
ส่งออกร่องรอย CPU
หลังจากบันทึกกิจกรรมของ CPU ด้วยเครื่องมือวิเคราะห์โปรไฟล์ CPU แล้ว คุณสามารถส่งออกข้อมูลเป็นไฟล์ .trace
เพื่อแชร์กับผู้อื่นหรือตรวจสอบในภายหลังได้
หากต้องการส่งออกการติดตามหลังจากที่บันทึกกิจกรรมของ CPU แล้ว ให้ทำดังนี้
- คลิกขวาที่ไฟล์บันทึกที่ต้องการส่งออกจากไทม์ไลน์ของ CPU
- เลือกส่งออกการติดตามจากเมนูแบบเลื่อนลง
- ไปที่ตำแหน่งที่ต้องการบันทึกไฟล์แล้วคลิกบันทึก
นำเข้าและตรวจสอบไฟล์การติดตาม CPU
ตอนนี้คุณสามารถนําเข้าและตรวจสอบไฟล์ .trace
ที่สร้างขึ้นด้วย Debug API หรือ CPU Profiler ได้แล้ว (ปัจจุบันคุณยังนําเข้าไฟล์บันทึกการติดตามระบบไม่ได้)
นําเข้าไฟล์การติดตามโดยคลิกเริ่มเซสชันเครื่องมือวิเคราะห์ใหม่ ในแผงเซสชันของเครื่องมือวิเคราะห์ แล้วเลือกโหลดจากไฟล์ จากนั้นคุณสามารถตรวจสอบข้อมูลในเครื่องมือวิเคราะห์โปรไฟล์ CPU ได้เช่นเดียวกับปกติ โดยมีข้อยกเว้นต่อไปนี้
- กิจกรรมของ CPU จะไม่แสดงในไทม์ไลน์ของ CPU
- ไทม์ไลน์กิจกรรมของชุดข้อความจะระบุเฉพาะตำแหน่งที่มีข้อมูลการติดตามสำหรับแต่ละชุดข้อความ ไม่ใช่สถานะจริงของชุดข้อความ (เช่น กำลังทำงาน รอ หรือหยุดทำงานชั่วคราว)
บันทึกกิจกรรมของ CPU โดยใช้ Debug API
ตอนนี้คุณสามารถเริ่มและหยุดบันทึกกิจกรรมของ CPU ในเครื่องมือวิเคราะห์ประสิทธิภาพ CPU ได้โดยการตรวจสอบแอปด้วย Debug API หลังจากคุณติดตั้งใช้งานแอปในอุปกรณ์แล้ว เครื่องมือวิเคราะห์จะเริ่มต้นบันทึกกิจกรรมของ CPU โดยอัตโนมัติเมื่อแอปเรียกใช้ startMethodTracing(String tracePath)
และเครื่องมือวิเคราะห์จะหยุดบันทึกเมื่อแอปเรียกใช้ stopMethodTracing()
ขณะบันทึกกิจกรรมของ CPU ที่ทริกเกอร์โดยใช้ API นี้ เครื่องมือวิเคราะห์ประสิทธิภาพ CPU จะแสดง Debug API เป็นการกำหนดค่าการบันทึก CPU ที่เลือก
เครื่องมือวิเคราะห์พลังงาน
เครื่องมือวิเคราะห์พลังงานจะแสดงภาพการใช้พลังงานโดยประมาณของแอป รวมถึงเหตุการณ์ของระบบที่ส่งผลต่อการใช้พลังงาน เช่น การล็อกที่ตื่นอยู่ การปลุก และงาน
เครื่องมือวิเคราะห์พลังงานจะปรากฏเป็นแถวใหม่ที่ด้านล่างของหน้าต่างเครื่องมือวิเคราะห์เมื่อคุณเรียกใช้แอปในอุปกรณ์ที่เชื่อมต่อหรือโปรแกรมจำลอง Android ที่ใช้ Android 8.0 (API 26) ขึ้นไป
คลิกแถวพลังงานเพื่อขยายมุมมองเครื่องมือวิเคราะห์พลังงานให้ใหญ่ที่สุด วางเคอร์เซอร์เมาส์เหนือแถบในไทม์ไลน์เพื่อดูรายละเอียดการใช้พลังงานตามทรัพยากร CPU, เครือข่าย และตำแหน่ง (GPS) รวมถึงเหตุการณ์ของระบบที่เกี่ยวข้อง
เหตุการณ์ของระบบที่ส่งผลต่อการใช้พลังงานจะแสดงในไทม์ไลน์ระบบใต้ไทม์ไลน์พลังงาน รายละเอียดเหตุการณ์ของระบบภายในช่วงเวลาที่ระบุจะแสดงในแผงเหตุการณ์เมื่อคุณเลือกช่วงเวลาในไทม์ไลน์พลังงาน
หากต้องการดูสแต็กการเรียกและรายละเอียดอื่นๆ ของเหตุการณ์ระบบ เช่น การล็อกให้ตื่น ให้เลือกเหตุการณ์นั้นในแผงเหตุการณ์ หากต้องการไปยังโค้ดที่รับผิดชอบเหตุการณ์ของระบบ ให้ดับเบิลคลิกรายการในกองคิวการเรียก
การตรวจสอบ Lint
Android Studio 3.2 มีฟีเจอร์ใหม่ๆ และฟีเจอร์ที่ได้รับการปรับปรุงมากมายสำหรับการตรวจสอบข้อบกพร่อง
การตรวจสอบ Lint ใหม่จะช่วยคุณค้นหาและระบุปัญหาเกี่ยวกับโค้ดที่พบได้ทั่วไป ตั้งแต่คำเตือนเกี่ยวกับปัญหาด้านความสามารถในการใช้งานที่อาจเกิดขึ้นไปจนถึงข้อผิดพลาดที่มีลำดับความสำคัญสูงเกี่ยวกับช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้น
การตรวจสอบ Lint สําหรับความสามารถในการทํางานร่วมกันของ Java/Kotlin
การตรวจสอบ Lint ใหม่จะบังคับใช้แนวทางปฏิบัติแนะนำที่อธิบายไว้ในคู่มือการทำงานร่วมกันของ Kotlin เพื่อให้แน่ใจว่าโค้ด Java จะทำงานร่วมกับโค้ด Kotlin ได้อย่างราบรื่น ตัวอย่างการตรวจสอบเหล่านี้ ได้แก่ การตรวจสอบว่ามีคำอธิบายประกอบ Nullability หรือไม่ การใช้คีย์เวิร์ดแบบฮาร์ดของ Kotlin และการวางพารามิเตอร์ Lambda เป็นลำดับสุดท้าย
หากต้องการเปิดใช้การตรวจสอบเหล่านี้ ให้คลิกไฟล์ > การตั้งค่า (Android Studio > ค่ากําหนดใน Mac) เพื่อเปิดกล่องโต้ตอบการตั้งค่า จากนั้นไปที่ส่วนเครื่องมือแก้ไข > การตรวจสอบ > Android > Lint > การทํางานร่วมกัน > การทํางานร่วมกันของ Kotlin แล้วเลือกกฎที่ต้องการเปิดใช้
หากต้องการเปิดใช้การตรวจสอบเหล่านี้สําหรับบิลด์บรรทัดคําสั่ง ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
build.gradle
android {
lintOptions {
check 'Interoperability'
}
}
การตรวจสอบ Lint สำหรับ Slice
การตรวจสอบ Lint ใหม่สำหรับ Slices จะช่วยให้คุณสร้าง Slices ได้อย่างถูกต้อง เช่น การตรวจสอบ Lint จะเตือนคุณหากคุณไม่ได้กำหนดการดำเนินการหลักให้กับ Slice
เป้าหมาย Gradle ใหม่
ใช้lintFix
งาน Gradle ใหม่เพื่อใช้การแก้ไขที่ปลอดภัยทั้งหมดที่การตรวจสอบ Lint แนะนำกับซอร์สโค้ดโดยตรง ตัวอย่างการตรวจสอบการแสดงผลโค้ดที่ไม่ถูกต้องซึ่งแนะนําการแก้ไขที่ปลอดภัยคือ SyntheticAccessor
การอัปเดตข้อมูลเมตา
ข้อมูลเมตาต่างๆ เช่น การตรวจสอบการแคสต์บริการ ได้รับการอัปเดตเพื่อให้การตรวจสอบด้วย Lint ทำงานร่วมกับ Android 9 (API ระดับ 28) ได้
คำเตือนหากเรียกใช้ Lint กับตัวแปรใหม่
ตอนนี้ Lint จะบันทึกตัวแปรและเวอร์ชันที่ใช้บันทึกข้อมูลพื้นฐาน และเตือนคุณหากเรียกใช้ตัวแปรอื่นที่ไม่ใช่ตัวแปรที่ใช้สร้างข้อมูลพื้นฐาน
การปรับปรุงการตรวจสอบ Lint ที่มีอยู่
Android Studio 3.2 มีการปรับปรุงการตรวจสอบ Lint ที่มีอยู่หลายอย่าง ตัวอย่างเช่น ตอนนี้การตรวจสอบวงจรทรัพยากรมีผลกับทรัพยากรประเภทอื่นๆ แล้ว และตัวตรวจหาคำแปลจะค้นหาคำแปลที่ขาดหายไปได้ทันทีในเครื่องมือแก้ไข
รหัสปัญหาค้นพบได้ง่ายขึ้น
ตอนนี้รหัสปัญหาจะแสดงในตำแหน่งต่างๆ มากขึ้น รวมถึงในหน้าต่างผลการตรวจสอบ ซึ่งจะช่วยให้คุณค้นหาข้อมูลที่ต้องการเพื่อเปิดหรือปิดใช้การตรวจสอบที่เฉพาะเจาะจงผ่าน lintOptions
ใน build.gradle
ได้ง่ายขึ้น
ดูข้อมูลเพิ่มเติมได้ที่กำหนดค่าตัวเลือก Lint ด้วย Gradle
การเชื่อมโยงข้อมูล V2
ตอนนี้ระบบจะเปิดใช้การเชื่อมโยงข้อมูล V2 โดยค่าเริ่มต้นและเข้ากันได้กับ V1 ซึ่งหมายความว่าหากคุณมีทรัพยากร Dependency ของไลบรารีที่คอมไพล์ด้วย V1 คุณจะใช้ทรัพยากรเหล่านั้นกับโปรเจ็กต์ที่ใช้การเชื่อมโยงข้อมูล V2 ได้ อย่างไรก็ตาม โปรดทราบว่าโปรเจ็กต์ที่ใช้ V1 จะใช้ทรัพยากร Dependencies ที่คอมไพล์ด้วย V2 ไม่ได้
การกรองน้ำตาลออกจาก D8
ใน Android Studio 3.1 เราได้ผสานรวมขั้นตอนการนำ Sugar ออกไว้ในเครื่องมือ 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 มีฟีเจอร์เครื่องมือแก้ไขที่ปรับปรุงแล้วเพื่อช่วยคุณแก้ไขสคริปต์การสร้าง CMake เช่น ต่อไปนี้
- การไฮไลต์ไวยากรณ์และการเติมโค้ด: ตอนนี้ IDE จะไฮไลต์และแนะนำการเติมโค้ดสำหรับคำสั่ง CMake ทั่วไป นอกจากนี้ คุณยังไปยังไฟล์ได้โดยคลิกไฟล์นั้นขณะกดแป้น Control (Command ใน Mac)
- การจัดรูปแบบโค้ดใหม่: ตอนนี้คุณใช้ตัวเลือกการจัดรูปแบบโค้ดใหม่ของ IntelliJ เพื่อใช้รูปแบบโค้ดกับสคริปต์การสร้าง CMake ได้แล้ว
- การจัดระเบียบโค้ดอย่างปลอดภัย: ตอนนี้เครื่องมือการจัดระเบียบโค้ดในตัวของ IDE จะตรวจสอบด้วยว่าคุณกำลังเปลี่ยนชื่อหรือลบไฟล์ที่อ้างอิงในสคริปต์การสร้าง CMake หรือไม่
ไปยังส่วนต่างๆ ของไฟล์ส่วนหัวภายนอก
เมื่อใช้หน้าต่างโปรเจ็กต์ใน Android Studio เวอร์ชันเก่า คุณจะไปยังส่วนต่างๆ และตรวจสอบได้เฉพาะไฟล์ส่วนหัวที่เป็นของไลบรารีที่คุณสร้างจากโปรเจ็กต์ในเครื่อง ในการเผยแพร่ครั้งนี้ คุณสามารถดูและตรวจสอบไฟล์ส่วนหัวที่รวมอยู่ในไลบรารี C/C++ ภายนอกซึ่งคุณนําเข้าไปยังโปรเจ็กต์แอปได้ด้วย
หากคุณรวมโค้ดและไลบรารี C/C++ ไว้ในโปรเจ็กต์แล้ว ให้เปิดหน้าต่าง Project ทางด้านซ้ายของ IDE โดยเลือกดู > หน้าต่างเครื่องมือ > โปรเจ็กต์จากเมนูหลัก แล้วเลือก Android จากเมนูแบบเลื่อนลง ในไดเรกทอรี cpp ส่วนหัวทั้งหมดที่อยู่ในขอบเขตของโปรเจ็กต์แอปจะจัดระเบียบอยู่ภายใต้โหนด include สำหรับไลบรารี 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 โปรดตรวจสอบว่าคุณมีไฟล์ 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*
ซึ่งเลิกใช้งานแล้ว - ปรับปรุงการแยกวิเคราะห์กฎ ProGuard ของ R8 แล้ว
- ข้อบกพร่องต่อไปนี้ได้รับการแก้ไขแล้ว
-
การพยายามเรียกใช้คลาสหลัก Kotlin ไม่สำเร็จเนื่องจากมีข้อผิดพลาด
"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 อาจค้างเป็นเวลานานระหว่างการออก
-
บิลด์ที่กําหนดค่าด้วยชุดแหล่งที่มาไม่สําเร็จพร้อมข้อความต่อไปนี้เมื่อเปิดใช้การเรียกใช้ทันที
"The SourceSet name is not recognized by the Android Gradle Plugin."
- เมื่อเปิดใช้การเรียกใช้ทันที การสร้างโปรเจ็กต์ Kotlin ใหม่จะดำเนินการไม่สำเร็จเมื่อเรียกใช้โดยคำสั่ง Run
-
บางครั้งระหว่างการแก้ไขไฟล์
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 ระบบจะนำงาน Make ที่รองรับ 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 ด้วยห้อง
เมื่อใช้คลังฐานข้อมูล Room คุณจะได้ประโยชน์จากการปรับปรุงการแก้ไข SQL หลายอย่าง ดังนี้
- การเติมโค้ดภายใน
Query
จะเข้าใจตาราง SQL (เอนทิตี) คอลัมน์ พารามิเตอร์การค้นหา นามแฝง การรวม คำสั่งย่อย และประโยค WITH - ตอนนี้การไฮไลต์ไวยากรณ์ SQL ใช้งานได้แล้ว
- คุณสามารถคลิกขวาที่ชื่อตารางใน SQL แล้วเปลี่ยนชื่อได้ ซึ่งจะเขียนโค้ด Java หรือ Kotlin ที่เกี่ยวข้องใหม่ด้วย (เช่น ประเภทผลลัพธ์ของการค้นหา) การเปลี่ยนชื่อจะทำงานในอีกทางหนึ่งด้วย ดังนั้นการเปลี่ยนชื่อคลาสหรือฟิลด์ Java จะเขียนโค้ด SQL ที่เกี่ยวข้องใหม่
- การใช้งาน SQL จะแสดงเมื่อใช้ค้นหาการใช้งาน (คลิกขวาแล้วเลือกค้นหาการใช้งานจากเมนูบริบท)
- หากต้องการไปยังประกาศของเอนทิตี SQL ในโค้ด Java หรือ Kotlin ให้กดแป้น Control (Command ใน Mac) ค้างไว้ขณะคลิกเอนทิตี
ดูข้อมูลเกี่ยวกับการใช้ SQL กับ Room ได้ที่บันทึกข้อมูลในฐานข้อมูลภายในเครื่องโดยใช้ Room
การอัปเดตการเชื่อมโยงข้อมูล
การอัปเดตนี้มีการปรับปรุงการเชื่อมโยงข้อมูลหลายรายการ ดังนี้
-
ตอนนี้คุณใช้ออบเจ็กต์
LiveData
เป็นช่องที่สังเกตได้ในนิพจน์การเชื่อมโยงข้อมูลได้แล้ว ตอนนี้คลาสViewDataBinding
มีพารามิเตอร์setLifecycle()
ใหม่ที่คุณใช้เพื่อสังเกตการณ์LiveData
ออบเจ็กต์ -
ตอนนี้คลาส
ObservableField
ยอมรับออบเจ็กต์Observable
อื่นๆ ในคอนสตรัคเตอร์ได้แล้ว -
คุณสามารถดูตัวอย่างคอมไพเลอร์แบบเพิ่มข้อมูลใหม่สำหรับคลาสการเชื่อมโยงข้อมูลได้ ดูรายละเอียดเกี่ยวกับคอมไพเลอร์ใหม่นี้และวิธีการเปิดใช้ได้ที่คอมไพเลอร์การเชื่อมโยงข้อมูล V2
ประโยชน์ของคอมไพเลอร์ใหม่มีดังนี้
-
คลาส
ViewBinding
จะสร้างขึ้นโดยปลั๊กอิน Android สำหรับ Gradle ก่อนคอมไพเลอร์ Java - ไลบรารีจะเก็บคลาสการเชื่อมโยงที่สร้างขึ้นไว้เมื่อคอมไพล์แอป แทนที่จะสร้างใหม่ทุกครั้ง ซึ่งจะช่วยปรับปรุงประสิทธิภาพของโปรเจ็กต์แบบหลายโมดูลได้อย่างมาก
-
คลาส
คอมไพเลอร์และ Gradle
D8 เป็นคอมไพเลอร์ DEX เริ่มต้น
ตอนนี้ระบบจะใช้คอมไพเลอร์ D8 โดยค่าเริ่มต้นในการสร้าง DEX Bytecode
คอมไพเลอร์ DEX ใหม่นี้มีประโยชน์หลายประการ ซึ่งรวมถึงข้อดีต่อไปนี้
- การแยกไฟล์ที่เร็วขึ้น
- การใช้หน่วยความจําน้อยลง
- การสร้างโค้ดที่ดีขึ้น (การจัดสรรรีจิสเตอร์ที่ดีขึ้น ตารางสตริงที่ฉลาดขึ้น)
- ประสบการณ์การแก้ไขข้อบกพร่องที่ดีขึ้นเมื่อสเต็ปผ่านโค้ด
คุณไม่จำเป็นต้องเปลี่ยนแปลงโค้ดหรือเวิร์กโฟลว์การพัฒนาเพื่อรับสิทธิประโยชน์เหล่านี้ เว้นแต่คุณจะปิดใช้คอมไพเลอร์ D8 ด้วยตนเองก่อนหน้านี้
หากคุณตั้งค่า android.enableD8
เป็น false
ใน gradle.properties
ให้ลบการแจ้งว่าไม่เหมาะสมนั้นหรือตั้งค่าเป็น true
android.enableD8=true
โปรดดูรายละเอียดที่หัวข้อคอมไพเลอร์ DEX ใหม่
การกรองน้ำตาลออกทีละน้อย
สําหรับโปรเจ็กต์ที่ใช้ฟีเจอร์ภาษา Java 8 ระบบจะเปิดใช้การกรอง Sugar ทีละน้อยโดยค่าเริ่มต้น ซึ่งจะช่วยปรับปรุงเวลาในการบิลด์
การถอดน้ำตาลจะแปลงรูปแบบคำสั่งเป็นรูปแบบที่คอมไพเลอร์ประมวลผลได้อย่างมีประสิทธิภาพมากขึ้น
คุณสามารถปิดใช้การกรองน้ำตาลทีละน้อยได้โดยระบุข้อมูลต่อไปนี้ในไฟล์ 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 มี Kotlin เวอร์ชัน 1.2.30
ตอนนี้ระบบวิเคราะห์โค้ด Kotlin ด้วยการตรวจสอบ Lint ในบรรทัดคำสั่งแล้ว
ตอนนี้การเรียกใช้ Lint จากบรรทัดคำสั่งจะวิเคราะห์คลาส Kotlin
สำหรับแต่ละโปรเจ็กต์ที่คุณต้องการเรียกใช้ Lint ต้องรวมที่เก็บ Maven ของ Google ไว้ในไฟล์ build.gradle
ระดับบนสุด พื้นที่เก็บข้อมูล Maven จะรวมอยู่ในโปรเจ็กต์ที่สร้างใน Android Studio 3.0 ขึ้นไปอยู่แล้ว
เครื่องมือด้านประสิทธิภาพ
ตัวอย่างกระบวนการ C++ เนทีฟด้วยเครื่องมือวิเคราะห์โปรไฟล์ CPU
ตอนนี้ เครื่องมือวิเคราะห์ CPU มีการกําหนดค่าเริ่มต้นเพื่อบันทึกร่องรอยที่สุ่มตัวอย่างของเธรดเนทีฟของแอป คุณใช้การกําหนดค่านี้ได้โดยการทําให้แอปใช้งานได้ในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป จากนั้นเลือกสุ่มตัวอย่าง (แบบเนทีฟ) จากเมนูแบบเลื่อนลงของการกำหนดค่าการบันทึกของ CPU Profiler หลังจากนั้น ให้บันทึกและตรวจสอบการติดตามตามปกติ
คุณเปลี่ยนการตั้งค่าเริ่มต้น เช่น ช่วงเวลาที่รับข้อมูลได้โดยสร้างการกำหนดค่าการบันทึก
หากต้องการเปลี่ยนกลับไปใช้การติดตามเธรด Java ให้เลือกการกำหนดค่าแบบสุ่มตัวอย่าง (Java) หรือแบบมีเครื่องมือวัด (Java)
กรองร่องรอย CPU, ผลลัพธ์การจัดสรรหน่วยความจํา และฮีพดัมพ์
เครื่องมือวิเคราะห์ประสิทธิภาพ CPU และเครื่องมือวิเคราะห์ประสิทธิภาพหน่วยความจำมีฟีเจอร์การค้นหาที่ช่วยให้คุณกรองผลลัพธ์จากการบันทึกการติดตามเมธอด การจัดสรรหน่วยความจำ หรือการถ่ายโอนข้อมูลกองขยะได้
หากต้องการค้นหา ให้คลิกตัวกรอง ที่มุมขวาบนของแผง จากนั้นพิมพ์ข้อความค้นหาแล้วกด Enter
เคล็ดลับ: คุณเปิดช่องค้นหาได้โดยกดแป้น Control + F (Command + F ใน Mac)
ในแท็บแผนภูมิเปลวไฟของเครื่องมือวิเคราะห์ประสิทธิภาพ CPU ระบบจะไฮไลต์กองซ้อนการเรียกที่มีเมธอดที่เกี่ยวข้องกับคำค้นหาของคุณและย้ายไปทางด้านซ้ายของแผนภูมิ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกรองตามเมธอด คลาส หรือชื่อแพ็กเกจได้ที่หัวข้อบันทึกและตรวจสอบการติดตามเมธอด
แท็บคําขอในเครื่องมือวิเคราะห์เครือข่าย
ตอนนี้เครื่องมือวิเคราะห์เครือข่ายมีแท็บคําขอที่ให้รายละเอียดเกี่ยวกับคําขอเครือข่ายในช่วงไทม์ไลน์ที่เลือก ในเวอร์ชันก่อนหน้านี้ เครื่องมือวิเคราะห์เครือข่ายจะแสดงเฉพาะข้อมูลเกี่ยวกับการตอบกลับของเครือข่าย
มุมมองชุดข้อความใน Network Profiler
หลังจากเลือกส่วนของไทม์ไลน์ในเครื่องมือวิเคราะห์เครือข่ายแล้ว คุณสามารถเลือกแท็บใดแท็บหนึ่งต่อไปนี้เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับกิจกรรมในเครือข่ายในช่วงเวลาดังกล่าว
- มุมมองการเชื่อมต่อ: ให้ข้อมูลเดียวกับ Android Studio เวอร์ชันก่อนหน้า โดยจะแสดงรายการไฟล์ที่ส่งหรือรับในช่วงไทม์ไลน์ที่เลือกในเธรด CPU ทั้งหมดของแอป คุณสามารถตรวจสอบขนาด ประเภท สถานะ และระยะเวลาการส่งสำหรับคำขอแต่ละรายการได้
- มุมมองเธรด: แสดงกิจกรรมเครือข่ายของเธรด CPU ของแอปแต่ละรายการ มุมมองนี้ช่วยให้คุณตรวจสอบได้ว่าเธรดใดของแอปของคุณที่รับผิดชอบคำขอเครือข่ายแต่ละรายการ
เครื่องมือตรวจสอบเลย์เอาต์
เครื่องมือตรวจสอบเลย์เอาต์มีฟีเจอร์ใหม่ รวมถึงฟังก์ชันบางอย่างที่ก่อนหน้านี้มีให้ใช้งานในเครื่องมือดูลําดับชั้นและเครื่องมือ Pixel Perfect ซึ่งเลิกใช้งานแล้ว
- ปุ่มซูมและแป้นพิมพ์ลัดสำหรับการไปยังส่วนต่างๆ และตรวจสอบเลย์เอาต์
- การวางซ้อนตารางกริดอ้างอิง
- ความสามารถในการโหลดรูปภาพอ้างอิงและใช้เป็นการวางซ้อน (มีประโยชน์สำหรับการเปรียบเทียบเลย์เอาต์กับโมคอัป UI)
- แสดงตัวอย่างซับต้นไม้เพื่อแยกมุมมองในเลย์เอาต์ที่ซับซ้อน
เครื่องมือสร้างเลย์เอาต์
จานสีในเครื่องมือแก้ไขเลย์เอาต์ได้รับการปรับปรุงหลายอย่าง ดังนี้
- การจัดระเบียบหมวดหมู่ใหม่สำหรับมุมมองและเลย์เอาต์
- หมวดหมู่ทั่วไปใหม่สำหรับมุมมองและเลย์เอาต์ ซึ่งคุณเพิ่มลงในหมวดหมู่ได้โดยใช้คำสั่งรายการโปรด
- การค้นหามุมมองและเลย์เอาต์ที่ปรับปรุงแล้ว
- คำสั่งใหม่สำหรับการเปิดเอกสารประกอบสำหรับองค์ประกอบมุมมองหรือเลย์เอาต์ที่เฉพาะเจาะจง
คุณสามารถใช้คำสั่งแปลงมุมมองใหม่ในต้นไม้คอมโพเนนต์หรือเครื่องมือแก้ไขการออกแบบเพื่อแปลงมุมมองหรือเลย์เอาต์เป็นมุมมองหรือเลย์เอาต์ประเภทอื่น
ตอนนี้คุณสร้างข้อจำกัดสำหรับรายการที่อยู่ใกล้กับมุมมองที่เลือกได้อย่างง่ายดายโดยใช้ปุ่มสร้างการเชื่อมต่อ ใหม่ในเครื่องมือตรวจสอบมุมมองที่ด้านบนของหน้าต่างแอตทริบิวต์
เรียกใช้และ Instant Run
ลักษณะการทํางานของตัวเลือกใช้การเลือกเดียวกันสําหรับการเปิดตัวในอนาคตในกล่องโต้ตอบเลือกเป้าหมายการนําไปใช้จริงมีความสอดคล้องกันมากขึ้น หากเปิดใช้ตัวเลือกใช้การเลือกเดียวกัน กล่องโต้ตอบเลือกเป้าหมายการติดตั้งใช้งานจะเปิดขึ้นเฉพาะครั้งแรกที่คุณใช้คำสั่งเรียกใช้จนกว่าอุปกรณ์ที่เลือกจะไม่ได้เชื่อมต่ออีกต่อไป
เมื่อกำหนดเป้าหมายเป็นอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป การเรียกใช้ทันทีจะทําให้ทรัพยากรมีการเปลี่ยนแปลงได้โดยไม่ต้องทําให้แอปพลิเคชันรีสตาร์ท ซึ่งเป็นไปได้เนื่องจากทรัพยากรอยู่ใน APK ที่แยก
โปรแกรมจำลอง
ดูรายละเอียดเกี่ยวกับสิ่งใหม่ๆ และการเปลี่ยนแปลงในโปรแกรมจำลองตั้งแต่ Android Studio 3.0 ได้ที่หมายเหตุประจำรุ่นของโปรแกรมจำลอง Android ตั้งแต่เวอร์ชัน 27.0.2 จนถึงเวอร์ชัน 27.1.12
การปรับปรุงที่สำคัญมีดังนี้
- ภาพรวมการบูตด่วนสำหรับการบันทึกสถานะโปรแกรมจำลองและการเริ่มต้นที่เร็วขึ้น รวมถึงความสามารถในการใช้คำสั่ง Save now เพื่อบันทึกสถานะเริ่มต้นที่กำหนดเอง
- หน้าจอโปรแกรมจำลองแบบไม่มีหน้าต่าง
- อิมเมจระบบสำหรับ Android 8.0 (API ระดับ 26), Android 8.1 (API ระดับ 27) และ Android P เวอร์ชันตัวอย่างสำหรับนักพัฒนาแอป
การปรับปรุงอินเทอร์เฟซผู้ใช้และประสบการณ์ของผู้ใช้
เคล็ดลับเครื่องมือ แป้นพิมพ์ลัด และข้อความที่เป็นประโยชน์เพิ่มเติม
เราได้เพิ่มเคล็ดลับเครื่องมือและข้อความที่มีประโยชน์ซ้อนทับในหลายๆ ที่ทั่วทั้ง Android Studio
หากต้องการดูแป้นพิมพ์ลัดสำหรับคำสั่งต่างๆ ให้วางเคอร์เซอร์เมาส์เหนือปุ่มค้างไว้จนกว่าเคล็ดลับเครื่องมือจะปรากฏขึ้น
นำเมนู "เครื่องมือ> Android" ออก
ระบบได้นำเมนูเครื่องมือ > Android ออกแล้ว คำสั่งต่างๆ ที่ก่อนหน้านี้อยู่ในเมนูนี้ถูกย้ายออกไปแล้ว
- ย้ายคำสั่งจำนวนมากไปไว้ใต้เมนูเครื่องมือโดยตรง
- ย้ายคำสั่งซิงค์โปรเจ็กต์กับไฟล์ Gradle ไปยังเมนูไฟล์
- ระบบได้นำคำสั่ง Device Monitor ออกแล้วตามที่อธิบายไว้ด้านล่าง
เครื่องมือตรวจสอบอุปกรณ์พร้อมใช้งานจากบรรทัดคำสั่ง
ใน 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 เวอร์ชันใหม่มีการปรับปรุงและฟีเจอร์ใหม่ๆ มากมาย แต่ที่สำคัญที่สุดคือการปรับปรุงประสิทธิภาพการสร้างสำหรับโปรเจ็กต์ที่มีโมดูลจํานวนมาก เมื่อใช้ปลั๊กอินใหม่กับโปรเจ็กต์ขนาดใหญ่เหล่านี้ คุณควรได้รับประสบการณ์ต่อไปนี้
- ใช้เวลาในการกําหนดค่าบิลด์เร็วขึ้นเนื่องจากการแก้ไขการพึ่งพาแบบเลื่อนเวลาใหม่
- การแก้ไขข้อกำหนดที่รับรู้ตัวแปรสำหรับโปรเจ็กต์และตัวแปรที่คุณสร้างเท่านั้น
- ใช้เวลาบิลด์นานขึ้นเร็วขึ้นเมื่อใช้การเปลี่ยนแปลงง่ายๆ ในโค้ดหรือทรัพยากร
หมายเหตุ: การปรับปรุงเหล่านี้จำเป็นต้องมีการเปลี่ยนแปลงที่สำคัญซึ่งทำให้ลักษณะการทำงาน DSL และ API บางอย่างของปลั๊กอินใช้งานไม่ได้ การอัปเกรดเป็นเวอร์ชัน 3.0.0 อาจต้องมีการเปลี่ยนแปลงไฟล์บิลด์และปลั๊กอิน Gradle
เวอร์ชันนี้ยังมีฟีเจอร์ต่อไปนี้ด้วย
- รองรับ Android 8.0
- รองรับการสร้าง APK แยกต่างหากตามแหล่งข้อมูลภาษา
- การรองรับไลบรารี Java 8 และฟีเจอร์ภาษา Java 8 (ไม่มีคอมไพเลอร์ Jack)
- การรองรับ Android Test Support Library 1.0 (ยูทิลิตีการทดสอบ Android และ Android Test Orchestrator)
- ปรับปรุงความเร็วของบิวด์ ndk-build และ cmake
- ปรับปรุงความเร็วในการซิงค์ Gradle
- ตอนนี้ AAPT2 จะเปิดใช้งานโดยค่าเริ่มต้น
- ตอนนี้มีการจำกัดการใช้
ndkCompile
มากขึ้น คุณควรเปลี่ยนไปใช้ CMake หรือ ndk-build เพื่อคอมไพล์โค้ดเนทีฟที่ต้องการแพ็กลงใน APK แทน โปรดดูข้อมูลเพิ่มเติมที่หัวข้อย้ายข้อมูลจาก ndkcompile
ดูข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เปลี่ยนแปลงได้ที่บันทึกประจำรุ่นของปลั๊กอิน Android สำหรับ Gradle
หากพร้อมที่จะอัปเกรดไปใช้ปลั๊กอินใหม่ โปรดดูหัวข้อย้ายข้อมูลไปยังปลั๊กอิน Android สำหรับ 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 ที่ปรับปรุงแล้วซึ่งรวมอยู่ในชุดเครื่องมือเริ่มต้น
หากต้องการอัปเดตโปรเจ็กต์ให้รองรับชุดเครื่องมือภาษา Java 8 ใหม่ ให้อัปเดตความเข้ากันได้ของแหล่งที่มาและความเข้ากันได้ของเป้าหมายเป็น 1.8 ในกล่องโต้ตอบโครงสร้างโปรเจ็กต์ (คลิกไฟล์ > โครงสร้างโปรเจ็กต์) ดูข้อมูลเพิ่มเติมได้ที่วิธีใช้ฟีเจอร์ภาษาของ Java 8
เครื่องมือวิเคราะห์ประสิทธิภาพของ Android
เครื่องมือวิเคราะห์ประสิทธิภาพ Android ใหม่มาแทนที่เครื่องมือตรวจสอบ Android และมีชุดเครื่องมือใหม่สำหรับวัดการใช้งาน CPU, หน่วยความจำ และเครือข่ายของแอปแบบเรียลไทม์ คุณสามารถทำการติดตามเมธอดตามตัวอย่างเพื่อวัดเวลาในการเรียกใช้โค้ด จับภาพการถ่ายโอนข้อมูลฮีป ดูการจัดสรรหน่วยความจำ และตรวจสอบรายละเอียดของไฟล์ที่ส่งผ่านเครือข่าย
หากต้องการเปิด ให้คลิกดู > หน้าต่างเครื่องมือ > เครื่องมือวิเคราะห์ประสิทธิภาพ Android (หรือคลิกเครื่องมือวิเคราะห์ประสิทธิภาพ Android ในแถบเครื่องมือ)
ไทม์ไลน์เหตุการณ์ที่ด้านบนของหน้าต่างจะแสดงเหตุการณ์การแตะ การกดแป้นพิมพ์ และการเปลี่ยนแปลงกิจกรรม เพื่อให้คุณมีบริบทมากขึ้นในการทําความเข้าใจเหตุการณ์ประสิทธิภาพอื่นๆ ในไทม์ไลน์
หมายเหตุ: มุมมอง Logcat ย้ายไปอยู่ในหน้าต่างแยกต่างหากด้วย (ก่อนหน้านี้อยู่ในเครื่องมือตรวจสอบ Android ซึ่งถูกนำออกแล้ว)
จากไทม์ไลน์ภาพรวมของเครื่องมือวิเคราะห์ประสิทธิภาพ Android ให้คลิกไทม์ไลน์ CPU, MEMORY หรือ NETWORK เพื่อเข้าถึงเครื่องมือวิเคราะห์ประสิทธิภาพที่เกี่ยวข้อง
เครื่องมือสร้างโปรไฟล์ CPU
เครื่องมือวิเคราะห์ CPU ช่วยให้คุณวิเคราะห์การใช้งานเธรด CPU ของแอปได้โดยเรียกใช้การติดตาม CPU ที่สุ่มตัวอย่างหรือมีเครื่องมือวัด จากนั้นคุณจะแก้ปัญหาด้านประสิทธิภาพของ CPU ได้โดยใช้มุมมองข้อมูลและตัวกรองที่หลากหลาย
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเครื่องมือวิเคราะห์โปรไฟล์ CPU
เครื่องมือสร้างโปรไฟล์หน่วยความจำ
เครื่องมือวิเคราะห์หน่วยความจำช่วยคุณระบุการรั่วไหลของหน่วยความจำและการเปลี่ยนแปลงหน่วยความจำที่อาจทําให้แอปกระตุก ค้าง หรือแม้แต่ขัดข้อง โดยจะแสดงกราฟแบบเรียลไทม์ของการใช้หน่วยความจําของแอป ให้คุณบันทึกการถ่ายโอนข้อมูลกองขยะ บังคับให้รวบรวมขยะ และติดตามการจัดสรรหน่วยความจําได้
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเครื่องมือวิเคราะห์หน่วยความจำ
Network Profiler
เครื่องมือวิเคราะห์เครือข่ายช่วยให้คุณตรวจสอบกิจกรรมเครือข่ายของแอป ตรวจสอบเพย์โหลดของคําขอเครือข่ายแต่ละรายการ และลิงก์กลับไปยังโค้ดที่สร้างคําขอเครือข่ายได้
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเครื่องมือวิเคราะห์เครือข่าย
การสร้างโปรไฟล์และการแก้ไขข้อบกพร่องของ APK
ตอนนี้ Android Studio ให้คุณทำโปรไฟล์และแก้ไขข้อบกพร่องของ APK ใดก็ได้โดยไม่ต้องสร้างจากโปรเจ็กต์ Android Studio ตราบใดที่ APK สร้างขึ้นเพื่อเปิดใช้การแก้ไขข้อบกพร่องและคุณมีสิทธิ์เข้าถึงสัญลักษณ์การแก้ไขข้อบกพร่องและไฟล์ต้นฉบับ
หากต้องการเริ่มต้นใช้งาน ให้คลิกทำโปรไฟล์หรือแก้ไขข้อบกพร่องของ APK จากหน้าจอต้อนรับของ Android Studio หรือหากเปิดโปรเจ็กต์ไว้แล้ว ให้คลิกไฟล์ > ทำโปรไฟล์หรือแก้ไขข้อบกพร่องของ APK จากแถบเมนู ซึ่งจะแสดงไฟล์ APK ที่แตกไฟล์แล้ว แต่ไม่แยกวิเคราะห์โค้ด ดังนั้น หากต้องการเพิ่มจุดหยุดพักและดูสแต็กเทรซอย่างถูกต้อง คุณต้องแนบไฟล์ซอร์สโค้ด Java และสัญลักษณ์การแก้ไขข้อบกพร่องของระบบ
ดูข้อมูลเพิ่มเติมได้ที่ทำโปรไฟล์และแก้ไขข้อบกพร่องของ APK ที่สร้างไว้ล่วงหน้า
เครื่องมือสำรวจไฟล์สำหรับอุปกรณ์
เครื่องมือสำรวจไฟล์ในอุปกรณ์แบบใหม่ช่วยให้คุณตรวจสอบระบบไฟล์ของอุปกรณ์ที่เชื่อมต่ออยู่ และโอนไฟล์ระหว่างอุปกรณ์กับคอมพิวเตอร์ได้ เครื่องมือนี้มาแทนที่เครื่องมือระบบไฟล์ที่มีอยู่ใน DDMS
หากต้องการเปิด ให้คลิกดู > หน้าต่างเครื่องมือ > เครื่องมือสำรวจไฟล์ของอุปกรณ์
โปรดดูข้อมูลเพิ่มเติมในคู่มือ Device File Explorer
การรองรับ Instant Apps
การรองรับแอปด่วนของ Android แบบใหม่ช่วยให้คุณสร้างแอปด่วนในโปรเจ็กต์ได้โดยใช้โมดูล 2 ประเภทใหม่ ได้แก่ โมดูลแอปด่วนและโมดูลฟีเจอร์ (คุณจะต้องติดตั้ง SDK การพัฒนาแอปด่วน)
นอกจากนี้ Android Studio ยังมีการดำเนินการแยกส่วนใหม่เพื่อช่วยคุณเพิ่มการรองรับ Instant App ในโปรเจ็กต์ที่มีอยู่ เช่น หากต้องการปรับโครงสร้างโปรเจ็กต์เพื่อวางคลาสบางคลาสในโมดูลฟีเจอร์ Instant App ให้เลือกคลาสในหน้าต่างโปรเจ็กต์ แล้วคลิกปรับโครงสร้าง > แบ่งออกเป็นโมดูล ในกล่องโต้ตอบที่ปรากฏขึ้น ให้เลือกข้อบังคับที่ควรมีชั้นเรียน แล้วคลิกตกลง
และเมื่อพร้อมทดสอบ Instant App แล้ว คุณสามารถสร้างและเรียกใช้ข้อบังคับของโมดูล Instant App ในอุปกรณ์ที่เชื่อมต่อได้โดยระบุ URL ของ Instant App ภายในตัวเลือกการเรียกใช้การกำหนดค่า ดังนี้ เลือกเรียกใช้ > แก้ไขการกำหนดค่า เลือกข้อบังคับของ Instant App แล้วตั้งค่า URL ในส่วนตัวเลือกการเรียกใช้
ดูข้อมูลเพิ่มเติมได้ที่Instant App ของ Android
โมดูล Android Things
เทมเพลต Android Things ใหม่ในวิซาร์ดโปรเจ็กต์ใหม่และโมดูลใหม่เพื่อช่วยคุณเริ่มพัฒนาสำหรับอุปกรณ์ IoT ที่ทำงานด้วยระบบปฏิบัติการ Android
ดูข้อมูลเพิ่มเติมได้ที่วิธีสร้างโปรเจ็กต์ Android Things
วิซาร์ดไอคอนแบบปรับอัตโนมัติ
ตอนนี้ Image Asset Studio รองรับรูปภาพที่วาดได้แบบเวกเตอร์และให้คุณสร้างไอคอน Launcher แบบปรับอัตโนมัติสำหรับ Android 8.0 ไปพร้อมๆ กับการสร้างไอคอนแบบดั้งเดิม ("ไอคอนเดิม") สำหรับอุปกรณ์รุ่นเก่า
ในการเริ่มต้น ให้คลิกขวาที่โฟลเดอร์ res ในโปรเจ็กต์ แล้วคลิกใหม่ > ชิ้นงานรูปภาพ ในหน้าต่าง Asset Studio เลือกไอคอน Launcher (แบบปรับอัตโนมัติและแบบเดิม) เป็นประเภทไอคอน
หมายเหตุ: คุณต้องตั้งค่า compileSdkVersion
เป็น 26 ขึ้นไปจึงจะใช้ไอคอนตัวเปิดแอปแบบปรับขนาดได้
อ่านข้อมูลเพิ่มเติมเกี่ยวกับไอคอนที่ปรับขนาดได้
การรองรับแหล่งข้อมูลแบบอักษร
Android Studio มีเครื่องมือเลือกทรัพยากรแบบอักษรเพื่อช่วยรวมแบบอักษรไว้ในแอปหรือกำหนดค่าโปรเจ็กต์ให้ดาวน์โหลดแบบอักษรในอุปกรณ์ (หากมี) เพื่อรองรับทรัพยากรแบบอักษรใหม่ใน Android 8.0 เครื่องมือแก้ไขเลย์เอาต์ยังแสดงตัวอย่างแบบอักษรในเลย์เอาต์ได้ด้วย
หากต้องการลองใช้แบบอักษรที่ดาวน์โหลดได้ โปรดตรวจสอบว่าอุปกรณ์หรือโปรแกรมจำลองของคุณใช้ Google Play Services เวอร์ชัน 11.2.63 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่หัวข้อแบบอักษรที่ดาวน์โหลดได้
ผู้ช่วยการจัดทําดัชนีแอปของ Firebase
Firebase Assistant ได้รับการอัปเดตด้วยบทแนะนำใหม่เพื่อทดสอบการจัดทําดัชนีแอป หากต้องการเปิด Assistant ให้เลือกเครื่องมือ > Firebase จากนั้นเลือกการจัดทําดัชนีแอป > ทดสอบการจัดทําดัชนีแอป
บทแนะนำนี้มีปุ่มใหม่สำหรับทดสอบการจัดทำดัชนีเนื้อหาสาธารณะและเนื้อหาส่วนตัว ดังนี้
- ในขั้นตอนที่ 2 ให้คลิกดูตัวอย่างผลการค้นหาเพื่อยืนยันว่า URL ของคุณปรากฏในผลการค้นหาของ Google Search
- ในขั้นตอนที่ 3 ให้คลิกตรวจหาข้อผิดพลาดเพื่อยืนยันว่าได้เพิ่มออบเจ็กต์ที่จัดทําดัชนีได้ในแอปลงในดัชนีเนื้อหาส่วนตัวแล้ว
ผู้ช่วยลิงก์แอป Android
App Links Assistant ได้อัปเดตความสามารถใหม่ต่อไปนี้
-
เพิ่มการทดสอบ URL สำหรับการแมป URL แต่ละรายการเพื่อให้แน่ใจว่าตัวกรอง Intent จัดการ URL ในชีวิตจริงได้
นอกจากนี้ คุณยังกำหนดการทดสอบ URL เหล่านี้ด้วยตนเองได้โดยใช้แท็ก
<tools:validation>
ที่อธิบายไว้ด้านล่าง -
สร้างไฟล์ Digital Asset Links ที่มีรายการออบเจ็กต์ที่เหมาะสมเพื่อรองรับ Google Smart Lock และเพิ่มแท็ก
asset_statements
<meta-data>
ที่เกี่ยวข้องลงในไฟล์ Manifest
ตัวตรวจสอบตัวกรอง Intent ของ URL
ตอนนี้ Android Studio รองรับแท็กพิเศษในไฟล์ Manifest ซึ่งช่วยให้คุณทดสอบ URL ตัวกรอง Intent ได้ แท็กเหล่านี้เป็นแท็กเดียวกับที่App Links 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
ตัวอย่างสำหรับคอมไพเลอร์ DEX ของ D8
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 เพื่อรับการอัปเดตสำหรับไลบรารีการสนับสนุนของ Android, บริการ Google Play, Firebase และไลบรารีอื่นๆ ที่ต้องพึ่งพา วิธีนี้ช่วยให้คุณอัปเดตไลบรารีได้ง่ายขึ้น โดยเฉพาะเมื่อใช้ระบบการผสานรวมอย่างต่อเนื่อง (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>
ใหม่
- เครื่องมือแก้ไขเลย์เอาต์ใหม่ทั้งหมดที่มีเครื่องมือที่สร้างขึ้นเพื่อรองรับ 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 2016.1
- ตอนนี้ Instant Run กำหนดให้ต้องติดตั้ง SDK ของแพลตฟอร์มที่สอดคล้องกับระดับ API ของอุปกรณ์เป้าหมาย
- ระบบจะปิดใช้การเรียกใช้ทันทีโดยอัตโนมัติหากผู้ใช้เรียกใช้แอปในโปรไฟล์งานหรือในฐานะผู้ใช้รอง
- แก้ไขปัญหาความน่าเชื่อถือหลายประการของ Instant Run ซึ่งทำให้ไม่มีการเปลี่ยนแปลงหรือแอปขัดข้อง ดังนี้
- ชิ้นงานแอปบางรายการไม่ได้ติดตั้งใช้งานในแอปที่ทำงานอยู่ (ข้อบกพร่อง: #213454)
- แอปขัดข้องเมื่อผู้ใช้เปลี่ยนระหว่างเซสชันการเรียกใช้แบบทันทีกับการเรียกใช้แบบไม่ทันทีที่คลาส Serializable ไม่ได้กําหนด serialVersionUID (ข้อบกพร่อง: #209006)
- การเปลี่ยนแปลงสไตล์จะไม่แสดงใน Instant Run (ข้อบกพร่อง: #210851)
- เซสชันการเรียกใช้ทันทีไม่น่าเชื่อถือและทำให้เกิด FileNotFoundException (ข้อบกพร่อง: #213083)
- การเปลี่ยนแปลงใน drawable จะไม่แสดงจนกว่าจะมีการสร้างขึ้นใหม่ทั้งหมดสำหรับ KitKat (ข้อบกพร่อง: #21530)
- การเปลี่ยนแปลงทรัพยากรจะไม่แสดงใน Instant Run เมื่อ sourceSets ที่กําหนดเองมีเส้นทางที่ฝังอยู่ (ข้อบกพร่อง: #219145)
- การแลกเปลี่ยนแบบ Hot และ Warm จะไม่ทำงานหากคลาสที่เปลี่ยนแปลงมีการกำกับเนื้อหาที่มีค่า Enum (ข้อบกพร่อง: #209047)
- การเปลี่ยนแปลงข้อมูลคําอธิบายประกอบจะไม่แสดงใน Instant Run (ข้อบกพร่อง: #210089)
- รันไทม์ทันทีจะไม่ตรวจหาการเปลี่ยนแปลงโค้ดหากคุณทำการเปลี่ยนแปลงนอก IDE (ข้อบกพร่อง: #213205)
- เซสชันการเรียกใช้ทันทีไม่น่าเชื่อถือเนื่องจากโทเค็นความปลอดภัยไม่ตรงกัน (ข้อบกพร่อง: #211989
- การสลับอุปกรณ์แบบ Cold Swap ไม่สำเร็จสำหรับอุปกรณ์ที่ไม่รองรับการเรียกใช้ในฐานะอย่างถูกต้อง (ข้อบกพร่อง: #210875)
- แอปขัดข้องหลังจากการเริ่มทำงานทันทีที่รีสตาร์ท (ข้อบกพร่อง: #219744)
- ClassNotFoundException เกิดขึ้นเมื่อเปลี่ยนจาก Instant Run เป็น Instant Debug (ข้อบกพร่อง: #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 ปัจจุบัน Android Studio 2.1 รองรับ Jack เวอร์ชันล่าสุดเท่านั้น ดังนั้นหากต้องการใช้ฟีเจอร์ภาษาของ Java 8 คุณต้องใช้ Android Studio 2.1 เพื่อสร้างแอป
หมายเหตุ: การเรียกใช้ทันทีจะปิดอยู่เมื่อคุณเปิดใช้คอมไพเลอร์ Jack เนื่องจากปัจจุบันยังไม่เข้ากันได้
แม้ว่าตอนนี้ Android Studio 2.1 จะเสถียรแล้ว แต่คอมไพเลอร์ Jack ยังคงอยู่ในขั้นทดลองและคุณต้องเปิดใช้ด้วยพร็อพเพอร์ตี้ jackOptions
ในไฟล์ build.gradle
นอกจากการเปลี่ยนแปลงเพื่อรองรับรุ่นตัวอย่างของ N แล้ว Android Studio 2.1 ยังมีการแก้ไขข้อบกพร่องเล็กน้อยและการเพิ่มประสิทธิภาพต่อไปนี้
- ตอนนี้โปรแกรมแก้ไขข้อบกพร่อง C++ ที่รองรับ Java จะเปิดใช้โดยค่าเริ่มต้นเมื่อคุณใช้อุปกรณ์หรือโปรแกรมจำลอง N และเลือกโหมดโปรแกรมแก้ไขข้อบกพร่องแบบเนทีฟ (ในแท็บโปรแกรมแก้ไขข้อบกพร่องสำหรับการกำหนดค่าการเรียกใช้/แก้ไขข้อบกพร่อง)
สําหรับการเพิ่มประสิทธิภาพการบิลด์อื่นๆ ซึ่งรวมถึงการคอมไพล์ Java แบบเพิ่มทีละส่วนและการแยกไฟล์ Dex ขณะประมวลผล ให้อัปเดตปลั๊กอิน Android สําหรับ Gradle เป็นเวอร์ชัน 2.1.0
2.0 (เมษายน 2016)
หมายเหตุ: หากกำลังพัฒนาแอปสำหรับตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ของ N คุณควรใช้ Android Studio 2.1 เวอร์ชันตัวอย่าง Android Studio 2.0 ไม่รองรับฟีเจอร์ทั้งหมดที่จําเป็นในการกําหนดเป้าหมายเป็นเวอร์ชันตัวอย่างของ N
การเรียกใช้ทันที
- ตอนนี้ Android Studio ช่วยให้บิลด์ที่สะอาดใช้งานได้เร็วกว่าที่เคย นอกจากนี้ การพุชการเปลี่ยนแปลงโค้ดเพิ่มเติมไปยังโปรแกรมจำลองหรืออุปกรณ์จริงยังทำได้เกือบจะทันที ตรวจสอบการอัปเดตโดยไม่ต้องทำให้บิลด์แก้ไขข้อบกพร่องใหม่ใช้งานได้อีกครั้ง หรือในหลายกรณี โดยไม่ต้องรีสตาร์ทแอป
- การเรียกใช้ทันทีรองรับการพุชการเปลี่ยนแปลงต่อไปนี้ไปยังแอปที่ทำงานอยู่
- การเปลี่ยนแปลงการใช้งานเมธอดอินสแตนซ์หรือเมธอดแบบคงที่ที่มีอยู่
- การเปลี่ยนแปลงทรัพยากรแอปที่มีอยู่
- การเปลี่ยนแปลงโค้ดโครงสร้าง เช่น ลายเซ็นเมธอดหรือฟิลด์แบบคงที่ (ต้องใช้อุปกรณ์เป้าหมายที่ใช้ API ระดับ 21 ขึ้นไป)
- อ่านเอกสารประกอบเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ 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
และตัวแปรรูปแบบ (varargs) ด้วย
การปรับปรุงเพิ่มเติม
- เพิ่มประสิทธิภาพสำหรับ 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 - ปรับปรุงคอนทราสต์ของธีม Darcula ใน Android Studio ใน Vector Asset Studio ปัญหา: 191819
- เพิ่มการรองรับปุ่มความช่วยเหลือใน Vector Asset Studio
- เพิ่มการรองรับโอเปอเรเตอร์
%
สำหรับการเชื่อมโยงข้อมูล ปัญหา: 194045 - แก้ไขกรณีที่การเปิดตัวแอปเพื่อแก้ไขข้อบกพร่องส่งผลให้โปรแกรมแก้ไขข้อบกพร่องเชื่อมต่อกับอุปกรณ์ที่ไม่ถูกต้อง ปัญหา: 195167
- แก้ไขข้อยกเว้นเกี่ยวกับ Null Pointer ที่อาจเกิดขึ้นเมื่อพยายามเรียกใช้แอปในบางสถานการณ์
Android Studio v1.5.0 (พฤศจิกายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มความสามารถในการวิเคราะห์ของเครื่องมือตรวจสอบหน่วยความจำใหม่ลงในเครื่องมือตรวจสอบ Android เมื่อคุณดูไฟล์ HPROF ที่บันทึกจากเครื่องมือตรวจสอบนี้ การแสดงผลจะมีประโยชน์มากขึ้นเพื่อให้คุณระบุปัญหาได้เร็วขึ้น เช่น ปัญหาหน่วยความจำรั่ว หากต้องการใช้เครื่องมือตรวจสอบนี้ ให้คลิกเครื่องมือตรวจสอบ Android ที่ด้านล่างของหน้าต่างหลัก ในเครื่องมือตรวจสอบ Android ให้คลิกแท็บหน่วยความจำ ขณะที่เครื่องมือตรวจสอบทำงานอยู่ ให้คลิกไอคอนถ่ายโอนข้อมูลกองขยะ Java จากนั้นคลิกการบันทึกในหน้าต่างหลัก แล้วดับเบิลคลิกไฟล์เพื่อดู คลิกบันทึกการวิเคราะห์ทางด้านขวา (เครื่องมือตรวจสอบอุปกรณ์ Android ทำงานพร้อมกันกับเครื่องมือตรวจสอบ Android ไม่ได้)
- เพิ่มการรองรับ Deep Link และ App Link ใหม่ เครื่องมือแก้ไขโค้ดสามารถสร้างตัวกรอง Intent สำหรับการทำ Deep Link ในไฟล์
AndroidManifest.xml
โดยอัตโนมัติ นอกจากนี้ ยังสามารถสร้างโค้ดเพื่อช่วยให้คุณผสานรวมกับ App Indexing API ในกิจกรรมในไฟล์ Java ได้ด้วย ฟีเจอร์การทดสอบ Deep Link ช่วยให้คุณยืนยันว่า Deep Link ที่ระบุสามารถเปิดแอปได้ ในแท็บทั่วไปของกล่องโต้ตอบการเรียกใช้/การแก้ไขข้อบกพร่องการกำหนดค่า คุณสามารถระบุตัวเลือกการเปิด Deep Link ได้ นอกจากนี้ คุณยังทดสอบการเรียก App Indexing API ในกิจกรรมได้โดยใช้จอแสดงผล logcat ของเครื่องมือตรวจสอบ Android ตอนนี้เครื่องมือlint
ของ Android มีคำเตือนสำหรับปัญหาบางอย่างที่เกี่ยวข้องกับ Deep Link และ App Indexing 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
ของคุณ รายงานหากไม่มีตัวกรอง Intent สำหรับคลาสMediaBrowserService
และระบุปัญหาบางอย่างเกี่ยวกับการดำเนินการด้วยเสียง - เพิ่มการตรวจสอบ
lint
ใหม่สำหรับตัวรับการออกอากาศที่ไม่ปลอดภัย การใช้คลาส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 ไม่ได้
- เพิ่มตัวอย่างก่อนเปิดตัวของเครื่องมือแก้ไขธีมใหม่ หากต้องการใช้ฟีเจอร์นี้ ให้เลือกเครื่องมือ > Android > เครื่องมือแก้ไขธีม
- อัปเดตเทมเพลต Android สําหรับคลังการสนับสนุนการออกแบบ ตอนนี้เทมเพลตรองรับข้อกําหนดของ Material Design รวมถึง
appcompat
คลังการสนับสนุนเพื่อใช้งานร่วมกันได้แบบย้อนหลัง
Android Studio v1.3.2 (สิงหาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มการรองรับ Android 6.0 (API ระดับ 23) รวมถึงไอคอนใหม่และการรองรับเครื่องมือจัดการ AVD ในการสร้างอุปกรณ์ที่มีความหนาแน่นของหน้าจอใหม่
- แก้ไขข้อยกเว้นที่เกิดขึ้นระหว่างการตรวจสอบการอัปเดต ปัญหา: 183068
- แก้ไขปัญหาที่พิกัดมุมมองที่ยังไม่ได้รับการแก้ไขอาจทําให้เครื่องมือแก้ไขเลย์เอาต์ขัดข้อง ปัญหา: 178690
- แก้ไขปัญหาคำเตือนเกี่ยวกับประเภททรัพยากรที่ไม่ถูกต้อง ปัญหา: 182433
- แก้ไขการตรวจสอบ Lint ที่แจ้งว่าทรัพยากรเป็นแบบส่วนตัวอย่างไม่ถูกต้อง ปัญหา: 183120
Android Studio v1.3.1 (สิงหาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขการรองรับการสร้าง Android Virtual Device (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 Manager เข้ากับ Android Studio เพื่อลดความซับซ้อนในการเข้าถึงแพ็กเกจและเครื่องมือ รวมถึงแจ้งเตือนการอัปเดต
หมายเหตุ: เครื่องมือจัดการ SDK แบบสแตนด์อโลนจะยังคงใช้งานได้จากบรรทัดคำสั่ง แต่เราขอแนะนำให้ใช้กับการติดตั้ง SDK แบบสแตนด์อโลนเท่านั้น
- เพิ่มคำสั่ง
finger
ในคอนโซลโปรแกรมจำลองเพื่อจำลองการตรวจสอบสิทธิ์ลายนิ้วมือ - เพิ่มประกาศทรัพยากร
<public>
เพื่อกำหนดทรัพยากรของห้องสมุดเป็นทรัพยากรสาธารณะและส่วนตัวหมายเหตุ: ต้องใช้ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.3 ขึ้นไป
- เพิ่มการรองรับการเชื่อมโยงข้อมูลเพื่อสร้างเลย์เอาต์แบบประกาศซึ่งเชื่อมโยงตรรกะแอปพลิเคชันกับองค์ประกอบเลย์เอาต์
- เพิ่มการรองรับโมดูล APK ทดสอบแยกต่างหากเพื่อสร้าง APK ทดสอบใน Android Studio
- อัปเดตเครื่องมือจัดการ AVD ด้วยการเพิ่มประสิทธิภาพ HAXM และการแจ้งเตือนที่ปรับปรุงใหม่
- เพิ่มการรองรับโปรแกรมจำลอง ARM และ MIPS แบบ 64 บิตสำหรับ QEMU 2.1
- ลดความซับซ้อนในการแก้ไขคำเตือน Lint ด้วยการเพิ่มการแก้ไขด่วน เช่น การสร้างParcelable อัตโนมัติ
- เพิ่มการรองรับเทมเพลตแบบเรียลไทม์สําหรับการแทรกข้อมูลโค้ดอย่างรวดเร็ว
Android Studio v1.2.2(มิถุนายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขปัญหาการสร้างที่บล็อกไม่ให้การสร้างเสร็จสมบูรณ์
Android Studio v1.2.1 (พฤษภาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขปัญหาด้านประสิทธิภาพและฟีเจอร์เล็กน้อย
Android Studio v1.2.0 (เมษายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- อัปเดตหน้าต่างรันไทม์ของ Android ให้รวมเครื่องมือเครื่องมือตรวจสอบหน่วยความจำ และเพิ่มแท็บสำหรับการตรวจสอบประสิทธิภาพของ CPU
- เพิ่มแท็บการบันทึกในขอบด้านซ้ายเพื่อแสดงไฟล์ข้อมูลประสิทธิภาพหน่วยความจำและ CPU ที่บันทึกไว้ เช่น การติดตามเมธอด CPU และภาพรวมฮีปหน่วยความจำ
- รองรับคําอธิบายประกอบเพิ่มเติมด้วยคําอธิบายประกอบข้อมูลเมตาและความสามารถในการเป็น Null ที่อนุมาน
- ปรับปรุงเครื่องมือแก้ไขการแปลให้รองรับแนวทางปฏิบัติแนะนำในปัจจุบัน (BCP) 47 เพิ่มเติม ซึ่งใช้รหัสภาษาและภูมิภาค 3 ตัวอักษร
- ฟีเจอร์ของ IntelliJ 14 และ 14.1 ที่ผสานรวมเพื่อการวิเคราะห์โค้ดและประสิทธิภาพที่ดียิ่งขึ้น
-
- การแก้ไขข้อบกพร่องที่ปรับปรุงเพื่อแสดงค่าในบรรทัดสำหรับตัวแปรและออบเจ็กต์อ้างอิง รวมถึงดำเนินการประเมินนิพจน์แลมบ์ดาและนิพจน์โอเปอเรเตอร์ในบรรทัด
- เพิ่มการตรวจหารูปแบบโค้ดสำหรับขนาดแท็บและการเยื้อง
- เพิ่มไฟล์สคริปต์สำหรับทดสอบโค้ดและสร้างต้นแบบโดยไม่ต้องใช้ไฟล์โปรเจ็กต์
- เพิ่มการแทรกแท็กเปิดและปิดพร้อมกันในไฟล์ HTML และ XML
- เพิ่มโปรแกรมแยกคอมไพล์คลาส Java ในตัวเพื่อให้คุณดูสิ่งที่อยู่ในไลบรารีที่ไม่มีซอร์สโค้ดได้
ดูคำอธิบายฟีเจอร์ใหม่และการปรับปรุงทั้งหมดได้ที่หัวข้อมีอะไรใหม่ใน IntelliJ
- เพิ่มมุมมองโปรเจ็กต์สำหรับ Scratch, ไฟล์โปรเจ็กต์, ปัญหา, เวอร์ชันที่ใช้งานจริง และการทดสอบ เพื่อปรับปรุงการจัดการและการเข้าถึงโปรเจ็กต์
- ปรับปรุงเมนูและกล่องโต้ตอบไฟล์ > การตั้งค่าเพื่อปรับปรุงการเข้าถึงและการจัดการการตั้งค่า
- เพิ่มการรองรับจอแสดงผลที่มีความหนาแน่นสูงสำหรับ Windows และ Linux
- เพิ่มการรองรับทรัพยากร 280 dpi ในโฟลเดอร์
res/drawable-280dpi/
Android Studio v1.1.0 (กุมภาพันธ์ 2015)
การแก้ไขและการเพิ่มประสิทธิภาพต่างๆ
- เพิ่มการรองรับเทมเพลตนาฬิกา Android Wear
- แก้ไขการสร้างโปรเจ็กต์และโมดูลใหม่ให้รวมโฟลเดอร์
res/mipmap
สำหรับไอคอนตัวเปิดแอปเฉพาะความหนาแน่น โฟลเดอร์res/mipmap
เหล่านี้จะมาแทนที่โฟลเดอร์res/drawable
สำหรับไอคอน Launcher - อัปเดตไอคอน Launcher ให้ดูเป็นดีไซน์ Material และเพิ่มไอคอน Launcher
xxxhdpi
- เพิ่มและปรับปรุงการตรวจสอบ Lint สำหรับชุดค่าผสมของภูมิภาคและภาษา ไอคอน Launcher ชื่อทรัพยากร และปัญหาเกี่ยวกับโค้ดอื่นๆ ที่พบได้ทั่วไป
- เพิ่มการรองรับแท็กภาษา 47 ของแนวทางปฏิบัติแนะนำในปัจจุบัน (BCP)
Android Studio v1.0.1 (ธันวาคม 2014)
การแก้ไขและการเพิ่มประสิทธิภาพต่างๆ
- แก้ไขปัญหาการล็อกไฟล์ device.xml และเครื่องมือจัดการ AVD
- แก้ไขบันทึกโปรแกรมจำลองในระบบ 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 2 รายการมีชื่อระดับล่างเหมือนกัน
- แก้ไขปัญหาที่ระบบใช้ไฟล์กฎ Proguard ใน Flavour ไม่ได้
คุณสามารถอ่านหมายเหตุประจำรุ่นของปลั๊กอิน Gradle ทั้งหมดได้ที่ http://tools.android.com/tech-docs/new-build-system
- แก้ไขโมเดล IDE ให้รวมไฟล์เอาต์พุตแม้ว่าจะปรับแต่งผ่าน DSL ก็ตาม นอกจากนี้ ยังแก้ไข DSL เพื่อรับ/ตั้งค่าไฟล์เอาต์พุตในออบเจ็กต์ตัวแปรเพื่อไม่ให้ต้องใช้
- ข้อผิดพลาด Gradle จาก aapt จะไม่ชี้ไปยังไฟล์เอาต์พุตที่ผสานแล้วในโฟลเดอร์ build/ อีกต่อไป แต่จะชี้กลับไปยังตำแหน่งแหล่งที่มาจริง
- การสร้างแบบขนาน ตอนนี้คุณใช้การบิลด์แบบขนานของ Gradle ได้แล้ว โปรดทราบว่าการสร้างแบบขนานยังอยู่ใน "ระยะทดลอง" (ดูเอกสารประกอบของ Gradle) ฟีเจอร์นี้ปิดอยู่โดยค่าเริ่มต้น หากต้องการเปิดใช้ ให้ไปที่ค่ากําหนด > คอมไพเลอร์ แล้วเลือกช่องคอมไพล์ข้อบังคับอิสระพร้อมกัน
- งานเพิ่มเติมเกี่ยวกับที่เก็บทรัพยากรใหม่ที่ใช้สำหรับการแสดงผลเลย์เอาต์ การพับทรัพยากรในเครื่องมือแก้ไข และอื่นๆ
- การรองรับพื้นฐานสําหรับไลบรารี .aar ที่ต้องพึ่งพา (เช่น การใช้ไลบรารีที่ไม่มีสําเนาแหล่งที่มาในเครื่อง) ยังคงไม่ทำงานสำหรับการนำทางและการตรวจสอบ XML ของแหล่งข้อมูลในเครื่องมือแก้ไขแหล่งที่มา
- การตรวจหารอบในข้อมูลอ้างอิงทรัพยากร
- ตอนนี้เอกสารประกอบด่วน (F1) ซึ่งแสดงคำแปลทั้งหมดของสตริงใต้เคอร์เซอร์จะแสดงการวางซ้อนทรัพยากรทั้งหมดจาก Flavour และประเภทบิลด์ Gradle ต่างๆ รวมถึงไลบรารีด้วย รายการจะแสดงตามลําดับการวางซ้อนทรัพยากรแบบย้อนกลับ โดยขีดทับเวอร์ชันสตริงที่มีการมาสก์
- การแก้ไขเพื่อจัดการการอัปเดตทรัพยากรที่ผสานเมื่อชุดของข้อกำหนดของโมดูลมีการเปลี่ยนแปลง
- การแก้ไขการแสดงผล XML เพื่อจัดการการประกาศเอนทิตีอักขระและการหลีก XML และ Unicode อย่างเหมาะสม
- รองรับการบันทึกภาพหน้าจอสำหรับหน้าต่างแสดงตัวอย่างเลย์เอาต์และหน้าต่างเครื่องมือแก้ไขเลย์เอาต์
- การแก้ไขข้อบกพร่องของเทมเพลต
- การแก้ไขข้อบกพร่องของ Lint
- การแก้ไขต่างๆ ในรายงานข้อขัดข้อง ขอขอบคุณและโปรดส่งรายงานข้อขัดข้องต่อไป
Android Studio v0.1.x (พฤษภาคม 2013)
- การแก้ไขข้อบกพร่องหลายรายการ รวมถึงการแก้ไขปัญหาการติดตั้ง Windows ที่พบบ่อย
ปลั๊กอิน Android Gradle เวอร์ชันเก่า
3.6.0 (กุมภาพันธ์ 2020)
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
-
Gradle 5.6.4 ดูข้อมูลเพิ่มเติมได้ที่ส่วนการอัปเดต Gradle
-
SDK Build Tools 28.0.3 ขึ้นไป
การอัปเดตเล็กน้อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นและฟีเจอร์ใหม่สำหรับ ระดับการเข้าถึงแพ็กเกจใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
ฟีเจอร์ใหม่
ปลั๊กอิน Android Gradle เวอร์ชันนี้มีฟีเจอร์ใหม่ต่อไปนี้
ดูการเชื่อมโยง
การเชื่อมโยงมุมมองจะเพิ่มความปลอดภัยเมื่อคอมไพล์เมื่ออ้างอิงมุมมองในโค้ด ตอนนี้คุณแทนที่ findViewById()
ด้วยข้อมูลอ้างอิงคลาสการเชื่อมโยงที่สร้างขึ้นโดยอัตโนมัติได้แล้ว หากต้องการเริ่มใช้การเชื่อมโยงมุมมอง ให้ใส่ข้อมูลต่อไปนี้ในไฟล์ build.gradle
ของโมดูลแต่ละรายการ
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
ดูข้อมูลเพิ่มเติมได้ที่ดูเอกสารประกอบเกี่ยวกับการเชื่อมโยง
การรองรับปลั๊กอิน Maven Publish
ปลั๊กอิน Android Gradle รองรับปลั๊กอิน Maven Publish Gradle ซึ่งช่วยให้คุณเผยแพร่อาร์ติแฟกต์การสร้างไปยังที่เก็บ Apache Maven ได้ ปลั๊กอิน Gradle ของ Android จะสร้างคอมโพเนนต์สำหรับอาร์ติแฟกต์ตัวแปรของบิลด์แต่ละรายการในแอปหรือโมดูลไลบรารีที่คุณสามารถใช้เพื่อปรับแต่งการเผยแพร่ไปยังที่เก็บ Maven
ดูข้อมูลเพิ่มเติมได้ที่หน้าเกี่ยวกับวิธีใช้ปลั๊กอิน Maven Publish
เครื่องมือการสร้างแพ็กเกจเริ่มต้นใหม่
เมื่อสร้างแอปเวอร์ชันแก้ไขข้อบกพร่อง ปลั๊กอินจะใช้เครื่องมือแพ็กเกจใหม่ที่เรียกว่า zipflinger เพื่อสร้าง APK เครื่องมือใหม่นี้ควรช่วยปรับปรุงความเร็วในการสร้าง หากเครื่องมือแพ็กเกจใหม่ไม่ทำงานตามที่คาดไว้ โปรดรายงานข้อบกพร่อง คุณเปลี่ยนกลับไปใช้เครื่องมือแพ็กเกจแบบเก่าได้โดยใส่ข้อมูลต่อไปนี้ในไฟล์ gradle.properties
android.useNewApkCreator=false
การระบุแหล่งที่มาของการสร้างแบบเนทีฟ
ตอนนี้คุณกำหนดระยะเวลาที่ Clang ใช้ในการสร้างและลิงก์ไฟล์ C/C++ แต่ละไฟล์ในโปรเจ็กต์ได้แล้ว Gradle สามารถแสดงผลร่องรอย Chrome ที่มีการประทับเวลาสำหรับเหตุการณ์คอมไพเลอร์เหล่านี้เพื่อให้คุณเข้าใจเวลาที่จำเป็นในการสร้างโปรเจ็กต์ได้ดียิ่งขึ้น หากต้องการแสดงผลไฟล์การระบุแหล่งที่มาของบิลด์นี้ ให้ทําดังนี้
-
เพิ่ม Flag
-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 Plugin แพ็กเกจไลบรารีแบบเนทีฟที่บีบอัดแทน ให้ใส่ข้อมูลต่อไปนี้ในไฟล์ Manifest ของแอป
<application
android:extractNativeLibs="true"
... >
</application>
หมายเหตุ: ระบบได้แทนที่ตัวเลือก useLegacyPackaging
DSL กับแอตทริบิวต์ extractNativeLibs
manifest แล้ว ดูข้อมูลเพิ่มเติมได้ที่บันทึกประจำรุ่นใช้ DSL เพื่อแพ็กเกจไลบรารีเนทีฟที่บีบอัด
เวอร์ชัน NDK เริ่มต้น
หากคุณดาวน์โหลด NDK หลายเวอร์ชัน ตอนนี้ปลั๊กอิน Gradle ของ Android จะเลือกเวอร์ชันเริ่มต้นที่จะใช้ในการคอมไพล์ไฟล์ซอร์สโค้ด
ก่อนหน้านี้ ปลั๊กอินจะเลือก NDK เวอร์ชันที่ดาวน์โหลดล่าสุด
ใช้พร็อพเพอร์ตี้ android.ndkVersion
ในไฟล์ build.gradle
ของโมดูลเพื่อลบล้างค่าเริ่มต้นที่ปลั๊กอินเลือก
การสร้างคลาส R ที่ง่ายขึ้น
ปลั๊กอิน Android Gradle ช่วยลดความซับซ้อนของเส้นทางการคอมไพล์ด้วยการสร้างคลาส R เพียงคลาสเดียวสําหรับโมดูลไลบรารีแต่ละรายการในโปรเจ็กต์ และแชร์คลาส R เหล่านั้นกับโมดูล Dependency อื่นๆ การเพิ่มประสิทธิภาพนี้ควรทําให้บิลด์เร็วขึ้น แต่คุณต้องคำนึงถึงสิ่งต่อไปนี้
- เนื่องจากคอมไพเลอร์จะแชร์คลาส R กับโมดูลที่ขึ้นต่อกัน คุณจึงควรให้แต่ละโมดูลในโปรเจ็กต์ใช้ชื่อแพ็กเกจที่ไม่ซ้ำกัน
- ระดับการเข้าถึงคลาส R ของไลบรารีสำหรับทรัพยากร Dependency อื่นๆ ของโปรเจ็กต์จะกำหนดโดยการกำหนดค่าที่ใช้รวมไลบรารีเป็น Dependency ตัวอย่างเช่น หากไลบรารี ก มีไลบรารี ข เป็นไลบรารีที่ต้องพึ่งพา "api" ไลบรารี ก และไลบรารีอื่นๆ ที่ขึ้นต่อกันกับไลบรารี ก จะมีสิทธิ์เข้าถึงคลาส R ของไลบรารี ข แต่ไลบรารีอื่นๆ อาจไม่มีสิทธิ์เข้าถึงชั้นเรียน R ของไลบรารี ข. หากไลบรารี ก ใช้การกำหนดค่าความเกี่ยวข้อง
implementation
อ่านข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าความเกี่ยวข้อง
นำทรัพยากรที่ขาดหายไปจากการกําหนดค่าเริ่มต้นออก
สำหรับโมดูลไลบรารี หากคุณรวมทรัพยากรสำหรับภาษาที่ไม่ได้รวมไว้ในชุดทรัพยากรเริ่มต้น เช่น หากคุณรวม hello_world
เป็นทรัพยากรสตริงใน /values-es/strings.xml
แต่ไม่ได้กำหนดทรัพยากรนั้นใน /values/strings.xml
ปลั๊กอิน Gradle ของ Android จะไม่รวมทรัพยากรนั้นอีกต่อไปเมื่อคอมไพล์โปรเจ็กต์ การเปลี่ยนแปลงลักษณะการทํางานนี้ควรส่งผลให้มีResource Not Found
ข้อยกเว้นรันไทม์น้อยลงและความเร็วในการบิลด์ดีขึ้น
ตอนนี้ D8 ปฏิบัติตามนโยบายการเก็บรักษา CLASS สำหรับคำอธิบายประกอบแล้ว
เมื่อคอมไพล์แอป ตอนนี้ D8 จะพิจารณาเมื่อคำอธิบายประกอบใช้นโยบายการเก็บรักษา CLASS และคำอธิบายประกอบเหล่านั้นจะไม่พร้อมใช้งานอีกต่อไปเมื่อรันไทม์ ลักษณะการทำงานนี้จะปรากฏขึ้นเมื่อตั้งค่า SDK เป้าหมายของแอปเป็น API ระดับ 23 ซึ่งก่อนหน้านี้อนุญาตให้เข้าถึงคําอธิบายประกอบเหล่านี้ระหว่างรันไทม์เมื่อคอมไพล์แอปโดยใช้ Android Gradle Plugin และ 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 หน่วยที่แคชได้
เมื่อคุณเปิดใช้การทดสอบหน่วยเพื่อใช้ทรัพยากร แอตทริบิวต์ และไฟล์ Manifest ของ Android โดยการตั้งค่า 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 เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
-
Gradle 5.1.1 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่ส่วนการอัปเดต Gradle
หมายเหตุ: เมื่อใช้ Gradle 5.0 ขึ้นไป ขนาดกองหน่วยความจำของ Daemon ของ Gradle เริ่มต้นจะลดลงจาก 1 GB เป็น 512 MB ซึ่งอาจส่งผลให้ประสิทธิภาพของบิลด์ลดลง หากต้องการลบล้างการตั้งค่าเริ่มต้นนี้ ให้ระบุขนาดฮีปของเดรัม Gradle ในไฟล์
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 เพื่อรวมการตรวจสอบ Lint ใน AAR ที่เผยแพร่ คุณต้องย้ายข้อมูล Dependency เหล่านั้นเพื่อใช้การกำหนดค่าlintPublish
ใหม่ตามที่อธิบายไว้ด้านล่างแทนlintChecks
-
lintPublish
: ใช้การกําหนดค่าใหม่นี้ในโปรเจ็กต์ไลบรารีสําหรับการตรวจสอบ Lint ที่ต้องการรวมไว้ใน AAR ที่เผยแพร่ ดังที่แสดงด้านล่าง ซึ่งหมายความว่าโปรเจ็กต์ที่ใช้ไลบรารีของคุณจะใช้การตรวจสอบ Lint เหล่านั้นด้วย
ตัวอย่างโค้ดต่อไปนี้ใช้การกำหนดค่าทั้ง 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")) }
-
โดยทั่วไปแล้ว งานแพ็กเกจและการลงนามควรมีความเร็วโดยรวมในการบิลด์ที่ดีขึ้น หากสังเกตเห็นประสิทธิภาพที่ลดลงที่เกี่ยวข้องกับงานเหล่านี้ โปรดรายงานข้อบกพร่อง
-
การเปลี่ยนแปลงลักษณะการทำงาน
-
คำเตือนการเลิกใช้งานปลั๊กอินฟีเจอร์ Instant App ของ Android: หากคุณยังคงใช้ปลั๊กอิน
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 จะทำการปรับขนาด การทำให้ซอร์สโค้ดอ่านไม่ออก การเพิ่มประสิทธิภาพ และการแปลงโค้ดเป็นรูปแบบ Dex (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 ขึ้นไป ขนาดกองหน่วยความจำของ Daemon ของ Gradle เริ่มต้นจะลดลงจาก 1 GB เป็น 512 MB ซึ่งอาจส่งผลให้ประสิทธิภาพของบิลด์ลดลง หากต้องการลบล้างการตั้งค่าเริ่มต้นนี้ ให้ระบุขนาดฮีปของ Daemon ของ 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 รวมถึงมีการแก้ไขข้อบกพร่องและปรับปรุงประสิทธิภาพต่างๆ
ฟีเจอร์ใหม่
-
การซิงค์เส้นทางคลาสที่ปรับปรุงแล้ว: เมื่อแก้ไขการอ้างอิงในรันไทม์และเส้นทางคลาสเวลาคอมไพล์ ปลั๊กอิน Gradle ของ Android จะพยายามแก้ไขข้อขัดแย้งของเวอร์ชันดาวน์สตรีมบางอย่างสำหรับทรัพยากร Dependency ที่ปรากฏในเส้นทางคลาสหลายรายการ
ตัวอย่างเช่น หาก classpath รันไทม์มีไลบรารี A เวอร์ชัน 2.0 และ classpath การคอมไพล์มีไลบรารี A เวอร์ชัน 1.0 ปลั๊กอินจะอัปเดตทรัพยากร Dependency ใน classpath การคอมไพล์เป็นไลบรารี A เวอร์ชัน 2.0 โดยอัตโนมัติเพื่อหลีกเลี่ยงข้อผิดพลาด
อย่างไรก็ตาม หาก classpath รันไทม์มีไลบรารี ก เวอร์ชัน 1.0 และคอมไพล์มีไลบรารี ก เวอร์ชัน 2.0 ปลั๊กอินจะไม่ดาวน์เกรดทรัพยากร Dependency ใน classpath คอมไพล์เป็นไลบรารี ก เวอร์ชัน 1.0 และคุณจะได้รับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่แก้ไขความขัดแย้งระหว่าง classpath
-
การคอมไพล์ Java แบบเพิ่มประสิทธิภาพเมื่อใช้โปรแกรมประมวลผลคำอธิบายประกอบที่ปรับปรุงแล้ว: การอัปเดตนี้ช่วยลดเวลาในการสร้างโดยการปรับปรุงการรองรับการคอมไพล์ Java แบบเพิ่มประสิทธิภาพเมื่อใช้โปรแกรมประมวลผลคำอธิบายประกอบ
หมายเหตุ: ฟีเจอร์นี้ใช้ได้กับ Gradle 4.10.1 ขึ้นไป ยกเว้น Gradle 5.1 เนื่องจากปัญหา 8194 ของ Gradle
-
สำหรับโปรเจ็กต์ที่ใช้ Kapt (โปรเจ็กต์ Kotlin ล้วนๆ ส่วนใหญ่และโปรเจ็กต์แบบผสม Kotlin-Java): ระบบจะเปิดใช้การคอมไพล์ Java แบบเพิ่มทีละน้อย แม้ว่าคุณจะใช้การเชื่อมโยงข้อมูลหรือปลั๊กอิน Retro-Lambda ก็ตาม การประมวลผลคำอธิบายประกอบโดยงาน Kapt ยังไม่เพิ่มขึ้น
-
สำหรับโปรเจ็กต์ที่ไม่ได้ใช้ Kapt (โปรเจ็กต์ Java เท่านั้น): หากโปรแกรมประมวลผลคำอธิบายประกอบที่คุณใช้ทั้งหมดรองรับการประมวลผลคำอธิบายประกอบแบบเพิ่มทีละรายการ ระบบจะเปิดใช้การคอมไพล์ Java แบบเพิ่มทีละรายการโดยค่าเริ่มต้น หากต้องการตรวจสอบการใช้งานตัวประมวลผลคำอธิบายประกอบที่เพิ่มขึ้น ให้ดูปัญหา 5277 ของ Gradle
อย่างไรก็ตาม หากโปรแกรมประมวลผลคำอธิบายประกอบอย่างน้อย 1 รายการไม่รองรับการสร้างแบบเพิ่มทีละขั้น ระบบจะไม่เปิดใช้การคอมไพล์ Java แบบเพิ่มทีละขั้น แต่คุณสามารถใส่ Flag ต่อไปนี้ในไฟล์
gradle.properties
แทนได้android.enableSeparateAnnotationProcessing=true
เมื่อคุณใส่ Flag นี้ ปลั๊กอิน Gradle ของ Android จะเรียกใช้โปรแกรมประมวลผลคำอธิบายประกอบในภารกิจแยกต่างหาก และอนุญาตให้งานคอมไพล์ Java ทำงานแบบเพิ่มทีละรายการ
-
-
ข้อมูลการแก้ไขข้อบกพร่องที่ดีขึ้นเมื่อใช้ API ที่ล้าสมัย: เมื่อพบว่าคุณใช้ API ที่ระบบไม่รองรับแล้ว ปลั๊กอินจะแสดงข้อมูลที่ละเอียดยิ่งขึ้นเพื่อช่วยคุณระบุตำแหน่งที่ใช้ API นั้น หากต้องการดูข้อมูลเพิ่มเติม คุณต้องใส่ข้อมูลต่อไปนี้ในไฟล์
gradle.properties
ของโปรเจ็กต์android.debug.obsoleteApi=true
นอกจากนี้ คุณยังเปิดใช้ Flag ได้โดยส่ง
-Pandroid.debug.obsoleteApi=true
จากบรรทัดคำสั่ง -
คุณสามารถเรียกใช้การทดสอบเครื่องมือวัดผลในโมดูลฟีเจอร์จากบรรทัดคำสั่งได้
การเปลี่ยนแปลงลักษณะการทำงาน
-
การกำหนดค่าแบบ Lazy: ตอนนี้ปลั๊กอินใช้ 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
ระดับกลางก่อน การเพิ่มประสิทธิภาพนี้อาจช่วยปรับปรุงประสิทธิภาพการสร้างสำหรับโปรเจ็กต์ที่มีโปรเจ็กต์ย่อยและไลบรารีจำนวนมากอย่างมีนัยสำคัญ รวมถึงปรับปรุงความเร็วในการจัดทำดัชนีใน 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.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 จากแถบเมนู การใช้เครื่องมือย้ายข้อมูลนี้จะตั้งค่า Flag ต่อไปนี้เป็น
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 เป็นเครื่องมือใหม่สำหรับการลดขนาดและการปรับโค้ดให้ยากต่อการอ่าน (Obfuscate) ซึ่งมาแทนที่ 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 เวอร์ชันเก่าเปิดใช้ MultiDex เดิมเมื่อนำแอปเวอร์ชันแก้ไขข้อบกพร่องไปติดตั้งในอุปกรณ์ที่ใช้ 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 เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
-
Gradle 4.4 ขึ้นไป
ดูข้อมูลเพิ่มเติมได้ที่ส่วนการอัปเดต Gradle
-
เครื่องมือสร้าง 27.0.3 ขึ้นไป
โปรดทราบว่าคุณไม่จำเป็นต้องระบุเวอร์ชันสำหรับเครื่องมือสร้างโดยใช้พร็อพเพอร์ตี้
android.buildToolsVersion
อีกต่อไป เนื่องจากปลั๊กอินจะใช้เวอร์ชันขั้นต่ำที่จำเป็นโดยค่าเริ่มต้น
D8 ซึ่งเป็นคอมไพเลอร์ DEX ใหม่
ตอนนี้ Android Studio ใช้คอมไพเลอร์ DEX ใหม่ชื่อ D8 โดยค่าเริ่มต้น การคอมไพล์ DEX คือกระบวนการเปลี่ยนรูปแบบไบต์โค้ด .class
เป็นไบต์โค้ด .dex
สำหรับรันไทม์ของ Android (หรือ Dalvik สำหรับ Android เวอร์ชันเก่า) D8 จะคอมไพล์ได้เร็วขึ้นและสร้างไฟล์ DEX ที่เล็กลงเมื่อเทียบกับคอมไพเลอร์ก่อนหน้าที่เรียกว่า DX ทั้งยังมีประสิทธิภาพรันไทม์ของแอปเท่าเดิมหรือดีกว่า
D8 ไม่ควรเปลี่ยนเวิร์กโฟลว์การพัฒนาแอปในแต่ละวัน อย่างไรก็ตาม หากพบปัญหาเกี่ยวกับคอมไพเลอร์ใหม่ โปรดรายงานข้อบกพร่อง คุณสามารถปิดใช้ D8 ชั่วคราวและใช้ DX ได้โดยใส่ข้อมูลต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableD8=false
สำหรับโปรเจ็กต์ที่ใช้ฟีเจอร์ภาษา Java 8 ระบบจะเปิดใช้การกรอง Sugar ทีละส่วนโดยค่าเริ่มต้น คุณปิดใช้ได้โดยระบุข้อมูลต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableIncrementalDesugaring=false.
ผู้ใช้เวอร์ชันตัวอย่าง: หากคุณใช้ D8 เวอร์ชันตัวอย่างอยู่แล้ว โปรดทราบว่าตอนนี้ 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 ทดสอบของแอปไม่ได้ การเพิ่มข้อกําหนดในการทดสอบที่มีเครื่องมือวัดโดยใช้การกําหนดค่า
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 ไม่รู้จัก dependencies ในบิลด์คอมโพสิตอย่างถูกต้อง
- แก้ไขปัญหาที่คุณได้รับข้อผิดพลาดในการซิงค์โปรเจ็กต์เมื่อโหลดปลั๊กอิน Android หลายครั้งในบิลด์เดียว เช่น เมื่อโปรเจ็กต์ย่อยหลายรายการมีปลั๊กอิน Android อยู่ใน classpath ของ buildscript
3.0.0 (ตุลาคม 2017)
ปลั๊กอิน Android Gradle 3.0.0 มีการเปลี่ยนแปลงหลายอย่างที่มุ่งเน้นแก้ปัญหาด้านประสิทธิภาพของโปรเจ็กต์ขนาดใหญ่
ตัวอย่างเช่น ในโปรเจ็กต์โครงร่างตัวอย่างที่มีโมดูลประมาณ 130 รายการและทรัพยากรภายนอกจํานวนมาก (แต่ไม่มีโค้ดหรือทรัพยากร) คุณจะพบการปรับปรุงประสิทธิภาพที่คล้ายกับตัวอย่างต่อไปนี้
เวอร์ชันปลั๊กอิน 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 แยกกัน และระบบจะจัดทําไฟล์ DEX ใหม่เฉพาะคลาสที่มีการแก้ไขเท่านั้น นอกจากนี้ คุณควรคาดหวังความเร็วในการสร้างที่ดีขึ้นสำหรับแอปที่ตั้งค่า
minSdkVersion
เป็น 20 หรือต่ำกว่า และใช้ MultiDex รุ่นเดิม - ปรับปรุงความเร็วในการสร้างโดยเพิ่มประสิทธิภาพงานบางอย่างให้ใช้เอาต์พุตที่แคชไว้ หากต้องการใช้ประโยชน์จากการเพิ่มประสิทธิภาพนี้ คุณต้องเปิดใช้แคชการบิลด์ Gradle ก่อน
- ปรับปรุงการประมวลผลทรัพยากรเพิ่มเติมโดยใช้ AAPT2 ซึ่งตอนนี้เปิดใช้โดยค่าเริ่มต้นแล้ว หากพบปัญหาขณะใช้ AAPT2 โปรดรายงานข้อบกพร่อง นอกจากนี้ คุณยังปิดใช้ AAPT2 ได้โดยการตั้งค่า
android.enableAapt2=false
ในไฟล์gradle.properties
แล้วรีสตาร์ทเดรัม Gradle โดยเรียกใช้./gradlew --stop
จากบรรทัดคำสั่ง
ฟีเจอร์ใหม่
- การจัดการทรัพยากรที่รองรับตัวแปร เมื่อสร้างตัวแปรหนึ่งของโมดูล ตอนนี้ปลั๊กอินจะจับคู่ตัวแปรของไลบรารีในเครื่องที่ต้องใช้กับโมดูลกับตัวแปรของโมดูลที่คุณกำลังสร้างโดยอัตโนมัติ
- มีปลั๊กอินโมดูลฟีเจอร์ใหม่เพื่อรองรับ Android Instant Apps และ Android Instant Apps SDK (ซึ่งคุณดาวน์โหลดได้โดยใช้เครื่องมือจัดการ SDK) หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโมดูลฟีเจอร์ด้วยปลั๊กอินใหม่ โปรดอ่านโครงสร้างของแอป Instant ที่มีฟีเจอร์หลายรายการ
- การรองรับการใช้ฟีเจอร์ภาษา Java 8 และไลบรารี Java 8 บางรายการในตัว ตอนนี้เราเลิกใช้งาน Jack แล้วและไม่จำเป็นต้องใช้อีกต่อไป คุณจึงควรปิดใช้ Jack ก่อนเพื่อใช้การรองรับ Java 8 ที่ปรับปรุงแล้วซึ่งรวมอยู่ในชุดเครื่องมือเริ่มต้น อ่านข้อมูลเพิ่มเติมได้ที่หัวข้อใช้ฟีเจอร์ภาษาของ Java 8
-
เพิ่มการรองรับการเรียกใช้การทดสอบด้วย Android Test Orchestrator ซึ่งช่วยให้คุณเรียกใช้การทดสอบของแอปแต่ละรายการภายในการเรียกใช้เครื่องมือวัดผลของแอปเองได้ เนื่องจากแต่ละการทดสอบทำงานในอินสแตนซ์เครื่องมือวัดของตัวเอง สถานะที่แชร์ระหว่างการทดสอบจึงจะไม่สะสมใน CPU หรือหน่วยความจำของอุปกรณ์ และแม้ว่าการทดสอบรายการหนึ่งจะขัดข้อง แต่จะปิดเฉพาะอินสแตนซ์ของเครื่องมือวัดเท่านั้น ดังนั้นการทดสอบอื่นๆ จะยังคงทํางานต่อไป
- เพิ่ม
testOptions.execution
เพื่อพิจารณาว่าจะใช้การประสานงานการทดสอบบนอุปกรณ์หรือไม่ หากต้องการใช้ Android Test Orchestrator คุณต้องระบุANDROID_TEST_ORCHESTRATOR
ดังที่แสดงด้านล่าง โดยค่าเริ่มต้น พร็อพเพอร์ตี้นี้จะตั้งค่าเป็นHOST
ซึ่งจะปิดใช้การจัดเตรียมอุปกรณ์และเป็นวิธีการมาตรฐานในการเรียกใช้การทดสอบ
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- เพิ่ม
-
การกำหนดค่า
androidTestUtil
ใหม่ช่วยให้คุณติดตั้ง APK ตัวช่วยทดสอบอื่นได้ก่อนที่จะทำการทดสอบด้วยเครื่องมือวัดผล เช่น Android Test OrchestratorGroovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
เพิ่ม
testOptions.unitTests.includeAndroidResources
เพื่อรองรับการทดสอบหน่วยที่ต้องใช้ทรัพยากร Android เช่น Roboelectric เมื่อคุณตั้งค่าพร็อพเพอร์ตี้นี้เป็นtrue
ปลั๊กอินจะทำการผสานทรัพยากร ชิ้นงาน และไฟล์ Manifest ก่อนทำการทดสอบหน่วย จากนั้นการทดสอบจะตรวจสอบcom/android/tools/test_config.properties
ใน classpath สําหรับคีย์ต่อไปนี้ได้-
android_merged_assets
: เส้นทางสัมบูรณ์ไปยังไดเรกทอรีเนื้อหาที่ผสานรวมหมายเหตุ: สำหรับโมดูลไลบรารี ชิ้นงานที่ผสานจะไม่มีชิ้นงานของข้อกําหนด (ดูปัญหา #65550419)
-
android_merged_manifest
: Absolute Path ไปยังไฟล์ Manifest ที่ผสานแล้ว -
android_merged_resources
: เส้นทางแบบสัมบูรณ์ไปยังไดเรกทอรีทรัพยากรที่ผสาน ซึ่งประกอบด้วยทรัพยากรทั้งหมดจากโมดูลและทรัพยากรที่เกี่ยวข้องทั้งหมด -
android_custom_package
: ชื่อแพ็กเกจของคลาส R สุดท้าย หากคุณแก้ไขรหัสแอปพลิเคชันแบบไดนามิก ชื่อแพ็กเกจนี้อาจไม่ตรงกับแอตทริบิวต์package
ในไฟล์ Manifest ของแอป
-
- การรองรับแบบอักษรเป็นทรัพยากร (ซึ่งเป็นฟีเจอร์ใหม่ที่เปิดตัวใน Android 8.0 (API ระดับ 26))
- รองรับ APK สำหรับภาษาที่เฉพาะเจาะจงด้วย Android Instant Apps SDK 1.1 ขึ้นไป
-
ตอนนี้คุณเปลี่ยนไดเรกทอรีเอาต์พุตสำหรับโปรเจ็กต์การสร้างเนทีฟภายนอกได้แล้ว ดังที่แสดงด้านล่าง
Groovy
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" } } }
Kotlin
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
-
การกำหนดค่า
lintChecks
ใหม่ช่วยให้คุณสร้าง JAR ที่กําหนดกฎ Lint ที่กำหนดเอง และแพ็กเกจลงในโปรเจ็กต์ AAR และ APK ได้กฎ Lint ที่กําหนดเองต้องอยู่ในโปรเจ็กต์แยกต่างหากที่แสดงผล JAR ไฟล์เดียวและมีเฉพาะ
compileOnly
Dependency เท่านั้น จากนั้นโมดูลแอปและไลบรารีอื่นๆ จะใช้โปรเจ็กต์ Lint ของคุณได้โดยใช้การกำหนดค่าlintChecks
ดังนี้Groovy
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') }
Kotlin
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 บางรายการออก และบิลด์จะใช้งานไม่ได้หากคุณใช้ API ดังกล่าว ตัวอย่างเช่น คุณจะใช้ Variants API เพื่อเข้าถึงออบเจ็กต์
outputFile()
หรือใช้processManifest.manifestOutputFile()
เพื่อรับไฟล์ Manifest ของผลิตภัณฑ์ย่อยแต่ละรายการไม่ได้อีกต่อไป ดูข้อมูลเพิ่มเติมได้ที่การเปลี่ยนแปลง API - คุณไม่จําเป็นต้องระบุเวอร์ชันสําหรับเครื่องมือสร้างอีกต่อไป (ตอนนี้คุณจึงนําพร็อพเพอร์ตี้
android.buildToolsVersion
ออกได้) โดยค่าเริ่มต้น ปลั๊กอินจะใช้เครื่องมือสร้างเวอร์ชันขั้นต่ำที่จำเป็นโดยอัตโนมัติสำหรับเวอร์ชันปลั๊กอิน Android ที่คุณใช้ - ตอนนี้คุณสามารถเปิด/ปิดใช้การบีบอัด PNG ในบล็อก
buildTypes
ดังที่แสดงด้านล่าง ระบบจะเปิดใช้การบีบอัด PNG โดยค่าเริ่มต้นสำหรับบิลด์ทั้งหมด ยกเว้นบิลด์แก้ไขข้อบกพร่อง เนื่องจากจะเพิ่มเวลาในการสร้างสำหรับโปรเจ็กต์ที่มีไฟล์ PNG จำนวนมาก ดังนั้น หากต้องการปรับปรุงเวลาในการสร้างสำหรับประเภทบิลด์อื่นๆ คุณควรปิดใช้การบีบอัด PNG หรือแปลงรูปภาพเป็น WebPGroovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- ตอนนี้ปลั๊กอิน Android จะสร้างเป้าหมายที่เรียกใช้งานได้โดยอัตโนมัติซึ่งคุณกำหนดค่าไว้ในโปรเจ็กต์ CMake ภายนอก
- ตอนนี้คุณต้องเพิ่มตัวประมวลผลคำอธิบายประกอบลงในคลาสเส้นทางของผู้ประมวลผลโดยใช้การกำหนดค่าความเกี่ยวข้อง
annotationProcessor
- การใช้
ndkCompile
ที่เลิกใช้งานแล้วถูกจํากัดมากขึ้น คุณควรเปลี่ยนไปใช้ CMake หรือ ndk-build เพื่อคอมไพล์โค้ดเนทีฟที่ต้องการแพ็กลงใน APK แทน โปรดดูข้อมูลเพิ่มเติมที่หัวข้อย้ายข้อมูลจาก ndkcompile
3.0.0 (ตุลาคม 2017)
ปลั๊กอิน Android Gradle 3.0.0 มีการเปลี่ยนแปลงหลายอย่างที่มุ่งเน้นแก้ปัญหาด้านประสิทธิภาพของโปรเจ็กต์ขนาดใหญ่
ตัวอย่างเช่น ในโปรเจ็กต์โครงร่างตัวอย่างที่มีโมดูลประมาณ 130 รายการและทรัพยากรภายนอกจํานวนมาก (แต่ไม่มีโค้ดหรือทรัพยากร) คุณจะพบการปรับปรุงประสิทธิภาพที่คล้ายกับตัวอย่างต่อไปนี้
เวอร์ชันปลั๊กอิน 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 แยกกัน และระบบจะจัดทําไฟล์ DEX ใหม่เฉพาะคลาสที่มีการแก้ไขเท่านั้น นอกจากนี้ คุณควรคาดหวังความเร็วในการสร้างที่ดีขึ้นสำหรับแอปที่ตั้งค่า
minSdkVersion
เป็น 20 หรือต่ำกว่า และใช้ MultiDex รุ่นเดิม - ปรับปรุงความเร็วในการสร้างโดยเพิ่มประสิทธิภาพงานบางอย่างให้ใช้เอาต์พุตที่แคชไว้ หากต้องการใช้ประโยชน์จากการเพิ่มประสิทธิภาพนี้ คุณต้องเปิดใช้แคชการบิลด์ Gradle ก่อน
- ปรับปรุงการประมวลผลทรัพยากรเพิ่มเติมโดยใช้ AAPT2 ซึ่งตอนนี้เปิดใช้โดยค่าเริ่มต้นแล้ว หากพบปัญหาขณะใช้ AAPT2 โปรดรายงานข้อบกพร่อง นอกจากนี้ คุณยังปิดใช้ AAPT2 ได้โดยการตั้งค่า
android.enableAapt2=false
ในไฟล์gradle.properties
แล้วรีสตาร์ทเดรัม Gradle โดยเรียกใช้./gradlew --stop
จากบรรทัดคำสั่ง
ฟีเจอร์ใหม่
- การจัดการทรัพยากรที่รองรับตัวแปร เมื่อสร้างตัวแปรหนึ่งของโมดูล ตอนนี้ปลั๊กอินจะจับคู่ตัวแปรของไลบรารีในเครื่องที่ต้องใช้กับโมดูลกับตัวแปรของโมดูลที่คุณกำลังสร้างโดยอัตโนมัติ
- มีปลั๊กอินโมดูลฟีเจอร์ใหม่เพื่อรองรับ Android Instant Apps และ Android Instant Apps SDK (ซึ่งคุณดาวน์โหลดได้โดยใช้เครื่องมือจัดการ SDK) หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโมดูลฟีเจอร์ด้วยปลั๊กอินใหม่ โปรดอ่านโครงสร้างของแอป Instant ที่มีฟีเจอร์หลายรายการ
- การรองรับการใช้ฟีเจอร์ภาษา Java 8 และไลบรารี Java 8 บางรายการในตัว ตอนนี้เราเลิกใช้งาน Jack แล้วและไม่จำเป็นต้องใช้อีกต่อไป คุณจึงควรปิดใช้ Jack ก่อนเพื่อใช้การรองรับ Java 8 ที่ปรับปรุงแล้วซึ่งรวมอยู่ในชุดเครื่องมือเริ่มต้น อ่านข้อมูลเพิ่มเติมได้ที่หัวข้อใช้ฟีเจอร์ภาษาของ Java 8
-
เพิ่มการรองรับการเรียกใช้การทดสอบด้วย Android Test Orchestrator ซึ่งช่วยให้คุณเรียกใช้การทดสอบของแอปแต่ละรายการภายในการเรียกใช้เครื่องมือวัดผลของแอปเองได้ เนื่องจากแต่ละการทดสอบทำงานในอินสแตนซ์เครื่องมือวัดของตัวเอง สถานะที่แชร์ระหว่างการทดสอบจึงจะไม่สะสมใน CPU หรือหน่วยความจำของอุปกรณ์ และแม้ว่าการทดสอบรายการหนึ่งจะขัดข้อง แต่จะปิดเฉพาะอินสแตนซ์ของเครื่องมือวัดเท่านั้น ดังนั้นการทดสอบอื่นๆ จะยังคงทํางานต่อไป
- เพิ่ม
testOptions.execution
เพื่อพิจารณาว่าจะใช้การประสานงานการทดสอบบนอุปกรณ์หรือไม่ หากต้องการใช้ Android Test Orchestrator คุณต้องระบุANDROID_TEST_ORCHESTRATOR
ดังที่แสดงด้านล่าง โดยค่าเริ่มต้น พร็อพเพอร์ตี้นี้จะตั้งค่าเป็นHOST
ซึ่งจะปิดใช้การจัดเตรียมอุปกรณ์และเป็นวิธีการมาตรฐานในการเรียกใช้การทดสอบ
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- เพิ่ม
-
การกำหนดค่า
androidTestUtil
ใหม่ช่วยให้คุณติดตั้ง APK ตัวช่วยทดสอบอื่นได้ก่อนที่จะทำการทดสอบด้วยเครื่องมือวัดผล เช่น Android Test OrchestratorGroovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
เพิ่ม
testOptions.unitTests.includeAndroidResources
เพื่อรองรับการทดสอบหน่วยที่ต้องใช้ทรัพยากร Android เช่น Roboelectric เมื่อคุณตั้งค่าพร็อพเพอร์ตี้นี้เป็นtrue
ปลั๊กอินจะทำการผสานทรัพยากร ชิ้นงาน และไฟล์ Manifest ก่อนทำการทดสอบหน่วย จากนั้นการทดสอบจะตรวจสอบcom/android/tools/test_config.properties
ใน classpath สําหรับคีย์ต่อไปนี้ได้-
android_merged_assets
: เส้นทางสัมบูรณ์ไปยังไดเรกทอรีเนื้อหาที่ผสานรวมหมายเหตุ: สำหรับโมดูลไลบรารี ชิ้นงานที่ผสานจะไม่มีชิ้นงานของข้อกําหนด (ดูปัญหา #65550419)
-
android_merged_manifest
: Absolute Path ไปยังไฟล์ Manifest ที่ผสานแล้ว -
android_merged_resources
: เส้นทางแบบสัมบูรณ์ไปยังไดเรกทอรีทรัพยากรที่ผสาน ซึ่งประกอบด้วยทรัพยากรทั้งหมดจากโมดูลและทรัพยากรที่เกี่ยวข้องทั้งหมด -
android_custom_package
: ชื่อแพ็กเกจของคลาส R สุดท้าย หากคุณแก้ไขรหัสแอปพลิเคชันแบบไดนามิก ชื่อแพ็กเกจนี้อาจไม่ตรงกับแอตทริบิวต์package
ในไฟล์ Manifest ของแอป
-
- การรองรับแบบอักษรเป็นทรัพยากร (ซึ่งเป็นฟีเจอร์ใหม่ที่เปิดตัวใน Android 8.0 (API ระดับ 26))
- รองรับ APK สำหรับภาษาที่เฉพาะเจาะจงด้วย Android Instant Apps SDK 1.1 ขึ้นไป
-
ตอนนี้คุณเปลี่ยนไดเรกทอรีเอาต์พุตสำหรับโปรเจ็กต์การสร้างเนทีฟภายนอกได้แล้ว ดังที่แสดงด้านล่าง
Groovy
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" } } }
Kotlin
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
-
การกำหนดค่า
lintChecks
ใหม่ช่วยให้คุณสร้าง JAR ที่กําหนดกฎ Lint ที่กำหนดเอง และแพ็กเกจลงในโปรเจ็กต์ AAR และ APK ได้กฎ Lint ที่กําหนดเองต้องอยู่ในโปรเจ็กต์แยกต่างหากที่แสดงผล JAR ไฟล์เดียวและมีเฉพาะ
compileOnly
Dependency เท่านั้น จากนั้นโมดูลแอปและไลบรารีอื่นๆ จะใช้โปรเจ็กต์ Lint ของคุณได้โดยใช้การกำหนดค่าlintChecks
ดังนี้Groovy
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') }
Kotlin
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 บางรายการออก และบิลด์จะใช้งานไม่ได้หากคุณใช้ API ดังกล่าว ตัวอย่างเช่น คุณจะใช้ Variants API เพื่อเข้าถึงออบเจ็กต์
outputFile()
หรือใช้processManifest.manifestOutputFile()
เพื่อรับไฟล์ Manifest ของผลิตภัณฑ์ย่อยแต่ละรายการไม่ได้อีกต่อไป ดูข้อมูลเพิ่มเติมได้ที่การเปลี่ยนแปลง API - คุณไม่จําเป็นต้องระบุเวอร์ชันสําหรับเครื่องมือสร้างอีกต่อไป (ตอนนี้คุณจึงนําพร็อพเพอร์ตี้
android.buildToolsVersion
ออกได้) โดยค่าเริ่มต้น ปลั๊กอินจะใช้เครื่องมือสร้างเวอร์ชันขั้นต่ำที่จำเป็นโดยอัตโนมัติสำหรับเวอร์ชันปลั๊กอิน Android ที่คุณใช้ - ตอนนี้คุณสามารถเปิด/ปิดใช้การบีบอัด PNG ในบล็อก
buildTypes
ดังที่แสดงด้านล่าง ระบบจะเปิดใช้การบีบอัด PNG โดยค่าเริ่มต้นสำหรับบิลด์ทั้งหมด ยกเว้นบิลด์แก้ไขข้อบกพร่อง เนื่องจากจะเพิ่มเวลาในการสร้างสำหรับโปรเจ็กต์ที่มีไฟล์ PNG จำนวนมาก ดังนั้น หากต้องการปรับปรุงเวลาในการสร้างสำหรับประเภทบิลด์อื่นๆ คุณควรปิดใช้การบีบอัด PNG หรือแปลงรูปภาพเป็น WebPGroovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- ตอนนี้ปลั๊กอิน Android จะสร้างเป้าหมายที่เรียกใช้งานได้โดยอัตโนมัติซึ่งคุณกำหนดค่าไว้ในโปรเจ็กต์ CMake ภายนอก
- ตอนนี้คุณต้องเพิ่มตัวประมวลผลคำอธิบายประกอบลงในคลาสเส้นทางของผู้ประมวลผลโดยใช้การกำหนดค่าความเกี่ยวข้อง
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
ที่ล้างแคชของบิวด์ - หากคุณใช้แคชการสร้างเวอร์ชันทดลอง (รวมอยู่ในปลั๊กอินเวอร์ชันเก่า) คุณควรอัปเดตปลั๊กอินเป็นเวอร์ชันล่าสุด
- มีงาน
- การเปลี่ยนแปลง:
-
- รองรับการเปลี่ยนแปลงการเรียกใช้ทันทีที่รวมอยู่ใน Android Studio 2.3
- การกำหนดค่าโปรเจ็กต์ขนาดใหญ่มากควรใช้เวลาเร็วขึ้นอย่างมาก
- แก้ไขปัญหาการดาวน์โหลดอัตโนมัติสำหรับคลังเลย์เอาต์ข้อจำกัด
- ตอนนี้ปลั๊กอินใช้ ProGuard เวอร์ชัน 5.3.2
- รวมถึงการแก้ไข ข้อบกพร่องที่รายงานหลายรายการ โปรดส่งรายงานข้อบกพร่องต่อไปเมื่อพบปัญหา
2.2.0 (กันยายน 2016)
- Dependency
-
- Gradle 2.14.1 ขึ้นไป
- เครื่องมือสร้าง 23.0.2 หรือเวอร์ชันที่ใหม่กว่า
- ใหม่:
-
- ใช้ Gradle 2.14.1 ซึ่งมีการปรับปรุงประสิทธิภาพและฟีเจอร์ใหม่ รวมถึงแก้ไขช่องโหว่ด้านความปลอดภัยที่อนุญาตให้มีการเพิ่มสิทธิ์ระดับท้องถิ่นเมื่อใช้เดรัม Gradle ดูรายละเอียดเพิ่มเติมได้ที่ บันทึกประจำรุ่นของ Gradle
- ตอนนี้ Gradle ให้คุณลิงก์กับแหล่งที่มาแบบเนทีฟและคอมไพล์ไลบรารีแบบเนทีฟโดยใช้ CMake หรือ ndk-build ได้แล้วโดยใช้
externalNativeBuild {}
DSL หลังจากสร้างไลบรารีแบบเนทีฟแล้ว Gradle จะแพ็กเกจไลบรารีเหล่านั้นลงใน APK ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ CMake และ ndk-build กับ Gradle ได้ที่เพิ่มโค้ด C และ C++ ลงในโปรเจ็กต์ - เมื่อคุณเรียกใช้การสร้างจากบรรทัดคำสั่ง ตอนนี้ Gradle จะพยายามดาวน์โหลดคอมโพเนนต์ SDK หรืออัปเดตที่ขาดหายไปซึ่งโปรเจ็กต์ของคุณต้องใช้โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมได้ที่การดาวน์โหลดแพ็กเกจที่ขาดหายไปโดยอัตโนมัติด้วย Gradle
- ฟีเจอร์การแคชเวอร์ชันทดลองใหม่ช่วยให้ Gradle เพิ่มความเร็วในการบิลด์ได้โดยการจัดทําไฟล์ Dex ล่วงหน้า จัดเก็บ และนําเวอร์ชันที่ทําไฟล์ Dex ล่วงหน้าของไลบรารีมาใช้ซ้ำ หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์ทดลองนี้ โปรดอ่านคู่มือสร้างแคช
- ปรับปรุงประสิทธิภาพการสร้างโดยใช้ไปป์ไลน์การแพ็กเกจเริ่มต้นใหม่ซึ่งจัดการการบีบอัด การเซ็นชื่อ และการจัดเรียงไฟล์ ZIP ในงานเดียว คุณกลับไปใช้เครื่องมือแพ็กเกจรุ่นเก่าได้โดยเพิ่ม
android.useOldPackaging=true
ลงในไฟล์gradle.properties
เมื่อใช้เครื่องมือแพ็กเกจใหม่ งานzipalignDebug
จะใช้งานไม่ได้ แต่คุณสร้างเองได้โดยการเรียกใช้เมธอดcreateZipAlignTask(String taskName, File inputFile, File outputFile)
- ตอนนี้การรับรอง APK ใช้ APK Signature Scheme v2 นอกเหนือจากการรับรอง JAR แบบดั้งเดิม แพลตฟอร์ม Android ทั้งหมดยอมรับ APK ที่ได้ การแก้ไข APK เหล่านี้หลังจากการรับรองจะทำให้ลายเซ็น v2 ใช้งานไม่ได้และป้องกันการติดตั้งในอุปกรณ์ หากต้องการปิดใช้ฟีเจอร์นี้ ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูลGroovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- สำหรับบิลด์แบบ MultiDex ตอนนี้คุณใช้กฎ ProGuard เพื่อกำหนดคลาสที่ Gradle ควรคอมไพล์ลงในไฟล์ DEX หลักของแอปได้แล้ว เนื่องจากระบบ Android จะโหลดไฟล์ DEX หลักก่อนเมื่อเริ่มแอป คุณจึงจัดลําดับความสําคัญของคลาสบางคลาสเมื่อเริ่มต้นได้โดยคอมไพล์คลาสเหล่านั้นลงในไฟล์ DEX หลัก หลังจากสร้างไฟล์การกําหนดค่า ProGuard สําหรับไฟล์ DEX หลักโดยเฉพาะแล้ว ให้ส่งเส้นทางของไฟล์การกําหนดค่าไปยัง Gradle โดยใช้
buildTypes.multiDexKeepProguard
การใช้ DSL นี้แตกต่างจากการใช้buildTypes.proguardFiles
ซึ่งให้กฎ ProGuard ทั่วไปสำหรับแอปของคุณและไม่ได้ระบุคลาสสำหรับไฟล์ DEX หลัก - เพิ่มการรองรับ Flag
android:extractNativeLibs
ซึ่งสามารถลดขนาดของแอปเมื่อคุณติดตั้งลงในอุปกรณ์ เมื่อคุณตั้งค่า Flag นี้เป็นfalse
ในองค์ประกอบ<application>
ของไฟล์ Manifest ของแอป Gradle จะแพ็กเกจไลบรารีแบบเนทีฟเวอร์ชันที่ไม่ได้บีบอัดและเวอร์ชันที่สอดคล้องกับ APK ของคุณ ซึ่งจะป้องกันไม่ให้PackageManager
คัดลอกไลบรารีแบบเนทีฟจาก APK ไปยังระบบไฟล์ของอุปกรณ์ระหว่างการติดตั้ง และยังมีข้อดีเพิ่มเติมอีกอย่างหนึ่งคือทำให้การอัปเดตแบบ Delta ของแอปมีขนาดเล็กลง - ตอนนี้คุณระบุ
versionNameSuffix
และapplicationIdSuffix
สำหรับผลิตภัณฑ์ย่อยได้แล้ว (ปัญหา 59614)
- การเปลี่ยนแปลง:
-
-
getDefaultProguardFile
จะแสดงไฟล์ ProGuard เริ่มต้นที่ปลั๊กอิน Android สำหรับ Gradle มีให้และไม่ใช้ไฟล์ใน Android SDK อีกต่อไป - ประสิทธิภาพและฟีเจอร์ของคอมไพเลอร์ Jack ที่ได้รับการปรับปรุง
- ตอนนี้ Jack รองรับการครอบคลุมการทดสอบ Jacoco เมื่อตั้งค่า
testCoverageEnabled
เป็นtrue
แล้ว - ปรับปรุงการรองรับโปรแกรมประมวลผลคำอธิบายประกอบ ระบบจะใช้โปรแกรมประมวลผลคำอธิบายประกอบใน classpath เช่น
compile
Dependency กับบิลด์โดยอัตโนมัติ นอกจากนี้ คุณยังระบุโปรแกรมประมวลผลคำอธิบายประกอบในบิลด์และส่งอาร์กิวเมนต์ได้โดยใช้javaCompileOptions.annotationProcessorOptions {}
DSL ในไฟล์build.gradle
ระดับโมดูล ดังนี้Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
หากต้องการใช้โปรแกรมประมวลผลคำอธิบายประกอบขณะคอมไพล์แต่ไม่รวมไว้ใน APK ให้ใช้
annotationProcessor
ขอบเขตการอ้างอิงต่อไปนี้Groovy
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 }
Kotlin
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 }
หากต้องการดูรายการพารามิเตอร์ที่คุณตั้งค่าได้ ให้เรียกใช้คำสั่งต่อไปนี้จากบรรทัดคำสั่ง
java -jar /build-tools/jack.jar --help-properties
- ตอนนี้ Jack รองรับการครอบคลุมการทดสอบ Jacoco เมื่อตั้งค่า
- โดยค่าเริ่มต้น หากขนาดฮีปของเดรัม Gradle มีขนาดอย่างน้อย 1.5 GB ตอนนี้ Jack จะทำงานในกระบวนการเดียวกับ Gradle หากต้องการปรับขนาดกองของ Daemon ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
gradle.properties
# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
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 อ่านข้อมูลเพิ่มเติมได้ที่คู่มือเวอร์ชันตัวอย่างของ N
หมายเหตุ: ขณะนี้ Instant Run ไม่ทำงานร่วมกับ Jack และจะปิดใช้ขณะใช้ชุดเครื่องมือใหม่ คุณต้องใช้ Jack ก็ต่อเมื่อกำลังพัฒนาแอปสำหรับตัวอย่างรุ่น N และต้องการใช้ฟีเจอร์ภาษาของ Java 8 ที่รองรับ
- เพิ่มการรองรับเริ่มต้นสำหรับการคอมไพล์ Java แบบเพิ่มทีละส่วนเพื่อลดเวลาในการคอมไพล์ระหว่างการพัฒนา โดยคอมไพล์เฉพาะส่วนแหล่งที่มาที่มีการเปลี่ยนแปลงหรือจำเป็นต้องคอมไพล์อีกครั้งเท่านั้น หากต้องการปิดใช้ฟีเจอร์นี้ ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูลGroovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
เพิ่มการรองรับการแยกไฟล์ DeX ในกระบวนการ ซึ่งจะแยกไฟล์ DeX ภายในกระบวนการสร้างแทนที่จะแยกไฟล์ในกระบวนการ VM ภายนอกแยกต่างหาก ซึ่งไม่เพียงทำให้การสร้างแบบเพิ่มเร็วขึ้นเท่านั้น แต่ยังช่วยเร่งความเร็วในการสร้างแบบสมบูรณ์ด้วย ระบบจะเปิดใช้ฟีเจอร์นี้โดยค่าเริ่มต้นสำหรับโปรเจ็กต์ที่ตั้งค่าขนาดฮีปสูงสุดของเดรัม Gradle เป็นอย่างน้อย 2048 MB ซึ่งทำได้โดยใส่ข้อมูลต่อไปนี้ในไฟล์
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
ของโปรเจ็กต์หากคุณได้กําหนดค่าสําหรับ
```none org.gradle.jvmargs = -Xmx3072m ```javaMaxHeapSize
ในไฟล์build.gradle
ระดับข้อบังคับแล้ว คุณจะต้องตั้งค่าorg.gradle.jvmargs
เป็นค่าของjavaMaxHeapSize
+ 1024 MB ตัวอย่างเช่น หากคุณตั้งค่าjavaMaxHeapSize
เป็น "2048m" คุณจะต้องเพิ่มข้อมูลต่อไปนี้ลงในไฟล์gradle.properties
ของโปรเจ็กต์หากต้องการปิดใช้ Dexing ขณะดำเนินการ ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูลGroovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- เพิ่มการรองรับ N Developer Preview, JDK 8 และฟีเจอร์ภาษา Java 8 โดยใช้ชุดเครื่องมือ Jack อ่านข้อมูลเพิ่มเติมได้ที่คู่มือเวอร์ชันตัวอย่างของ N
2.0.0 (เมษายน 2016)
- Dependency
-
- Gradle 2.10 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 หรือใหม่กว่า
- ใหม่:
-
- เปิดใช้ Instant Run โดยรองรับการแทรก Bytecode และการพุชการอัปเดตโค้ดและทรัพยากรไปยังแอปที่ทำงานอยู่ในโปรแกรมจำลองหรืออุปกรณ์จริง
- เพิ่มการรองรับการสร้างที่เพิ่มขึ้น แม้ว่าแอปจะไม่ทำงานอยู่ก็ตาม ปรับปรุงเวลาการสร้างทั้งหมดโดยการพุชการเปลี่ยนแปลงเพิ่มเติมผ่าน Android Debug Bridge ไปยังอุปกรณ์ที่เชื่อมต่อ
- เพิ่ม
maxProcessCount
เพื่อควบคุมจำนวนกระบวนการ dex ของผู้ปฏิบัติงานที่สามารถสร้างพร้อมกันได้ โค้ดต่อไปนี้ในไฟล์build.gradle
ระดับโมดูลจะตั้งค่าจํานวนกระบวนการสูงสุดที่ทํางานพร้อมกันเป็น 4Groovy
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
Kotlin
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:
Groovy
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
Kotlin
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
ผ่าน Variant 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 ให้เกิดขึ้นก่อนงานสร้างความสับสนแทนที่จะประมวลผลระหว่างการแพ็กเกจ APK การเปลี่ยนแปลงนี้ช่วยให้งานสร้างความสับสนมีโอกาสปรับทรัพยากร Java ตามการสร้างความสับสนของแพ็กเกจ
- แก้ไขปัญหาเกี่ยวกับการใช้โค้ด 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
เพื่อตรวจสอบชุดแหล่งที่มาทั้งหมดที่ใช้ได้ - ปรับปรุงการรองรับการทดสอบหน่วยเพื่อจดจำโฟลเดอร์แหล่งที่มาของตัวแปรหลายรูปแบบและ
ตัวแปรการสร้าง ตัวอย่างเช่น หากต้องการทดสอบแอปที่มีหลายเวอร์ชัน
flavor1
และflavorA
ด้วยประเภทบิลด์Debug
ชุดแหล่งที่มาของการทดสอบจะเป็นดังนี้- ทดสอบ
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
การทดสอบ Android รู้จักโฟลเดอร์แหล่งที่มาหลายเวอร์ชันอยู่แล้ว
- ปรับปรุงการรองรับการทดสอบหน่วยเพื่อดำเนินการต่อไปนี้
- เรียกใช้
javac
ในแหล่งที่มาหลักและแหล่งที่มาทดสอบ แม้ว่าจะตั้งค่าพร็อพเพอร์ตี้useJack
เป็นtrue
ในไฟล์บิลด์ก็ตาม - จดจำทรัพยากร Dependency ของบิลด์แต่ละประเภทอย่างถูกต้อง
- เรียกใช้
- เพิ่มการรองรับการระบุอาร์กิวเมนต์เครื่องมือทดสอบจากบรรทัดคำสั่ง
เช่น
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
เพิ่มการรองรับพารามิเตอร์ Android Asset Packaging Tool (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)
- Dependency
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- รองรับการเรียกใช้การทดสอบหน่วยด้วย Gradle ได้ดียิ่งขึ้น
- เพิ่มการรองรับเพื่อรวมแหล่งข้อมูลสไตล์ Java ไว้ใน classpath เมื่อเรียกใช้การทดสอบหน่วยจาก Gradle โดยตรง
- เพิ่มการรองรับทรัพยากร Dependency ของ Unit Test สำหรับอาร์ติแฟกต์ Android Archive (AAR)
- เพิ่มการรองรับพร็อพเพอร์ตี้
unitTestVariants
เพื่อให้สามารถจัดการตัวแปรการทดสอบหน่วยโดยใช้ไฟล์build.gradle
ได้ - เพิ่มบล็อกโค้ด
unitTest.all
ใต้testOptions
เพื่อกำหนดค่างานที่กําหนดเองสําหรับการทดสอบหน่วย ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มการตั้งค่าการกําหนดค่าการทดสอบหน่วยโดยใช้ตัวเลือกใหม่นี้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. } } }
- แก้ไขการจัดการเอนทิตีและช่องอินสแตนซ์สาธารณะในการจัดแพ็กเกจไฟล์
mockable-android.jar
- แก้ไขทรัพยากร Dependency ของงานโปรเจ็กต์ไลบรารีเพื่อให้คลาสทดสอบคอมไพล์อีกครั้งหลังจากการเปลี่ยนแปลง
- เพิ่มพร็อพเพอร์ตี้
testProguardFile
เพื่อใช้ไฟล์ ProGuard เมื่อลดขนาด APK ทดสอบ - เพิ่มพร็อพเพอร์ตี้
timeOut
ลงในบล็อกโค้ดadbOptions
เพื่อกำหนดเวลาในการบันทึกสูงสุดสำหรับการบันทึกหน้าจอ Android Debug Bridge - เพิ่มการรองรับทรัพยากร 280 dpi
- ประสิทธิภาพที่ดีขึ้นระหว่างการประเมินโปรเจ็กต์
- รองรับการเรียกใช้การทดสอบหน่วยด้วย Gradle ได้ดียิ่งขึ้น
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.3 (มีนาคม 2015)
- Dependency
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- แก้ไขปัญหาเกี่ยวกับ Dependency ที่ซ้ำกันในแอปทดสอบซึ่งทริกเกอร์ให้ ProGuard ทำงานไม่สำเร็จ
- แก้ไขการใช้งาน Comparator ที่ไม่เป็นไปตามสัญญา Comparator ของ JDK และสร้างข้อผิดพลาด JDK 7
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.2 (กุมภาพันธ์ 2015)
- Dependency
-
- 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 Kit)
- เพิ่มตัวเลือก
android.testOptions.unitTests.returnDefaultValues
เพื่อควบคุมลักษณะการทํางานของ android.jar ที่จำลองได้ - แทนที่
Test
ในชื่องานทดสอบด้วยAndroidTest
ตัวอย่างเช่น งานassembleDebugTest
เปลี่ยนเป็นงานassembleDebugAndroidTest
งานทดสอบหน่วยยังคงมีUnitTest
ในชื่องาน เช่นassembleDebugUnitTest
- แก้ไขไฟล์การกำหนดค่า ProGuard เพื่อไม่ให้ใช้กับ APK ทดสอบอีกต่อไป หากเปิดใช้การลดขนาด ProGuard จะประมวลผล APK ทดสอบและใช้เฉพาะไฟล์การแมปที่สร้างขึ้นเมื่อลดขนาด APK หลัก
- การจัดการทรัพยากร Dependencies ที่อัปเดต
- แก้ไขปัญหาเกี่ยวกับขอบเขต
provided
และpackage
หมายเหตุ: ขอบเขตเหล่านี้ใช้ร่วมกับแพ็กเกจ AAR (Android ARchive) ไม่ได้ และจะทําให้บิลด์ด้วยแพ็กเกจ AAR ล้มเหลว
- แก้ไขการแก้ไขข้อกำหนดในการเปรียบเทียบข้อกำหนดของแอปที่อยู่ระหว่างการทดสอบกับแอปทดสอบ หากพบอาร์ติแฟกต์ที่มีเวอร์ชันเดียวกันสำหรับทั้ง 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 เมื่อนำเข้าไลบรารีที่มี
targetSdkVersion
น้อยกว่า 16 - แก้ไขปัญหาการจัดเรียงความหนาแน่นเมื่อใช้ Android Studio กับ JDK 8
- แก้ไขปัญหาการสร้าง Gradle ไม่สำเร็จเมื่อเข้าถึงข้อบังคับ
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.0.0 (ธันวาคม 2014)
- Dependency
-
-
Gradle 2.2.1 ถึง 2.3.x
หมายเหตุ: ปลั๊กอิน Android สำหรับ Gradle เวอร์ชันนี้ใช้ร่วมกับ Gradle 2.4 ขึ้นไปไม่ได้
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
-
- หมายเหตุทั่วไป
-
- การเผยแพร่ปลั๊กอินครั้งแรก