ข่าวสารเกี่ยวกับผลิตภัณฑ์

Android 17 รุ่นเบต้า 4

ใช้เวลาอ่าน 4 นาที
Daniel Galpin
ผู้ประสานงานนักพัฒนาซอฟต์แวร์

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

เตรียมแอป ไลบรารี เครื่องมือ และเอนจินเกมให้พร้อม

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

Android17_Timeline_01_V02.png

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

  • ความสามารถในการปรับขนาดบนหน้าจอขนาดใหญ่: เมื่อกำหนดเป้าหมายเป็น Android 17 แล้ว คุณจะเลือกไม่ใช้การรักษาข้อจำกัดด้านการวางแนว ความสามารถในการปรับขนาด และอัตราส่วนกว้างยาว บนหน้าจอขนาดใหญ่ ไม่ได้อีกต่อไป
  • การโหลดโค้ดแบบไดนามิก: หากแอปกำหนดเป้าหมายเป็น Android 17 ขึ้นไป การป้องกันการโหลดโค้ดแบบไดนามิก (DCL) ที่ปลอดภัยยิ่งขึ้น ซึ่งเปิดตัวใน Android 14 สำหรับไฟล์ DEX และ JAR จะขยายไปใช้กับไลบรารีเนทีฟแล้ว ไฟล์เนทีฟทั้งหมดที่โหลดโดยใช้ System.load() ต้องทำเครื่องหมายเป็นแบบอ่านอย่างเดียว มิฉะนั้นระบบจะแสดงข้อผิดพลาด UnsatisfiedLinkError
  • เปิดใช้ CT โดยค่าเริ่มต้น: การตรวจสอบความโปร่งใสของใบรับรอง (CT) จะเปิดใช้โดยค่าเริ่มต้น (ใน Android 16, CT พร้อมใช้งาน แต่แอปต้อง เลือกใช้.)
  • การป้องกันเครือข่ายภายใน: แอปที่กำหนดเป้าหมายเป็น Android 17 ขึ้นไปจะ ถูกบล็อกการเข้าถึงเครือข่ายภายในโดยค่าเริ่มต้น เปลี่ยนไปใช้ตัวเลือกที่ช่วยรักษาความเป็นส่วนตัวหากเป็นไปได้ และใช้สิทธิ์ ACCESS_LOCAL_NETWORK ใหม่สำหรับการเข้าถึงแบบกว้างและต่อเนื่อง
  • การเสริมความแข็งแกร่งของเสียงเบื้องหลัง: ตั้งแต่ Android 17 เป็นต้นไป เฟรมเวิร์กเสียงจะบังคับใช้ ข้อจำกัดเกี่ยวกับการโต้ตอบเสียงเบื้องหลัง ซึ่งรวมถึงการเล่นเสียง คำขอ การควบคุมเสียง และ API การเปลี่ยนแปลงระดับเสียง เราได้ทำการเปลี่ยนแปลงบางอย่างตั้งแต่รุ่นเบต้า 2 ตามความคิดเห็นของคุณ ซึ่งรวมถึงการควบคุม targetSDK ขณะบังคับใช้ FGS ที่กำลังใช้งานอยู่และการยกเว้นเสียงปลุก ดูรายละเอียดทั้งหมดได้ใน คำแนะนำที่อัปเดต

การจำกัดหน่วยความจำของแอป

Android จะเริ่มใช้การจำกัดหน่วยความจำของแอปตาม RAM ทั้งหมดของอุปกรณ์เพื่อสร้างสภาพแวดล้อมที่เสถียรและกำหนดได้มากขึ้นสำหรับแอปพลิเคชันและผู้ใช้ Android ใน Android 17 ระบบจะกำหนดขีดจำกัดแบบอนุรักษนิยมเพื่อสร้างเกณฑ์มาตรฐานของระบบ โดยกำหนดเป้าหมายเป็นการรั่วไหลของหน่วยความจำที่รุนแรงและค่าผิดปกติอื่นๆ ก่อนที่ค่าเหล่านั้นจะทำให้ระบบไม่เสถียรทั่วทั้งระบบ ซึ่งส่งผลให้ UI กระตุก แบตเตอรี่หมดเร็วขึ้น และแอปถูกปิด แม้ว่าเราจะคาดการณ์ว่าการเปลี่ยนแปลงนี้จะส่งผลกระทบน้อยมากต่อเซสชันแอปส่วนใหญ่ แต่เราขอแนะนำ แนวทางปฏิบัติแนะนำด้านหน่วยความจำต่อไปนี้ ซึ่งรวมถึงการกำหนดเกณฑ์มาตรฐานสำหรับหน่วยความจำ

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

unnamed (2).png
งาน LeakCanary ใน Android Studio Profiler

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

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

