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

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 โดยค่าเริ่มต้น: ความโปร่งใสของใบรับรอง (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 โปรดเข้าร่วมชุมชนของเราและส่งความคิดเห็น เราพร้อมรับฟัง

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