Android Studio 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พร็อพเพอร์ตี้หรือจัดการ
การกําหนดค่าการลงนามได้ที่นี่
ความสัมพันธ์
ตรวจสอบและแสดงภาพทรัพยากร Dependency แต่ละรายการในกราฟทรัพยากร Dependency ของโปรเจ็กต์ตามที่ Gradle แก้ไขระหว่างการซิงค์โปรเจ็กต์โดยทำตามขั้นตอนต่อไปนี้
- เลือกการขึ้นต่อกันในแผงด้านซ้ายของ PSD
- ในบานหน้าต่างโมดูล ให้เลือกโมดูลที่ต้องการตรวจสอบ การอ้างอิงที่แก้ไขแล้ว
- ทางด้านขวาของ PSD ให้เปิดแผงการอ้างอิงที่แก้ไขแล้ว ซึ่ง แสดงอยู่ด้านล่าง

นอกจากนี้ คุณยังค้นหาและเพิ่มทรัพยากร Dependency ลงในโปรเจ็กต์ได้อย่างรวดเร็วโดยเริ่มจาก เลือกโมดูลจากส่วนทรัพยากร Dependencyของ PSD คลิก ปุ่ม (+) ในส่วนทรัพยากร Dependency ที่ประกาศ แล้วเลือกประเภท ของทรัพยากร Dependency ที่ต้องการเพิ่ม
คุณควรเห็นกล่องโต้ตอบที่คล้ายกับกล่องโต้ตอบด้านล่างนี้ ซึ่งจะช่วยให้คุณเพิ่มทรัพยากร Dependency ลงในโมดูลได้ ทั้งนี้ขึ้นอยู่กับประเภทของทรัพยากร Dependency ที่คุณเลือก

ตัวแปรบิลด์
ในส่วนนี้ของ PSD ให้สร้างและกำหนดค่าตัวแปรบิลด์และรสชาติของผลิตภัณฑ์ สำหรับแต่ละโมดูลในโปรเจ็กต์ คุณสามารถเพิ่มตัวยึดตำแหน่งของไฟล์ Manifest, เพิ่มไฟล์ ProGuard และกำหนดคีย์การลงนาม และอื่นๆ

คำแนะนำ
ดูการอัปเดตที่แนะนำสำหรับทรัพยากร Dependency ของโปรเจ็กต์และตัวแปรการสร้างได้ในส่วนคำแนะนำตามที่แสดงด้านล่าง

Resource Manager ใหม่
Resource Manager เป็นหน้าต่างเครื่องมือใหม่สำหรับการนำเข้า สร้าง จัดการ และ ใช้ทรัพยากรในแอป คุณสามารถเปิดหน้าต่างเครื่องมือได้โดยเลือก View > Tool Windows > 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 ผสานรวมกระบวนการ Desugaring การลดขนาด การปรับให้ยากต่อการอ่าน การเพิ่มประสิทธิภาพ และการแปลงเป็น 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 รองรับอาร์กิวเมนต์ทุกประเภทที่คอมโพเนนต์การนำทางรองรับแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่รองรับได้ที่ ส่งข้อมูลระหว่างปลายทาง
การปรับปรุงเครื่องมือสร้างเลย์เอาต์ {:#layout-editor}
เราได้ปรับปรุงบานหน้าต่างแอตทริบิวต์ในเครื่องมือสร้างเลย์เอาต์ให้เป็นหน้าเดียว ที่มีส่วนต่างๆ ซึ่งคุณขยายเพื่อดูแอตทริบิวต์ที่กำหนดค่าได้ แผงแอตทริบิวต์ยังมีการอัปเดตต่อไปนี้ด้วย
- ส่วนแอตทริบิวต์ที่ประกาศใหม่จะแสดงแอตทริบิวต์ที่ไฟล์เลย์เอาต์ ระบุและช่วยให้คุณเพิ่มแอตทริบิวต์ใหม่ได้อย่างรวดเร็ว
- ตอนนี้บานหน้าต่างแอตทริบิวต์ยังมีตัวบ่งชี้ข้างแอตทริบิวต์แต่ละรายการ ซึ่งจะเป็นสีทึบเมื่อค่าของแอตทริบิวต์เป็นการอ้างอิงทรัพยากร และว่าง ในกรณีอื่นๆ
- ตอนนี้เราจะไฮไลต์แอตทริบิวต์ที่มีข้อผิดพลาดหรือคำเตือนแล้ว ไฮไลต์สีแดง แสดงข้อผิดพลาด (เช่น เมื่อคุณใช้ค่าเลย์เอาต์ที่ไม่ถูกต้อง) และ ไฮไลต์สีส้มแสดงคำเตือน (เช่น เมื่อคุณใช้ค่าที่ฮาร์ดโค้ด ไว้)
การดำเนินการตามความตั้งใจใหม่เพื่อนำเข้าการอ้างอิงอย่างรวดเร็ว
หากคุณเริ่มใช้คลาส Jetpack และ Firebase บางคลาสในโค้ด การดำเนินการตั้งใจใหม่
จะแนะนำให้เพิ่มการอ้างอิงไลบรารี Gradle ที่จำเป็นลงในโปรเจ็กต์
หากคุณยังไม่ได้ดำเนินการดังกล่าว ตัวอย่างเช่น หากคุณอ้างอิงคลาส WorkManager โดยไม่ได้นำเข้าการอ้างอิง android.arch.work:work-runtime ที่จำเป็นก่อน การดำเนินการตั้งใจจะช่วยให้คุณทำเช่นนั้นได้
อย่างง่ายดายในคลิกเดียว ดังที่แสดงด้านล่าง

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