ทริกเกอร์การสร้างโปรไฟล์สำหรับความผิดปกติของแอป

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

ใช้ทริกเกอร์ TRIGGER_TYPE_ANOMALY เพื่อตรวจหาปัญหาด้านประสิทธิภาพของระบบ เช่น การเรียกใช้ Binder มากเกินไปและการใช้งานหน่วยความจำมากเกินไป เมื่อแอปละเมิดขีดจำกัดหน่วยความจำที่ระบบปฏิบัติการกำหนดไว้ ทริกเกอร์ความผิดปกติจะช่วยให้นักพัฒนาแอปได้รับฮีปดัมป์เฉพาะของแอปเพื่อช่วยระบุและแก้ไขปัญหาหน่วยความจำ นอกจากนี้ ทริกเกอร์ความผิดปกติยังให้โปรไฟล์แบบสุ่มตัวอย่างสแต็กในการทำธุรกรรม Binder สำหรับการส่งสแปม Binder มากเกินไป

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

    val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<ProfilingTrigger>()  
    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<ProfilingResult> { profilingResult ->
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 
    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)
}

วิทยาการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัม (PQC) ใน Android Keystore

Android Keystore เพิ่มการรองรับ ML-DSA (Module-Lattice-Based Digital Signature Algorithm) ที่ได้มาตรฐาน NIST ในอุปกรณ์ที่รองรับ คุณสามารถสร้างคีย์ ML-DSA และใช้คีย์ดังกล่าวเพื่อสร้างลายเซ็นที่ปลอดภัยจากคอมพิวเตอร์ควอนตัมได้ทั้งหมดในฮาร์ดแวร์ที่ปลอดภัยของอุปกรณ์ Android Keystore แสดงอัลกอริทึม ML-DSA-65 และ ML-DSA-87 ผ่าน API ของ Java Cryptographic Architecture มาตรฐาน ได้แก่ KeyPairGenerator, KeyFactory และ Signature ดูรายละเอียดเพิ่มเติมได้ใน เอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์

KeyPairGenerator generator = KeyPairGenerator.getInstance(
        ML-DSA-65, "AndroidKeyStore");
generator.initialize(
        new KeyGenParameterSpec.Builder(
                my-key-alias,
                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
        .build());
KeyPair keyPair = generator.generateKeyPair();

เริ่มต้นใช้งาน Android 17

คุณสามารถ ลงทะเบียนอุปกรณ์ Pixel ที่รองรับเพื่อรับการอัปเดต Android รุ่นเบต้านี้และรุ่นต่อๆ ไปแบบ Over-the-Air หากไม่มีอุปกรณ์ Pixel คุณสามารถ ใช้ระบบอิมเมจ 64 บิตกับโปรแกรมจำลองของ Android ใน Android Studio ได้

หากคุณเข้าร่วมโปรแกรม Android รุ่นเบต้าอยู่แล้ว ระบบจะเสนอการอัปเดตเป็นรุ่นเบต้า 4 แบบ Over-the-Air ให้คุณ

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

เราขอแนะนำให้คุณใช้ Android Studio (Panda) เวอร์ชันล่าสุดสำหรับใช้ดูตัวอย่างเพื่อให้ได้รับประสบการณ์การพัฒนาที่ดีที่สุดกับ Android 17 เมื่อตั้งค่าเรียบร้อยแล้ว คุณควรทำสิ่งต่อไปนี้

  • คอมไพล์กับ SDK ใหม่ ทดสอบในสภาพแวดล้อม CI และรายงานปัญหาในเครื่องมือติดตามของเราใน หน้าความคิดเห็น.
  • ทดสอบความเข้ากันได้ของแอปปัจจุบัน ดูว่าแอปได้รับผลกระทบจากการเปลี่ยนแปลงใน Android 17 หรือไม่ และติดตั้งแอปในอุปกรณ์หรือโปรแกรมจำลองที่ใช้ Android 17 แล้วทดสอบอย่างละเอียด

เราจะอัปเดตระบบอิมเมจสำหรับใช้ดูตัวอย่าง/รุ่นเบต้าและ SDK เป็นประจำตลอดรอบการเปิดตัว Android 17 เมื่อติดตั้งบิลด์รุ่นเบต้าแล้ว คุณจะได้รับการอัปเดตในอนาคตแบบ Over-the-Air สำหรับรุ่นตัวอย่างและรุ่นเบต้าทั้งหมดในภายหลังโดยอัตโนมัติ

ดูข้อมูลทั้งหมดได้ที่ เว็บไซต์ของนักพัฒนาแอป Android 17

เข้าร่วมการสนทนา

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

เขียนโดย

อ่านต่อ