ต่อไปนี้คือหมายเหตุประจำรุ่นของ 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 เวอร์ชันนี้มีการอัปเดตเครื่องมือออกแบบหลายอย่าง รวมถึง Layout Editor และ Resource Manager
มุมมองแยกและซูมเข้าในโปรแกรมแก้ไขการออกแบบ
การอัปเดตต่อไปนี้ในโปรแกรมแก้ไขการออกแบบภาพจะรวมอยู่ในการเผยแพร่นี้
-
ตอนนี้โปรแกรมแก้ไขการออกแบบ เช่น Layout Editor และ Navigation Editor มีมุมมองแยกที่ช่วยให้คุณเห็นทั้งมุมมองการออกแบบและโค้ดของ UI พร้อมกัน ตอนนี้ที่มุมขวาบน ของหน้าต่างเอดิเตอร์มีปุ่ม 3 ปุ่ม
สำหรับสลับระหว่างตัวเลือกการดู
-
หากต้องการเปิดใช้มุมมองแบบแยก ให้คลิกไอคอนแยก
-
หากต้องการเปิดใช้มุมมองแหล่งที่มา XML ให้คลิกไอคอนแหล่งที่มา
-
หากต้องการเปิดใช้มุมมองการออกแบบ ให้คลิกไอคอนการออกแบบ
-
หากต้องการเปิดใช้มุมมองแบบแยก ให้คลิกไอคอนแยก
-
การควบคุมสำหรับการซูมและการเลื่อนภายในโปรแกรมแก้ไขการออกแบบได้ย้ายไป อยู่ที่แผงลอยที่มุมขวาล่างของหน้าต่างโปรแกรมแก้ไข
ดูข้อมูลเพิ่มเติมได้ที่สร้าง UI ด้วยเครื่องมือแก้ไขการออกแบบ
แท็บทรัพยากรตัวเลือกสี
IDE จะป้อนค่าทรัพยากรสีให้คุณโดยอัตโนมัติเพื่อช่วยให้คุณอัปเดตค่าทรัพยากรสีในแอปได้อย่างรวดเร็วเมื่อใช้ เครื่องมือเลือกสีใน XML หรือเครื่องมือออกแบบ
เครื่องมือจัดการทรัพยากร
Resource Manager มีการอัปเดตต่อไปนี้
- ขณะนี้ Resource Manager รองรับทรัพยากรส่วนใหญ่แล้ว
- เมื่อค้นหาทรัพยากร ตอนนี้ Resource Manager จะแสดงผลลัพธ์จาก โมดูลโปรเจ็กต์ทั้งหมด ก่อนหน้านี้ การค้นหาจะแสดงผลลัพธ์จากโมดูลที่เลือกเท่านั้น
- ปุ่มตัวกรองช่วยให้คุณดูทรัพยากรจากโมดูลที่ขึ้นต่อกันในเครื่อง ไลบรารีภายนอก และเฟรมเวิร์ก Android ได้ นอกจากนี้ คุณยังใช้ตัวกรองเพื่อ แสดงแอตทริบิวต์ธีมได้ด้วย
- ตอนนี้คุณเปลี่ยนชื่อทรัพยากรในระหว่างกระบวนการนำเข้าได้แล้วโดยคลิกใน กล่องข้อความเหนือทรัพยากร
ดูข้อมูลเพิ่มเติมได้ที่จัดการทรัพยากร UI ของแอปด้วย Resource Manager
การปรับปรุงปลั๊กอิน Android Gradle
ปลั๊กอิน Android Gradle เวอร์ชันล่าสุดมีการอัปเดตหลายอย่าง รวมถึงการเพิ่มประสิทธิภาพความเร็วในการสร้าง การรองรับปลั๊กอินการเผยแพร่ Maven และการรองรับ View Binding ดูข้อมูลเพิ่มเติมได้ในบันทึกประจำรุ่นฉบับเต็ม
ดูการเชื่อมโยง
View Binding ช่วยให้คุณเขียนโค้ดที่โต้ตอบกับ View ได้ง่ายขึ้นโดยการสร้างคลาส Binding สำหรับไฟล์เลย์เอาต์ XML แต่ละไฟล์ คลาสเหล่านี้มีข้อมูลอ้างอิงโดยตรงไปยังมุมมองทั้งหมดที่มี รหัสในเลย์เอาต์ที่เกี่ยวข้อง
เนื่องจากแทนที่ findViewById()
การเชื่อมโยงข้อมูลพร็อพเพอร์ตี้จึงช่วยลด
ความเสี่ยงของข้อยกเว้นตัวชี้เป็น Null ที่เกิดจากรหัสข้อมูลพร็อพเพอร์ตี้ที่ไม่ถูกต้อง
หากต้องการเปิดใช้ View Binding คุณต้องใช้ปลั๊กอิน Android Gradle
3.6.0 ขึ้นไป และรวมข้อมูลต่อไปนี้ไว้ในไฟล์ build.gradle
ของแต่ละโมดูล
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
ใช้การเปลี่ยนแปลง
ตอนนี้คุณเพิ่มคลาสแล้วนําการเปลี่ยนแปลงโค้ดไปใช้กับแอปที่กําลังทํางานได้โดย คลิกใช้การเปลี่ยนแปลงโค้ด หรือใช้การเปลี่ยนแปลงและรีสตาร์ทกิจกรรม
ดูข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างระหว่างการดำเนินการทั้ง 2 อย่างนี้ได้ที่ ใช้การเปลี่ยนแปลง
ปรับโครงสร้างตัวเลือกเมนูเพื่อเปิดใช้การรองรับ Instant App
ตอนนี้คุณเปิดใช้โมดูลฐานได้ทันทีทุกเมื่อหลังจากสร้างโปรเจ็กต์แอป โดยทำดังนี้
- เปิดแผงโปรเจ็กต์โดยเลือกดู > หน้าต่างเครื่องมือ > โปรเจ็กต์ จากแถบเมนู
- คลิกขวาที่โมดูลฐาน ซึ่งโดยทั่วไปจะมีชื่อว่า "app" แล้วเลือก Refactor > เปิดใช้การรองรับ Instant Apps
- ในกล่องโต้ตอบที่ปรากฏขึ้น ให้เลือกโมดูลฐานจากเมนูแบบเลื่อนลง
- คลิกตกลง
หมายเหตุ: เราได้นำตัวเลือกในการเปิดใช้โมดูลแอปฐานทันที จากวิซาร์ดสร้างโปรเจ็กต์ใหม่ออกแล้ว
ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ Google Play Instant
ยกเลิกการปกปิดโค้ดไบต์ของคลาสและเมธอดในตัววิเคราะห์ APK
เมื่อใช้ APK Analyzer เพื่อ ตรวจสอบไฟล์ DEX คุณสามารถถอดรหัสซอร์สโค้ดที่สร้างความสับสนของคลาสและไบต์โค้ดของเมธอดได้โดยทำดังนี้
- เลือกบิลด์ > วิเคราะห์ APK จากแถบเมนู
- ในกล่องโต้ตอบที่ปรากฏขึ้น ให้ไปที่ APK ที่ต้องการตรวจสอบ แล้วเลือก
- คลิกเปิด
- ในเครื่องมือวิเคราะห์ APK ให้เลือกไฟล์ DEX ที่ต้องการตรวจสอบ
- ในโปรแกรมดูไฟล์ DEX ให้โหลดไฟล์การแมป ProGuardสำหรับ APK ที่คุณ วิเคราะห์
- คลิกขวาที่คลาสหรือเมธอดที่ต้องการตรวจสอบ แล้วเลือก แสดงไบต์โค้ด
เครื่องมือเนทีฟ
ข้อมูลอัปเดตต่อไปนี้รองรับการพัฒนาแอปแบบเนทีฟ (C/C++) ใน Android Studio
การรองรับ Kotlin
ฟีเจอร์ NDK ต่อไปนี้ใน Android Studio ซึ่งก่อนหน้านี้รองรับใน Java ตอนนี้รองรับใน Kotlin ด้วย
-
ไปยังฟังก์ชันการใช้งานที่เกี่ยวข้องจากประกาศ JNI ใน C/C++ ดูการแมปนี้โดยวางเมาส์เหนือเครื่องหมายรายการ C หรือ C++ ใกล้ หมายเลขบรรทัดในไฟล์ซอร์สโค้ดที่มีการจัดการ
-
สร้างฟังก์ชันการใช้งาน Stub สำหรับการประกาศ 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
การตรวจหาการรั่วไหลในเครื่องมือสร้างโปรไฟล์หน่วยความจำ
เมื่อวิเคราะห์การดัมพ์ฮีปใน Memory Profiler ตอนนี้คุณสามารถกรองข้อมูลการทำโปรไฟล์ที่ Android Studio คิดว่าอาจบ่งบอกถึงหน่วยความจำรั่วสำหรับอินสแตนซ์ Activity
และ Fragment
ในแอปได้แล้ว
ประเภทข้อมูลที่ตัวกรองแสดง ได้แก่
-
อินสแตนซ์
Activity
ที่ถูกทำลายไปแล้วแต่ยังคงมีการอ้างอิงถึง อยู่ -
Fragment
ที่ไม่มีFragmentManager
แต่ยังคง มีการอ้างอิง
แนบแหล่งที่มาของ APK ที่มีเฉพาะ Kotlin
ตอนนี้คุณแนบแหล่งที่มาของ APK ภายนอกที่เป็น Kotlin เท่านั้นได้แล้วเมื่อทำโปรไฟล์ และแก้ไขข้อบกพร่องของ APK ที่สร้างไว้ล่วงหน้า ดูข้อมูลเพิ่มเติมได้ที่ แนบแหล่งที่มาของ Kotlin/Java
การตรวจหาการรั่วไหลในเครื่องมือสร้างโปรไฟล์หน่วยความจำ
เมื่อวิเคราะห์การดัมพ์ฮีปใน Memory Profiler ตอนนี้คุณสามารถกรองข้อมูลการทำโปรไฟล์ที่ Android Studio คิดว่าอาจบ่งบอกถึงหน่วยความจำรั่วสำหรับอินสแตนซ์ Activity
และ Fragment
ในแอปได้แล้ว
ประเภทข้อมูลที่ตัวกรองแสดง ได้แก่
-
อินสแตนซ์
Activity
ที่ถูกทำลายไปแล้วแต่ยังคงมีการอ้างอิงถึง อยู่ -
Fragment
ที่ไม่มีFragmentManager
ที่ถูกต้อง แต่ยังคงมีการอ้างอิง
ในบางสถานการณ์ เช่น สถานการณ์ต่อไปนี้ ตัวกรองอาจให้ผลลัพธ์ที่ผิดพลาด
- สร้าง
Fragment
แล้ว แต่ยังไม่ได้ใช้ - ระบบกำลังแคช
Fragment
แต่ไม่ได้แคชเป็นส่วนหนึ่งของFragmentTransaction
หากต้องการใช้ฟีเจอร์นี้ ก่อนอื่นให้ บันทึก Heap Dump หรือนำเข้าไฟล์ Heap Dump ลงใน Android Studio หากต้องการแสดง Fragment และกิจกรรมที่อาจ ทำให้หน่วยความจำรั่ว ให้เลือกช่องทำเครื่องหมายการรั่วไหลของกิจกรรม/Fragment ในแผง Heap Dump ของ Memory Profiler
การกรองฮีปดัมป์เพื่อหาหน่วยความจำรั่วไหล
โปรแกรมจำลอง
Android Studio 3.6 ช่วยให้คุณใช้ประโยชน์จากการอัปเดตหลายรายการที่รวมอยู่ใน Android Emulator 29.2.7 ขึ้นไปได้ ดังที่อธิบายไว้ด้านล่าง
การรองรับสถานที่ตั้งที่ดียิ่งขึ้น
Android Emulator 29.2.7 ขึ้นไปรองรับการจำลองพิกัด GPS และข้อมูลเส้นทางเพิ่มเติม เมื่อเปิดโปรแกรมจำลอง การควบคุมเพิ่มเติม ตอนนี้ตัวเลือกในแท็บตำแหน่งจะจัดระเบียบไว้ใน 2 แท็บ ได้แก่ จุดเดียวและเส้นทาง
คะแนนเดียว
ในแท็บจุดเดียว คุณสามารถใช้ WebView ของ Google Maps เพื่อค้นหา จุดที่น่าสนใจได้เช่นเดียวกับตอนที่ใช้ Google Maps บนโทรศัพท์หรือ เบราว์เซอร์ เมื่อค้นหาหรือคลิกตำแหน่งในแผนที่ คุณจะบันทึก ตำแหน่งได้โดยเลือก "บันทึกจุด" ที่ด้านล่างของแผนที่ สถานที่ตั้งที่บันทึกไว้ทั้งหมดจะแสดงทางด้านขวาของหน้าต่างการควบคุมเพิ่มเติม
หากต้องการตั้งค่าตำแหน่งของโปรแกรมจำลองให้เป็นตำแหน่งที่คุณเลือกบนแผนที่ ให้คลิกปุ่มตั้งค่าตำแหน่งที่ด้านขวาล่างของหน้าต่าง การควบคุมเพิ่มเติม
เส้นทาง
แท็บเส้นทางมี WebView ของ Google Maps ที่คุณใช้สร้างเส้นทางระหว่างสถานที่ 2 แห่งขึ้นไปได้ ซึ่งคล้ายกับแท็บจุดเดียว หากต้องการสร้างและบันทึกเส้นทาง ให้ทำดังนี้
- ในมุมมองแผนที่ ให้ใช้ช่องข้อความเพื่อค้นหาจุดหมายแรกใน เส้นทาง
- เลือกสถานที่จากผลการค้นหา
- เลือกปุ่มนำทาง
- เลือกจุดเริ่มต้นของเส้นทางจากแผนที่
- (ไม่บังคับ) คลิกเพิ่มจุดหมายเพื่อเพิ่มจุดแวะพักอื่นๆ ลงในเส้นทาง
- บันทึกเส้นทางโดยคลิกบันทึกเส้นทางในมุมมองแผนที่
- ระบุชื่อเส้นทาง แล้วคลิกบันทึก
หากต้องการจำลองโปรแกรมจำลองตามเส้นทางที่คุณบันทึกไว้ ให้เลือกเส้นทางจากรายการเส้นทางที่บันทึกไว้ แล้วคลิกเล่นเส้นทางที่ด้านขวาล่างของหน้าต่างการควบคุมเพิ่มเติม หากต้องการหยุดการจำลอง ให้คลิกหยุดเส้นทาง
หากต้องการจำลองโปรแกรมจำลองอย่างต่อเนื่องตามเส้นทางที่ระบุ ให้เปิดสวิตช์ ข้างเล่นซ้ำ หากต้องการเปลี่ยนความเร็วที่โปรแกรมจำลองเคลื่อนที่ตามเส้นทางที่ระบุ ให้เลือกตัวเลือกจากเมนูแบบเลื่อนลงความเร็วในการเล่น
การรองรับหลายจอภาพ
ตอนนี้ Android Emulator ช่วยให้คุณสามารถติดตั้งใช้งานแอปในหลายจอแสดงผลได้ ซึ่งรองรับขนาดที่ปรับแต่งได้และช่วยให้คุณทดสอบแอปที่รองรับหลายหน้าต่างและหลายจอแสดงผลได้ ขณะที่อุปกรณ์เสมือนทำงานอยู่ คุณเพิ่มจอแสดงผลเพิ่มเติมได้สูงสุด 2 จอโดยทำดังนี้
-
เปิด การควบคุมเพิ่มเติม แล้วไปที่แท็บจอแสดงผล
-
เพิ่มจอแสดงผลอื่นโดยคลิกเพิ่มจอแสดงผลรอง
-
จากเมนูแบบเลื่อนลงในส่วนจอแสดงผลรอง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
-
เลือกสัดส่วนภาพที่กำหนดล่วงหน้า
-
เลือกกำหนดเอง แล้วตั้งค่าความสูง ความกว้าง และ DPI สำหรับ การแสดงผลที่กำหนดเอง
-
(ไม่บังคับ) คลิกเพิ่มจอแสดงผลรองเพื่อเพิ่มจอแสดงผลที่ 3
-
คลิกใช้การเปลี่ยนแปลงเพื่อเพิ่มจอแสดงผลที่ระบุลงในอุปกรณ์เสมือนที่กำลังทำงาน อยู่
อุปกรณ์เสมือนและเทมเพลตโปรเจ็กต์ใหม่สำหรับ Android Automotive OS
เมื่อสร้างโปรเจ็กต์ใหม่โดยใช้ Android Studio ตอนนี้คุณสามารถเลือกจาก เทมเพลต 3 แบบจากแท็บ Automotive ในวิซาร์ดสร้างโปรเจ็กต์ใหม่ ได้แก่ ไม่มีกิจกรรม บริการสื่อ และบริการรับส่งข้อความ สำหรับโปรเจ็กต์ที่มีอยู่ คุณสามารถเพิ่มการรองรับอุปกรณ์ 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 Manager ตอนนี้ Android Studio จะช่วยให้คุณดาวน์โหลดต่อจากที่หยุดชะงักได้ (เช่น เนื่องจากปัญหาเกี่ยวกับเครือข่าย) แทนที่จะเริ่มดาวน์โหลดใหม่ตั้งแต่ต้น การปรับปรุงนี้มีประโยชน์อย่างยิ่งสำหรับการดาวน์โหลดขนาดใหญ่ เช่น Android Emulator หรืออิมเมจระบบ เมื่อการเชื่อมต่ออินเทอร์เน็ตไม่เสถียร
นอกจากนี้ หากคุณมีงานดาวน์โหลด SDK ที่ทำงานในเบื้องหลัง คุณจะ หยุดชั่วคราวหรือดำเนินการดาวน์โหลดต่อได้โดยใช้ตัวควบคุมในแถบสถานะ
งานดาวน์โหลดในพื้นหลังในแถบสถานะพร้อมตัวควบคุมใหม่ ที่ให้คุณหยุดชั่วคราวหรือดาวน์โหลดต่อได้
เลิกใช้งาน Win32 แล้ว
Android Studio เวอร์ชัน 32 บิตสำหรับ Windows จะไม่ได้รับการอัปเดตอีกต่อไป หลังจากเดือนธันวาคม 2019 และจะไม่ได้รับการสนับสนุนอีกต่อไปหลังจากเดือนธันวาคม 2020 คุณจะยังใช้ Android Studio ต่อไปได้ อย่างไรก็ตาม หากต้องการรับการอัปเดตเพิ่มเติม โปรดอัปเกรดเวิร์กสเตชันเป็น Windows เวอร์ชัน 64 บิต
ดูข้อมูลเพิ่มเติมได้ที่บล็อกเกี่ยวกับการเลิกใช้งาน Windows 32 บิต
ตัวเลือกใหม่สำหรับการเพิ่มประสิทธิภาพเวลาในการซิงค์ Gradle
ในรุ่นก่อนหน้า Android Studio จะดึงรายการงาน Gradle ทั้งหมด ระหว่างการซิงค์ Gradle สำหรับโปรเจ็กต์ขนาดใหญ่ การดึงข้อมูลรายการงานอาจทำให้ เวลาในการซิงค์ช้าลง
หากต้องการปรับปรุงประสิทธิภาพการซิงค์ Gradle ให้ไปที่ไฟล์ > การตั้งค่า > ทดลอง แล้วเลือก "อย่าสร้างรายการงาน Gradle ระหว่างการซิงค์ Gradle"
เมื่อเปิดใช้ตัวเลือกนี้ Android Studio จะข้ามการสร้างรายการงานระหว่างการซิงค์ ซึ่งจะช่วยให้การซิงค์ Gradle เสร็จสมบูรณ์ได้เร็วขึ้นและปรับปรุงการตอบสนองของ 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 Daemon และ Kotlin Daemon คุณสามารถยอมรับการตั้งค่าที่แนะนำได้โดยคลิกลิงก์การดำเนินการในการแจ้งเตือน หรือจะปรับการตั้งค่าเหล่านี้ด้วยตนเองโดยเลือกไฟล์ > การตั้งค่า (หรือ Android Studio > ค่ากำหนด ใน macOS) จากนั้นค้นหาส่วนการตั้งค่าหน่วยความจำในลักษณะที่ปรากฏและลักษณะการทำงาน > การตั้งค่าระบบ ดูข้อมูลเพิ่มเติมได้ที่ขนาดฮีปสูงสุด
การแจ้งเตือนเกี่ยวกับการตั้งค่าหน่วยความจำที่แนะนำ
รายงานการใช้หน่วยความจำ
บางครั้งปัญหาเกี่ยวกับหน่วยความจำใน Android Studio ก็จำลองและรายงานได้ยาก Android Studio ช่วยให้คุณสร้างรายงานการใช้หน่วยความจำได้โดยคลิกความช่วยเหลือ > วิเคราะห์การใช้หน่วยความจำจากแถบเมนู เมื่อคุณทำเช่นนั้น IDE จะปรับแต่งข้อมูลในเครื่องเพื่อปกปิดข้อมูลส่วนบุคคลก่อน ถามว่าคุณต้องการส่งข้อมูลดังกล่าวให้ทีม Android Studio เพื่อช่วยระบุ แหล่งที่มาของปัญหาเกี่ยวกับหน่วยความจำหรือไม่ ดูข้อมูลเพิ่มเติมได้ที่เรียกใช้รายงานการใช้หน่วยความจำ
รายงานการใช้งานหน่วยความจำ
Windows: การเพิ่มประสิทธิภาพ I/O ของไฟล์ป้องกันไวรัส
ตอนนี้ Android Studio จะตรวจสอบโดยอัตโนมัติว่าไดเรกทอรีโปรเจ็กต์บางรายการ ได้รับการยกเว้นจากการสแกนไวรัสแบบเรียลไทม์หรือไม่ เมื่อมีการปรับเปลี่ยนเพื่อ ปรับปรุงประสิทธิภาพการสร้าง Android Studio จะแจ้งให้คุณทราบและแสดงวิธีการ เพิ่มประสิทธิภาพการกำหนดค่าโปรแกรมป้องกันไวรัส ดูข้อมูลเพิ่มเติมได้ที่ ลดผลกระทบของซอฟต์แวร์ป้องกันไวรัสต่อความเร็วในการบิลด์
Project Marble: การปรับปรุงฟีเจอร์
ส่วนนี้จะอธิบายการเปลี่ยนแปลงใน Android Studio 3.5 ที่มุ่งเน้นการ ปรับปรุงฟีเจอร์ที่มีอยู่
ใช้การเปลี่ยนแปลง
ใช้การเปลี่ยนแปลงช่วยให้คุณพุชการเปลี่ยนแปลงโค้ดและทรัพยากรไปยังแอปที่กําลังทํางานได้ โดยไม่ต้องรีสตาร์ทแอป และในบางกรณีก็ไม่ต้องรีสตาร์ทกิจกรรมปัจจุบันด้วย ใช้การเปลี่ยนแปลงจะใช้แนวทางใหม่ทั้งหมดในการรักษา สถานะของแอป ฟีเจอร์ใช้การเปลี่ยนแปลงจะกำหนดคลาสใหม่ได้ทันทีโดยใช้ประโยชน์จากการตรวจสอบรันไทม์ที่รองรับใน Android 8.0 (API ระดับ 26) ขึ้นไป ซึ่งแตกต่างจาก Instant Run ที่เขียนไบต์โค้ดของ APK ใหม่
ดูข้อมูลเพิ่มเติมได้ที่ใช้การเปลี่ยนแปลง
ปุ่มในแถบเครื่องมือสำหรับใช้การเปลี่ยนแปลง
ขั้นตอนการติดตั้งใช้งานแอป
IDE มีเมนูแบบเลื่อนลงใหม่ที่ช่วยให้คุณเลือกอุปกรณ์ที่ต้องการ นําแอปไปใช้งานได้อย่างรวดเร็ว เมนูนี้ยังมีตัวเลือกใหม่ที่ให้คุณ เรียกใช้แอปในอุปกรณ์หลายเครื่องพร้อมกันได้ด้วย
เมนูแบบเลื่อนลงของอุปกรณ์เป้าหมาย
ปรับปรุงการซิงค์ Gradle และการตรวจหาแคช
ตอนนี้ IDE จะตรวจหาได้ดีขึ้นเมื่อ Gradle ล้างแคชการสร้างเป็นระยะๆ เมื่อ ลดการใช้ฮาร์ดดิสก์ ในเวอร์ชันก่อนหน้า สถานะนี้ทำให้ IDE รายงานการขึ้นต่อกันที่ขาดหายไปและทำให้การซิงค์ Gradle ไม่สำเร็จ ตอนนี้ IDE จะดาวน์โหลดทรัพยากร Dependency ตามที่จำเป็นเพื่อให้การซิงค์ Gradle เสร็จสมบูรณ์ เรียบร้อยแล้ว
ปรับปรุงเอาต์พุตข้อผิดพลาดในการสร้าง
ตอนนี้หน้าต่างสร้าง
มีการรายงานข้อผิดพลาดที่ดีขึ้น เช่น ลิงก์ไปยังไฟล์และบรรทัด
ของข้อผิดพลาดที่รายงาน สำหรับกระบวนการบิลด์ต่อไปนี้
- การคอมไพล์และการลิงก์ AAPT
- R8 และ ProGuard
- Dexing
- การผสานทรัพยากร
- การแยกวิเคราะห์ไฟล์ XML
- การคอมไพล์ Javac, Kotlinc และ CMake
การอัปเกรดโปรเจ็กต์
ปรับปรุงประสบการณ์การอัปเดตเพื่อให้ข้อมูลและการดำเนินการเพิ่มเติมเพื่อช่วยคุณ อัปเดต IDE และปลั๊กอิน Android Gradle เช่น ข้อผิดพลาดในการซิงค์และสร้างเพิ่มเติม รวมถึงการดำเนินการที่จะช่วยลดข้อผิดพลาดเมื่ออัปเดต
โปรดทราบว่าคุณสามารถอัปเดต IDE แยกจากคอมโพเนนต์อื่นๆ เช่น ปลั๊กอิน Android Gradle ได้ ดังนั้น คุณจึงอัปเดต IDE ได้อย่างปลอดภัย ทันทีที่เวอร์ชันใหม่กว่าพร้อมใช้งาน และอัปเดตคอมโพเนนต์อื่นๆ ในภายหลัง
เครื่องมือสร้างเลย์เอาต์
Android Studio 3.5 มีการปรับปรุงการแสดงภาพเลย์เอาต์ การจัดการ และการโต้ตอบหลายอย่าง
เมื่อทำงานกับ ConstraintLayout
ส่วนข้อจำกัดใหม่ในแผงแอตทริบิวต์จะแสดงความสัมพันธ์ของข้อจำกัดของ
คอมโพเนนต์ UI ที่เลือก คุณเลือกข้อจำกัดได้จากทั้งพื้นผิวการออกแบบ
หรือจากรายการข้อจำกัดเพื่อไฮไลต์ข้อจำกัดในทั้ง 2 พื้นที่
ความสัมพันธ์ของข้อจำกัดสำหรับองค์ประกอบ UI ที่เลือก
ในทำนองเดียวกัน ตอนนี้คุณสามารถลบข้อจำกัดได้โดยเลือกข้อจำกัดแล้วกดปุ่ม
Delete
นอกจากนี้ คุณยังลบข้อจำกัดได้โดยกดปุ่ม
Control
(Command
ใน macOS) ค้างไว้ แล้วคลิกที่จุดยึดของ
ข้อจำกัด โปรดทราบว่าเมื่อกดปุ่ม Control
หรือ
Command
ค้างไว้และวางเมาส์เหนือจุดยึด ข้อจำกัดที่เกี่ยวข้อง
จะเปลี่ยนเป็นสีแดงเพื่อระบุว่าคุณคลิกเพื่อลบได้
เมื่อเลือกมุมมองแล้ว คุณจะสร้างข้อจํากัดได้โดยคลิกไอคอน + ในส่วนวิดเจ็ตข้อจํากัดของแผงแอตทริบิวต์ ดังที่แสดงในรูปภาพต่อไปนี้ เมื่อสร้างข้อจำกัดใหม่ ตอนนี้ Layout Editor จะเลือกและไฮไลต์ข้อจำกัด ซึ่งจะให้ความคิดเห็นด้านภาพ ทันทีสำหรับสิ่งที่คุณเพิ่งเพิ่ม
การใช้วิดเจ็ตข้อจำกัดเพื่อสร้างข้อจำกัด
เมื่อสร้างข้อจำกัด ตอนนี้ Layout Editor จะแสดงเฉพาะจุดยึดที่มีสิทธิ์ ซึ่งคุณสามารถจำกัดได้ ก่อนหน้านี้ Layout Editor จะไฮไลต์จุดยึดทั้งหมด ในทุกมุมมอง ไม่ว่าคุณจะจำกัดจุดยึดเหล่านั้นได้หรือไม่ก็ตาม นอกจากนี้ ตอนนี้การวางซ้อนสีน้ำเงินจะไฮไลต์เป้าหมายของข้อจํากัด การไฮไลต์นี้มีประโยชน์อย่างยิ่งเมื่อพยายามจำกัดให้เหลือเฉพาะคอมโพเนนต์ที่ซ้อนทับกับคอมโพเนนต์อื่น
การสร้างข้อจำกัดสำหรับคอมโพเนนต์ที่ซ้อนทับกันใน Android Studio 3.4
การสร้างข้อจำกัดสำหรับคอมโพเนนต์ที่ซ้อนทับกันใน Android Studio 3.5
นอกจากข้อมูลอัปเดตข้างต้นแล้ว Android Studio 3.5 ยังมีการปรับปรุง Layout Editor ดังต่อไปนี้ด้วย
- ตอนนี้วิดเจ็ตข้อจำกัดและเมนูแบบเลื่อนลงของระยะขอบเริ่มต้น อนุญาตให้คุณใช้ทรัพยากรมิติข้อมูลสำหรับระยะขอบได้แล้ว
- ในแถบเครื่องมือของเครื่องมือแก้ไขเลย์เอาต์ เราได้อัปเดตรายการอุปกรณ์ที่กำหนดขนาดของ พื้นผิวการออกแบบแล้ว นอกจากนี้ เรายังปรับปรุงลักษณะการทำงานของการสแนปขณะ ปรับขนาด และตอนนี้แฮนเดิลปรับขนาดในพื้นที่ออกแบบจะ แสดงอยู่เสมอ เมื่อปรับขนาด ภาพซ้อนทับใหม่จะปรากฏขึ้นเพื่อแสดงขนาดอุปกรณ์ทั่วไป
- Layout Editor มีรูปแบบสีใหม่ที่ช่วยปรับปรุงความสอดคล้องและลด คอนทราสต์ระหว่างคอมโพเนนต์ ข้อความ และข้อจำกัด
- ตอนนี้โหมดพิมพ์เขียวรองรับข้อความสำหรับคอมโพเนนต์บางอย่างที่ไม่ได้แสดงข้อความ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่ Project Marble ของ Android Studio: Layout Editor
การเชื่อมโยงข้อมูล
นอกเหนือจากการเพิ่มการรองรับการประมวลผลคำอธิบายประกอบแบบเพิ่มทีละรายการ สำหรับการเชื่อมโยงข้อมูลแล้ว IDE ยังปรับปรุงฟีเจอร์และประสิทธิภาพของเครื่องมือแก้ไขอัจฉริยะ เมื่อสร้างนิพจน์การเชื่อมโยงข้อมูลใน XML
ประสิทธิภาพของโปรแกรมแก้ไขโค้ดใน Android Studio 3.4

