ข่าวผลิตภัณฑ์

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

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

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

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

หากคุณพัฒนา Android SDK, ไลบรารี, เครื่องมือ หรือเอนจินเกม การเตรียมการอัปเดตที่จำเป็นในตอนนี้เป็นสิ่งสำคัญเพื่อป้องกันไม่ให้นักพัฒนาแอปและเกมที่ใช้ผลิตภัณฑ์ของคุณถูกบล็อกเนื่องจากปัญหาความเข้ากันได้ และช่วยให้นักพัฒนาเหล่านั้นกำหนดเป้าหมายเป็นฟีเจอร์ 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 โดยค่าเริ่มต้น: Certificate Transparency (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

Android Studio Panda ได้เพิ่มการผสานรวม LeakCanary ลงในโปรไฟล์เลอร์ของ Android Studio โดยตรงเป็นงานเฉพาะ ซึ่งจัดบริบทไว้ใน 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 โปรดเข้าร่วมชุมชนของเราและส่งความคิดเห็น เราพร้อมรับฟัง

เขียนโดย
อ่านต่อ