ปรับปรุงประสิทธิภาพการแก้ไขโค้ดใน Android Studio 3.5
ปรับปรุงการรองรับโปรเจ็กต์ C/C++
Android Studio 3.5 มีการเปลี่ยนแปลงหลายอย่างที่ช่วยปรับปรุงการรองรับโปรเจ็กต์ C/C++
การปรับปรุงแผงตัวแปรของบิลด์สำหรับการซิงค์ตัวแปรเดียว
ตอนนี้คุณระบุทั้งตัวแปรบิลด์ที่ใช้งานอยู่และ ABI ที่ใช้งานอยู่ได้ในแผงตัวแปรบิลด์ ฟีเจอร์นี้ช่วยลดความซับซ้อนในการกำหนดค่าบิลด์ต่อโมดูล และยังช่วยปรับปรุงประสิทธิภาพการซิงค์ Gradle ได้ด้วย
ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนตัวแปรบิลด์
แผงสร้างรูปแบบที่มีการเลือกรูปแบบเดียวตาม ABI
NDK เวอร์ชันที่ติดตั้งควบคู่กัน
ตอนนี้คุณใช้ NDK หลายเวอร์ชันควบคู่กันได้แล้ว ฟีเจอร์นี้ช่วยให้คุณมีความยืดหยุ่นมากขึ้นเมื่อกำหนดค่าโปรเจ็กต์ เช่น หากคุณมีโปรเจ็กต์ที่ใช้ NDK เวอร์ชันต่างๆ ในเครื่องเดียวกัน
หากโปรเจ็กต์ใช้ปลั๊กอิน Android Gradle 3.5.0 ขึ้นไป คุณยังระบุเวอร์ชันของ NDK ที่แต่ละโมดูลในโปรเจ็กต์ควรใช้ได้ด้วย คุณใช้ฟีเจอร์นี้เพื่อสร้างบิลด์ที่ทำซ้ำได้และเพื่อลดปัญหาความไม่เข้ากัน ระหว่าง NDK เวอร์ชันต่างๆ กับปลั๊กอิน Android Gradle ได้
ดูข้อมูลเพิ่มเติมได้ที่ติดตั้งและกำหนดค่า NDK, CMake และ LLDB
การสนับสนุน ChromeOS
ตอนนี้ Android Studio รองรับอุปกรณ์ ChromeOS อย่างเป็นทางการแล้ว เช่น HP Chromebook x360 14, Acer Chromebook 13/Spin 13 และอื่นๆ ที่คุณอ่านได้ ในข้อกำหนดของระบบ หากต้องการเริ่มต้นใช้งาน ให้ดาวน์โหลด Android Studio ในอุปกรณ์ ChromeOS ที่รองรับ แล้วทำตามวิธีการติดตั้ง
หมายเหตุ: ขณะนี้ Android Studio ใน ChromeOS รองรับการติดตั้งใช้งานแอปกับ อุปกรณ์ฮาร์ดแวร์ที่เชื่อมต่อเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ เรียกใช้แอปในอุปกรณ์ ฮาร์ดแวร์
การนำส่งตามเงื่อนไขสำหรับโมดูลฟีเจอร์
การนำส่งแบบมีเงื่อนไขช่วยให้คุณตั้งข้อกำหนดการกำหนดค่าอุปกรณ์บางอย่าง เพื่อให้ระบบดาวน์โหลดโมดูลฟีเจอร์โดยอัตโนมัติระหว่างการติดตั้งแอปได้ เช่น คุณสามารถกำหนดค่าโมดูลฟีเจอร์ที่มีฟังก์ชันการทำงานสำหรับเทคโนโลยีความจริงเสริม (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 ช่วยให้คุณสร้างและจัดการตัวแปรบิลด์ ได้ เช่น ตัวแปรที่ใช้เพื่อรักษารุ่นของทรัพยากร Dependency ให้สอดคล้องกัน ในโปรเจ็กต์
- ดูและแก้ไขตัวแปรบิลด์ที่มีอยู่ในสคริปต์บิลด์ Gradle ของโปรเจ็กต์อย่างรวดเร็ว
- เพิ่มตัวแปรบิลด์ใหม่ที่ระดับโปรเจ็กต์หรือโมดูลโดยตรงจาก PSD
หมายเหตุ: หากไฟล์การกำหนดค่าบิลด์ที่มีอยู่กำหนดค่า ผ่านสคริปต์ Groovy ที่ซับซ้อน คุณอาจแก้ไขค่าเหล่านั้น ผ่าน PSD ไม่ได้ นอกจากนี้ คุณยังแก้ไขไฟล์บิลด์ที่เขียนด้วย Kotlin โดยใช้ PSD ไม่ได้
โมดูล
กำหนดค่าพร็อพเพอร์ตี้ที่จะใช้กับตัวแปรบิลด์ทั้งหมดในโมดูลที่มีอยู่
หรือเพิ่มโมดูลใหม่ลงในโปรเจ็กต์จากส่วนโมดูล ตัวอย่างเช่น คุณสามารถกําหนดค่าพร็อพเพอร์ตี้ defaultConfig
หรือจัดการการกําหนดค่าการลงนามได้ที่นี่
การขึ้นต่อกัน
ตรวจสอบและแสดงภาพการขึ้นต่อกันแต่ละรายการในกราฟการขึ้นต่อกันของโปรเจ็กต์ตามที่ Gradle แก้ไขระหว่างการซิงค์โปรเจ็กต์โดยทำตามขั้นตอนต่อไปนี้
- เลือกการขึ้นต่อกันในแผงด้านซ้ายของ PSD
- ในบานหน้าต่างโมดูล ให้เลือกโมดูลที่ต้องการตรวจสอบ การอ้างอิงที่แก้ไขแล้ว
- ทางด้านขวาของ PSD ให้เปิดแผงการอ้างอิงที่แก้ไขแล้ว ซึ่ง แสดงอยู่ด้านล่าง
นอกจากนี้ คุณยังค้นหาและเพิ่มการอ้างอิงลงในโปรเจ็กต์ได้อย่างรวดเร็วโดยเริ่มจาก การเลือกโมดูลจากส่วนการอ้างอิงของ PSD คลิกปุ่ม (+) ในส่วนการอ้างอิงที่ประกาศ แล้วเลือกประเภท ของการอ้างอิงที่ต้องการเพิ่ม
คุณควรเห็นกล่องโต้ตอบที่คล้ายกับกล่องโต้ตอบด้านล่าง ซึ่งจะช่วยให้คุณเพิ่มการอ้างอิงลงในโมดูลได้ ทั้งนี้ขึ้นอยู่กับประเภทการอ้างอิงที่คุณเลือก
ตัวแปรบิลด์
ในส่วนนี้ของ PSD ให้สร้างและกำหนดค่าตัวแปรบิลด์และรสชาติผลิตภัณฑ์ สำหรับแต่ละโมดูลในโปรเจ็กต์ คุณสามารถเพิ่มตัวยึดตำแหน่งของไฟล์ Manifest, เพิ่มไฟล์ ProGuard และกำหนดคีย์การลงนาม และอื่นๆ
คำแนะนำ
ดูการอัปเดตที่แนะนำสำหรับทรัพยากร Dependency ของโปรเจ็กต์และตัวแปรบิลด์ในส่วนคำแนะนำตามที่แสดงด้านล่าง
Resource Manager ใหม่
Resource Manager เป็นหน้าต่างเครื่องมือใหม่สำหรับการนำเข้า สร้าง จัดการ และ ใช้ทรัพยากรในแอป คุณสามารถเปิดหน้าต่างเครื่องมือได้โดยเลือกดู > หน้าต่างเครื่องมือ > Resource Manager จากแถบเมนู Resource Manager ช่วยให้คุณทำสิ่งต่อไปนี้ได้
- แสดงภาพทรัพยากร: คุณสามารถดูตัวอย่าง Drawable, สี และเลย์เอาต์เพื่อ ค้นหาทรัพยากรที่ต้องการได้อย่างรวดเร็ว
- การนำเข้าหลายรายการพร้อมกัน: คุณสามารถนำเข้าชิ้นงาน Drawable หลายรายการพร้อมกันได้โดย ลากและวางลงในหน้าต่างเครื่องมือตัวจัดการทรัพยากร หรือ ใช้ตัวช่วยสร้างนำเข้า Drawable หากต้องการเข้าถึงวิซาร์ด ให้เลือกปุ่ม (+) ที่มุมซ้ายบนของหน้าต่างเครื่องมือ แล้วเลือกนำเข้า Drawable จากเมนูแบบเลื่อนลง
-
แปลง SVG เป็นออบเจ็กต์
VectorDrawable
: คุณสามารถใช้ตัวช่วยสร้าง นำเข้า Drawable เพื่อแปลงรูปภาพ SVG เป็นออบเจ็กต์VectorDrawable
ได้ - ลากและวางชิ้นงาน: จากหน้าต่างเครื่องมือเครื่องมือจัดการทรัพยากร คุณสามารถ ลากและวาง Drawable ลงในทั้งมุมมองการออกแบบและมุมมอง XML ของเครื่องมือแก้ไขเลย์เอาต์
- ดูเวอร์ชันอื่น: ตอนนี้คุณสามารถดูเวอร์ชันอื่นของ ทรัพยากรได้โดยดับเบิลคลิกทรัพยากรภายในหน้าต่างเครื่องมือ มุมมองนี้ แสดงเวอร์ชันต่างๆ ที่คุณสร้างขึ้นและตัวระบุที่รวมอยู่
- มุมมองแบบไทล์และแบบรายการ: คุณเปลี่ยนมุมมองภายในหน้าต่างเครื่องมือเพื่อ แสดงภาพทรัพยากรในรูปแบบต่างๆ ได้
ดูข้อมูลเพิ่มเติมได้ในคำแนะนำเกี่ยวกับวิธี จัดการทรัพยากรของแอป
ตรวจสอบรหัสบิลด์เมื่อทำโปรไฟล์และแก้ไขข้อบกพร่องของ APK
เมื่อคุณระบุไฟล์สัญลักษณ์การแก้ไขข้อบกพร่องสำหรับ.so
ไลบรารีที่ใช้ร่วมกันภายใน
APK ของคุณ Android Studio จะตรวจสอบว่ารหัสบิลด์ของไฟล์สัญลักษณ์ที่ระบุตรงกับรหัสบิลด์ของ.so
ไลบรารีภายใน APK หรือไม่
หากคุณสร้างไลบรารีที่มาพร้อมเครื่องใน APK ด้วยรหัสบิลด์ Android Studio จะตรวจสอบว่ารหัสบิลด์ในไฟล์สัญลักษณ์ตรงกับรหัสบิลด์ใน ไลบรารีที่มาพร้อมเครื่องหรือไม่ และจะปฏิเสธไฟล์สัญลักษณ์หากไม่ตรงกัน หากคุณไม่ได้สร้างด้วย Build ID การระบุไฟล์สัญลักษณ์ที่ไม่ถูกต้องอาจ ทำให้เกิดปัญหาในการแก้ไขข้อบกพร่อง
เปิดใช้ R8 โดยค่าเริ่มต้น
R8 ผสานรวมการยกเลิกการน้ำตาล การลดขนาด การปกปิดโค้ด การเพิ่มประสิทธิภาพ และการแปลงเป็น DEX ทั้งหมดในขั้นตอนเดียว ซึ่งส่งผลให้ประสิทธิภาพการบิลด์ดีขึ้นอย่างเห็นได้ชัด R8 เปิดตัวในปลั๊กอิน Android Gradle 3.3.0 และ ตอนนี้เปิดใช้โดยค่าเริ่มต้นสำหรับทั้งแอปและโปรเจ็กต์ไลบรารี Android ที่ใช้ ปลั๊กอิน 3.4.0 ขึ้นไป
รูปภาพด้านล่างแสดงภาพรวมระดับสูงของกระบวนการคอมไพล์ ก่อนที่จะมีการเปิดตัว R8
ตอนนี้ R8 จะดำเนินการ Desugaring, Shrinking, Obfuscating, การเพิ่มประสิทธิภาพ และ Dexing (D8) ทั้งหมดในขั้นตอนเดียว ดังที่แสดงด้านล่าง
โปรดทราบว่า R8 ออกแบบมาให้ทำงานร่วมกับกฎ ProGuard ที่มีอยู่แล้ว ดังนั้น คุณจึงไม่น่าจะต้องดำเนินการใดๆ เพื่อรับประโยชน์จาก R8 อย่างไรก็ตาม เนื่องจากเป็นเทคโนโลยีที่แตกต่างจาก ProGuard ซึ่งออกแบบมาสำหรับโปรเจ็กต์ Android โดยเฉพาะ การลดขนาดและการเพิ่มประสิทธิภาพจึงอาจส่งผลให้มีการนำโค้ดที่ ProGuard อาจไม่ได้นำออก ดังนั้น ในกรณีที่ไม่น่าจะเกิดขึ้นนี้ คุณอาจต้อง เพิ่มกฎเพิ่มเติมเพื่อให้โค้ดนั้นอยู่ในเอาต์พุตบิลด์
หากพบปัญหาในการใช้ R8 โปรดอ่านคำถามที่พบบ่อยเกี่ยวกับความเข้ากันได้ของ R8
เพื่อดูว่ามีวิธีแก้ปัญหาของคุณหรือไม่ หากไม่มีการบันทึกโซลูชัน
โปรดรายงานข้อบกพร่อง
คุณปิดใช้ R8 ได้โดยเพิ่มบรรทัดใดบรรทัดหนึ่งต่อไปนี้ลงใน
ไฟล์ gradle.properties
ของโปรเจ็กต์
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
หมายเหตุ: สำหรับประเภทบิลด์ที่กำหนด หากคุณตั้งค่า
useProguard
เป็น false
ในไฟล์ build.gradle
ของโมดูลแอป
ปลั๊กอิน Android Gradle จะใช้ R8 เพื่อลดขนาดโค้ดของแอป
สำหรับประเภทบิลด์นั้น ไม่ว่าคุณจะปิดใช้ R8 ในไฟล์ gradle.properties
ของโปรเจ็กต์หรือไม่ก็ตาม
ตอนนี้ Navigation Editor รองรับอาร์กิวเมนต์ทุกประเภทแล้ว
ตอนนี้ Navigation Editor รองรับอาร์กิวเมนต์ทุกประเภทที่คอมโพเนนต์การนำทางรองรับแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่รองรับได้ที่ ส่งข้อมูลระหว่างปลายทาง
การปรับปรุงเครื่องมือสร้างเลย์เอาต์ {:#layout-editor}
เราได้ปรับปรุงบานหน้าต่างแอตทริบิวต์ในเครื่องมือแก้ไขเลย์เอาต์ให้เป็นหน้าเดียว ที่มีส่วนต่างๆ ซึ่งคุณขยายเพื่อดูแอตทริบิวต์ที่กำหนดค่าได้ แผงแอตทริบิวต์ยังมีการอัปเดตต่อไปนี้ด้วย
- ส่วนแอตทริบิวต์ที่ประกาศใหม่จะแสดงแอตทริบิวต์ที่ไฟล์เลย์เอาต์ ระบุและช่วยให้คุณเพิ่มแอตทริบิวต์ใหม่ได้อย่างรวดเร็ว
- ตอนนี้บานหน้าต่างแอตทริบิวต์ยังมีตัวบ่งชี้ข้างแอตทริบิวต์แต่ละรายการ ซึ่งจะเป็นสีทึบเมื่อค่าของแอตทริบิวต์เป็นการอ้างอิงทรัพยากร และว่าง ในกรณีอื่นๆ
- ตอนนี้เราจะไฮไลต์แอตทริบิวต์ที่มีข้อผิดพลาดหรือคำเตือนแล้ว ไฮไลต์สีแดง แสดงข้อผิดพลาด (เช่น เมื่อคุณใช้ค่าเลย์เอาต์ที่ไม่ถูกต้อง) และ ไฮไลต์สีส้มแสดงคำเตือน (เช่น เมื่อคุณใช้ค่าที่ฮาร์ดโค้ด ไว้)
การดำเนินการตามความตั้งใจใหม่เพื่อนำเข้าการอ้างอิงอย่างรวดเร็ว
หากเริ่มใช้คลาส 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
เมื่อเรียกใช้จาก Gradle, Lint จะเร็วกว่ามาก โปรเจ็กต์ขนาดใหญ่จะคาดหวังได้ว่า Lint จะทำงานได้เร็วกว่าเดิมถึง 4 เท่า
วิซาร์ดสร้างโปรเจ็กต์ใหม่
วิซาร์ดสร้างโปรเจ็กต์ใหม่มีรูปลักษณ์ใหม่และมีการอัปเดตที่จะช่วย ปรับปรุงการสร้างโปรเจ็กต์ Android Studio ใหม่
ดูข้อมูลเพิ่มเติมได้ที่สร้างโปรเจ็กต์
การอัปเดต Profiler
Android Studio 3.3 มีการอัปเดต Profiler แต่ละรายการหลายรายการ
ประสิทธิภาพเพิ่มขึ้น
เราได้ปรับปรุงประสิทธิภาพการแสดงผลขณะใช้โปรไฟล์เลอร์อย่างมากตามความคิดเห็นของผู้ใช้ โปรดส่งความคิดเห็นต่อไป โดยเฉพาะหากยังพบปัญหาด้านประสิทธิภาพ
ตัวเลือกการติดตามการจัดสรรหน่วยความจำของ Profiler
ตอนนี้ Memory Profiler จะสุ่มตัวอย่างการจัดสรรหน่วยความจำเป็นระยะๆ โดยค่าเริ่มต้นเพื่อปรับปรุงประสิทธิภาพของแอปขณะทำการโปรไฟล์ หากต้องการ คุณสามารถเปลี่ยนลักษณะการทำงานนี้ได้โดยใช้เมนูแบบเลื่อนลงการติดตามการจัดสรรเมื่อทดสอบในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป
คุณเลือกโหมดต่อไปนี้ได้โดยใช้เมนูแบบเลื่อนลงการติดตามการจัดสรร
-
เต็ม: บันทึกการจัดสรรหน่วยความจำของออบเจ็กต์ทั้งหมด โปรดทราบว่าหากคุณมีแอปที่จัดสรรออบเจ็กต์จำนวนมาก คุณอาจเห็นปัญหาด้านประสิทธิภาพที่สำคัญขณะทำการโปรไฟล์
-
สุ่มตัวอย่าง: บันทึกตัวอย่างการจัดสรรหน่วยความจำของออบเจ็กต์เป็นระยะ ซึ่งเป็นลักษณะการทำงานเริ่มต้นและส่งผลต่อประสิทธิภาพของแอปน้อยลงขณะทำการโปรไฟล์ คุณอาจพบปัญหาด้านประสิทธิภาพบางอย่างกับแอปที่จัดสรรออบเจ็กต์จำนวนมากภายในระยะเวลาอันสั้น
-
ปิด: ปิดการจัดสรรหน่วยความจำ หากยังไม่ได้เลือก โหมดนี้จะเปิดใช้โดยอัตโนมัติขณะบันทึก CPU แล้วกลับไปใช้การตั้งค่าก่อนหน้าเมื่อบันทึกเสร็จ คุณเปลี่ยนลักษณะการทำงานนี้ได้ ในกล่องโต้ตอบการกำหนดค่าการบันทึก CPU
การติดตามจะส่งผลต่อทั้งออบเจ็กต์ Java และการอ้างอิง JNI
ตรวจสอบข้อมูลการแสดงผลเฟรม
ใน CPU Profiler ตอนนี้คุณสามารถตรวจสอบระยะเวลาที่แอป Java ใช้ในการแสดงผลแต่ละเฟรมในเทรด UI หลักและ RenderThread ได้แล้ว ข้อมูลนี้อาจมีประโยชน์เมื่อตรวจสอบคอขวดที่ ทำให้ UI กระตุกและมีอัตราเฟรมต่ำ ตัวอย่างเช่น เฟรมแต่ละเฟรมที่ใช้เวลานานกว่า 16 มิลลิวินาทีที่จำเป็นต่อการรักษาอัตราเฟรมที่ราบรื่นจะแสดงเป็นสีแดง
หากต้องการดูข้อมูลการแสดงผลเฟรม ให้บันทึกการติดตาม โดยใช้การกำหนดค่าที่ช่วยให้คุณติดตามการเรียกใช้ระบบได้ หลังจากบันทึก การติดตามแล้ว ให้มองหาข้อมูลเกี่ยวกับแต่ละเฟรมตามไทม์ไลน์ของการบันทึก ในส่วนที่ชื่อว่า FRAMES ดังที่แสดงด้านล่าง
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบและแก้ไขปัญหาอัตราเฟรม โปรดอ่านการแสดงผลช้า
ส่วนในไทม์ไลน์ของเหตุการณ์
ตอนนี้ไทม์ไลน์เหตุการณ์จะแสดงเมื่อมีการแนบและยกเลิกการแนบ Fragment นอกจากนี้ เมื่อวางเมาส์เหนือส่วนย่อย เคล็ดลับเครื่องมือจะแสดงสถานะของส่วนย่อย
ดูข้อความที่จัดรูปแบบสำหรับเพย์โหลดการเชื่อมต่อในโปรไฟล์เครือข่าย
ก่อนหน้านี้ โปรแกรมสร้างโปรไฟล์เครือข่ายจะแสดงเฉพาะข้อความดิบจากเพย์โหลดการเชื่อมต่อ ตอนนี้ Android Studio 3.3 จะจัดรูปแบบข้อความบางประเภทโดยค่าเริ่มต้น ซึ่งรวมถึง JSON, XML และ HTML ในแท็บคำตอบและคำขอ ให้คลิกลิงก์ดูที่แยกวิเคราะห์แล้วเพื่อแสดงข้อความที่จัดรูปแบบ และคลิกลิงก์ดูแหล่งที่มาเพื่อแสดงข้อความดิบ
ดูข้อมูลเพิ่มเติมได้ที่ ตรวจสอบการรับส่งข้อมูลเครือข่ายด้วย Network Profiler
การดาวน์โหลดคอมโพเนนต์ SDK โดยอัตโนมัติ
เมื่อโปรเจ็กต์ต้องการคอมโพเนนต์ SDK จากแพลตฟอร์ม SDK, NDK หรือ CMake ตอนนี้ Gradle จะพยายามดาวน์โหลดแพ็กเกจที่จำเป็นโดยอัตโนมัติตราบใดที่คุณ ยอมรับข้อตกลงใบอนุญาตที่เกี่ยวข้องก่อนหน้านี้โดยใช้ SDK Manager
ดูข้อมูลเพิ่มเติมได้ที่ ดาวน์โหลดแพ็กเกจที่ขาดหายไปโดยอัตโนมัติด้วย 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
ตอนนี้ SDK Manager มี CMake เวอร์ชัน 3.10.2 แล้ว โปรดทราบว่า 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 ใหม่โดยใช้กล่องโต้ตอบสร้างโปรเจ็กต์ใหม่ โปรดเลือกช่องข้าง กำหนดค่าโปรเจ็กต์ > โปรเจ็กต์นี้จะรองรับ Instant Apps จากนั้น Android Studio จะสร้างโปรเจ็กต์แอปใหม่ตามปกติ แต่จะรวมพร็อพเพอร์ตี้ต่อไปนี้ไว้ใน ไฟล์ Manifest เพื่อเพิ่มการรองรับ Instant App ลงในโมดูลพื้นฐานของแอป
<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 จะแจ้งให้คุณเปิดใช้การเพิ่มประสิทธิภาพนี้เมื่อซิงค์โปรเจ็กต์ ระบบจะเปิดใช้การเพิ่มประสิทธิภาพในโปรเจ็กต์ใหม่โดยค่าเริ่มต้นด้วย
หากต้องการเปิดใช้การเพิ่มประสิทธิภาพนี้ด้วยตนเอง ให้คลิก File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > 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>
บางครั้งทำให้ Layout Editor ขัดข้อง
ปัญหาที่ทราบในเวอร์ชัน 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"
ผู้ช่วย "มีอะไรใหม่"
ผู้ช่วยคนใหม่จะแจ้งให้คุณทราบเกี่ยวกับการเปลี่ยนแปลงล่าสุดใน Android Studio
ผู้ช่วยจะเปิดขึ้นเมื่อคุณเริ่ม Android Studio หลังจากการติดตั้งใหม่หรือ อัปเดต หากตรวจพบว่ามีข้อมูลใหม่ที่ต้องแสดง นอกจากนี้ คุณยังเปิด ผู้ช่วยได้โดยเลือกความช่วยเหลือ > มีอะไรใหม่ใน Android Studio
Android Jetpack
Android Jetpack ช่วยเร่งการพัฒนา Android ด้วยคอมโพเนนต์ เครื่องมือ และคำแนะนำที่ช่วยขจัดงานที่ต้องทำซ้ำๆ และช่วยให้คุณสร้างแอปคุณภาพสูงที่ทดสอบได้ง่ายและเร็วขึ้น Android Studio มีการอัปเดตต่อไปนี้ เพื่อรองรับ Jetpack ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Jetpack
เครื่องมือแก้ไขการนำทาง
Navigation Editor ใหม่ผสานรวมกับคอมโพเนนต์การนำทางของ Android Jetpack เพื่อให้มุมมองแบบกราฟิกสำหรับการสร้างโครงสร้างการนำทางของ แอปของคุณ Navigation Editor ช่วยลดความซับซ้อนในการออกแบบและการติดตั้งใช้งาน การนำทางระหว่างปลายทางในแอป
ใน 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 มีแฟล็กส่วนกลางต่อไปนี้ที่คุณตั้งค่าได้
ในไฟล์ gradle.properties
android.useAndroidX
: เมื่อตั้งค่าเป็นtrue
แฟล็กนี้ จะบ่งชี้ว่าคุณต้องการเริ่มใช้ AndroidX ตั้งแต่นี้เป็นต้นไป หากไม่มีแฟล็ก Android Studio จะทำงานเสมือนว่าตั้งค่าแฟล็กเป็นfalse
android.enableJetifier
: เมื่อตั้งค่าเป็นtrue
แฟล็กนี้จะระบุว่าคุณต้องการให้มีการรองรับเครื่องมือ (จากปลั๊กอิน Android Gradle) เพื่อแปลงไลบรารีของบุคคลที่สามที่มีอยู่โดยอัตโนมัติราวกับว่าไลบรารีเหล่านั้นเขียนขึ้นสำหรับ AndroidX หากไม่มีแฟล็ก Android Studio จะทำงานเสมือนว่า ตั้งค่าแฟล็กเป็นfalse
ระบบจะตั้งค่าทั้ง 2 แฟล็กเป็น true
เมื่อคุณใช้คำสั่ง
ย้ายข้อมูลไปยัง AndroidX
หากต้องการเริ่มใช้ไลบรารี AndroidX ทันทีและไม่จำเป็นต้อง
แปลงไลบรารีของบุคคลที่สามที่มีอยู่ คุณสามารถตั้งค่า
ฟีเจอร์แฟล็ก android.useAndroidX
เป็น true
และ
ฟีเจอร์แฟล็ก android.enableJetifier
เป็น false
Android App Bundle
Android App Bundle เป็นรูปแบบการอัปโหลดใหม่ที่มีโค้ดและทรัพยากรที่คอมไพล์แล้วทั้งหมดของแอป แต่จะเลื่อนการสร้างและการลงนาม APK ไปยัง Google Play Store
จากนั้นโมเดลการนำส่งแอปแบบใหม่ของ Google Play จะใช้ App Bundle เพื่อสร้างและนำส่ง APK ที่เพิ่มประสิทธิภาพสำหรับการกำหนดค่าอุปกรณ์ของผู้ใช้แต่ละราย เพื่อให้ผู้ใช้แต่ละรายดาวน์โหลดเฉพาะโค้ดและทรัพยากรที่จำเป็นในการเรียกใช้แอปของคุณเท่านั้น คุณจึงไม่ต้องสร้าง ทำ Signing และจัดการ APK หลายรายการอีกต่อไป และผู้ใช้จะได้รับการดาวน์โหลดที่มีขนาดเล็กลงและเพิ่มประสิทธิภาพมากขึ้น
นอกจากนี้ คุณยังเพิ่มโมดูลฟีเจอร์ลงในโปรเจ็กต์แอปและ รวมไว้ใน App Bundle ได้ด้วย จากนั้นผู้ใช้จะ ดาวน์โหลดและติดตั้งฟีเจอร์ของแอปได้ตามต้องการ
หากต้องการสร้างแพ็กเกจ ให้เลือกสร้าง > สร้างแพ็กเกจ/APK > สร้างแพ็กเกจ
ดูข้อมูลเพิ่มเติม รวมถึงวิธีการสร้างและวิเคราะห์ Android App Bundle ได้ที่ Android App Bundle
ข้อมูลตัวอย่างในเครื่องมือแก้ไขเลย์เอาต์
เลย์เอาต์ Android หลายรายการมีข้อมูลรันไทม์ที่อาจทำให้การแสดงภาพ
รูปลักษณ์และความรู้สึกของเลย์เอาต์ในระหว่างขั้นตอนการออกแบบของการพัฒนาแอปเป็นเรื่องยาก ตอนนี้คุณดูตัวอย่างมุมมองในเครื่องมือแก้ไขเลย์เอาต์ที่เติมข้อมูลตัวอย่างได้อย่างง่ายดายแล้ว เมื่อเพิ่มมุมมอง ปุ่ม
จะปรากฏใต้มุมมองในหน้าต่างการออกแบบ คลิกปุ่มนี้เพื่อตั้งค่า
แอตทริบิวต์มุมมองขณะออกแบบ คุณเลือกได้
จากเทมเพลตข้อมูลตัวอย่างที่หลากหลาย และระบุจำนวนรายการตัวอย่าง
ที่จะใช้เพื่อป้อนข้อมูลในมุมมอง
หากต้องการลองใช้ข้อมูลตัวอย่าง ให้เพิ่ม
RecyclerView
ลงในเลย์เอาต์ใหม่ คลิกปุ่มแอตทริบิวต์ขณะออกแบบ
ใต้มุมมอง แล้วเลือกจากภาพสไลด์ของเทมเพลตข้อมูลตัวอย่าง
Slice
Slice เป็นวิธีใหม่ในการฝังฟังก์ชันการทำงานบางส่วนของแอปใน อินเทอร์เฟซผู้ใช้อื่นๆ บน Android ตัวอย่างเช่น Slice ช่วยให้แสดงฟังก์ชันการทำงานและเนื้อหาของแอปในคำแนะนำของ Google Search ได้
Android Studio 3.2 มีเทมเพลตในตัวที่จะช่วยคุณขยายแอปด้วย Slice Provider API ใหม่ รวมถึงการตรวจสอบ Lint ใหม่เพื่อให้แน่ใจว่าคุณ ทำตามแนวทางปฏิบัติแนะนำเมื่อสร้าง Slice
หากต้องการเริ่มต้นใช้งาน ให้คลิกขวาที่โฟลเดอร์โปรเจ็กต์ แล้วเลือก ใหม่ > อื่นๆ > ผู้ให้บริการ Slice
ดูข้อมูลเพิ่มเติม รวมถึงวิธีทดสอบการโต้ตอบของ Slice ได้ที่คู่มือเริ่มต้นใช้งาน 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
เซสชัน
ตอนนี้คุณสามารถบันทึกข้อมูล Profiler เป็นเซสชันเพื่อกลับมาดูและตรวจสอบในภายหลังได้แล้ว Profiler จะเก็บข้อมูลเซสชันไว้จนกว่าคุณจะรีสตาร์ท IDE
เมื่อ บันทึกการติดตามเมธอดหรือ บันทึก Heap Dump IDE จะเพิ่มข้อมูลดังกล่าว (พร้อมกับกิจกรรมเครือข่ายของแอป) เป็นรายการแยกต่างหากในเซสชันปัจจุบัน และคุณสามารถสลับไปมาระหว่างการบันทึกเพื่อเปรียบเทียบข้อมูลได้อย่างง่ายดาย
การติดตามของระบบ
ใน CPU Profiler ให้เลือกการกำหนดค่าการติดตามระบบใหม่เพื่อตรวจสอบ CPU ของระบบและ
กิจกรรมของเธรดในอุปกรณ์ การกำหนดค่าการติดตามนี้สร้างขึ้นบน
systrace
และมีประโยชน์ในการตรวจสอบปัญหาในระดับระบบ เช่น UI ที่กระตุก
ขณะใช้การกำหนดค่าการติดตามนี้ คุณจะทำเครื่องหมายรูทีนโค้ดที่สำคัญในไทม์ไลน์ของโปรไฟล์เลอร์ได้ด้วยการเพิ่มเครื่องมือลงในโค้ด C/C++ ด้วย Native Tracing API หรือเพิ่มเครื่องมือลงในโค้ด Java ด้วยคลาส Trace
ตรวจสอบการอ้างอิง JNI ใน Memory Profiler
หากคุณติดตั้งใช้งานแอปในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป ตอนนี้คุณสามารถตรวจสอบการจัดสรรหน่วยความจำสำหรับโค้ด JNI ของแอปได้โดยใช้ Memory Profiler
ขณะที่แอปทำงานอยู่ ให้เลือกส่วนของไทม์ไลน์ที่ต้องการตรวจสอบ แล้วเลือกฮีป JNI จากเมนูแบบเลื่อนลงเหนือรายการคลาส ดังที่แสดงด้านล่าง จากนั้นคุณจะตรวจสอบออบเจ็กต์ในฮีปได้ตามปกติ และ ดับเบิลคลิกออบเจ็กต์ในแท็บสแต็กการเรียกการจัดสรรเพื่อดูว่ามีการจัดสรรและ ปล่อยการอ้างอิง JNI ในโค้ดของคุณที่ใด

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

หากต้องการเปิดใช้การตรวจสอบเหล่านี้สำหรับการสร้างบรรทัดคำสั่ง ให้เพิ่มข้อมูลต่อไปนี้ลงใน
build.gradle
android {
lintOptions {
check 'Interoperability'
}
}
การตรวจสอบ Lint สำหรับ Slice
การตรวจสอบ Lint ใหม่สำหรับ Slice จะช่วยให้มั่นใจว่าคุณสร้าง Slice ได้อย่างถูกต้อง เช่น การตรวจสอบ Lint จะเตือนคุณหากไม่ได้กำหนดการดำเนินการหลัก ให้กับ Slice
เป้าหมาย Gradle ใหม่
ใช้lintFix
งาน Gradle ใหม่เพื่อใช้การแก้ไขที่ปลอดภัย
ทั้งหมดที่การตรวจสอบ Lint แนะนำกับซอร์สโค้ดโดยตรง ตัวอย่างการตรวจสอบ Lint ที่แนะนำวิธีแก้ไขที่ปลอดภัยให้ใช้คือ SyntheticAccessor
การอัปเดตข้อมูลเมตา
ข้อมูลเมตาต่างๆ เช่น การตรวจสอบการแคสต์บริการ ได้รับการอัปเดตเพื่อให้การตรวจสอบ Lint ทำงานกับ Android 9 (API ระดับ 28) ได้
คำเตือนหากเรียกใช้ Lint ในตัวแปรใหม่
ตอนนี้ Lint จะบันทึกตัวแปรและเวอร์ชันที่ใช้บันทึกเกณฑ์พื้นฐาน และจะ เตือนคุณหากเรียกใช้ในตัวแปรอื่นที่ไม่ใช่ตัวแปรที่ใช้สร้างเกณฑ์พื้นฐาน
การปรับปรุงการตรวจสอบ Lint ที่มีอยู่
Android Studio 3.2 มีการปรับปรุงการตรวจสอบด้วยเครื่องมือวิเคราะห์ซอร์สโค้ดที่มีอยู่หลายอย่าง ตัวอย่างเช่น การตรวจสอบวงจรทรัพยากรจะใช้กับทรัพยากรประเภทอื่นๆ และเครื่องมือตรวจหาการแปลจะค้นหาคำแปลที่ขาดหายไปได้ทันทีในเอดิเตอร์
ทำให้ค้นหารหัสปัญหาได้ง่ายขึ้น
ตอนนี้รหัสปัญหาจะแสดงในที่ต่างๆ มากขึ้น รวมถึงในหน้าต่างผลการตรวจสอบ ซึ่งจะช่วยให้คุณค้นหาข้อมูลที่จำเป็นในการเปิดหรือปิดใช้การตรวจสอบที่เฉพาะเจาะจงผ่าน lintOptions
ใน build.gradle
ได้ง่ายขึ้น
ดูข้อมูลเพิ่มเติมได้ที่ กำหนดค่าตัวเลือก Lint ด้วย Gradle
การเชื่อมโยงข้อมูล V2
ตอนนี้ระบบได้เปิดใช้ Data Binding V2 โดยค่าเริ่มต้นแล้ว และใช้ร่วมกับ V1 ได้ ซึ่งหมายความว่า หากคุณมีทรัพยากร Dependency ของไลบรารีที่คอมไพล์ด้วย V1 คุณจะใช้ ทรัพยากรเหล่านั้นกับโปรเจ็กต์ที่ใช้ Data Binding V2 ได้ อย่างไรก็ตาม โปรดทราบว่าโปรเจ็กต์ที่ใช้ V1 จะใช้ทรัพยากร Dependency ที่คอมไพล์ด้วย V2 ไม่ได้
การแปลง D8
ใน Android Studio 3.1 เราได้ผสานรวมขั้นตอนการยกเลิกการเพิ่มน้ำตาลลงในเครื่องมือ D8 เป็น ฟีเจอร์ทดลอง ซึ่งช่วยลดเวลาในการสร้างโดยรวม ใน Android Studio 3.2 การยกเลิกการเพิ่มน้ำตาลด้วย 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 ทั่วไป นอกจากนี้ คุณยังไปยังไฟล์ได้โดยคลิกไฟล์ขณะกด ปุ่มควบคุม (Command ใน Mac)
- การจัดรูปแบบโค้ดใหม่: ตอนนี้คุณสามารถใช้ตัวเลือกการจัดรูปแบบโค้ดใหม่ของ IntelliJ เพื่อ ใช้รูปแบบโค้ดกับสคริปต์บิลด์ CMake ได้แล้ว
- การปรับโครงสร้างโค้ดอย่างปลอดภัย: เครื่องมือการปรับโครงสร้างโค้ดในตัวของ IDE จะตรวจสอบด้วยว่าคุณเปลี่ยนชื่อหรือลบไฟล์ที่อ้างอิงในสคริปต์บิลด์ CMake หรือไม่
ไปยังไฟล์ส่วนหัวภายนอก
เมื่อใช้หน้าต่างโปรเจ็กต์ใน Android Studio เวอร์ชันก่อนหน้า คุณจะ ไปยังส่วนหัวของไฟล์ที่อยู่ในไลบรารีที่คุณ สร้างจากโปรเจ็กต์ในเครื่องและตรวจสอบได้เท่านั้น ในรุ่นนี้ คุณยังดูและตรวจสอบ ไฟล์ส่วนหัวที่รวมอยู่ในการอ้างอิงไลบรารี C/C++ ภายนอกซึ่งคุณนำเข้า ลงในโปรเจ็กต์แอปได้ด้วย
หากคุณรวมโค้ดและไลบรารี C/C++ ไว้ในโปรเจ็กต์แล้ว ให้เปิดหน้าต่างโปรเจ็กต์ทางด้านซ้ายของ 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 จะแสดงวิธีการ ควบคุมในบริบท และ รายการอุปกรณ์ที่เชื่อมต่อในชุดหน้าเว็บในแผงผู้ช่วย
การปรับปรุงโปรแกรมจำลอง
ตอนนี้คุณสามารถบันทึกและโหลดสแนปชอตของ 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 ขัดข้องระหว่างการเปลี่ยน Fragment เมื่อใช้ Profiler
- ดีบักเกอร์ขัดข้องเมื่อดีบักเลย์เอาต์ที่มีกล่องข้อความ
- D8 อ่านไฟล์ ZIP บางไฟล์ที่มีอักขระพิเศษไม่ได้
3.1.3 (มิถุนายน 2018)
การอัปเดต Android Studio 3.1 นี้มีการแก้ไขข้อบกพร่องต่อไปนี้
- หน่วยความจำรั่วทำให้ Android Studio ทำงานช้าและไม่ตอบสนอง หลังจากที่คุณใช้ Layout Editor การอัปเดตนี้มีการแก้ไข ปัญหาเหล่านี้ส่วนใหญ่ เราตั้งใจที่จะเผยแพร่การอัปเดตอีกครั้งในเร็วๆ นี้เพื่อ แก้ไขปัญหาหน่วยความจำรั่วเพิ่มเติม
- แอปพลิเคชันบางอย่างที่สร้างด้วย D8 ขัดข้องในแท็บเล็ต Verizon Ellipsis บางรุ่น
-
การติดตั้งแอปพลิเคชันที่สร้างด้วย D8 ไม่สำเร็จเนื่องจากข้อผิดพลาด
INSTALL_FAILED_DEXOPT
ในอุปกรณ์ที่ใช้ Android 5.0 หรือ 5.1 (API ระดับ 21 หรือ 22) - แอปพลิเคชันบางอย่างที่ใช้ไลบรารี OkHttp และสร้างด้วย D8 เกิดข้อขัดข้องในอุปกรณ์ที่ใช้ Android 4.4 (API ระดับ 19)
-
บางครั้ง Android Studio เริ่มทำงานไม่สำเร็จ โดยมีข้อความ
ProcessCanceledException
ระหว่างการเริ่มต้นคลาสสำหรับcom.intellij.psi.jsp.JspElementType
3.1.2 (เมษายน 2018)
การอัปเดต Android Studio 3.1 นี้มีการแก้ไขข้อบกพร่องต่อไปนี้
- ในบางกรณี Android Studio จะค้างอย่างไม่มีกำหนดระหว่างการออก
-
บิลด์ที่กำหนดค่าด้วยชุดแหล่งที่มา ล้มเหลวพร้อมข้อความต่อไปนี้เมื่อเปิดใช้ Instant Run
"The SourceSet name is not recognized by the Android Gradle Plugin."
- เมื่อเปิดใช้ Instant Run การสร้างโปรเจ็กต์ Kotlin ใหม่จะล้มเหลวเมื่อ ทริกเกอร์โดยคำสั่งเรียกใช้
-
ในระหว่างการแก้ไขไฟล์
build.gradle
บางครั้งอาจเกิดความล่าช้าอย่างเห็นได้ชัดระหว่างการพิมพ์อักขระกับการปรากฏของอักขระบนหน้าจอ -
การสร้างล้มเหลวเกิดขึ้นระหว่างการแปลงเป็น DEX ในบางโปรเจ็กต์ที่มีโมดูลหรือการอ้างอิงภายนอกจำนวนมาก โดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- การคำนวณรายการ DEX หลักของ D8 ไม่ได้พิจารณาการเรียกแบบรีเฟลกชันบางรายการ
การอัปเดตนี้ยังรวมถึงการเปลี่ยนแปลงที่ทำให้การเรียกใช้การตรวจสอบ Lint จาก Gradle เร็วขึ้นมากในบางสถานการณ์
3.1.1 (เมษายน 2018)
การอัปเดต Android Studio 3.1 นี้มีการแก้ไขข้อบกพร่องต่อไปนี้
-
ในบางกรณี เมื่อเปิดโปรเจ็กต์ที่สร้างใน Android Studio 3.0 เป็นครั้งแรกใน Android Studio 3.1 ระบบจะนำงาน Make ที่รับรู้ Gradle ออกจากส่วนก่อนเปิดตัวในการกำหนดค่าการเรียกใช้/การแก้ไขข้อบกพร่อง ผลลัพธ์คือโปรเจ็กต์จะไม่สร้างเมื่อคลิกปุ่มเรียกใช้หรือแก้ไขข้อบกพร่อง ซึ่งส่งผลให้เกิดความล้มเหลว เช่น การติดตั้ง APK ที่ไม่ถูกต้องและการขัดข้องเมื่อใช้เรียกใช้ทันที
Android Studio 3.1.1 ได้เพิ่มงาน Make ที่รับรู้ Gradle ลงในการกำหนดค่าการเรียกใช้สำหรับโปรเจ็กต์ที่ไม่มีรายการนี้เพื่อแก้ปัญหานี้ การแก้ไขนี้จะเกิดขึ้นหลังจากการซิงค์ Gradle ครั้งแรกเมื่อโหลดโปรเจ็กต์
- ดีบักเกอร์ขัดข้องเมื่อดีบักเลย์เอาต์ที่มีกล่องข้อความหากเปิดใช้การทำโปรไฟล์ขั้นสูง
- Android Studio ค้างหลังจากคลิกตัวแปรบิลด์
- มีการแยกไฟล์ AAR (Android Archive) 2 ครั้ง ครั้งหนึ่งในระหว่างกระบวนการซิงค์ Gradle และอีกครั้งในระหว่างกระบวนการบิลด์ Gradle
- องค์ประกอบบางอย่างขาดหายไปจาก Vector Drawable บางรายการที่นำเข้าจากไฟล์ SVG
-
เราได้อัปเดตคำเตือนเกี่ยวกับการเลิกใช้งานการกำหนดค่าการขึ้นต่อกันของ
compile
พร้อมคำแนะนำที่ดีขึ้นเกี่ยวกับการกำหนดค่าimplementation
และapi
โปรดดูรายละเอียดการย้ายข้อมูลจากการใช้compile
การกำหนดค่าใน เอกสารประกอบสำหรับการกำหนดค่าการอ้างอิงใหม่
การเขียนโค้ด/IDE
IntelliJ 2017.3.3
เราได้อัปเดต IDE หลักของ Android Studio ด้วยการปรับปรุงจาก IntelliJ IDEA ผ่านการเปิดตัวเวอร์ชัน 2017.3.3 การปรับปรุงนี้รวมถึงการวิเคราะห์โฟลว์การควบคุมที่ดีขึ้น สำหรับคอลเล็กชันและสตริง การอนุมานค่า Null ที่ได้รับการปรับปรุง การแก้ไขด่วนใหม่ และอื่นๆ อีกมากมาย
ดูรายละเอียดได้ในบันทึกประจำรุ่นของ JetBrains สำหรับ IntelliJ IDEA เวอร์ชัน 2017.2 และ 2017.3 รวมถึงบันทึกประจำรุ่นของ JetBrains สำหรับ การอัปเดตการแก้ไขข้อบกพร่อง
การปรับปรุงการแก้ไข SQL ด้วย Room
เมื่อใช้ ไลบรารีฐานข้อมูล 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
อื่นๆ ในตัวสร้างได้แล้ว -
คุณสามารถดูตัวอย่างคอมไพเลอร์แบบเพิ่มใหม่สำหรับคลาสการเชื่อมโยงข้อมูล ได้ ดูรายละเอียดเกี่ยวกับคอมไพเลอร์ใหม่นี้และวิธีการเปิดใช้ได้ที่ Data Binding Compiler V2
ประโยชน์ของคอมไพเลอร์ใหม่มีดังนี้
-
ViewBinding
จะสร้างคลาสโดยปลั๊กอิน Android สำหรับ Gradle ก่อนคอมไพเลอร์ Java - ไลบรารีจะเก็บคลาสการเชื่อมโยงที่สร้างขึ้นเมื่อคอมไพล์แอป แทนที่จะสร้างใหม่ทุกครั้ง ซึ่งจะช่วย ปรับปรุงประสิทธิภาพของโปรเจ็กต์แบบหลายโมดูลได้อย่างมาก
-
คอมไพเลอร์และ Gradle
D8 เป็นคอมไพเลอร์ DEX เริ่มต้น
ตอนนี้ระบบจะใช้คอมไพเลอร์ D8 โดยค่าเริ่มต้นในการสร้างไบต์โค้ด DEX
คอมไพเลอร์ DEX ใหม่นี้มีประโยชน์หลายประการ ซึ่งรวมถึง ประโยชน์ต่อไปนี้
- การแปลง DEX ที่เร็วขึ้น
- ลดการใช้หน่วยความจำ
- การสร้างโค้ดที่ได้รับการปรับปรุง (การจัดสรรรีจิสเตอร์ที่ดีขึ้น ตารางสตริงที่ชาญฉลาดขึ้น )
- ประสบการณ์การแก้ไขข้อบกพร่องที่ดีขึ้นเมื่อทำทีละขั้นตอนในโค้ด
คุณไม่จำเป็นต้องแก้ไขโค้ดหรือเวิร์กโฟลว์การพัฒนาเพื่อรับสิทธิประโยชน์เหล่านี้ เว้นแต่คุณจะปิดใช้คอมไพเลอร์ D8 ด้วยตนเองก่อนหน้านี้
หากคุณตั้งค่า android.enableD8
เป็น false
ใน
gradle.properties
ให้นำค่าดังกล่าวออกหรือตั้งค่าเป็น
true
android.enableD8=true
โปรดดูรายละเอียดที่ คอมไพเลอร์ DEX ใหม่
การลดความซับซ้อน แบบเพิ่มขึ้น
สำหรับโปรเจ็กต์ที่ใช้ฟีเจอร์ภาษาของ Java 8 ระบบจะเปิดใช้การแยกส่วนแบบเพิ่มทีละรายการโดยค่าเริ่มต้น ซึ่งจะช่วยปรับปรุงเวลาในการสร้างได้
การยกเลิกการลดรูปจะแปลง ไวยากรณ์ที่กระชับ เป็นรูปแบบที่คอมไพเลอร์ประมวลผลได้อย่างมีประสิทธิภาพมากขึ้น
คุณปิดใช้การแยกส่วนเพิ่มได้โดยระบุข้อมูลต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableIncrementalDesugaring=false
หน้าต่างเอาต์พุตที่เรียบง่าย
เราได้แทนที่คอนโซล Gradle ด้วยหน้าต่างบิลด์ ซึ่งมีแท็บซิงค์และบิลด์
ดูรายละเอียดเกี่ยวกับวิธีใช้หน้าต่างสร้างแบบใหม่ที่เรียบง่ายขึ้นได้ที่ ตรวจสอบกระบวนการ บิลด์
การอัปเดตเป็นกลุ่มและการจัดทำดัชนี พร้อมกัน
ตอนนี้กระบวนการซิงค์ Gradle และการจัดทำดัชนี IDE มีประสิทธิภาพมากขึ้น จึงช่วยลดเวลาที่เสียไปกับการดำเนินการจัดทำดัชนีที่ซ้ำซ้อนหลายอย่าง
C++ และ LLDB
เราได้ปรับปรุงคุณภาพและประสิทธิภาพหลายอย่างในขั้นตอนการเขียนโค้ด การซิงค์ การสร้าง และการแก้ไขข้อบกพร่องของการพัฒนา C++ การปรับปรุงมีดังนี้
-
หากคุณทำงานกับโปรเจ็กต์ C++ ขนาดใหญ่ คุณจะเห็นว่ามีการปรับปรุงอย่างมาก ในการลดเวลาที่ใช้ในการสร้างสัญลักษณ์ นอกจากนี้ เวลาในการซิงค์ยังลดลงอย่างมาก สำหรับโปรเจ็กต์ขนาดใหญ่ด้วย
-
เราได้ปรับปรุงประสิทธิภาพเมื่อสร้างและซิงค์กับ CMake โดย นำผลลัพธ์ที่แคชไว้กลับมาใช้ซ้ำอย่างเข้มงวดมากขึ้น
-
การเพิ่มตัวจัดรูปแบบ ("Pretty Printer") สำหรับโครงสร้างข้อมูล 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 Profiler
ตอนนี้ CPU Profiler มีการกำหนดค่าเริ่มต้นเพื่อบันทึกร่องรอยที่สุ่มตัวอย่างของ เธรดดั้งเดิมของแอปแล้ว คุณใช้การกำหนดค่านี้ได้โดยการติดตั้งใช้งานแอปในอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป แล้วเลือกสุ่มตัวอย่าง (เนทีฟ) จากเมนูแบบเลื่อนลงของการกำหนดค่าการบันทึกของ CPU Profiler หลังจากนั้น ให้บันทึกและ ตรวจสอบการติดตามตามปกติ
คุณเปลี่ยนการตั้งค่าเริ่มต้นได้ เช่น ช่วงเวลาการสุ่มตัวอย่าง โดย สร้าง การกำหนดค่าการบันทึก
หากต้องการเปลี่ยนกลับไปติดตามเธรด Java ให้เลือกการกำหนดค่าสุ่มตัวอย่าง (Java) หรือวัดประสิทธิภาพ (Java)
กรองการติดตาม CPU, ผลลัพธ์การจัดสรรหน่วยความจำ และฮีปดัมพ์
โปรไฟล์เลอร์ CPU และ โปรไฟล์เลอร์หน่วยความจำมี ฟีเจอร์การค้นหาที่ช่วยให้คุณกรองผลลัพธ์จากการบันทึกการติดตามเมธอด การจัดสรรหน่วยความจำ หรือการทิ้งฮีป

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

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

เครื่องมือสร้างเลย์เอาต์
Palette ใน Layout Editor ได้รับการปรับปรุงหลายอย่าง ดังนี้
- การจัดหมวดหมู่ใหม่สำหรับมุมมองและเลย์เอาต์
- หมวดหมู่ทั่วไปใหม่สำหรับมุมมองและเลย์เอาต์ ซึ่งคุณ เพิ่มได้ด้วยคำสั่งรายการโปรด
- ปรับปรุง ค้นหามุมมอง และเลย์เอาต์
- คำสั่งใหม่สำหรับ การเปิด เอกสารประกอบสำหรับองค์ประกอบมุมมองหรือเลย์เอาต์ที่เฉพาะเจาะจง
คุณสามารถใช้คำสั่ง Convert view ใหม่ในแผนผังคอมโพเนนต์หรือเครื่องมือแก้ไขการออกแบบเพื่อแปลงมุมมองหรือเลย์เอาต์ เป็นมุมมองหรือเลย์เอาต์ประเภทอื่น
ตอนนี้คุณสร้างข้อจำกัดให้กับรายการที่อยู่ใกล้มุมมองที่เลือกได้อย่างง่ายดายโดยใช้ปุ่ม
สร้างการเชื่อมต่อ
ใหม่ในเครื่องมือตรวจสอบมุมมองที่ด้านบนของหน้าต่างแอตทริบิวต์
วิ่งและวิ่งทันที
เราได้ปรับปรุงลักษณะการทำงานของตัวเลือกใช้การเลือกเดียวกันสำหรับการเปิดตัวในอนาคต ในกล่องโต้ตอบเลือกเป้าหมายการติดตั้งใช้งาน ให้สอดคล้องกันมากขึ้น หากเปิดใช้ตัวเลือกใช้การเลือกเดียวกัน กล่องโต้ตอบเลือกเป้าหมายการ ติดตั้งใช้งานจะเปิดขึ้นเฉพาะครั้งแรกที่คุณใช้คำสั่ง เรียกใช้จนกว่าอุปกรณ์ที่เลือกจะไม่ได้เชื่อมต่อ อีกต่อไป
เมื่อกำหนดเป้าหมายเป็นอุปกรณ์ที่ใช้ Android 8.0 (API ระดับ 26) ขึ้นไป Instant Run จะสามารถติดตั้งใช้งาน การเปลี่ยนแปลงในทรัพยากรโดยไม่ต้องรีสตาร์ทแอปพลิเคชัน ซึ่งเป็นไปได้เนื่องจากทรัพยากรอยู่ใน APK ที่แยก
โปรแกรมจำลอง
ดูรายละเอียดเกี่ยวกับสิ่งใหม่และการเปลี่ยนแปลงในโปรแกรมจำลองตั้งแต่ Android Studio 3.0 ได้ที่หมายเหตุประจำรุ่นของ Android Emulator ตั้งแต่เวอร์ชัน 27.0.2 ถึงเวอร์ชัน 27.1.12
การปรับปรุงที่สำคัญมีดังนี้
- สแนปชอตการบูตอย่างรวดเร็วสำหรับการบันทึกสถานะของโปรแกรมจำลองและเริ่มต้นได้เร็วขึ้น พร้อมความสามารถในการใช้คำสั่งบันทึกตอนนี้เพื่อบันทึก สถานะเริ่มต้นที่กำหนดเอง
- หน้าจอโปรแกรมจำลองที่ไม่มีหน้าต่าง
- อิมเมจระบบสำหรับ Android 8.0 (API ระดับ 26), Android 8.1 (API ระดับ 27) และ Android P Developer Preview
การปรับปรุงอินเทอร์เฟซผู้ใช้และประสบการณ์ของผู้ใช้
เคล็ดลับเครื่องมือ แป้นพิมพ์ลัด และข้อความที่เป็นประโยชน์เพิ่มเติม
เราได้เพิ่มเคล็ดลับเครื่องมือและการวางซ้อนข้อความที่เป็นประโยชน์ในหลายๆ ที่ ทั่วทั้ง Android Studio
หากต้องการดูแป้นพิมพ์ลัดสำหรับคำสั่งต่างๆ เพียงวางตัวชี้เมาส์ เหนือปุ่มจนกว่าเคล็ดลับเครื่องมือจะปรากฏขึ้น
เครื่องมือ > นำเมนู Android ออกแล้ว
ระบบได้นำเมนูเครื่องมือ > Android ออกแล้ว คำสั่ง ที่เคยอยู่ภายใต้เมนูนี้ได้ย้ายไปแล้ว
- คำสั่งหลายอย่างได้ย้ายไปอยู่ใต้เมนูเครื่องมือ โดยตรง
- คำสั่งซิงค์โปรเจ็กต์กับไฟล์ Gradle ย้ายไปอยู่ที่เมนูไฟล์แล้ว
- เราได้นำคำสั่งตรวจสอบอุปกรณ์ออกแล้วตามที่อธิบายไว้ด้านล่าง
Device Monitor พร้อมใช้งาน จากบรรทัดคำสั่ง
ใน Android Studio 3.1 เครื่องมือตรวจสอบอุปกรณ์มีบทบาทน้อยกว่าที่เคย เป็น ในหลายกรณี ฟังก์ชันการทำงานที่พร้อมใช้งานผ่าน การตรวจสอบอุปกรณ์จะได้รับการจัดหาโดยเครื่องมือใหม่และได้รับการปรับปรุงแล้ว
ดูวิธีการเรียกใช้ Device Monitor จากบรรทัดคำสั่งและรายละเอียดของเครื่องมือที่ใช้ได้ผ่าน Device Monitor ได้ในเอกสารประกอบของ Device Monitor
3.0 (ตุลาคม 2017)
Android Studio 3.0.0 เป็นรุ่นหลักที่มีฟีเจอร์ใหม่และการปรับปรุงมากมาย
ผู้ใช้ macOS: หากคุณอัปเดต Android Studio เวอร์ชันเก่า คุณอาจเห็นกล่องโต้ตอบข้อผิดพลาดในการอัปเดตที่ระบุว่า "พบความขัดแย้งบางอย่าง ในพื้นที่การติดตั้ง" เพียงแค่ไม่ต้องสนใจข้อผิดพลาดนี้ แล้วคลิกยกเลิกเพื่อติดตั้งต่อ
3.0.1 (พฤศจิกายน 2017)
นี่คือการอัปเดตเล็กน้อยสำหรับ Android Studio 3.0 ซึ่งรวมถึงการแก้ไขข้อบกพร่องทั่วไป และการปรับปรุงประสิทธิภาพ
ปลั๊กอิน Android สำหรับ Gradle 3.0.0
ปลั๊กอิน Android ใหม่สำหรับ Gradle มาพร้อมการปรับปรุงและฟีเจอร์ใหม่ๆ มากมาย แต่หลักๆ แล้วจะปรับปรุง ประสิทธิภาพการสร้างสำหรับโปรเจ็กต์ที่มีโมดูลจำนวนมาก เมื่อใช้ ปลั๊กอินใหม่กับโปรเจ็กต์ขนาดใหญ่เหล่านี้ คุณจะได้รับประสบการณ์การใช้งานดังนี้
- กำหนดค่าการสร้างได้เร็วขึ้นเนื่องจากการแก้ปัญหาทรัพยากร Dependency แบบหน่วงเวลาใหม่
- การแก้ปัญหาการขึ้นต่อกันที่คำนึงถึงตัวแปร สำหรับโปรเจ็กต์และตัวแปรที่คุณกำลังสร้างเท่านั้น
- เวลาบิลด์ที่เพิ่มขึ้นเร็วขึ้นเมื่อทำการเปลี่ยนแปลงโค้ดหรือ ทรัพยากรอย่างง่าย
หมายเหตุ: การปรับปรุงเหล่านี้ต้องมีการเปลี่ยนแปลงที่สำคัญซึ่งจะทําให้ลักษณะการทํางาน DSL และ API บางอย่างของปลั๊กอินใช้งานไม่ได้ การอัปเกรดเป็นเวอร์ชัน 3.0.0 อาจต้องมีการเปลี่ยนแปลงไฟล์บิลด์และปลั๊กอิน Gradle
นอกจากนี้ เวอร์ชันนี้ยังมีฟีเจอร์ต่อไปนี้
- รองรับ Android 8.0
- รองรับการสร้าง APK แยกต่างหากตามแหล่งข้อมูลภาษา
- รองรับไลบรารี Java 8 และฟีเจอร์ภาษา Java 8 (ไม่มีคอมไพเลอร์ Jack)
- รองรับ Android Test Support Library 1.0 (Android Test Utility และ 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 ที่ได้รับการปรับปรุงซึ่งมีอยู่ใน Toolchain เริ่มต้น
หากต้องการอัปเดตโปรเจ็กต์ให้รองรับเครื่องมือภาษา Java 8 ใหม่ ให้ทำดังนี้ อัปเดตความเข้ากันได้ของแหล่งที่มาและความเข้ากันได้ของเป้าหมายเป็น 1.8 ในกล่องโต้ตอบโครงสร้างโปรเจ็กต์ (คลิกไฟล์ > โครงสร้างโปรเจ็กต์) ดูข้อมูลเพิ่มเติมได้ที่วิธี ใช้ฟีเจอร์ภาษาของ Java 8

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

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

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

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

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

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

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

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

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

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

เครื่องมือตรวจสอบตัวกรอง Intent ของ URL
ตอนนี้ Android Studio รองรับแท็กพิเศษในไฟล์ Manifest ซึ่งช่วยให้คุณทดสอบ URL ของตัวกรอง Intent ได้แล้ว โดยแท็กเหล่านี้เป็นแท็กเดียวกับที่ผู้ช่วย App Link สร้างให้คุณได้
หากต้องการประกาศ 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 เบต้า 2 ขึ้นไป)
- UI ใหม่สำหรับสร้างเชน: เลือกหลายมุมมอง แล้วคลิกขวา จากนั้นเลือกเชน

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

ตัววิเคราะห์ APK
ตอนนี้คุณใช้ APK Analyzer จากบรรทัดคำสั่งได้แล้วด้วยเครื่องมือ
apkanalyzer
นอกจากนี้ เรายังได้อัปเดตตัววิเคราะห์ APK ด้วยการปรับปรุงต่อไปนี้
- สำหรับ APK ที่สร้างด้วย ProGuard คุณสามารถโหลดไฟล์การแมป ProGuard ที่เพิ่มความสามารถให้กับโปรแกรมดู DEX ซึ่งรวมถึง
- โหนดที่ทำตัวหนาเพื่อระบุว่าไม่ควรนำโหนดออกเมื่อ ลดขนาดโค้ด
- ปุ่มสำหรับแสดงโหนดที่ถูกนำออกในระหว่างกระบวนการลดขนาด
- ปุ่มที่กู้คืนชื่อเดิมของโหนดในมุมมองแบบต้นไม้ที่ ProGuard ทำให้สับสน
- ตอนนี้ DEX Viewer จะแสดงผลกระทบด้านขนาดโดยประมาณของแต่ละแพ็กเกจ คลาส และ เมธอด
- ตัวเลือกการกรองใหม่ที่ด้านบนเพื่อแสดงและซ่อนฟิลด์และเมธอด
- ในมุมมองแบบต้นไม้ โหนดที่เป็นการอ้างอิงที่ไม่ได้กำหนดไว้ในไฟล์ DEX จะปรากฏเป็นตัวเอียง
ดูข้อมูลเพิ่มเติมได้ที่วิเคราะห์บิลด์ด้วยตัววิเคราะห์ APK
ตัวอย่างสำหรับคอมไพเลอร์ D8 DEX
Android Studio 3.0 มีคอมไพเลอร์ DEX ใหม่ที่ไม่บังคับชื่อ D8 ซึ่งจะมาแทนที่คอมไพเลอร์ DX ในที่สุด แต่คุณเลือกใช้คอมไพเลอร์ D8 ใหม่ได้แล้วตอนนี้
การคอมไพล์ DEX ส่งผลโดยตรงต่อเวลาในการสร้าง .dex
ไฟล์
ขนาด และประสิทธิภาพรันไทม์ของแอป และเมื่อเปรียบเทียบคอมไพเลอร์ D8 ใหม่กับคอมไพเลอร์ DX ปัจจุบัน D8 จะคอมไพล์ได้เร็วกว่าและเอาต์พุตเป็น.dex
ไฟล์ที่มีขนาดเล็กกว่า ในขณะที่ประสิทธิภาพรันไทม์ของแอปจะเท่าเดิมหรือดีกว่า
หากต้องการลองใช้ ให้ตั้งค่าต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableD8=true
ดูข้อมูลเพิ่มเติมได้ที่บล็อกโพสต์เกี่ยวกับคอมไพเลอร์ D8
ที่เก็บ Maven ของ Google
ตอนนี้ Android Studio ใช้ที่เก็บ Maven ของ Google เป็นค่าเริ่มต้นแทนการ ขึ้นอยู่กับ Android SDK Manager เพื่อรับการอัปเดตสำหรับไลบรารีการสนับสนุนของ Android บริการ Google Play, Firebase และการขึ้นต่อกันอื่นๆ ซึ่งจะช่วยให้คุณอัปเดตไลบรารีได้ง่ายขึ้น โดยเฉพาะเมื่อใช้ระบบการรวมอย่างต่อเนื่อง (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 Emulator ด้วย
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 Manager อัปเดตเพื่อรองรับ 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 โดยอัตโนมัติหากผู้ใช้เรียกใช้แอปภายใต้ โปรไฟล์งานหรือในฐานะผู้ใช้รอง
- แก้ไขปัญหาความน่าเชื่อถือหลายอย่างสำหรับInstant Run ซึ่งการเปลี่ยนแปลง
ไม่ได้รับการติดตั้งใช้งานหรือแอปจะขัดข้อง
- ระบบไม่ได้ติดตั้งใช้งานชิ้นงานแอปบางรายการในแอปที่ทำงานอยู่ (ข้อบกพร่อง: #213454)
- แอปขัดข้องเมื่อผู้ใช้เปลี่ยนจากเซสชัน Instant Run เป็นเซสชันที่ไม่ใช่ Instant Run ในกรณีที่คลาส Serializable ไม่ได้กำหนด serialVersionUID ไว้ (ข้อบกพร่อง: #209006)
- การเปลี่ยนแปลงสไตล์จะไม่แสดงเมื่อใช้ฟีเจอร์เรียกใช้ทันที (ข้อบกพร่อง: #210851)
- เซสชัน Instant Run ไม่น่าเชื่อถือและทำให้เกิด FileNotFoundException (ข้อบกพร่อง: #213083)
- การเปลี่ยนแปลง Drawable จะไม่แสดงจนกว่าจะมีการสร้างใหม่ทั้งหมด สำหรับ KitKat (ข้อบกพร่อง: #21530)
- การเปลี่ยนแปลงทรัพยากรจะไม่แสดงด้วยการเรียกใช้ด่วนเมื่อ sourceSets ที่กำหนดเองมีเส้นทางที่ซ้อนกัน (ข้อบกพร่อง: #219145)
- การสลับร้อนและสลับอุ่นจะใช้ไม่ได้หากคลาสที่เปลี่ยนแปลงมีการเพิ่มคำอธิบายประกอบ ที่มีค่า enum (ข้อบกพร่อง: #209047)
- การเปลี่ยนแปลงข้อมูลคำอธิบายประกอบจะไม่แสดงด้วยการเรียกใช้ทันที (ข้อบกพร่อง: #210089)
- Instant Run จะไม่รับการเปลี่ยนแปลงโค้ดหากคุณทำการเปลี่ยนแปลงภายนอก IDE (ข้อบกพร่อง: #213205)
- เซสชัน Instant Run ไม่น่าเชื่อถือเนื่องจากโทเค็นความปลอดภัยไม่ตรงกัน (ข้อบกพร่อง: #211989
- การสลับแบบเย็นจะล้มเหลวสำหรับอุปกรณ์ที่ไม่รองรับ run-as อย่างถูกต้อง (ข้อบกพร่อง: #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)
การอัปเดตนี้มีการเปลี่ยนแปลงเล็กๆ น้อยๆ และการแก้ไขข้อบกพร่องหลายอย่าง ดังนี้
- การอัปเดตและแก้ไขข้อบกพร่องของการเรียกใช้ทันที
- การปรับปรุงประสิทธิภาพของ 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 เพื่อสร้างแอป
หมายเหตุ: ระบบจะปิดใช้ Instant Run เมื่อคุณเปิดใช้คอมไพเลอร์ Jack เนื่องจากขณะนี้ยังไม่ รองรับการใช้งานร่วมกัน
แม้ว่าตอนนี้ Android Studio 2.1 จะเสถียรแล้ว แต่คอมไพเลอร์ Jack ยังคงเป็นเวอร์ชัน
ทดลองใช้และคุณต้องเปิดใช้ด้วยพร็อพเพอร์ตี้ jackOptions
ในไฟล์ build.gradle
นอกจากการเปลี่ยนแปลงเพื่อรองรับ N Preview แล้ว Android Studio 2.1 ยังมีการแก้ไขข้อบกพร่องเล็กๆ น้อยๆ และการปรับปรุงต่อไปนี้ด้วย
- ตอนนี้ระบบจะเปิดใช้ดีบักเกอร์ C++ ที่รองรับ Java โดยค่าเริ่มต้นเมื่อคุณ ใช้อุปกรณ์หรือโปรแกรมจำลอง N และเลือกโหมดดีบักเกอร์เนทีฟ (ในแท็บดีบักเกอร์สำหรับการกำหนดค่าการเรียกใช้/การแก้ไขข้อบกพร่อง)
สำหรับการเพิ่มประสิทธิภาพการบิลด์อื่นๆ ซึ่งรวมถึงการคอมไพล์ Java แบบเพิ่มทีละรายการ และการแปลง DEX ในกระบวนการ โปรดอัปเดตปลั๊กอิน Android สำหรับ Gradle เป็นเวอร์ชัน 2.1.0
2.0 (เมษายน 2016)
หมายเหตุ: หากคุณกำลังพัฒนาแอปสำหรับ Developer Preview ของ N คุณ ควรใช้ Android Studio 2.1 Preview Android Studio 2.0 ไม่รองรับ ฟีเจอร์ทั้งหมดที่จำเป็นต่อการกำหนดเป้าหมายไปยัง N Preview
Instant Run:
- ตอนนี้ Android Studio จะติดตั้งใช้งานบิลด์ที่สะอาดได้เร็วกว่าที่เคย นอกจากนี้ การพุชการเปลี่ยนแปลงโค้ดที่เพิ่มขึ้นไปยังโปรแกรมจำลองหรืออุปกรณ์จริง ก็ทำได้เกือบจะในทันที ตรวจสอบการอัปเดตโดยไม่ต้องติดตั้งใช้งาน บิลด์การแก้ไขข้อบกพร่องใหม่ หรือในหลายกรณีโดยไม่ต้องรีสตาร์ทแอป
- Instant Run รองรับการพุชการเปลี่ยนแปลงต่อไปนี้ไปยังแอปที่กำลังทำงาน
- การเปลี่ยนแปลงการใช้งานเมธอดอินสแตนซ์หรือเมธอดแบบคงที่ที่มีอยู่
- การเปลี่ยนแปลงทรัพยากรแอปที่มีอยู่
- การเปลี่ยนแปลงโค้ดโครงสร้าง เช่น ลายเซ็นของเมธอดหรือฟิลด์แบบคงที่ (ต้องใช้อุปกรณ์เป้าหมายที่ใช้ API ระดับ 21 ขึ้นไป)
- อ่านเอกสารประกอบเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ Instant
Run
หมายเหตุ: Instant Run จะใช้ได้เมื่อคุณติดตั้งใช้งาน ตัวแปรบิลด์สำหรับดีบัก ใช้ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 2.0.0 ขึ้นไป และกำหนดค่าไฟล์
build.gradle
ระดับโมดูลของแอปสำหรับminSdkVersion 15
ขึ้นไปเท่านั้น กําหนดค่าแอปสําหรับminSdkVersion 21
ขึ้นไปเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
การเพิ่มใหม่ใน Lint:
- การตรวจสอบคำสั่ง
switch
โดยใช้จำนวนเต็มที่ทำเครื่องหมาย@IntDef
เพื่อให้แน่ใจว่า ค่าคงที่ทั้งหมดได้รับการจัดการ หากต้องการเพิ่มคำสั่งที่ขาดหายไปอย่างรวดเร็ว ให้ใช้เมนูแบบเลื่อนลงของการดำเนินการตามความตั้งใจ แล้วเลือกเพิ่มค่าคงที่ @IntDef ที่ขาดหายไป - Flag สำหรับความพยายามที่ไม่ถูกต้องในการใช้การแทรกสตริงเพื่อแทรก
หมายเลขเวอร์ชันในไฟล์
build.gradle
- Flags สำหรับชั้นเรียนที่ไม่ระบุตัวตนซึ่งขยายชั้นเรียน
Fragment
- Flag สำหรับโค้ดแบบเนทีฟในตำแหน่งที่ไม่ปลอดภัย เช่น โฟลเดอร์
res/
และasset/
โดยแฟล็กนี้จะสนับสนุนให้จัดเก็บโค้ดเนทีฟไว้ในโฟลเดอร์libs/
ซึ่งจะได้รับการแพ็กเกจอย่างปลอดภัยลงในโฟลเดอร์data/app-lib/
ของแอปพลิเคชันในเวลาที่ติดตั้ง AOSP: #169950 - การแจ้งว่าการโทรไปยัง
Runtime.load()
และการโทรSystem.load()
ไม่ปลอดภัย AOSP: #179980 - ค้นหาและนำทรัพยากรที่ไม่ได้ใช้ออกโดยเลือกปรับโครงสร้าง > นำ
ทรัพยากรที่ไม่ได้ใช้ออกจากแถบเมนู ตอนนี้การตรวจหาทรัพยากรที่ไม่ได้ใช้รองรับเฉพาะทรัพยากรที่อ้างอิงโดยทรัพยากรที่ไม่ได้ใช้ การอ้างอิงในไฟล์ดิบ เช่น
.html
การอ้างอิงรูปภาพ และแอตทริบิวต์tools:keep
และtools:discard
ที่ใช้โดยเครื่องมือลดขนาดทรัพยากรของ Gradle ขณะพิจารณาชุดแหล่งที่มาที่ไม่ได้ใช้งาน (เช่น ทรัพยากรที่ใช้ในบิลด์ Flavor อื่นๆ) และจัดการการนำเข้าฟิลด์แบบคงที่อย่างเหมาะสม - ตรวจสอบว่าแพลตฟอร์มทั้งหมดที่
minSdkVersion
กำหนดเป้าหมายรองรับการอ้างอิง API โดยนัย - แจ้งการใช้งาน
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)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขปัญหาการแสดงผลล้มเหลวใน Layout Editor ปัญหา: 194612
- เพิ่มความสามารถในการเปลี่ยนแปลง
description
แอตทริบิวต์ไฟล์ Manifest ตามการกำหนดค่า ปัญหา: 194705 - ปรับปรุงคอนทราสต์ของธีมลักษณะที่ปรากฏ Darcula ของ Android Studio ใน Vector Asset Studio ปัญหา: 191819
- เพิ่มการรองรับปุ่มความช่วยเหลือใน Vector Asset Studio
- เพิ่มการรองรับตัวดำเนินการ
%
สำหรับการเชื่อมโยงข้อมูล ปัญหา: 194045 - แก้ไขกรณีที่การเปิดแอปเพื่อแก้ไขข้อบกพร่องทำให้ดีบักเกอร์เชื่อมต่อกับอุปกรณ์ที่ไม่ถูกต้อง ปัญหา: 195167
- แก้ไขข้อยกเว้นตัวชี้เป็น Null ที่อาจเกิดขึ้นเมื่อพยายามเรียกใช้แอปใน บางสถานการณ์
Android Studio v1.5.0 (พฤศจิกายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มความสามารถในการวิเคราะห์เครื่องมือตรวจสอบหน่วยความจำใหม่ลงใน Android Monitor เมื่อดูไฟล์ HPROF ที่บันทึกจากเครื่องมือตรวจสอบนี้ ตอนนี้การแสดงผลจะมีประโยชน์มากขึ้นเพื่อให้คุณค้นหา ปัญหาต่างๆ เช่น หน่วยความจำรั่ว ได้เร็วขึ้น หากต้องการใช้เครื่องมือตรวจสอบนี้ ให้คลิก Android Monitor ที่ด้านล่างของหน้าต่างหลัก ใน Android Monitor ให้คลิกแท็บหน่วยความจำ ขณะที่ จอภาพทำงานอยู่ ให้คลิกไอคอนทิ้งฮีปของ Java จากนั้นคลิก การจับภาพในหน้าต่างหลัก แล้วดับเบิลคลิกไฟล์เพื่อดู คลิก การวิเคราะห์การจับภาพทางด้านขวา (Android Device Monitor ไม่สามารถทำงานพร้อมกับ Android Monitor ได้)
- เพิ่มการรองรับ Deep Link และ App Link ใหม่ เครื่องมือแก้ไขโค้ดจะสร้าง
ตัวกรอง Intent สำหรับ Deep Link ในไฟล์
AndroidManifest.xml
โดยอัตโนมัติ นอกจากนี้ยัง สร้างโค้ดเพื่อช่วยคุณผสานรวมกับ App Indexing API ในกิจกรรมในไฟล์ Java ได้ด้วย ฟีเจอร์การทดสอบ Deep Link ช่วยให้คุณยืนยันได้ว่า Deep Link ที่ระบุสามารถเปิดแอปได้ ในแท็บทั่วไป ของกล่องโต้ตอบการกำหนดค่าการเรียกใช้/การแก้ไขข้อบกพร่อง คุณสามารถระบุตัวเลือกการเปิด Deep Link ได้ นอกจากนี้ คุณยังทดสอบการเรียก App Indexing API ในกิจกรรมได้โดยใช้การแสดงผล logcat ของ Android Monitor ตอนนี้เครื่องมือ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
การตรวจสอบใหม่สำหรับ BroadcastReceiver ที่ไม่ปลอดภัย การใช้คลาส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 สำหรับการนำเข้ากราฟิกแบบเวกเตอร์ เช่น ไอคอน Material และไฟล์ SVG หากต้องการใช้เครื่องมือนี้ ในมุมมอง Android ของหน้าต่างโปรเจ็กต์ ให้คลิกขวาที่โฟลเดอร์ res แล้วเลือกใหม่ > ชิ้นงานเวกเตอร์
- เพิ่มฟังก์ชันใหม่ของ Android Monitor, GPU และเครือข่าย หากต้องการใช้จอภาพเหล่านี้ ให้คลิก Android Monitor ที่ด้านล่างของหน้าต่างหลัก Android Device Monitor จะทำงานพร้อมกับ Android Monitor ไม่ได้
- เพิ่มเวอร์ชันตัวอย่างแรกของเอดิเตอร์ธีมใหม่แล้ว หากต้องการใช้ฟีเจอร์นี้ ให้เลือก เครื่องมือ > Android > เอดิเตอร์ธีม
- อัปเดตเทมเพลต Android สำหรับไลบรารีการสนับสนุนการออกแบบ ตอนนี้เทมเพลตได้รวมการรองรับ
ข้อกำหนดการออกแบบ Material รวมถึง
appcompat
ไลบรารีการสนับสนุน เพื่อความเข้ากันได้แบบย้อนหลัง
Android Studio v1.3.2 (สิงหาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- เพิ่มการรองรับ Android 6.0 (API ระดับ 23) ซึ่งรวมถึงไอคอนใหม่และการรองรับ AVD Manager สำหรับการสร้างอุปกรณ์ที่มีความหนาแน่นหน้าจอใหม่
- แก้ไขข้อยกเว้นที่เกิดขึ้นระหว่างการตรวจหาการอัปเดต ปัญหา: 183068
- แก้ไขปัญหาที่พิกัดมุมมองที่ยังไม่ได้รับการแก้ไขอาจทำให้เครื่องมือแก้ไขเลย์เอาต์ขัดข้อง ปัญหา: 178690
- แก้ไขปัญหาคำเตือนเกี่ยวกับประเภททรัพยากรที่ไม่ถูกต้องแล้ว ปัญหา: 182433
- แก้ไขการตรวจสอบ Lint ที่แจ้งว่าทรัพยากรเป็นแบบส่วนตัวอย่างไม่ถูกต้อง ปัญหา: 183120
Android Studio v1.3.1 (สิงหาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขการรองรับการสร้างอุปกรณ์เสมือน Android (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 และวิเคราะห์การจัดสรรเธรดจาก Memory Monitor นอกจากนี้ คุณยัง แปลงไฟล์รูปแบบไบนารี HPROF เฉพาะ Android เป็นรูปแบบ HPROF มาตรฐานได้จากภายใน Android Studio
- ผสานรวม SDK Manager
เข้ากับ Android Studio เพื่อให้เข้าถึงแพ็กเกจและเครื่องมือได้ง่ายขึ้น รวมถึงแสดงการแจ้งเตือนการอัปเดต
หมายเหตุ: คุณยังคงใช้ SDK Manager แบบสแตนด์อโลนได้จาก บรรทัดคำสั่ง แต่เราขอแนะนำให้ใช้เฉพาะกับการติดตั้ง SDK แบบสแตนด์อโลน เท่านั้น
- เพิ่มคำสั่ง
finger
ในคอนโซลโปรแกรมจำลองเพื่อจำลองการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ - เพิ่ม
<public>
การประกาศทรัพยากรเพื่อกำหนดให้ทรัพยากรของไลบรารีเป็นทรัพยากรสาธารณะและส่วนตัวหมายเหตุ: ต้องใช้ ปลั๊กอิน Android สำหรับ Gradle เวอร์ชัน 1.3 ขึ้นไป
- เพิ่มการรองรับการเชื่อมโยงข้อมูลเพื่อ สร้างเลย์เอาต์แบบประกาศที่เชื่อมโยงตรรกะของแอปพลิเคชันกับองค์ประกอบเลย์เอาต์
- เพิ่มการรองรับ โมดูล APK สำหรับทดสอบ แยกต่างหากเพื่อสร้าง APK สำหรับทดสอบใน Android Studio
- อัปเดต AVD Manager ด้วยการเพิ่มประสิทธิภาพ HAXM และการแจ้งเตือนที่ได้รับการปรับปรุง
- เพิ่มการรองรับโปรแกรมจำลอง ARM และ MIPS 64 บิตสำหรับ QEMU 2.1
- ลดความซับซ้อนในการแก้ไขคำเตือนของ Lint ด้วยการเพิ่มการแก้ไขด่วน เช่น การสร้างการติดตั้งใช้งาน Parcelable โดยอัตโนมัติ
- เพิ่มเทมเพลตสด รองรับการแทรกข้อมูลโค้ดอย่างรวดเร็ว
Android Studio v1.2.2(มิถุนายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขปัญหาการสร้างที่ทำให้การสร้างไม่เสร็จสมบูรณ์
Android Studio v1.2.1 (พฤษภาคม 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- แก้ไขปัญหาเล็กๆ น้อยๆ เกี่ยวกับประสิทธิภาพและฟีเจอร์
Android Studio v1.2.0 (เมษายน 2015)
การแก้ไขและการเพิ่มประสิทธิภาพ
- อัปเดตหน้าต่างรันไทม์ของ Android ให้มีเครื่องมือเครื่องมือตรวจสอบหน่วยความจำ และเพิ่มแท็บ สำหรับการตรวจสอบประสิทธิภาพ CPU
- เพิ่มแท็บการจับภาพในขอบด้านซ้ายเพื่อแสดง ไฟล์ข้อมูลประสิทธิภาพของหน่วยความจำและ CPU ที่จับภาพ เช่น การติดตามเมธอดของ CPU และสแนปชอตฮีปของหน่วยความจำ
- การรองรับคำอธิบายประกอบ แบบขยายพร้อมคำอธิบายประกอบข้อมูลเมตาเพิ่มเติมและความสามารถในการอนุมานค่า Null
- ปรับปรุงเครื่องมือแก้ไขการแปลโดยเพิ่มการรองรับ Best Current Practice (BCP) 47 ซึ่งใช้รหัสภาษาและภูมิภาคแบบ 3 ตัวอักษร
- ฟีเจอร์ IntelliJ 14 และ 14.1 ที่ผสานรวมเพื่อการวิเคราะห์โค้ดและ ประสิทธิภาพที่ดียิ่งขึ้น
-
- การแก้ไขข้อบกพร่องที่ได้รับการปรับปรุงเพื่อแสดงค่าในบรรทัดสำหรับตัวแปรและ ออบเจ็กต์อ้างอิง รวมถึงทำการประเมินในบรรทัดของนิพจน์แลมบ์ดาและ โอเปอเรเตอร์
- เพิ่มการตรวจหารูปแบบโค้ดสำหรับขนาดแท็บและการเยื้อง
- เพิ่มไฟล์ชั่วคราวสำหรับการทดลองโค้ดและการสร้างต้นแบบโดยไม่ต้องมีไฟล์โปรเจ็กต์
- เพิ่มการแทรกแท็กเปิดและปิดพร้อมกันในไฟล์ HTML และ XML
- เพิ่มเครื่องแยกโค้ด Java ในตัวเพื่อให้คุณดูสิ่งที่อยู่ภายในไลบรารีที่ไม่มีซอร์สโค้ดได้
ดูคำอธิบายทั้งหมดของฟีเจอร์ใหม่และการปรับปรุงได้ที่มีอะไรใหม่ใน IntelliJ
- เพิ่มมุมมองโปรเจ็กต์เพิ่มเติมสำหรับ รอยขีดเขียน ไฟล์โปรเจ็กต์ ปัญหา การผลิต และการทดสอบเพื่อปรับปรุงการจัดการโปรเจ็กต์และ การเข้าถึง
- ปรับปรุงเมนูและกล่องโต้ตอบไฟล์ > การตั้งค่าเพื่อ ปรับปรุงการเข้าถึงและการจัดการการตั้งค่า
- เพิ่มการรองรับจอแสดงผลความหนาแน่นสูงสำหรับ 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 ชื่อทรัพยากร และปัญหาโค้ดอื่นๆ ที่พบบ่อย
- เพิ่มการรองรับแท็กภาษา Best Current Practice (BCP) 47
Android Studio v1.0.1 (ธันวาคม 2014)
การแก้ไขและการปรับปรุงต่างๆ
- แก้ไขปัญหาการล็อกไฟล์ AVD Manager และ device.xml
- แก้ไขบันทึกของโปรแกรมจำลองในระบบ Windows
- แก้ไขปัญหาการสร้าง AVD ด้วย Android Studio และ Android SDK ที่ติดตั้งในไดรฟ์ต่างๆ ในระบบ Windows
- ตั้งค่าช่องการอัปเดตเริ่มต้นสำหรับการดาวน์โหลดใหม่เป็นเสถียร หากคุณ ติดตั้ง Android Studio เวอร์ชัน 1.0.0 และต้องการอัปเดตเวอร์ชันที่เสถียรและพร้อมใช้งานจริง ให้ไปที่ไฟล์ > การตั้งค่า > การอัปเดตเพื่อเปลี่ยนเป็นช่องอัปเดตเสถียร
Android Studio v1.0 (ธันวาคม 2014)
การเปิดตัว Android Studio ครั้งแรก
Android Studio v0.8.14 (ตุลาคม 2014)
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.8.6 (สิงหาคม 2014)
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.8.0 (มิถุนายน 2014)
เพิ่มการรองรับโปรเจ็กต์ Android Wear
ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.5.2 (พฤษภาคม 2014)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.4.6 (มีนาคม 2014)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.4.2 (ม.ค. 2014)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.3.2 (ต.ค. 2013)
- ดูรายการการเปลี่ยนแปลงทั้งหมดได้ที่ tools.android.com
Android Studio v0.2.x (กรกฎาคม 2013)
- ผสานรวมในการเปลี่ยนแปลงฐานโค้ด IntelliJ ล่าสุด รวมการแก้ไขปัญหาที่ผู้ใช้ Studio รายงาน เช่น การปรับขนาดแบบอักษรและการแสดงผลแบบอักษรใน Linux
- อัปเดตปลั๊กอิน Android Gradle เป็น 0.5.0
ข้อควรระวัง: เวอร์ชันใหม่นี้ไม่สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้ เมื่อเปิดโปรเจ็กต์ที่ใช้ปลั๊กอินเวอร์ชันเก่ากว่า Studio จะแสดงข้อผิดพลาด ที่ระบุว่ารีเฟรชโปรเจ็กต์ Gradle <project_name> ไม่สำเร็จ
ปลั๊กอิน Gradle ที่อัปเดตแล้วมีการเปลี่ยนแปลงต่อไปนี้
- แก้ไขโมเดล IDE ให้มีไฟล์เอาต์พุตแม้ว่าจะมีการปรับแต่งผ่าน DSL นอกจากนี้
ยังแก้ไข DSL เพื่อรับ/ตั้งค่าไฟล์เอาต์พุตในออบเจ็กต์ตัวแปรเพื่อให้ไม่จำเป็นต้อง
ใช้
variant.packageApplication or variant.zipAlign
- แก้ไขการแก้ปัญหาการขึ้นต่อกันเพื่อให้เราแก้ปัญหาการรวมกันของ (การกำหนดค่าเริ่มต้น ประเภทบิลด์ รสชาติ) ด้วยกันแทนที่จะแยกกัน
- แก้ไขทรัพยากร Dependency สำหรับการทดสอบโปรเจ็กต์ไลบรารีเพื่อให้รวมทรัพยากร Dependency ทั้งหมดของไลบรารีได้อย่างถูกต้อง
- แก้ไขกรณีที่การอ้างอิง 2 รายการมีชื่อใบเดียวกัน
- แก้ไขปัญหาที่ใช้ไฟล์กฎ Proguard กับ Flavor ไม่ได้
ดูหมายเหตุประจำรุ่นของปลั๊กอิน Gradle ทั้งหมดได้ที่ http://tools.android.com/tech-docs/new-build-system
- แก้ไขโมเดล IDE ให้มีไฟล์เอาต์พุตแม้ว่าจะมีการปรับแต่งผ่าน DSL นอกจากนี้
ยังแก้ไข DSL เพื่อรับ/ตั้งค่าไฟล์เอาต์พุตในออบเจ็กต์ตัวแปรเพื่อให้ไม่จำเป็นต้อง
ใช้
- ข้อผิดพลาดของ Gradle จาก aapt จะไม่ชี้ไปยังไฟล์เอาต์พุตที่ผสานในโฟลเดอร์ build/ อีกต่อไป แต่จะชี้กลับไปยังตำแหน่งแหล่งที่มาจริง แทน
- การสร้างแบบคู่ขนาน ตอนนี้คุณใช้การสร้างแบบขนานของ Gradle ได้แล้ว โปรดทราบว่า การสร้างแบบขนานอยู่ในระยะ "ฟักตัว" (ดูเอกสารประกอบของ Gradle) ฟีเจอร์นี้ปิดอยู่โดยค่าเริ่มต้น หากต้องการเปิดใช้ ให้ไปที่ ค่ากำหนด > คอมไพเลอร์ แล้วเลือกช่องคอมไพล์ โมดูลอิสระแบบคู่ขนาน
- การทำงานเพิ่มเติมในที่เก็บทรัพยากรใหม่ที่ใช้สำหรับการแสดงเลย์เอาต์ ทรัพยากร
การพับในเอดิเตอร์ และอื่นๆ
- การสนับสนุนพื้นฐานสำหรับการอ้างอิงไลบรารี .aar (เช่น การใช้ไลบรารีโดยไม่มีสำเนาแหล่งที่มาในเครื่อง) ยังใช้ไม่ได้สำหรับการตรวจสอบ XML ของทรัพยากรและการนำทางในเครื่องมือแก้ไขแหล่งที่มา
- การตรวจจับวงจรในการอ้างอิงทรัพยากร
- ตอนนี้เอกสารฉบับย่อ (F1) ซึ่งแสดงคำแปลทั้งหมดของสตริงภายใต้เครื่องหมายแคร์เร็ต จะแสดงการวางซ้อนทรัพยากรทั้งหมดจาก Gradle Flavor และประเภทบิลด์ต่างๆ รวมถึง ไลบรารีด้วย โดยจะแสดงตามลำดับการซ้อนทับของทรัพยากรย้อนกลับ พร้อมขีดทับบน สตริงเวอร์ชันที่มาสก์
- แก้ไขเพื่อจัดการการอัปเดตทรัพยากรที่ผสานเมื่อชุดการอ้างอิงของโมดูล มีการเปลี่ยนแปลง
- แก้ไขการแสดงผล XML เพื่อจัดการประกาศเอนทิตีอักขระและการหลีก XML และ Unicode อย่างถูกต้อง
- บันทึกการรองรับภาพหน้าจอสำหรับหน้าต่างแสดงตัวอย่างเลย์เอาต์และเครื่องมือแก้ไขเลย์เอาต์
- การแก้ไขข้อบกพร่องของเทมเพลต
- การแก้ไขข้อบกพร่องของ Lint
- การแก้ไขต่างๆ สำหรับรายงานข้อขัดข้อง ขอขอบคุณ และโปรดส่งรายงานข้อขัดข้องต่อไป
Android Studio v0.1.x (พฤษภาคม 2013)
- แก้ไขข้อบกพร่องต่างๆ รวมถึงการแก้ไขปัญหาการติดตั้ง Windows ที่พบบ่อย
Android Gradle Plugin เวอร์ชันเก่า
3.6.0 (กุมภาพันธ์ 2020)
ปลั๊กอิน Android เวอร์ชันนี้กำหนดให้ต้องมีสิ่งต่อไปนี้
-
Gradle 5.6.4 ดูข้อมูลเพิ่มเติมได้ที่ส่วนเกี่ยวกับการอัปเดต Gradle
-
เครื่องมือสร้าง SDK 28.0.3 ขึ้นไป
การอัปเดตเล็กน้อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นและฟีเจอร์ใหม่สำหรับ ระดับการเข้าถึงแพ็กเกจ ใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
ฟีเจอร์ใหม่
ปลั๊กอิน Android Gradle เวอร์ชันนี้มีฟีเจอร์ใหม่ต่อไปนี้
การเชื่อมโยงมุมมอง
View Binding ช่วยให้มั่นใจได้ถึงความปลอดภัยขณะคอมไพล์เมื่ออ้างอิงมุมมองใน
โค้ด ตอนนี้คุณสามารถแทนที่ findViewById()
ด้วย
การอ้างอิงคลาสการเชื่อมโยงที่สร้างขึ้นโดยอัตโนมัติ หากต้องการเริ่มใช้ View Binding
ให้รวมรายการต่อไปนี้ในไฟล์ build.gradle
ของแต่ละโมดูล
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับการเชื่อมโยง มุมมอง
การรองรับปลั๊กอิน Maven Publish
ปลั๊กอิน Android Gradle รองรับ Maven Publish Gradle plugin ซึ่งช่วยให้คุณเผยแพร่ชิ้นงานบิลด์ไปยัง ที่เก็บ Apache Maven ได้ ปลั๊กอิน Android Gradle จะสร้าง คอมโพเนนต์ สําหรับอาร์ติแฟกต์ตัวแปรบิลด์แต่ละรายการในแอปหรือโมดูลไลบรารีที่คุณใช้ เพื่อปรับแต่งการเผยแพร่ ไปยังที่เก็บ Maven ได้
ดูข้อมูลเพิ่มเติมได้ที่หน้าเกี่ยวกับวิธี ใช้ปลั๊กอิน Maven Publish
เครื่องมือการสร้างแพ็กเกจเริ่มต้นแบบใหม่
เมื่อสร้างแอปเวอร์ชันแก้ไขข้อบกพร่อง ปลั๊กอินจะใช้เครื่องมือการแพ็กเกจใหม่ที่เรียกว่า zipflinger เพื่อสร้าง APK เครื่องมือใหม่นี้
จะช่วยปรับปรุงความเร็วในการสร้าง หากเครื่องมือการแพ็กเกจใหม่
ไม่ทำงานตามที่คาดไว้
โปรดรายงานข้อบกพร่อง คุณสามารถกลับไปใช้เครื่องมือการจัดแพ็กเกจแบบเดิมได้โดยระบุข้อมูลต่อไปนี้ในไฟล์ gradle.properties
android.useNewApkCreator=false
การระบุแหล่งที่มาของการสร้างเนทีฟ
ตอนนี้คุณสามารถกำหนดระยะเวลาที่ Clang ใช้ในการสร้างและ ลิงก์ไฟล์ C/C++ แต่ละไฟล์ในโปรเจ็กต์ได้แล้ว Gradle สามารถแสดงผลการติดตามของ Chrome ซึ่งมีแสตมป์เวลาสำหรับเหตุการณ์คอมไพเลอร์เหล่านี้เพื่อให้คุณเข้าใจ เวลาที่ต้องใช้ในการสร้างโปรเจ็กต์ได้ดียิ่งขึ้น หากต้องการส่งออกไฟล์การระบุแหล่งที่มาของบิลด์นี้ ให้ทำดังนี้
-
เพิ่มแฟล็ก
-Pandroid.enableProfileJson=true
เมื่อ เรียกใช้การสร้าง Gradle เช่นgradlew assembleDebug -Pandroid.enableProfileJson=true
-
เปิดเบราว์เซอร์ Chrome แล้วพิมพ์
chrome://tracing
ใน แถบค้นหา -
คลิกปุ่มโหลด แล้วไปที่
<var>project-root</var>/build/android-profile
เพื่อค้นหาไฟล์ ไฟล์มีชื่อว่าprofile-<var>timestamp</var>.json.gz
คุณดูข้อมูลการระบุแหล่งที่มาของการสร้างเนทีฟได้ที่บริเวณด้านบนของ โปรแกรมดู
การเปลี่ยนแปลงลักษณะการทำงาน
เมื่อใช้ปลั๊กอินเวอร์ชันนี้ คุณอาจพบการเปลี่ยนแปลงลักษณะการทำงานต่อไปนี้
ไลบรารีที่มาพร้อมเครื่องที่แพ็กเกจโดยไม่ได้บีบอัด โดยค่าเริ่มต้น
เมื่อคุณสร้างแอป ปลั๊กอินจะตั้งค่า
extractNativeLibs
เป็น "false"
โดย
ค่าเริ่มต้น กล่าวคือ ไลบรารีแบบเนทีฟของคุณจะได้รับการจัดแนวหน้าและแพ็กเกจ
โดยไม่บีบอัด แม้ว่าการดำเนินการนี้จะทำให้ขนาดการอัปโหลดใหญ่ขึ้น แต่ผู้ใช้จะได้รับประโยชน์ดังนี้
- ขนาดการติดตั้งแอปเล็กลงเนื่องจากแพลตฟอร์มเข้าถึงไลบรารีเนทีฟได้โดยตรงจาก APK ที่ติดตั้งโดยไม่ต้องสร้างสำเนาของไลบรารี
- ขนาดการดาวน์โหลดเล็กลงเนื่องจากการบีบอัดของ Play Store มักจะดีกว่าเมื่อคุณรวมไลบรารีแบบเนทีฟที่ไม่ได้บีบอัดไว้ใน APK หรือ Android App Bundle
หากต้องการให้ปลั๊กอิน Android Gradle แพ็กเกจไลบรารีแบบเนทีฟที่บีบอัดแทน ให้ใส่ข้อมูลต่อไปนี้ในไฟล์ Manifest ของแอป
<application
android:extractNativeLibs="true"
... >
</application>
หมายเหตุ: ระบบได้แทนที่แอตทริบิวต์ extractNativeLibs
manifest
ด้วยตัวเลือก useLegacyPackaging
DSL
แล้ว ดูข้อมูลเพิ่มเติมได้ที่บันทึกประจำรุ่น
ใช้ DSL เพื่อแพ็กเกจไลบรารี
เนทีฟที่บีบอัด
เวอร์ชัน NDK เริ่มต้น
หากคุณดาวน์โหลด NDK หลายเวอร์ชัน ตอนนี้ Android Gradle Plugin
จะเลือกเวอร์ชันเริ่มต้นที่จะใช้ในการคอมไพล์ไฟล์ซอร์สโค้ด
ก่อนหน้านี้ ปลั๊กอินจะเลือก NDK เวอร์ชันล่าสุดที่ดาวน์โหลด
ใช้พร็อพเพอร์ตี้ android.ndkVersion
ในไฟล์ build.gradle
ของโมดูลเพื่อลบล้างค่าเริ่มต้นที่ปลั๊กอินเลือก
การสร้างคลาส R ที่ง่ายขึ้น
ปลั๊กอิน Android Gradle ช่วยลดความซับซ้อนของ classpath ในการคอมไพล์โดย สร้างคลาส R เพียงคลาสเดียวสำหรับแต่ละโมดูลไลบรารีในโปรเจ็กต์ และ แชร์คลาส R เหล่านั้นกับทรัพยากร Dependency ของโมดูลอื่นๆ การเพิ่มประสิทธิภาพนี้ ควรทำให้สร้างได้เร็วขึ้น แต่คุณต้องคำนึงถึงสิ่งต่อไปนี้
- เนื่องจากคอมไพเลอร์แชร์คลาส R กับโมดูลต้นทาง การขึ้นต่อกัน จึงเป็นสิ่งสำคัญที่แต่ละโมดูลในโปรเจ็กต์ของคุณต้องใช้ ชื่อแพ็กเกจที่ไม่ซ้ำกัน
- ระดับการเข้าถึงคลาส R ของไลบรารีสำหรับทรัพยากร Dependency อื่นๆ ของโปรเจ็กต์
จะกำหนดโดยการกำหนดค่าที่ใช้เพื่อรวมไลบรารีเป็น
ทรัพยากร Dependency ตัวอย่างเช่น หากไลบรารี A มีไลบรารี B เป็นการขึ้นต่อกันแบบ "api"
ไลบรารี A และไลบรารีอื่นๆ ที่ขึ้นต่อกันกับไลบรารี A จะมีสิทธิ์เข้าถึงคลาส R ของไลบรารี B อย่างไรก็ตาม ไลบรารีอื่นๆ อาจไม่มีสิทธิ์เข้าถึงคลาส R ของไลบรารี B หากไลบรารี A ใช้
implementation
การกำหนดค่าการขึ้นต่อกัน ดูข้อมูลเพิ่มเติมได้ที่ส่วนการกำหนดค่า การขึ้นต่อกัน
นำทรัพยากรที่ขาดหายไปจากการกำหนดค่าเริ่มต้นออก configuration
สำหรับโมดูลไลบรารี หากคุณรวมทรัพยากรสำหรับภาษาที่ไม่ได้รวมไว้ในชุดทรัพยากรเริ่มต้น เช่น หากคุณรวม hello_world
เป็นทรัพยากรสตริงใน /values-es/strings.xml
แต่ไม่ได้กำหนดทรัพยากรนั้นใน /values/strings.xml
ปลั๊กอิน Android Gradle จะไม่รวมทรัพยากรดังกล่าวอีกต่อไปเมื่อคอมไพล์โปรเจ็กต์ การเปลี่ยนแปลงลักษณะการทำงานนี้
จะช่วยลดResource Not Found
ข้อยกเว้นขณะรันไทม์
และเพิ่มความเร็วในการบิลด์
ตอนนี้ D8 จะปฏิบัติตามนโยบายการเก็บรักษา CLASS สำหรับคำอธิบายประกอบแล้ว
เมื่อคอมไพล์แอป D8 จะพิจารณาเมื่อมีการใช้คำอธิบายประกอบนโยบายการเก็บรักษา CLASS และคำอธิบายประกอบเหล่านั้นจะไม่มีให้ใช้งานอีกต่อไปในเวลา รันไทม์ ลักษณะการทำงานนี้จะเกิดขึ้นเมื่อตั้งค่า SDK เป้าหมายของแอปเป็น API ระดับ 23 ซึ่งก่อนหน้านี้อนุญาตให้เข้าถึงคำอธิบายประกอบเหล่านี้ในระหว่าง รันไทม์เมื่อคอมไพล์แอปโดยใช้ Android Gradle Plugin และ D8 เวอร์ชันเก่า
การเปลี่ยนแปลงลักษณะการทำงานอื่นๆ
-
aaptOptions.noCompress
ไม่พิจารณาตัวพิมพ์เล็กและใหญ่ในทุกแพลตฟอร์ม (ทั้งสำหรับ APK และ Bundle) และจะใช้เส้นทางที่ใช้อักขระตัวพิมพ์ใหญ่ -
ตอนนี้การเชื่อมโยงข้อมูลจะเพิ่มขึ้นทีละรายการโดยค่าเริ่มต้น ดูข้อมูลเพิ่มเติมได้ที่ ปัญหา #110061530
-
ตอนนี้ Unit Test ทั้งหมด รวมถึง Unit Test ของ 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 โดยปกติแล้วปลั๊กอิน Android
Gradle จะสร้างคลาส 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 และมีการแก้ไขข้อบกพร่อง ต่างๆ รวมถึงการปรับปรุงประสิทธิภาพ หากต้องการดูรายการการแก้ไขข้อบกพร่องที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเปิดตัว
การประมวลผลคำอธิบายประกอบแบบเพิ่ม
โปรเซสเซอร์คำอธิบายประกอบของ Data Binding
รองรับ
การประมวลผลคำอธิบายประกอบแบบเพิ่มทีละรายการ
หากคุณตั้งค่า 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 ขึ้นไป ขนาดฮีปหน่วยความจำของ Gradle Daemon เริ่มต้นจะลดลงจาก 1 GB เป็น 512 MB ซึ่งอาจส่งผลให้ประสิทธิภาพการสร้างถดถอย ลง หากต้องการลบล้างการตั้งค่าเริ่มต้นนี้ ระบุขนาดฮีปของ Gradle Daemon ในไฟล์
gradle.properties
ของโปรเจ็กต์ -
เครื่องมือสร้าง SDK 28.0.3 ขึ้นไป
การอัปเดตเล็กน้อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นและฟีเจอร์ใหม่สำหรับ ระดับการเข้าถึงแพ็กเกจ ใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
3.4.2 (กรกฎาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.4.2 และมีการแก้ไขข้อบกพร่อง ต่างๆ รวมถึงการปรับปรุงประสิทธิภาพ หากต้องการดูรายการการแก้ไขข้อบกพร่องที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเปิดตัว
3.4.1 (พฤษภาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.4.1 และมีการแก้ไขข้อบกพร่อง ต่างๆ รวมถึงการปรับปรุงประสิทธิภาพ หากต้องการดูรายการการแก้ไขข้อบกพร่องที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเปิดตัว
ฟีเจอร์ใหม่
-
การกำหนดค่าการขึ้นต่อกันของการตรวจสอบ Lint ใหม่: ลักษณะการทำงานของ
lintChecks
เปลี่ยนไปแล้ว และมีการกำหนดค่าการขึ้นต่อกันใหม่lintPublish
เพื่อให้คุณควบคุมได้มากขึ้นว่าการตรวจสอบ Lint ใดที่รวมอยู่ในไลบรารี Android-
lintChecks
: นี่คือการกำหนดค่าที่มีอยู่ซึ่ง คุณควรใช้สำหรับการตรวจสอบ Lint ที่ต้องการเรียกใช้เฉพาะเมื่อสร้าง โปรเจ็กต์ในเครื่อง หากก่อนหน้านี้คุณใช้การกำหนดค่าการขึ้นต่อกันของlintChecks
เพื่อรวมการตรวจสอบ Lint ไว้ใน AAR ที่เผยแพร่ คุณจะต้องย้ายข้อมูลการขึ้นต่อกันเหล่านั้นไปใช้การกำหนดค่าlintPublish
ใหม่แทนตามที่อธิบายไว้ด้านล่าง -
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")) }
-
โดยทั่วไปแล้ว งานการแพ็กเกจและการลงนามควรมีการปรับปรุงความเร็วในการบิลด์โดยรวม หากพบว่าประสิทธิภาพลดลงเนื่องจาก งานเหล่านี้ โปรดรายงานข้อบกพร่อง
-
การเปลี่ยนแปลงลักษณะการทำงาน
-
การเลิกใช้งานปลั๊กอินฟีเจอร์ของ Android Instant Apps คำเตือน: หากคุณยังใช้ปลั๊กอิน
com.android.feature
เพื่อสร้าง Instant App ปลั๊กอิน Android Gradle 3.4.0 จะแสดงคำเตือนการเลิกใช้งาน หากต้องการให้มั่นใจว่าคุณจะยังสร้างแอป Instant ในปลั๊กอินเวอร์ชันต่อๆ ไปได้ ให้ย้ายข้อมูลแอป Instant ไปใช้ปลั๊กอินฟีเจอร์แบบไดนามิก ซึ่งจะช่วยให้คุณเผยแพร่ทั้งประสบการณ์การใช้งานแอปที่ติดตั้งและแอป Instant จาก Android App Bundle เดียวได้ด้วย -
เปิดใช้ R8 โดยค่าเริ่มต้น: R8 ผสานรวมการยกเลิกการน้ำตาล การลดขนาด การปกปิด การเพิ่มประสิทธิภาพ และการแปลงเป็น DEX ทั้งหมดในขั้นตอนเดียว ซึ่งส่งผลให้ประสิทธิภาพการบิลด์ดีขึ้นอย่างเห็นได้ชัด R8 เปิดตัวในปลั๊กอิน Android Gradle 3.3.0 และ ตอนนี้เปิดใช้โดยค่าเริ่มต้นสำหรับทั้งโปรเจ็กต์แอปและไลบรารี Android ที่ใช้ปลั๊กอิน 3.4.0 ขึ้นไป
รูปภาพด้านล่างแสดงภาพรวมระดับสูงของกระบวนการคอมไพล์ ก่อนที่จะมีการเปิดตัว R8

ตอนนี้ R8 จะดำเนินการ Desugaring, Shrinking, Obfuscating, การเพิ่มประสิทธิภาพ และ Dexing (D8) ในขั้นตอนเดียว ดังที่แสดงด้านล่าง

โปรดทราบว่า R8 ออกแบบมาให้ทำงานร่วมกับกฎ ProGuard ที่มีอยู่แล้ว ดังนั้น คุณจึงไม่จำเป็นต้องดำเนินการใดๆ เพื่อรับประโยชน์จาก R8 อย่างไรก็ตาม เนื่องจากเป็นเทคโนโลยีที่แตกต่างจาก ProGuard ซึ่งออกแบบมาสำหรับโปรเจ็กต์ Android โดยเฉพาะ การลดขนาดและการเพิ่มประสิทธิภาพอาจส่งผลให้มีการนำโค้ดที่ ProGuard อาจไม่ได้นำออก ดังนั้น ในกรณีที่ไม่น่าจะเกิดขึ้นนี้ คุณอาจต้อง เพิ่มกฎเพิ่มเติมเพื่อให้โค้ดนั้นอยู่ในเอาต์พุตบิลด์
หากพบปัญหาในการใช้ R8 โปรดอ่านคำถามที่พบบ่อยเกี่ยวกับความเข้ากันได้ของ R8
เพื่อดูว่ามีวิธีแก้ปัญหาของคุณหรือไม่ หากไม่มีการบันทึกโซลูชัน
โปรดรายงานข้อบกพร่อง
คุณปิดใช้ R8 ได้โดยเพิ่มบรรทัดต่อไปนี้บรรทัดใดบรรทัดหนึ่งลงใน
ไฟล์ gradle.properties
ของโปรเจ็กต์
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
หมายเหตุ: สำหรับประเภทบิลด์ที่กำหนด หากคุณตั้งค่า
useProguard
เป็น false
ในไฟล์ build.gradle
ของโมดูลแอป
ปลั๊กอิน Android Gradle จะใช้ R8
เพื่อลดขนาดโค้ดของแอปสำหรับประเภทบิลด์นั้น ไม่ว่าคุณจะ
ปิดใช้ R8 ในไฟล์ gradle.properties
ของโปรเจ็กต์หรือไม่ก็ตาม
-
ndkCompile
เลิกใช้งานแล้ว: ตอนนี้คุณจะได้รับข้อผิดพลาดในการสร้างหากพยายามใช้ndkBuild
เพื่อคอมไพล์ไลบรารีแบบเนทีฟ คุณควรใช้ CMake หรือ ndk-build แทนเพื่อเพิ่มโค้ด C และ C++ ลงในโปรเจ็กต์
ปัญหาที่ทราบ
-
ปัจจุบันเรายังไม่ได้บังคับใช้การใช้ชื่อแพ็กเกจที่ไม่ซ้ำกันอย่างถูกต้อง แต่จะเข้มงวดมากขึ้นในปลั๊กอินเวอร์ชันต่อๆ ไป ในปลั๊กอิน Gradle เวอร์ชัน 3.4.0 ของ Android คุณเลือกใช้เพื่อตรวจสอบว่าโปรเจ็กต์ประกาศชื่อแพ็กเกจที่ยอมรับได้หรือไม่โดยเพิ่มบรรทัดด้านล่างลงในไฟล์
gradle.properties
android.uniquePackageNames = true
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าชื่อแพ็กเกจผ่านปลั๊กอิน Android Gradle ได้ที่ ตั้งค่ารหัสแอปพลิเคชัน
3.3.0 (มกราคม 2019)
ปลั๊กอิน Android เวอร์ชันนี้กำหนดให้ต้องมีสิ่งต่อไปนี้
-
Gradle 4.10.1 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่ส่วนเกี่ยวกับ การอัปเดต Gradle
หมายเหตุ: เมื่อใช้ Gradle 5.0 ขึ้นไป ขนาดฮีปหน่วยความจำของดีมอน Gradle เริ่มต้นจะลดลงจาก 1 GB เป็น 512 MB ซึ่ง อาจส่งผลให้ประสิทธิภาพการสร้างถดถอย หากต้องการลบล้างการตั้งค่าเริ่มต้นนี้ ให้ระบุ ขนาดฮีปของ Gradle Daemon ในไฟล์
gradle.properties
ของโปรเจ็กต์ -
เครื่องมือสร้าง SDK 28.0.3 ขึ้นไป
การอัปเดตเล็กน้อยนี้รองรับความเข้ากันได้กับการตั้งค่าเริ่มต้นและฟีเจอร์ใหม่สำหรับ ระดับการเข้าถึงแพ็กเกจ ใน Android 11
ดูรายละเอียดได้ที่บันทึกประจำรุ่น 4.0.1
3.3.2 (มีนาคม 2019)
การอัปเดตเล็กน้อยนี้รองรับ Android Studio 3.3.2 และมีการแก้ไขข้อบกพร่อง ต่างๆ รวมถึงการปรับปรุงประสิทธิภาพ หากต้องการดูรายการการแก้ไขข้อบกพร่องที่สำคัญ โปรดอ่านโพสต์ที่เกี่ยวข้องใน บล็อกการอัปเดตการเปิดตัว
3.3.1 (กุมภาพันธ์ 2019)
การอัปเดตย่อยนี้รองรับ Android Studio 3.3.1 และมีการแก้ไขข้อบกพร่อง ต่างๆ รวมถึงการปรับปรุงประสิทธิภาพ
ฟีเจอร์ใหม่
-
การซิงโครไนซ์ Classpath ที่ได้รับการปรับปรุง: เมื่อแก้ไข Dependency ใน Classpath ของรันไทม์และเวลาคอมไพล์ ปลั๊กอิน Android Gradle จะพยายามแก้ไขข้อขัดแย้งของเวอร์ชันดาวน์สตรีมบางอย่างสำหรับ Dependency ที่ปรากฏใน Classpath หลายรายการ
เช่น หาก classpath ของรันไทม์มีไลบรารี A เวอร์ชัน 2.0 และ classpath ของการคอมไพล์มีไลบรารี A เวอร์ชัน 1.0 ปลั๊กอินจะอัปเดต ทรัพยากร Dependency ใน classpath ของการคอมไพล์เป็นไลบรารี A เวอร์ชัน 2.0 โดยอัตโนมัติ เพื่อหลีกเลี่ยงข้อผิดพลาด
อย่างไรก็ตาม หาก classpath ของรันไทม์มีไลบรารี A เวอร์ชัน 1.0 และ การคอมไพล์มีไลบรารี A เวอร์ชัน 2.0 ปลั๊กอินจะไม่ลดเวอร์ชัน ทรัพยากร Dependency ใน classpath ของการคอมไพล์เป็นไลบรารี A เวอร์ชัน 1.0 และคุณจะได้รับ ข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่ แก้ไขความขัดแย้ง ระหว่างเส้นทางของคลาส
-
การคอมไพล์ Java แบบเพิ่มขึ้นที่ปรับปรุงแล้วเมื่อใช้ตัวประมวลผลคำอธิบายประกอบ: การอัปเดตนี้จะลดเวลาในการสร้างโดยการปรับปรุงการรองรับการคอมไพล์ Java แบบเพิ่มขึ้น เมื่อใช้ตัวประมวลผลคำอธิบายประกอบ
หมายเหตุ: ฟีเจอร์นี้ใช้ได้กับ Gradle 4.10.1 ขึ้นไป ยกเว้น Gradle 5.1 เนื่องจากปัญหา Gradle หมายเลข 8194
-
สำหรับโปรเจ็กต์ที่ใช้ Kapt (โปรเจ็กต์ Kotlin เท่านั้นส่วนใหญ่และ โปรเจ็กต์ไฮบริด Kotlin-Java): การคอมไพล์ Java แบบเพิ่มจะเปิดใช้ แม้ว่าคุณจะใช้ Data Binding หรือปลั๊กอิน Retro-Lambda ก็ตาม การประมวลผลคำอธิบายประกอบโดยงาน Kapt ยังไม่เพิ่มขึ้น
-
สำหรับโปรเจ็กต์ที่ไม่ได้ใช้ Kapt (โปรเจ็กต์ Java เท่านั้น): หาก Annotation Processor ที่คุณใช้รองรับ การประมวลผลคำอธิบายประกอบแบบเพิ่มทีละรายการ ระบบจะเปิดใช้การคอมไพล์ Java แบบเพิ่มทีละรายการโดยค่าเริ่มต้น หากต้องการติดตามการใช้งานตัวประมวลผลคำอธิบายประกอบแบบเพิ่ม โปรดดูปัญหา Gradle 5277
อย่างไรก็ตาม หากตัวประมวลผลคำอธิบายประกอบอย่างน้อย 1 รายการไม่รองรับการสร้างที่เพิ่มขึ้น ระบบจะไม่เปิดใช้การคอมไพล์ Java ที่เพิ่มขึ้น แต่คุณสามารถ ใส่แฟล็กต่อไปนี้ในไฟล์
gradle.properties
แทนได้android.enableSeparateAnnotationProcessing=true
เมื่อใส่แฟล็กนี้ ปลั๊กอิน Android Gradle จะเรียกใช้ ตัวประมวลผลคำอธิบายประกอบในงานแยกต่างหาก และอนุญาตให้งานการคอมไพล์ Java ทำงานแบบเพิ่มขึ้นได้
-
-
ข้อมูลการแก้ไขข้อบกพร่องที่ดีขึ้นเมื่อใช้ API ที่เลิกใช้งานแล้ว: เมื่อปลั๊กอินตรวจพบว่าคุณกำลังใช้ API ที่ระบบไม่รองรับอีกต่อไป ตอนนี้ปลั๊กอินจะให้ข้อมูลที่ละเอียดยิ่งขึ้นเพื่อช่วยคุณระบุตำแหน่งที่ใช้ API นั้น หากต้องการดูข้อมูลเพิ่มเติม คุณต้องรวมข้อมูลต่อไปนี้ไว้ในไฟล์
gradle.properties
ของโปรเจ็กต์android.debug.obsoleteApi=true
นอกจากนี้ คุณยังเปิดใช้ฟีเจอร์นี้ได้โดยส่ง
-Pandroid.debug.obsoleteApi=true
จากบรรทัดคำสั่ง -
คุณสามารถเรียกใช้การทดสอบเครื่องมือในโมดูลฟีเจอร์จากบรรทัดคำสั่งได้
การเปลี่ยนแปลงลักษณะการทำงาน
-
การกำหนดค่างานแบบเลื่อนเวลา: ตอนนี้ปลั๊กอินใช้ API การสร้างงานใหม่ของ Gradle เพื่อหลีกเลี่ยงการเริ่มต้นและกำหนดค่างานที่ไม่จำเป็นต่อการสร้างปัจจุบัน (หรืองานที่ไม่ได้อยู่ในกราฟงานการดำเนินการ) ตัวอย่างเช่น หาก คุณมีตัวแปรบิลด์หลายรายการ เช่น ตัวแปรบิลด์ "รีลีส" และ "ดีบัก" และคุณกำลังสร้างแอปเวอร์ชัน "ดีบัก" ปลั๊กอินจะ หลีกเลี่ยงการเริ่มต้นและกำหนดค่าสำหรับแอปเวอร์ชัน "รีลีส"
การเรียกใช้เมธอดรุ่นเก่าบางรายการใน Variants API เช่น
variant.getJavaCompile()
อาจยังคงบังคับการกำหนดค่าของงาน หากต้องการตรวจสอบว่า บิลด์ได้รับการเพิ่มประสิทธิภาพสำหรับการกำหนดค่างานแบบเลซี ให้เรียกใช้เมธอดใหม่ ซึ่งจะแสดงผลออบเจ็กต์ TaskProvider แทน เช่นvariant.getJavaCompileProvider()
หากคุณเรียกใช้งานบิลด์ที่กำหนดเอง โปรดดูวิธี ปรับให้เข้ากับ API การสร้างงานใหม่ของ Gradle
-
สำหรับประเภทบิลด์ที่กำหนด เมื่อตั้งค่า
useProguard false
ปลั๊กอินจะใช้ R8 แทน ProGuard เพื่อลดขนาดและปกปิดโค้ดและทรัพยากรของแอป อ่านข้อมูลเพิ่มเติมเกี่ยวกับ R8 ได้ใน บล็อกโพสต์นี้ จากบล็อกของนักพัฒนาแอป Android -
สร้างคลาส R สำหรับโปรเจ็กต์ไลบรารีได้เร็วขึ้น: ก่อนหน้านี้ปลั๊กอิน Android Gradle จะสร้างไฟล์
R.java
สำหรับการอ้างอิงของโปรเจ็กต์แต่ละรายการ แล้วคอมไพล์คลาส R เหล่านั้นพร้อมกับคลาสอื่นๆ ของแอป ตอนนี้ปลั๊กอินจะสร้าง JAR ที่มีคลาส R ที่คอมไพล์แล้วของแอป โดยตรงโดยไม่ต้องสร้างคลาสR.java
ระดับกลางก่อน การเพิ่มประสิทธิภาพนี้อาจช่วยปรับปรุงประสิทธิภาพการสร้างสำหรับโปรเจ็กต์ที่มีโปรเจ็กต์ย่อยและทรัพยากร Dependency ของไลบรารีจำนวนมากได้อย่างมาก รวมถึงปรับปรุงความเร็วในการจัดทำดัชนีใน Android Studio -
เมื่อสร้าง Android App Bundle, APK ที่สร้างจาก App Bundle นั้นซึ่งกำหนดเป้าหมายเป็น Android 6.0 (API ระดับ 23) ขึ้นไปจะมี ไลบรารีแบบเนทีฟเวอร์ชันที่ไม่ได้บีบอัดโดยค่าเริ่มต้น การเพิ่มประสิทธิภาพนี้ ช่วยให้ไม่ต้องคัดลอกไลบรารีในอุปกรณ์ จึงช่วยลด ขนาดของแอปในดิสก์ หากต้องการปิดใช้การเพิ่มประสิทธิภาพนี้ ให้เพิ่ม รายการต่อไปนี้ลงในไฟล์
gradle.properties
android.bundle.enableUncompressedNativeLibs = false
-
ปลั๊กอินจะบังคับใช้ปลั๊กอินของบุคคลที่สามบางรายการในเวอร์ชันขั้นต่ำ
-
การซิงค์โปรเจ็กต์แบบตัวแปรเดียว การซิงค์โปรเจ็กต์ กับการกำหนดค่าบิลด์เป็นขั้นตอนสำคัญที่ช่วยให้ Android Studio เข้าใจโครงสร้างของโปรเจ็กต์ อย่างไรก็ตาม กระบวนการนี้อาจใช้เวลานานสำหรับโปรเจ็กต์ขนาดใหญ่ หากโปรเจ็กต์ใช้ตัวแปรบิลด์หลายตัว ตอนนี้คุณสามารถเพิ่มประสิทธิภาพการซิงค์โปรเจ็กต์ได้โดยจำกัดให้ซิงค์เฉพาะตัวแปร ที่คุณเลือกในปัจจุบันเท่านั้น
คุณต้องใช้ Android Studio 3.3 ขึ้นไปกับ Android Gradle Plugin 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
แทนเวอร์ชัน AndroidX แม้ว่าจะเปิดใช้ Jetifier แล้วก็ตาม - การขัดกันเนื่องจาก
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 จากแถบเมนู การใช้เครื่องมือย้ายข้อมูลนี้ยังตั้งค่าสถานะต่อไปนี้เป็น
true
ในไฟล์gradle.properties
ด้วย-
android.useAndroidX
: เมื่อตั้งค่าเป็นtrue
ปลั๊กอิน Android จะใช้ไลบรารี AndroidX ที่เหมาะสมแทนไลบรารีการสนับสนุน เมื่อไม่ได้ระบุแฟล็กนี้ ปลั๊กอินจะตั้งค่าเป็นfalse
โดยค่าเริ่มต้น -
android.enableJetifier
: เมื่อตั้งค่าเป็นtrue
ปลั๊กอิน Android จะย้ายข้อมูลไลบรารีของบุคคลที่สามที่มีอยู่โดยอัตโนมัติเพื่อใช้ AndroidX โดย การเขียนไบนารีใหม่ เมื่อไม่ได้ระบุแฟล็กนี้ ปลั๊กอินจะตั้งค่าเป็นfalse
โดยค่าเริ่มต้น คุณตั้งค่าสถานะนี้ได้true
เฉพาะในขณะที่android.useAndroidX
ตั้งค่าเป็นtrue
ด้วย มิฉะนั้นคุณจะได้รับข้อผิดพลาดในการสร้างดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ AndroidX
-
-
เครื่องมือลดขนาดโค้ดใหม่ R8: R8 เป็นเครื่องมือใหม่สำหรับการลดขนาดโค้ดและการปรับให้ยากต่อการอ่าน (Obfuscate) ซึ่งจะมาแทนที่ ProGuard คุณเริ่มใช้ R8 เวอร์ชันตัวอย่างได้โดย รวมข้อมูลต่อไปนี้ในไฟล์
gradle.properties
ของโปรเจ็กต์android.enableR8 = true
android.enableR8 = true
การเปลี่ยนแปลงลักษณะการทำงาน
-
ตอนนี้ระบบจะเปิดใช้ Desugaring ด้วย 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 สำหรับการเผยแพร่ ปลั๊กอิน Android Gradle จะเปิดใช้ 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
เนื่องจากปลั๊กอินจะใช้เวอร์ชันขั้นต่ำที่จำเป็นโดยค่าเริ่มต้น
คอมไพเลอร์ DEX ใหม่ D8
ตอนนี้ Android Studio ใช้คอมไพเลอร์ DEX ใหม่ที่ชื่อ D8 โดยค่าเริ่มต้น การคอมไพล์ DEX
คือกระบวนการแปลงไบต์โค้ด .class
เป็นไบต์โค้ด
.dex
สำหรับ Android Runtime (หรือ Dalvik สำหรับ Android เวอร์ชันเก่า
) เมื่อเทียบกับคอมไพเลอร์ก่อนหน้าซึ่งเรียกว่า DX แล้ว D8
จะคอมไพล์ได้เร็วกว่าและเอาต์พุตเป็นไฟล์ DEX ที่มีขนาดเล็กกว่า ในขณะที่ยังคงมีประสิทธิภาพรันไทม์ของแอปเท่าเดิมหรือดีกว่า
D8 ไม่ควรเปลี่ยนเวิร์กโฟลว์การพัฒนาแอปในแต่ละวัน อย่างไรก็ตาม หากคุณพบปัญหาที่เกี่ยวข้องกับคอมไพเลอร์ใหม่ โปรดรายงานข้อบกพร่อง คุณปิดใช้ D8 ชั่วคราวและใช้ DX ได้โดยรวมข้อความต่อไปนี้ไว้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableD8=false
สำหรับโปรเจ็กต์ที่
ใช้ฟีเจอร์ภาษาของ Java 8
ระบบจะเปิดใช้การแยกน้ำตาลแบบเพิ่มทีละรายการโดยค่าเริ่มต้น คุณปิดใช้ได้โดย
ระบุสิ่งต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableIncrementalDesugaring=false.
ผู้ใช้เวอร์ชันตัวอย่าง: หากคุณใช้ D8 เวอร์ชันตัวอย่างอยู่แล้ว โปรดทราบว่า ตอนนี้ 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 ไม่รู้จัก การขึ้นต่อกันในการสร้างแบบคอมโพสิตอย่างถูกต้อง
- แก้ไขปัญหาที่คุณได้รับข้อผิดพลาดในการซิงค์โปรเจ็กต์เมื่อโหลด ปลั๊กอิน 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 และมีการแก้ไขข้อบกพร่องทั่วไป และการปรับปรุงประสิทธิภาพ
การเพิ่มประสิทธิภาพ
- การทำงานแบบขนานที่ดียิ่งขึ้นสำหรับโปรเจ็กต์แบบหลายโมดูลผ่านกราฟงานแบบละเอียด
- เมื่อทำการเปลี่ยนแปลงการขึ้นต่อกัน Gradle จะสร้างได้เร็วขึ้นโดยไม่
ต้องคอมไพล์โมดูลที่ไม่มีสิทธิ์เข้าถึง API ของการขึ้นต่อกันนั้นซ้ำ
คุณควรจำกัดการพึ่งพาที่ทำให้ API รั่วไหลไปยังโมดูลอื่นๆ โดย
ใช้
การกำหนดค่าการพึ่งพาใหม่ของ Gradle ดังนี้
implementation
,api
,compileOnly
และruntimeOnly
- ความเร็วในการสร้างแบบเพิ่มทีละรายการเร็วขึ้นเนื่องจากการสร้าง DEX ต่อคลาส ตอนนี้ระบบจะคอมไพล์แต่ละคลาสเป็นไฟล์ DEX แยกกัน และจะทำการ DEX ใหม่เฉพาะคลาสที่แก้ไขเท่านั้น นอกจากนี้ คุณควรคาดหวังว่าความเร็วในการบิลด์จะดีขึ้นสำหรับ
แอปที่ตั้งค่า
minSdkVersion
เป็น 20 หรือต่ำกว่า และใช้ Multi-Dex แบบเดิม - ปรับปรุงความเร็วในการบิลด์โดยการเพิ่มประสิทธิภาพงานบางอย่างให้ใช้เอาต์พุตที่แคชไว้ หากต้องการใช้ประโยชน์จากการเพิ่มประสิทธิภาพนี้ คุณต้อง เปิดใช้แคชบิลด์ Gradle ก่อน
- ปรับปรุงการประมวลผลทรัพยากรแบบเพิ่มทีละรายการโดยใช้ AAPT2 ซึ่งตอนนี้
เปิดใช้โดยค่าเริ่มต้นแล้ว หากพบปัญหาขณะใช้ AAPT2 โปรดรายงานข้อบกพร่อง นอกจากนี้ คุณยัง
ปิดใช้ AAPT2 ได้โดยตั้งค่า
android.enableAapt2=false
ในไฟล์gradle.properties
และรีสตาร์ท Gradle Daemon โดย เรียกใช้./gradlew --stop
จากบรรทัดคำสั่ง
ฟีเจอร์ใหม่
- การจัดการการขึ้นต่อกันที่รับรู้ตัวแปร ได้ เมื่อสร้างโมดูลบางเวอร์ชัน ตอนนี้ปลั๊กอินจะ จับคู่เวอร์ชันของโมดูลการอ้างอิงไลบรารีในเครื่องกับ เวอร์ชันของโมดูลที่คุณกำลังสร้างโดยอัตโนมัติ
- รวมปลั๊กอินโมดูลฟีเจอร์ใหม่เพื่อรองรับ Android Instant Apps และ Android Instant Apps SDK (ซึ่งคุณดาวน์โหลดได้ โดยใช้ SDK Manager) หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโมดูลฟีเจอร์ด้วยปลั๊กอินใหม่ โปรดอ่านโครงสร้างของ Instant App ที่มีหลายฟีเจอร์
- รองรับการใช้ฟีเจอร์ภาษาของ Java 8 และไลบรารี Java 8 บางอย่างในตัว ตอนนี้เราเลิกใช้งาน Jack แล้วและไม่จำเป็นต้องใช้ และคุณ ควรปิดใช้ Jack ก่อนเพื่อใช้การรองรับ Java 8 ที่ได้รับการปรับปรุงซึ่งมีอยู่ใน ชุดเครื่องมือเริ่มต้น อ่านข้อมูลเพิ่มเติมได้ที่ ใช้ฟีเจอร์ภาษาของ Java 8
-
เพิ่มการรองรับการเรียกใช้การทดสอบด้วย Android Test Orchestrator ซึ่งช่วยให้คุณเรียกใช้การทดสอบแต่ละรายการของแอปได้ภายใน การเรียกใช้ Instrumentation ของตัวเอง เนื่องจากการทดสอบแต่ละรายการทำงานในอินสแตนซ์ Instrumentation ของตัวเอง สถานะที่แชร์ระหว่างการทดสอบจึงไม่สะสมใน CPU หรือหน่วยความจำของอุปกรณ์ และแม้ว่าการทดสอบรายการหนึ่งจะขัดข้อง แต่ก็จะทำให้เฉพาะอินสแตนซ์ของ Instrumentation ของการทดสอบนั้นหยุดทำงานเท่านั้น การทดสอบอื่นๆ จึงยังคงทำงานได้
- เพิ่ม
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 Orchestrator ได้Groovy
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
การอ้างอิง จากนั้นโมดูลแอปและไลบรารีอื่นๆ จะขึ้นอยู่กับโปรเจ็กต์ 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 ภายนอก
- ตอนนี้คุณต้อง
เพิ่มโปรเซสเซอร์
คำอธิบายประกอบลงใน classpath ของโปรเซสเซอร์โดยใช้
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 และมีการแก้ไขข้อบกพร่องทั่วไป และการปรับปรุงประสิทธิภาพ
การเพิ่มประสิทธิภาพ
- การทำงานแบบขนานที่ดียิ่งขึ้นสำหรับโปรเจ็กต์แบบหลายโมดูลผ่านกราฟงานแบบละเอียด
- เมื่อทำการเปลี่ยนแปลงการขึ้นต่อกัน Gradle จะสร้างได้เร็วขึ้นโดยไม่
ต้องคอมไพล์โมดูลที่ไม่มีสิทธิ์เข้าถึง API ของการขึ้นต่อกันนั้นซ้ำ
คุณควรจำกัดการพึ่งพาที่ทำให้ API รั่วไหลไปยังโมดูลอื่นๆ โดย
ใช้
การกำหนดค่าการพึ่งพาใหม่ของ Gradle ดังนี้
implementation
,api
,compileOnly
และruntimeOnly
- ความเร็วในการสร้างแบบเพิ่มทีละรายการเร็วขึ้นเนื่องจากการสร้าง DEX ต่อคลาส ตอนนี้ระบบจะคอมไพล์แต่ละคลาสเป็นไฟล์ DEX แยกกัน และจะทำการ DEX ใหม่เฉพาะคลาสที่แก้ไขเท่านั้น นอกจากนี้ คุณควรคาดหวังว่าความเร็วในการบิลด์จะดีขึ้นสำหรับ
แอปที่ตั้งค่า
minSdkVersion
เป็น 20 หรือต่ำกว่า และใช้ Multi-Dex แบบเดิม - ปรับปรุงความเร็วในการบิลด์โดยการเพิ่มประสิทธิภาพงานบางอย่างให้ใช้เอาต์พุตที่แคชไว้ หากต้องการใช้ประโยชน์จากการเพิ่มประสิทธิภาพนี้ คุณต้อง เปิดใช้แคชบิลด์ Gradle ก่อน
- ปรับปรุงการประมวลผลทรัพยากรแบบเพิ่มทีละรายการโดยใช้ AAPT2 ซึ่งตอนนี้
เปิดใช้โดยค่าเริ่มต้นแล้ว หากพบปัญหาขณะใช้ AAPT2 โปรดรายงานข้อบกพร่อง นอกจากนี้ คุณยัง
ปิดใช้ AAPT2 ได้โดยตั้งค่า
android.enableAapt2=false
ในไฟล์gradle.properties
และรีสตาร์ท Gradle Daemon โดย เรียกใช้./gradlew --stop
จากบรรทัดคำสั่ง
ฟีเจอร์ใหม่
- การจัดการการขึ้นต่อกันที่รับรู้ตัวแปร ได้ เมื่อสร้างโมดูลบางเวอร์ชัน ตอนนี้ปลั๊กอินจะ จับคู่เวอร์ชันของโมดูลการอ้างอิงไลบรารีในเครื่องกับ เวอร์ชันของโมดูลที่คุณกำลังสร้างโดยอัตโนมัติ
- รวมปลั๊กอินโมดูลฟีเจอร์ใหม่เพื่อรองรับ Android Instant Apps และ Android Instant Apps SDK (ซึ่งคุณดาวน์โหลดได้ โดยใช้ SDK Manager) หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างโมดูลฟีเจอร์ด้วยปลั๊กอินใหม่ โปรดอ่านโครงสร้างของ Instant App ที่มีหลายฟีเจอร์
- รองรับการใช้ฟีเจอร์ภาษาของ Java 8 และไลบรารี Java 8 บางอย่างในตัว ตอนนี้เราเลิกใช้งาน Jack แล้วและไม่จำเป็นต้องใช้ และคุณ ควรปิดใช้ Jack ก่อนเพื่อใช้การรองรับ Java 8 ที่ได้รับการปรับปรุงซึ่งมีอยู่ใน ชุดเครื่องมือเริ่มต้น อ่านข้อมูลเพิ่มเติมได้ที่ ใช้ฟีเจอร์ภาษาของ Java 8
-
เพิ่มการรองรับการเรียกใช้การทดสอบด้วย Android Test Orchestrator ซึ่งช่วยให้คุณเรียกใช้การทดสอบแต่ละรายการของแอปได้ภายใน การเรียกใช้ Instrumentation ของตัวเอง เนื่องจากการทดสอบแต่ละรายการทำงานในอินสแตนซ์ Instrumentation ของตัวเอง สถานะที่แชร์ระหว่างการทดสอบจึงไม่สะสมใน CPU หรือหน่วยความจำของอุปกรณ์ และแม้ว่าการทดสอบรายการหนึ่งจะขัดข้อง แต่ก็จะทำให้เฉพาะอินสแตนซ์ของ Instrumentation ของการทดสอบนั้นหยุดทำงานเท่านั้น การทดสอบอื่นๆ จึงยังคงทำงานได้
- เพิ่ม
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 Orchestrator ได้Groovy
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
การอ้างอิง จากนั้นโมดูลแอปและไลบรารีอื่นๆ จะขึ้นอยู่กับโปรเจ็กต์ 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 ภายนอก
- ตอนนี้คุณต้อง
เพิ่มโปรเซสเซอร์
คำอธิบายประกอบลงใน classpath ของโปรเซสเซอร์โดยใช้
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)
- การขึ้นต่อกัน
-
- Gradle 3.3 ขึ้นไป
- เครื่องมือสร้าง 25.0.0 ขึ้นไป
- ใหม่:
-
- ใช้ Gradle 3.3 ซึ่งมีการปรับปรุงประสิทธิภาพและ ฟีเจอร์ใหม่ ดูรายละเอียดเพิ่มเติมได้ที่ บันทึกประจำรุ่นของ Gradle
- แคชบิลด์: จัดเก็บเอาต์พุตบางอย่างที่ปลั๊กอิน Android สร้างขึ้นเมื่อสร้างโปรเจ็กต์ (เช่น AAR ที่ไม่ได้แพ็กและทรัพยากร Dependency ระยะไกลที่ผ่านการ Dex มาก่อน) บิลด์ที่สะอาดจะ
เร็วกว่ามากขณะใช้แคช เนื่องจากระบบบิลด์สามารถ
นำไฟล์ที่แคชไว้เหล่านั้นกลับมาใช้ใหม่ได้ในระหว่างบิลด์ต่อๆ ไป
แทนที่จะสร้างขึ้นใหม่ โปรเจ็กต์ที่ใช้ปลั๊กอิน Android 2.3.0 ขึ้นไปจะใช้
แคชของบิลด์โดยค่าเริ่มต้น ดูข้อมูลเพิ่มเติมได้ที่
ปรับปรุงความเร็วในการบิลด์ด้วย
แคชบิลด์
- รวมถึง
cleanBuildCache
งานที่ล้างแคชของบิวด์ - หากคุณใช้แคชบิลด์เวอร์ชันทดลอง (รวมอยู่ในปลั๊กอินเวอร์ชันก่อนหน้า) คุณควรอัปเดตปลั๊กอินเป็น เวอร์ชันล่าสุด
- รวมถึง
- การเปลี่ยนแปลง:
-
- รองรับการเปลี่ยนแปลง Instant Run ที่รวมอยู่ใน Android Studio 2.3
- เวลาในการกำหนดค่าสำหรับโปรเจ็กต์ขนาดใหญ่มากควรเร็วขึ้นอย่างมาก
- แก้ไขปัญหาเกี่ยวกับการดาวน์โหลดอัตโนมัติสำหรับไลบรารี ConstraintLayout
- ตอนนี้ปลั๊กอินใช้ ProGuard เวอร์ชัน 5.3.2
- รวมการแก้ไขข้อบกพร่องหลายรายการ ที่รายงาน โปรดยื่นรายงานข้อบกพร่องต่อไปเมื่อพบปัญหา
2.2.0 (กันยายน 2016)
- การขึ้นต่อกัน
-
- Gradle 2.14.1 ขึ้นไป
- เครื่องมือสร้าง 23.0.2 ขึ้นไป
- ใหม่:
-
- ใช้ Gradle 2.14.1 ซึ่งมีการปรับปรุงประสิทธิภาพ และฟีเจอร์ใหม่ รวมถึงแก้ไขช่องโหว่ด้านความปลอดภัยที่อนุญาต การเพิ่มสิทธิ์ในเครื่องเมื่อใช้ Gradle Daemon ดูรายละเอียดเพิ่มเติมได้ที่ บันทึกประจำรุ่นของ Gradle
- ตอนนี้ Gradle ช่วยให้คุณลิงก์กับแหล่งที่มาแบบเนทีฟและคอมไพล์ไลบรารีแบบเนทีฟได้โดยใช้ CMake หรือ ndk-build โดยใช้ DSL
externalNativeBuild {}
หลังจากสร้างไลบรารีแบบเนทีฟแล้ว Gradle จะแพ็กเกจไลบรารีเหล่านั้นลงใน APK ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ CMake และ ndk-build กับ Gradle ได้ที่เพิ่มโค้ด C และ C++ ลงใน โปรเจ็กต์ - เมื่อเรียกใช้ บิลด์จากบรรทัดคำสั่ง ตอนนี้ Gradle จะพยายามดาวน์โหลดโดยอัตโนมัติ คอมโพเนนต์ SDK ที่ขาดหายไปหรือการอัปเดตที่โปรเจ็กต์ของคุณต้องใช้ ดูข้อมูลเพิ่มเติมได้ที่ดาวน์โหลดแพ็กเกจที่ขาดหายไปโดยอัตโนมัติ ด้วย Gradle
- ฟีเจอร์แคชเวอร์ชันทดลองใหม่ช่วยให้ Gradle เร่งเวลาบิลด์ได้โดยการ ดำเนินการ dex ล่วงหน้า จัดเก็บ และนำเวอร์ชันที่ดำเนินการ dex ล่วงหน้าของ ไลบรารีกลับมาใช้ใหม่ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์ทดลองนี้ได้ในคำแนะนำสร้าง แคช
- ปรับปรุงประสิทธิภาพการสร้างโดยใช้ไปป์ไลน์การแพ็กเกจเริ่มต้นใหม่ ซึ่งจะจัดการการซิป การลงนาม และ zipalign ในงานเดียว คุณ
สามารถเปลี่ยนกลับไปใช้เครื่องมือการแพ็กเกจเวอร์ชันเก่าได้โดยเพิ่ม
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 main ของแอปได้แล้ว เนื่องจาก
ระบบ Android จะโหลดไฟล์ DEX หลักก่อนเมื่อเริ่มต้นแอป คุณ
จึงจัดลำดับความสำคัญของบางคลาสเมื่อเริ่มต้นได้โดยคอมไพล์คลาสเหล่านั้นลงในไฟล์ DEX หลัก
หลังจากสร้างไฟล์การกำหนดค่า ProGuard สำหรับ
ไฟล์ DEX หลักโดยเฉพาะแล้ว ให้ส่งเส้นทางของไฟล์การกำหนดค่าไปยัง Gradle โดยใช้
buildTypes.multiDexKeepProguard
การใช้ DSL นี้แตกต่าง จากการใช้buildTypes.proguardFiles
ซึ่งมีกฎ ProGuard ทั่วไป สำหรับแอปและไม่ได้ระบุคลาสสำหรับไฟล์ DEX หลัก - เพิ่มการรองรับแฟล็ก
android:extractNativeLibs
ซึ่งจะช่วยลดขนาดของแอปเมื่อติดตั้งใน อุปกรณ์ เมื่อตั้งค่าแฟล็กนี้เป็นfalse
ในองค์ประกอบ<application>
ของไฟล์ Manifest ของแอป Gradle จะแพ็กเกจไลบรารีแบบเนทีฟเวอร์ชันที่ไม่ได้บีบอัดและ จัดแนวไว้กับ APK ซึ่งจะป้องกันไม่ให้PackageManager
คัดลอกไลบรารีแบบเนทีฟจาก APK ไปยังระบบไฟล์ของอุปกรณ์ในระหว่างการติดตั้ง และยังช่วยให้การอัปเดตเดลต้าของแอปมีขนาดเล็กลงอีกด้วย - ตอนนี้คุณระบุ
versionNameSuffix
และapplicationIdSuffix
สำหรับรสชาติของผลิตภัณฑ์ได้แล้ว (ปัญหา 59614)
- การเปลี่ยนแปลง:
-
-
getDefaultProguardFile
จะแสดงไฟล์ ProGuard เริ่มต้น ที่ปลั๊กอิน Android สำหรับ Gradle จัดเตรียมให้ และจะไม่ใช้ ไฟล์ใน Android SDK อีกต่อไป - ปรับปรุงประสิทธิภาพและฟีเจอร์ของคอมไพเลอร์ Jack ดังนี้
- ตอนนี้ Jack รองรับความครอบคลุมของการทดสอบ Jacoco เมื่อตั้งค่า
testCoverageEnabled
เป็นtrue
แล้ว - ปรับปรุงการรองรับสำหรับโปรเซสเซอร์คำอธิบายประกอบ ระบบจะใช้ตัวประมวลผล
คำอธิบายประกอบใน Classpath เช่น การขึ้นต่อกันของ
compile
โดยอัตโนมัติกับการสร้าง คุณยังระบุตัวประมวลผลคำอธิบายประกอบในการสร้างและส่งอาร์กิวเมนต์ได้โดยใช้ DSLjavaCompileOptions.annotationProcessorOptions {}
ในไฟล์ระดับโมดูล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 }
- โดยค่าเริ่มต้น หากขนาดฮีปของ Gradle Daemon มีขนาดอย่างน้อย 1.5
GB ตอนนี้ Jack จะทำงานในกระบวนการเดียวกับ Gradle หากต้องการปรับ
ขนาดฮีปของ Daemon ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
gradle.properties
# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
หากต้องการดูรายการพารามิเตอร์ที่ตั้งค่าได้ ให้เรียกใช้คำสั่งต่อไปนี้จากบรรทัดคำสั่ง
java -jar /build-tools/jack.jar --help-properties
- ตอนนี้ Jack รองรับความครอบคลุมของการทดสอบ Jacoco เมื่อตั้งค่า
-
2.1.0 (เมษายน 2016)
2.1.3 (สิงหาคม 2016)
การอัปเดตนี้ต้องใช้ Gradle 2.14.1 ขึ้นไป Gradle 2.14.1 มีการ ปรับปรุงประสิทธิภาพ ฟีเจอร์ใหม่ และการแก้ไขด้านความปลอดภัยที่สำคัญ ดูรายละเอียดเพิ่มเติมได้ที่ บันทึกประจำรุ่นของ Gradle
- การขึ้นต่อกัน
-
- Gradle 2.10 ขึ้นไป
- เครื่องมือสร้าง 23.0.2 ขึ้นไป
- ใหม่:
-
- เพิ่มการรองรับ Developer Preview ของ N, JDK 8 และฟีเจอร์ภาษา Java 8 โดยใช้ชุดเครื่องมือ Jack
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการแสดงตัวอย่าง N
หมายเหตุ: ขณะนี้ Instant Run ยังไม่พร้อมใช้งานกับ Jack และจะถูกปิดใช้ขณะ ใช้เครื่องมือเชนใหม่ คุณจะต้องใช้ Jack ก็ต่อเมื่อพัฒนาแอปสำหรับ N Preview และต้องการใช้ฟีเจอร์ภาษา Java 8 ที่รองรับ
- เพิ่มการรองรับการคอมไพล์ Java แบบเพิ่มทีละรายการโดยค่าเริ่มต้นเพื่อลด
เวลาในการคอมไพล์ระหว่างการพัฒนา โดยจะทำเช่นนี้ด้วยการคอมไพล์ซ้ำเฉพาะส่วนของแหล่งที่มาที่มีการเปลี่ยนแปลงหรือต้องคอมไพล์ซ้ำ
หากต้องการปิดใช้
ฟีเจอร์นี้ ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูลGroovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
เพิ่มการรองรับ dexing-in-process ซึ่งจะทำการ dexing ภายในกระบวนการบิลด์ แทนที่จะเป็นกระบวนการ VM ภายนอกที่แยกต่างหาก ซึ่งไม่เพียงทำให้ การสร้างแบบเพิ่มขึ้นเร็วขึ้น แต่ยังเร่งการสร้างแบบเต็มด้วย ฟีเจอร์นี้จะ เปิดใช้โดยค่าเริ่มต้นสำหรับโปรเจ็กต์ที่ตั้งค่าขนาดฮีปสูงสุดของ Gradle Daemon เป็นอย่างน้อย 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-in-process ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์
build.gradle
ระดับโมดูลGroovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- เพิ่มการรองรับ Developer Preview ของ N, JDK 8 และฟีเจอร์ภาษา Java 8 โดยใช้ชุดเครื่องมือ Jack
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการแสดงตัวอย่าง N
2.0.0 (เมษายน 2016)
- การขึ้นต่อกัน
-
- Gradle 2.10 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- ใหม่:
-
- เปิดใช้ Instant Run โดย รองรับการแทรกไบต์โค้ด และการพุชการอัปเดตโค้ดและทรัพยากรไปยัง แอปที่กําลังทํางานในโปรแกรมจําลองหรืออุปกรณ์จริง
- เพิ่มการรองรับการสร้างที่เพิ่มขึ้น แม้ว่าแอปจะไม่ได้ทำงานอยู่ก็ตาม เราได้ปรับปรุงเวลาในการสร้างทั้งหมดโดยการพุชการเปลี่ยนแปลงที่เพิ่มขึ้นผ่าน Android Debug Bridge ไปยัง อุปกรณ์ที่เชื่อมต่อ
- เพิ่ม
maxProcessCount
เพื่อควบคุมจำนวนกระบวนการ DEX ของ Worker ที่สามารถ สร้างพร้อมกันได้ โค้ดต่อไปนี้ในไฟล์ระดับโมดูล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)
- การขึ้นต่อกัน
-
- 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 (JaCoCo), ProGuard
และ MultiDex จะใช้ Transform API แล้ว อย่างไรก็ตาม Java Android Compiler Kit
(Jack) ไม่ได้ใช้ API นี้ แต่ใช้เฉพาะเส้นทางโค้ด
javac/dx
- Gradle จะเรียกใช้การแปลงตามลำดับนี้ JaCoCo, ปลั๊กอินของบุคคลที่สาม, ProGuard ลำดับการดำเนินการสำหรับปลั๊กอินของบุคคลที่สามจะตรงกับลำดับที่ปลั๊กอินของบุคคลที่สามเพิ่มการแปลง นักพัฒนาปลั๊กอินของบุคคลที่สามไม่สามารถควบคุมลำดับการดำเนินการ ของการแปลงผ่าน API ได้
- เลิกใช้งานตัวรับ
dex
จากคลาสApplicationVariant
คุณไม่สามารถเข้าถึงงานDex
ผ่าน API ของตัวแปรได้อีกต่อไป เนื่องจากตอนนี้ระบบจะดำเนินการผ่านการแปลง ปัจจุบันยังไม่มีเครื่องมืออื่นมาแทนที่การควบคุมกระบวนการ dex - แก้ไขการรองรับการเพิ่มขึ้นของชิ้นงาน
- ปรับปรุงการรองรับ MultiDex โดยทำให้พร้อมใช้งานสำหรับโปรเจ็กต์ทดสอบ และ
ตอนนี้การทดสอบจะมีทรัพยากร Dependency
com.android.support:multidex-instrumentation
โดยอัตโนมัติ - เพิ่มความสามารถในการสร้างบิลด์ Gradle ที่ล้มเหลวอย่างเหมาะสมและรายงานสาเหตุของข้อผิดพลาดพื้นฐาน เมื่อบิลด์ Gradle เรียกใช้ทาสก์แบบไม่พร้อมกันและเกิดข้อผิดพลาดในกระบวนการ ของ Worker
- เพิ่มการรองรับการกำหนดค่า Application Binary Interface (ABI) ที่เฉพาะเจาะจงในตัวแปร ที่มี ABI หลายรายการ
- เพิ่มการรองรับรายการหมายเลขซีเรียลของอุปกรณ์ที่คั่นด้วยคอมมาสำหรับตัวแปรสภาพแวดล้อม
ANDROID_SERIAL
เมื่อติดตั้งหรือเรียกใช้การทดสอบ - แก้ไขการติดตั้งที่ไม่สำเร็จในอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 20) ขึ้นไป เมื่อชื่อ APK มีช่องว่าง
- แก้ไขปัญหาต่างๆ ที่เกี่ยวข้องกับเอาต์พุตข้อผิดพลาดของ Android Asset Packaging Tool (AAPT)
- เพิ่มการรองรับการวัดประสิทธิภาพแบบเพิ่มของ JaCoCo เพื่อการสร้างแบบเพิ่มที่เร็วขึ้น ตอนนี้ปลั๊กอิน Android สำหรับ Gradle จะเรียกใช้เครื่องมือ JaCoCo โดยตรง หากต้องการบังคับใช้เครื่องมือวัด JaCoCo เวอร์ชันใหม่กว่า คุณต้องเพิ่มเครื่องมือวัดดังกล่าวเป็นทรัพยากร Dependency ของสคริปต์บิลด์
- แก้ไขการรองรับ JaCoCo เพื่อให้ระบบไม่สนใจไฟล์ที่ไม่ใช่คลาส
- เพิ่มการรองรับภาพวาดแบบเวกเตอร์เพื่อสร้าง PNG ในเวลาบิลด์เพื่อให้เข้ากันได้แบบย้อนหลัง
ปลั๊กอิน Android สำหรับ Gradle จะสร้าง PNG สำหรับ Vector Drawable ทุกรายการที่พบในไดเรกทอรีทรัพยากร
ซึ่งไม่ได้ระบุเวอร์ชัน 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 (AAPT) ที่กำหนดเอง ในไฟล์
build.gradle
เช่นandroid { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- เพิ่มการรองรับ
โมดูล APK ทดสอบเป็นโมดูลทดสอบแยกต่างหาก โดยใช้พร็อพเพอร์ตี้
targetProjectPath
และtargetVariant
เพื่อตั้งค่าเส้นทาง APK และตัวแปรเป้าหมายหมายเหตุ: โมดูล APK ทดสอบไม่รองรับ Product Flavors และกำหนดเป้าหมายได้เฉพาะตัวแปรเดียว นอกจากนี้ ระบบยังไม่รองรับ Jacoco
- เพิ่มการตรวจสอบชื่อทรัพยากรก่อนผสานทรัพยากร
- เมื่อสร้างแพ็กเกจ AAR (Android ARchive) สำหรับโมดูลไลบรารี อย่าระบุตัวยึดตำแหน่งอัตโนมัติ
@{applicationId}
ในการตั้งค่าการผสานไฟล์ Manifest ให้ใช้ตัวยึดตำแหน่งอื่นแทน เช่น@{libApplicationId}
และ ระบุค่าสำหรับตัวยึดตำแหน่งนั้นหากต้องการรวมรหัสแอปพลิเคชันไว้ในคลังที่เก็บถาวร
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.2.0 (เมษายน 2015)
- การขึ้นต่อกัน
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- การรองรับการเรียกใช้การทดสอบหน่วยด้วย Gradle ที่ดียิ่งขึ้น
- เพิ่มการรองรับการรวมทรัพยากรแบบ Java ไว้ในเส้นทางคลาส เมื่อเรียกใช้การทดสอบหน่วยจาก Gradle โดยตรง
- เพิ่มการรองรับทรัพยากร Dependency ของการทดสอบหน่วยสำหรับอาร์ติแฟกต์ 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. } } }
- แก้ไขการจัดการ Enum และฟิลด์อินสแตนซ์สาธารณะในการ
แพ็กเกจของไฟล์
mockable-android.jar
- แก้ไขทรัพยากร Dependency ของงานในโปรเจ็กต์ไลบรารีเพื่อให้คลาสทดสอบ คอมไพล์อีกครั้งหลังจากการเปลี่ยนแปลง
- เพิ่มพร็อพเพอร์ตี้
testProguardFile
เพื่อใช้ไฟล์ ProGuard เมื่อลดขนาด APK ทดสอบ - เพิ่มพร็อพเพอร์ตี้
timeOut
ลงในบล็อกโค้ดadbOptions
เพื่อตั้งค่าเวลาบันทึกสูงสุดสำหรับการบันทึกหน้าจอ Android Debug Bridge - เพิ่มการรองรับทรัพยากร 280 dpi
- ปรับปรุงประสิทธิภาพระหว่างการประเมินโปรเจ็กต์
- การรองรับการเรียกใช้การทดสอบหน่วยด้วย Gradle ที่ดียิ่งขึ้น
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.3 (มีนาคม 2015)
- การขึ้นต่อกัน
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- แก้ไขปัญหาการขึ้นต่อกันที่ซ้ำกันในแอปทดสอบซึ่งทำให้ ProGuard ทำงานล้มเหลว
- แก้ไขการใช้งาน Comparator ซึ่งไม่เป็นไปตามสัญญา Comparator ของ JDK และ สร้างข้อผิดพลาด JDK 7
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.2 (กุมภาพันธ์ 2015)
- การขึ้นต่อกัน
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- เส้นทางที่แปลงเป็นมาตรฐานเมื่อสร้าง JAR ที่จำลองได้สำหรับการทดสอบหน่วย
- แก้ไขการตั้งค่า
archivesBaseName
ในไฟล์build.gradle
แล้ว - แก้ไขข้อผิดพลาดของตัวยึดตำแหน่งที่ยังไม่ได้รับการแก้ไขในเครื่องมือผสาน Manifest เมื่อสร้างแอปพลิเคชันทดสอบไลบรารี
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.1 (กุมภาพันธ์ 2015)
- การขึ้นต่อกัน
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- แก้ไขรูปแบบบิลด์เพื่อให้เฉพาะรูปแบบที่แพ็กเกจแอป Wear เท่านั้นที่ทริกเกอร์ งานบิลด์เฉพาะ Wear
- เปลี่ยนปัญหาที่เกี่ยวข้องกับการขึ้นต่อกันให้ล้มเหลวในเวลาบิลด์แทน ในเวลาแก้ไขข้อบกพร่อง ลักษณะการทำงานนี้ช่วยให้คุณเรียกใช้ งานการวินิจฉัย (เช่น "dependencies") เพื่อช่วยแก้ไขความขัดแย้งได้
- แก้ไขเมธอด
android.getBootClasspath()
เพื่อ แสดงผลค่า
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.1.0 (กุมภาพันธ์ 2015)
- การขึ้นต่อกัน
-
- Gradle 2.2.1 ขึ้นไป
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
- หมายเหตุทั่วไป
-
- เพิ่มการรองรับการทดสอบหน่วยใหม่
- เปิดใช้การทดสอบ
หน่วยเพื่อเรียกใช้ใน JVM ในเครื่องกับ
android.jar
เวอร์ชันพิเศษ ที่เข้ากันได้กับเฟรมเวิร์กการจำลองยอดนิยม เช่น Mockito - เพิ่มงานทดสอบใหม่
testDebug
,testRelease
และtestMyFlavorDebug
เมื่อใช้ Product Flavor - เพิ่มโฟลเดอร์แหล่งข้อมูลใหม่ที่ระบบรู้จักว่าเป็นการทดสอบหน่วย
src/test/java/
,src/testDebug/java/
,src/testMyFlavor/java/
- เพิ่มการกำหนดค่าใหม่ในไฟล์
build.gradle
สำหรับการประกาศการอ้างอิงที่ใช้ทดสอบเท่านั้น เช่นtestCompile 'junit:junit:4.11'
testMyFlavorCompile 'some:library:1.0'
หมายเหตุ: ขณะนี้การอ้างอิงสำหรับการทดสอบเท่านั้น ยังใช้ร่วมกับ Jack (Java Android Compiler Kit) ไม่ได้
- เพิ่มตัวเลือก
android.testOptions.unitTests.returnDefaultValues
เพื่อควบคุมลักษณะการทำงานของ android.jar ที่จำลองได้ - แทนที่
Test
ในชื่องานทดสอบด้วยAndroidTest
เช่น ตอนนี้assembleDebugTest
งานเปลี่ยนเป็นassembleDebugAndroidTest
งานแล้ว งานทดสอบหน่วย ยังคงมีUnitTest
ในชื่องาน เช่นassembleDebugUnitTest
- แก้ไขไฟล์การกำหนดค่า ProGuard เพื่อไม่ให้มีผลกับ APK ทดสอบอีกต่อไป หากเปิดใช้ การลดขนาด ProGuard จะประมวลผล APK ของการทดสอบและ ใช้เฉพาะไฟล์การแมปที่สร้างขึ้นเมื่อลดขนาด APK หลัก
- การจัดการการขึ้นต่อกันที่อัปเดต
- แก้ไขปัญหาการใช้ขอบเขต
provided
และpackage
หมายเหตุ: ขอบเขตเหล่านี้ใช้ร่วมกับแพ็กเกจ AAR (Android ARchive) ไม่ได้ และจะทำให้บิลด์ที่มีแพ็กเกจ AAR ล้มเหลว
- แก้ไขการแก้ปัญหาการอ้างอิงเพื่อเปรียบเทียบการอ้างอิงของ แอปที่อยู่ระหว่างทดสอบและแอปทดสอบ หากพบอาร์ติแฟกต์ที่มี เวอร์ชันเดียวกันสำหรับทั้ง 2 แอป ระบบจะไม่รวมอาร์ติแฟกต์นั้นไว้กับ แอปทดสอบและจะแพ็กเกจเฉพาะกับแอปที่อยู่ระหว่างทดสอบเท่านั้น หาก พบอาร์ติแฟกต์ที่มีเวอร์ชันต่างกันสำหรับทั้ง 2 แอป บิลด์จะล้มเหลว
- แก้ไขปัญหาการใช้ขอบเขต
- เพิ่มการรองรับ
anyDpi
ตัวระบุ ทรัพยากรในการผสานทรัพยากร - ปรับปรุงความเร็วในการประเมินและการซิงค์ IDE สำหรับโปรเจ็กต์ที่มีโมดูล Android จำนวนมาก
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.0.1 (มกราคม 2015)
- การขึ้นต่อกัน
-
-
Gradle 2.2.1 ถึง 2.3.x
หมายเหตุ: ปลั๊กอิน Android สำหรับ Gradle เวอร์ชันนี้ใช้กับ Gradle 2.4 ขึ้นไปไม่ได้
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
-
- หมายเหตุทั่วไป
-
- แก้ไขปัญหาการสร้าง Gradle ไม่สำเร็จเมื่อเข้าถึงโมดูล
extractReleaseAnnotations
(ปัญหา 81638) - แก้ไขปัญหาเกี่ยวกับ
Disable
ที่ส่งการตั้งค่า--no-optimize
ไปยัง Dalvik Executable (dex) bytecode (ปัญหา 82662) - แก้ไขปัญหาการผสานไฟล์ Manifest เมื่อนำเข้าไลบรารีที่มี
targetSdkVersion
น้อยกว่า 16 - แก้ไขปัญหาการจัดลำดับความหนาแน่นเมื่อใช้ Android Studio กับ JDK 8
- แก้ไขปัญหาการสร้าง Gradle ไม่สำเร็จเมื่อเข้าถึงโมดูล
ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.0.0 (ธันวาคม 2014)
- การขึ้นต่อกัน
-
-
Gradle 2.2.1 ถึง 2.3.x
หมายเหตุ: ปลั๊กอิน Android สำหรับ Gradle เวอร์ชันนี้ใช้กับ Gradle 2.4 ขึ้นไปไม่ได้
- เครื่องมือสร้าง 21.1.1 ขึ้นไป
-
- หมายเหตุทั่วไป
-
- การเปิดตัวปลั๊กอินครั้งแรก