Android 7.0 Nougat มาพร้อมฟีเจอร์และความสามารถใหม่ๆ ที่หลากหลายสำหรับผู้ใช้และนักพัฒนาแอป เอกสารนี้จะไฮไลต์ข้อมูลใหม่ๆ สำหรับนักพัฒนาแอป
โปรดดูหัวข้อการเปลี่ยนแปลงลักษณะการทํางานของ Android 7.0 เพื่อดูข้อมูลเกี่ยวกับด้านต่างๆ ที่การเปลี่ยนแปลงแพลตฟอร์มอาจส่งผลต่อแอปของคุณ
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ สำหรับฟีเจอร์สำหรับผู้บริโภคของ Android 7.0 โปรดไปที่ www.android.com
รองรับโหมดหลายหน้าต่าง
ใน Android 7.0 เราจะเปิดตัวฟีเจอร์ใหม่ซึ่งเป็นที่ต้องการอย่างมาก การทำงานหลายอย่างพร้อมกันลงในแพลตฟอร์ม — การสนับสนุนหลายหน้าต่าง
ตอนนี้ผู้ใช้สามารถเปิดแอป 2 แอปบนหน้าจอพร้อมกันได้แล้ว
- ในโทรศัพท์และแท็บเล็ต ที่ใช้ Android 7.0 ผู้ใช้จะสามารถเรียกใช้ 2 แอปเคียงข้างกันหรือ เหนือสิ่งอื่นใดในโหมดแยกหน้าจอ ผู้ใช้ปรับขนาดแอปได้โดยการลาก ตัวแบ่งระหว่างเซิร์ฟเวอร์
- บนอุปกรณ์ Android TV แอปสามารถเข้าสู่โหมดภาพซ้อนภาพได้ ซึ่งจะช่วยให้แอปแสดงเนื้อหาต่อไปได้ขณะที่ผู้ใช้เรียกดูหรือโต้ตอบกับแอปอื่นๆ
การรองรับหลายหน้าต่าง โดยเฉพาะอย่างยิ่งบนแท็บเล็ตและอุปกรณ์ที่มีหน้าจอขนาดใหญ่อื่นๆ ทำให้คุณมีวิธีใหม่ๆ ในการดึงดูดผู้ใช้ คุณยังเปิดใช้การลากและวางในแอปเพื่อให้ผู้ใช้ลากเนื้อหาไปยังหรือออกจากแอปได้อย่างสะดวกได้ด้วย ซึ่งเป็นวิธีที่ยอดเยี่ยมในการปรับปรุงประสบการณ์ของผู้ใช้
คุณสามารถเพิ่มการสนับสนุนหลายหน้าต่างลงในแอปและกำหนดค่าวิธีการรองรับ จัดการการแสดงผลแบบหลายหน้าต่าง เช่น คุณสามารถระบุกิจกรรม มิติข้อมูลขั้นต่ำที่อนุญาต ซึ่งป้องกันไม่ให้ผู้ใช้ปรับขนาดกิจกรรมด้านล่าง ขนาดที่ว่า คุณยังปิดใช้การแสดงหลายหน้าต่างสำหรับแอปของคุณได้อีกด้วย ซึ่ง เพื่อให้ระบบแสดงเฉพาะแอปของคุณในโหมดเต็มหน้าจอ
โปรดดูข้อมูลเพิ่มเติมที่การรองรับโหมดหลายหน้าต่าง เอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์
การเพิ่มประสิทธิภาพการแจ้งเตือน
ใน Android 7.0 เราได้ออกแบบการแจ้งเตือนใหม่เพื่อให้อ่านง่ายขึ้น ใช้งานได้เร็วขึ้น การเปลี่ยนแปลงบางส่วนมีดังนี้
- การอัปเดตเทมเพลต: เรากําลังอัปเดตเทมเพลตการแจ้งเตือนเพื่อเน้นรูปภาพหลักและภาพแทนบุคคล นักพัฒนาแอปจะสามารถ ใช้ประโยชน์จากเทมเพลตใหม่โดยแทบไม่ต้องปรับแต่งโค้ด
-
การปรับแต่งสไตล์การรับส่งข้อความ: คุณปรับแต่งป้ายกำกับอินเทอร์เฟซผู้ใช้เพิ่มเติมที่เชื่อมโยงกับการแจ้งเตือนได้โดยใช้คลาส
MessagingStyle
คุณสามารถกำหนดค่าข้อความ ชื่อการสนทนาและมุมมองเนื้อหา - การแจ้งเตือนแบบกลุ่ม: ระบบสามารถจัดกลุ่มข้อความเข้าด้วยกัน เช่น ตามหัวข้อข้อความ และแสดงกลุ่ม ผู้ใช้สามารถดำเนินการกับรายการดังกล่าว เช่น ปิดหรือเก็บ หากคุณได้ ที่คุณคุ้นเคยสำหรับ Android Wear อยู่แล้ว โมเดลนี้
- การตอบกลับโดยตรง: สำหรับแอปการสื่อสารแบบเรียลไทม์ ระบบ Android รองรับการตอบกลับแบบแทรกในบรรทัด เพื่อให้ผู้ใช้ตอบกลับได้อย่างรวดเร็ว SMS หรือ SMS โดยตรงภายในอินเทอร์เฟซการแจ้งเตือน
- มุมมองที่กำหนดเอง: API 2 รายการใหม่ช่วยให้คุณใช้ประโยชน์จากการตกแต่งของระบบได้ เช่น ส่วนหัวและการดําเนินการของการแจ้งเตือน เมื่อใช้มุมมองที่กําหนดเองในการแจ้งเตือน
ดูวิธีนำฟีเจอร์ใหม่นี้ไปใช้ได้ที่ การแจ้งเตือน
การคอมไพล์ JIT/AOT แบบมีโปรไฟล์
ใน Android 7.0 เราได้เพิ่มคอมไพเลอร์ Just in Time (JIT) ที่มีโค้ด ทำโปรไฟล์เป็น ART ซึ่งช่วยให้ปรับปรุงประสิทธิภาพของ แอป Android ได้ทันทีที่เรียกใช้ คอมไพเลอร์ JIT เป็นส่วนเสริมของคอมไพเลอร์ Ahead of Time (AOT) ปัจจุบันของ ART และช่วยปรับปรุงประสิทธิภาพรันไทม์ ประหยัดพื้นที่เก็บข้อมูล และเร่งการอัปเดตแอปและการอัปเดตระบบ
การคอมไพล์แบบมีคำแนะนำช่วยให้ ART จัดการการรวบรวม AOT/JIT สำหรับ ตามการใช้งานจริง รวมถึงเงื่อนไขต่างๆ ในอุปกรณ์ ตัวอย่างเช่น ART จะรักษาโปรไฟล์ของ Method ยอดนิยมของแต่ละแอปพลิเคชันและสามารถ คอมไพล์ไว้ล่วงหน้าและแคชวิธีการเหล่านั้นเพื่อประสิทธิภาพที่ดีที่สุด แต่เก็บส่วนอื่นๆ ของแอปที่ไม่มีการคอมไพล์จนกว่าจะใช้งานจริง
นอกจากจะช่วยปรับปรุงประสิทธิภาพในส่วนสำคัญของแอปแล้ว การคอมไพล์จะช่วยลดการใช้ RAM โดยรวมของแอป ซึ่งรวมถึง ไบนารี ฟีเจอร์นี้สำคัญอย่างยิ่งในอุปกรณ์ที่มีหน่วยความจำต่ำ
ART จะจัดการการคอมไพล์ที่แนะนำโดยโปรไฟล์ในลักษณะที่ลดผลกระทบต่อแบตเตอรี่ของอุปกรณ์ ระบบจะคอมไพล์ล่วงหน้าเฉพาะเมื่ออุปกรณ์ไม่มีการใช้งานและ การชาร์จจะช่วยประหยัดเวลา และแบตเตอรี่ด้วยการดำเนินการล่วงหน้า
เส้นทางด่วนเพื่อการติดตั้งแอป
ประโยชน์ที่จับต้องได้ที่สุดอย่างหนึ่งของคอมไพเลอร์ JIT ของ ART คือความเร็วของแอป และการอัปเดตระบบ ตอนนี้แม้แต่แอปขนาดใหญ่ที่ใช้เวลาหลายนาทีในการเพิ่มประสิทธิภาพและติดตั้งใน Android 6.0 ก็ติดตั้งได้ภายในไม่กี่วินาที นอกจากนี้ การอัปเดตระบบยังรวดเร็วขึ้นด้วย เนื่องจากไม่มีขั้นตอนการเพิ่มประสิทธิภาพเพิ่มเติม
Doze ขณะเดินทาง...
Android 6.0 เปิดตัว Doze ซึ่งเป็นโหมดระบบที่ช่วยประหยัดแบตเตอรี่ด้วยการเลื่อนเวลา ของ Google กิจกรรมของ CPU และเครือข่ายเมื่อไม่มีการใช้งานอุปกรณ์ เช่น เมื่อไม่มีการใช้งาน บนโต๊ะหรือในลิ้นชัก
Doze ได้ก้าวไปอีกขั้นและประหยัดแบตเตอรี่ได้ทุกที่ทุกเวลาใน Android 7.0 เมื่อใดก็ตามที่หน้าจอปิดลงเป็นระยะเวลาหนึ่งและถอดปลั๊กอุปกรณ์ Doze จะนำกลุ่มย่อยของการจำกัด CPU และเครือข่ายที่คุ้นเคยไปใช้กับแอป ซึ่งหมายความว่าผู้ใช้สามารถประหยัดแบตเตอรี่ได้ แม้ว่าจะพกพาอุปกรณ์ติดตัวไปด้วย กระเป๋ากางเกง
Doze ช่วงเวลาสั้นๆ หลังจากหน้าจอปิดลงขณะที่อุปกรณ์ใช้แบตเตอรี่อยู่ จำกัดการเข้าถึงเครือข่าย รวมทั้งเลื่อนงานและการซิงค์ ระหว่างการบำรุงรักษาสั้นๆ แอปพลิเคชันจะได้รับอนุญาตในการเข้าถึงเครือข่าย และ ดำเนินการ/ซิงค์แล้ว การเปิดหน้าจอหรือเสียบปลั๊กอุปกรณ์จะทำให้ อุปกรณ์ออกจาก Doze
เมื่ออุปกรณ์อยู่กับที่อีกครั้ง โดยปิดหน้าจอและเปิดแบตเตอรี่เป็นเวลา
Doze จะใช้การจำกัด CPU และเครือข่ายอย่างเต็มรูปแบบในการปลุกในเวลา PowerManager.WakeLock
, AlarmManager
และ
การสแกนหา GPS/Wi-Fi
แนวทางปฏิบัติแนะนำสำหรับการปรับแอปไปใช้ Doze จะเหมือนกันไม่ว่า อุปกรณ์ขยับหรือไม่ ดังนั้นหากคุณอัปเดตแอปเป็น อย่างถูกต้องสมบูรณ์แล้ว จัดการกับ Doze เท่านี้ก็เรียบร้อย หากยังไม่ได้ดำเนินการ ให้เริ่มปรับแอปให้ใช้โหมด Doze ได้เลย
โปรเจ็กต์ Svelte: การเพิ่มประสิทธิภาพพื้นหลัง
Project Svelte มุ่งมั่นอย่างต่อเนื่องในการลดการใช้ RAM โดยระบบและแอป สำหรับอุปกรณ์ Android หลายรุ่นในระบบนิเวศ ใน Android 7.0 โปรเจ็กต์ Svelt จะมุ่งเน้นที่การเพิ่มประสิทธิภาพวิธีที่แอปทำงานในเบื้องหลัง
การประมวลผลในเบื้องหลังเป็นส่วนสำคัญของแอปส่วนใหญ่ เมื่อจัดการอย่างเหมาะสม สามารถมอบประสบการณ์ของผู้ใช้ที่ยอดเยี่ยม รวดเร็ว รวดเร็ว และคำนึงถึงบริบท เมื่อจัดการไม่ถูกต้อง การประมวลผลในเบื้องหลังอาจสิ้นเปลือง RAM (และ แบตเตอรี่) และส่งผลต่อประสิทธิภาพของระบบสำหรับแอปอื่นๆ
นับตั้งแต่ Android 5.0 เป็นต้นมา JobScheduler
เป็น
วิธีทำงานที่ทำอยู่เบื้องหลังในแบบที่เหมาะสม
สำหรับผู้ใช้ แอปสามารถกำหนดเวลางานในขณะที่ปล่อยให้ระบบเพิ่มประสิทธิภาพการทำงาน
สภาพหน่วยความจำ พลังงาน และการเชื่อมต่อ JobScheduler มอบการควบคุมและ
ความเรียบง่าย และเราอยากให้ทุกแอปใช้งานได้
อีกตัวเลือกหนึ่งที่น่าสนใจคือ
GCMNetworkManager
ซึ่งเป็นส่วนหนึ่งของบริการ Google Play ที่ให้บริการกำหนดเวลางานแบบคล้ายกันซึ่งเข้ากันได้กับ Android เวอร์ชันเดิม
เรายังคงขยายระยะเวลา JobScheduler
และ
GCMNetworkManager
เพื่อพบกับเรื่องราวของ
Use Case ของคุณ เช่น ใน Android 7.0 คุณตั้งเวลาในเบื้องหลังได้แล้ว
ทำงานตามการเปลี่ยนแปลงในผู้ให้บริการเนื้อหา ในขณะเดียวกัน เราเริ่มที่จะ
เลิกใช้งานรูปแบบเก่าบางรูปแบบที่อาจลดประสิทธิภาพของระบบ
โดยเฉพาะบนอุปกรณ์ที่มีหน่วยความจำต่ำ
ใน Android 7.0 เราจะนําการออกอากาศแบบนัยที่ใช้กันโดยทั่วไป 3 รายการออก ซึ่งได้แก่ CONNECTIVITY_ACTION
, ACTION_NEW_PICTURE
และ ACTION_NEW_VIDEO
เนื่องจากสามารถปลุกกระบวนการเบื้องหลังของแอปหลายรายการพร้อมกันและทำให้หน่วยความจําและแบตเตอรี่ทำงานหนัก ถ้า
แอปของคุณกำลังรับสิ่งเหล่านี้ ใช้ประโยชน์จาก Android 7.0 เพื่อ
โปรดย้ายข้อมูลไปยัง JobScheduler
และ API ที่เกี่ยวข้องแทน
ลองดูที่พื้นหลัง ดูรายละเอียดในเอกสารการเพิ่มประสิทธิภาพ
มุมมองพื้นผิว
Android 7.0 มาพร้อมการเคลื่อนที่แบบพร้อมกันให้กับ SurfaceView
ซึ่งทำให้ประสิทธิภาพแบตเตอรี่ดีขึ้น
TextureView
ในบางกรณี: เมื่อแสดงผลวิดีโอหรือ
เนื้อหา 3 มิติ แอปที่มีการเลื่อนและตำแหน่งวิดีโอภาพเคลื่อนไหวจะใช้พลังงานน้อยกว่า
SurfaceView
เมื่อเทียบกับ TextureView
SurfaceView
จะเปิดใช้การประสานแบบประหยัดพลังงานมากขึ้นเมื่อ
หน้าจอเพราะเป็นการ Composite ในฮาร์ดแวร์เฉพาะ ไม่ใช่จากแอป
เนื้อหาในหน้าต่าง ด้วยเหตุนี้ TextureView
จึงสร้างสำเนาสื่อกลางได้น้อยกว่า TextureView
ตอนนี้ตำแหน่งเนื้อหาของออบเจ็กต์ SurfaceView
มีการอัปเดตพร้อมกันแล้ว
กับเนื้อหาแอป ผลลัพธ์อย่างหนึ่งของการเปลี่ยนแปลงนี้คือ การแปลหรือการปรับขนาดวิดีโอที่เล่นใน SurfaceView
จะไม่ทำให้เกิดแถบสีดำข้างมุมมองขณะที่วิดีโอเคลื่อนไหวอีกต่อไป
ตั้งแต่ Android 7.0 เป็นต้นไป เราขอแนะนำให้คุณประหยัดพลังงานโดยใช้
SurfaceView
จากราคาเต็ม TextureView
ประหยัดอินเทอร์เน็ต
โดยทั่วไปแล้ว ค่าใช้จ่ายแพ็กเกจอินเทอร์เน็ตมือถือจะสูงกว่าค่าอุปกรณ์เคลื่อนที่เองตลอดอายุการใช้งาน สำหรับผู้ใช้จำนวนมาก อินเทอร์เน็ตมือถือเป็น ทรัพยากรราคาแพงที่พวกเขา ต้องการอนุรักษ์ไว้
Android 7.0 เปิดตัวโหมดประหยัดอินเทอร์เน็ต ซึ่งเป็นบริการใหม่ของระบบที่ช่วยลด อินเทอร์เน็ตมือถือที่แอปใช้ ไม่ว่าจะเป็นโรมมิ่ง หรือเมื่อใกล้สิ้นสุดรอบการเรียกเก็บเงิน หรือในแพ็กเกจอินเทอร์เน็ตแบบชำระเงินล่วงหน้าขนาดเล็ก โปรแกรมประหยัดอินเทอร์เน็ตช่วยให้ผู้ใช้ควบคุมวิธีที่แอปใช้อินเทอร์เน็ตมือถือได้ และช่วยให้นักพัฒนาแอปให้บริการได้อย่างมีประสิทธิภาพมากขึ้นเมื่อเปิดโปรแกรมประหยัดอินเทอร์เน็ตไว้
เมื่อผู้ใช้เปิดใช้โปรแกรมประหยัดอินเทอร์เน็ตในการตั้งค่าและอุปกรณ์ บนเครือข่ายแบบจำกัดปริมาณ ระบบจะบล็อกการใช้อินเทอร์เน็ตที่ใช้งานอยู่เบื้องหลังและสัญญาณต่างๆ ของแอป ลดการใช้ข้อมูลในเบื้องหน้าเมื่อเป็นไปได้ เช่น การจำกัด อัตราบิตสำหรับการสตรีม การลดคุณภาพของรูป การเลื่อนการแคชล่วงหน้าที่มีประสิทธิภาพออกไป เป็นต้น ผู้ใช้สามารถอนุญาตให้แอปบางแอปใช้อินเทอร์เน็ตแบบจำกัดปริมาณในเบื้องหลังได้แม้ว่าจะเปิดโปรแกรมประหยัดอินเทอร์เน็ตไว้ก็ตาม
Android 7.0 ขยาย ConnectivityManager
เพื่อมอบแอป
วิธีดึงข้อมูล
ค่ากำหนดการประหยัดอินเทอร์เน็ตของผู้ใช้และตรวจสอบ
การเปลี่ยนแปลงค่ากำหนด แอปทั้งหมดควรตรวจสอบว่าผู้ใช้เปิดใช้ตัวประหยัดอินเทอร์เน็ตหรือไม่ และพยายามจำกัดปริมาณอินเทอร์เน็ตที่ใช้งานอยู่เบื้องหน้าและเบื้องหลัง
API ของ Vulkan
Android 7.0 ผสานรวม Vulkan™ ซึ่งเป็น API การแสดงผล 3 มิติแบบใหม่ไว้ในแพลตฟอร์ม ชอบ OpenGLTM สเปน, Vulkan เป็นมาตรฐานแบบเปิดสำหรับกราฟิก 3 มิติและการแสดงภาพที่ดูแลรักษา โดย Khronos Group
Vulkan ออกแบบมาตั้งแต่ต้นเพื่อลดโอเวอร์เฮดของ CPU ในไดรเวอร์ และอนุญาตให้แอปพลิเคชันของคุณควบคุมการทำงานของ GPU ได้โดยตรงมากขึ้น วัลกัน ยังทำให้การโหลดพร้อมกันดีกว่าโดยอนุญาตให้เทรดหลายรายการทำงาน เช่น การสร้างบัฟเฟอร์คำสั่งพร้อมกัน
เครื่องมือการพัฒนาและไลบรารี Vulkan ผสานรวมอยู่ใน Android 7.0 SDK โฆษณาเหล่านี้ รวมข้อมูลต่อไปนี้
- ส่วนหัว
- เลเยอร์การตรวจสอบ (ไลบรารีการแก้ไขข้อบกพร่อง)
- คอมไพเลอร์เฉดสี SPIR-V
- ไลบรารีการคอมไพล์ตัวปรับแสงเงารันไทม์ SPIR-V
Vulkan พร้อมให้บริการเฉพาะแอปในอุปกรณ์ที่มีฮาร์ดแวร์ที่รองรับ Vulkan เช่น Nexus 5X, Nexus 6P และ Nexus Player เรากำลังทำงานอย่างใกล้ชิดกับ พาร์ทเนอร์จะนำ Vulkan ไปยังอุปกรณ์อื่นๆ โดยเร็วที่สุด
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบ API
API ไทล์การตั้งค่าด่วน
"การตั้งค่าด่วน" เป็นวิธียอดนิยมและวิธีง่ายๆ ในการแสดงการตั้งค่าและการดำเนินการที่สำคัญ จากหน้าต่างแจ้งเตือนได้โดยตรง ใน Android 7.0 เราได้ขยายขอบเขตของ การตั้งค่าด่วนเพื่อการใช้งานที่มีประโยชน์และสะดวกมากยิ่งขึ้น
เราได้เพิ่มพื้นที่สำหรับการ์ดการตั้งค่าด่วนเพิ่มเติม ซึ่งผู้ใช้สามารถ เข้าถึงพื้นที่แสดงผลที่ใส่เลขหน้าโดยเลื่อนไปทางซ้ายหรือขวา เรายังได้ ให้ผู้ใช้ควบคุมได้ว่าการ์ดการตั้งค่าด่วนจะปรากฏที่ไหนและอยู่ที่ไหน แสดงอยู่ ผู้ใช้สามารถเพิ่มหรือย้ายชิ้นส่วนได้ง่ายๆ ด้วยการลากและวาง
สำหรับนักพัฒนาซอฟต์แวร์ Android 7.0 ยังได้เพิ่ม API ใหม่ที่ช่วยให้คุณกำหนด API ของคุณเอง การ์ดการตั้งค่าด่วนเพื่อให้ผู้ใช้เข้าถึงการควบคุมแป้นและการทำงานต่างๆ ในแอปได้โดยง่าย
การ์ดการตั้งค่าด่วนสงวนไว้สำหรับการควบคุมหรือการดำเนินการ เป็นสิ่งจำเป็นอย่างเร่งด่วนหรือใช้บ่อย และไม่ควรใช้เป็นทางลัด กำลังเปิดแอป
เมื่อกำหนดการ์ดแล้ว คุณจะแสดงการ์ดแก่ผู้ใช้ซึ่งสามารถเพิ่ม ไปยังการตั้งค่าด่วนได้ง่ายๆ ด้วยการลากและวาง
สำหรับข้อมูลเกี่ยวกับการสร้างไทล์แอป โปรดดูเอกสารอ้างอิง
ในราคา Tile
การบล็อกหมายเลข
ขณะนี้ Android 7.0 สนับสนุนการบล็อกหมายเลขในแพลตฟอร์ม และให้ Framework API เพื่อช่วยให้ผู้ให้บริการเก็บรายการหมายเลขที่ถูกบล็อกได้ แอป SMS เริ่มต้น แอปโทรศัพท์เริ่มต้น และแอปของผู้ให้บริการสามารถอ่านข้อมูลจาก และ เขียนไปยังรายการหมายเลขที่ถูกบล็อก แอปอื่นๆ จะเข้าถึงรายการนี้ไม่ได้
การทำให้การบล็อกหมายเลขเป็นฟีเจอร์มาตรฐานของแพลตฟอร์มทำให้ Android มี วิธีที่สอดคล้องกันสำหรับแอปในการรองรับการบล็อกหมายเลขทั่วทั้ง อุปกรณ์ ประโยชน์ต่างๆ ที่แอปสามารถนำไปใช้ ได้แก่
- หมายเลขที่ถูกบล็อกในการโทรจะบล็อกใน SMS ด้วย
- หมายเลขที่ถูกบล็อกจะยังคงอยู่ทั้งในการรีเซ็ตและอุปกรณ์ต่างๆ ผ่านการสำรองข้อมูลและ คืนค่าฟีเจอร์
- แอปหลายแอปสามารถใช้รายการหมายเลขที่ถูกบล็อกเดียวกันได้
นอกจากนี้ การผสานรวมแอปของผู้ให้บริการผ่าน Android หมายความว่าผู้ให้บริการสามารถ อ่านรายการหมายเลขที่ถูกบล็อกในอุปกรณ์และดำเนินการบล็อกฝั่งบริการ เพื่อหยุดการโทรและข้อความที่ไม่พึงประสงค์ไม่ให้เข้าถึงผู้ใช้ ผ่านสื่อใดๆ เช่น อุปกรณ์ปลายทาง VOIP หรือโทรศัพท์ที่ส่งต่อ
สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารอ้างอิงสำหรับ
BlockedNumberContract
การสกรีนสายเรียกเข้า
Android 7.0 อนุญาตให้แอปโทรศัพท์เริ่มต้นสกรีนสายเรียกเข้าได้ โทรศัพท์
ในการดำเนินการโดยใช้ CallScreeningService
ใหม่
ซึ่งทำให้แอปโทรศัพท์ทำงานได้หลายอย่างตาม
Call.Details
ของสายเรียกเข้า เช่น
- ปฏิเสธสายเรียกเข้า
- ไม่อนุญาตให้โทรหาประวัติการโทร
- ไม่ต้องแสดงการแจ้งเตือนการโทรให้ผู้ใช้ทราบ
ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิงสำหรับ CallScreeningService
การรองรับหลายภาษา
Android 7.0 ให้ผู้ใช้เลือกหลายภาษาในการตั้งค่าได้แล้ว เพื่อรองรับกรณีการใช้งาน 2 ภาษาได้ดียิ่งขึ้น แอปสามารถใช้ API ใหม่เพื่อรับภาษาที่ผู้ใช้เลือกและที่มีความซับซ้อนมากขึ้น ประสบการณ์ของผู้ใช้สำหรับผู้ใช้หลายภาษา — เช่น การแสดงผลการค้นหาใน หลายภาษา โดยไม่เสนอการแปลหน้าเว็บในภาษาต่างๆ ที่ผู้ใช้ทราบอยู่แล้ว
นอกจากการสนับสนุนหลายภาษาแล้ว Android 7.0 ยังได้เพิ่มภาษาที่หลากหลาย พร้อมใช้งานสำหรับผู้ใช้ มีผลิตภัณฑ์ย่อยมากกว่า 25 รายการสำหรับการใช้งานกันทั่วไป ภาษา เช่น อังกฤษ สเปน ฝรั่งเศส และอาหรับ รวมถึงรองรับภาษาใหม่ๆ กว่า 100 ภาษาบางส่วนด้วย
แอปสามารถดูรายการภาษาที่ผู้ใช้กำหนดไว้โดยการเรียกใช้
LocaleList.GetDefault()
Android 7.0 กำลังเปลี่ยนวิธีแก้ไขทรัพยากรเพื่อรองรับจำนวนภาษาที่เพิ่มขึ้น อย่าลืมทดสอบและยืนยันว่าแอป
ทำงานได้ตามที่คาดไว้ด้วยตรรกะความละเอียดของทรัพยากรใหม่
ดูข้อมูลเกี่ยวกับลักษณะการทำงานใหม่ของการแก้ปัญหาทรัพยากรและแนวทางปฏิบัติแนะนำที่คุณ ควรตามมา โปรดดูที่การสนับสนุนหลายภาษา
อีโมจิใหม่
Android 7.0 เปิดตัวอีโมจิและฟีเจอร์อื่นๆ ที่เกี่ยวข้องกับอีโมจิ ได้แก่ อีโมจิสีผิวและการรองรับรูปแบบต่างๆ ตัวเลือก หากแอปรองรับอีโมจิ ทำตามหลักเกณฑ์ด้านล่างเพื่อใช้ประโยชน์จากฟีเจอร์ที่เกี่ยวข้องกับอีโมจิเหล่านี้
-
ตรวจสอบว่าอุปกรณ์มีอีโมจิก่อนแทรก
เพื่อดูว่ามีอีโมจิใดอยู่ใน
แบบอักษรของระบบ ให้ใช้เมธอด
hasGlyph(String)
- ตรวจสอบว่าอีโมจิรองรับตัวเลือกรูปแบบต่างๆ ตัวเลือกรูปแบบช่วยให้คุณ นำเสนออีโมจิบางตัวเป็นสีหรือขาวดำ ในอุปกรณ์เคลื่อนที่ แอปควรแสดงอีโมจิเป็นสีแทนที่จะเป็นขาวดํา อย่างไรก็ตาม หากแอปแสดงอีโมจิในบรรทัดพร้อมข้อความ ก็ควรใช้รูปแบบขาวดำ หากต้องการทราบว่าอีโมจิมีรูปแบบอื่นหรือไม่ ให้ใช้ตัวเลือกรูปแบบ สำหรับรายการอักขระทั้งหมดที่มีรูปแบบ ให้ดูที่ ลำดับรูปแบบต่างๆ ของอีโมจิ เอกสารประกอบเกี่ยวกับ Unicode เกี่ยวกับรูปแบบต่างๆ
-
ตรวจสอบว่าอีโมจิรองรับสีผิว Android 7.0 ช่วยให้ผู้ใช้สามารถแก้ไข
โทนสีผิวที่แสดงของอีโมจิได้ตามต้องการ แอปแป้นพิมพ์ควรจะมีภาพ
สัญญาณบอกสถานะสำหรับอีโมจิที่มีสีผิวหลายสีและควรให้ผู้ใช้
ให้เลือกสีผิวที่ต้องการ เพื่อกำหนดว่าอีโมจิของระบบใดมี
ตัวปรับสีผิว ให้ใช้
hasGlyph(String)
คุณสามารถระบุอีโมจิที่ใช้โทนสีผิวได้โดยการอ่าน เอกสารประกอบเกี่ยวกับ Unicode
ICU4J API ใน Android
ปัจจุบัน Android 7.0 มี API ชุดย่อยของ ICU4J ในเฟรมเวิร์ก Android ซึ่งอยู่ภายใต้
แพ็กเกจ android.icu
การย้ายข้อมูลทำได้ง่ายและส่วนใหญ่จะต้องดำเนินการ
เพียงแค่เปลี่ยนจากเนมสเปซ com.java.icu
เป็น
android.icu
หากคุณใช้แพ็กเกจ ICU4J ในแพ็กเกจ
โดยเปลี่ยนไปใช้ API ของ android.icu
ที่มีให้ใน Android
จะช่วยประหยัดค่าใช้จ่ายได้มากขึ้นในขนาด APK
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ Android ICU4J API โปรดดูการสนับสนุนของ ICU4J
WebView
Chrome + WebView ใช้ร่วมกัน
เริ่มตั้งแต่ Chrome เวอร์ชัน 51 ใน Android 7.0 ขึ้นไป APK ของ Chrome ในอุปกรณ์ของคุณ ใช้เพื่อระบุและแสดงผล Android System WebView วิธีนี้จะช่วยปรับปรุงหน่วยความจำ ใช้งานบนอุปกรณ์ และยังลดแบนด์วิดท์ที่จำเป็นสำหรับการรักษา WebView เป็นเวอร์ชันล่าสุดแล้ว (เนื่องจาก WebView APK แบบสแตนด์อโลนจะไม่ได้รับการอัปเดตอีกต่อไป ตราบใดที่ Chrome ยังคงเปิดใช้งานอยู่)
คุณเลือกผู้ให้บริการ WebView ได้โดยเปิดใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์และ เลือกการใช้งาน WebView คุณสามารถใช้ เวอร์ชัน Chrome (Dev, เบต้า หรือเสถียร) ที่ติดตั้งในอุปกรณ์หรือ APK ของ Webview แบบสแตนด์อโลนเพื่อทำหน้าที่เป็นการติดตั้งใช้งาน WebView
หลายขั้นตอน
ตั้งแต่ Chrome เวอร์ชัน 51 ใน Android 7.0 เป็นต้นไป WebView จะเรียกใช้เนื้อหาเว็บในกระบวนการที่ใช้แซนด์บ็อกซ์แยกต่างหากเมื่อเปิดใช้ตัวเลือก "WebView แบบหลายกระบวนการ" ของนักพัฒนาซอฟต์แวร์
เราอยากทราบความคิดเห็นเกี่ยวกับความเข้ากันได้และประสิทธิภาพรันไทม์ในภาษา N ก่อนที่จะเปิดใช้ WebView แบบหลายขั้นตอนใน Android เวอร์ชันในอนาคต ด้วยวิธีนี้ เวอร์ชัน การเกิดปัญหาซ้ำในเวลาเริ่มต้น การใช้หน่วยความจำทั้งหมด และซอฟต์แวร์ ในการแสดงผลนั้น
หากคุณพบปัญหาที่ไม่คาดคิดในโหมดประมวลผลหลายรายการ โปรดแจ้งให้เราทราบ ให้พวกเขา โปรดติดต่อทีม WebView ในเครื่องมือติดตามข้อบกพร่อง Chromium
JavaScript ทำงานก่อนโหลดหน้าเว็บ
เริ่มตั้งแต่แอปที่กำหนดเป้าหมายเป็น Android 7.0 เป็นต้นไป ระบบจะรีเซ็ตบริบท JavaScript เมื่อโหลดหน้าเว็บใหม่ ปัจจุบันนี้ บริบทนี้มีการนำมาใช้สำหรับ หน้าแรกที่โหลดในอินสแตนซ์ WebView ใหม่
นักพัฒนาซอฟต์แวร์ที่ต้องการแทรก JavaScript ลงใน WebView ควรเรียกใช้เมธอด สคริปต์หลังจากที่หน้าเว็บเริ่มโหลดแล้ว
ตำแหน่งทางภูมิศาสตร์ในต้นทางที่ไม่ปลอดภัย
เริ่มตั้งแต่แอปที่กำหนดเป้าหมายเป็น Android 7.0 เป็นต้นไป API ตำแหน่งทางภูมิศาสตร์จะทำงาน อนุญาตในต้นทางที่ปลอดภัย (ผ่าน HTTPS) นโยบายนี้ออกแบบมาเพื่อปกป้อง ข้อมูลส่วนตัวของผู้ใช้เมื่อใช้การเชื่อมต่อที่ไม่ปลอดภัย
การทดสอบด้วย WebView รุ่นเบต้า
WebView ได้รับการอัปเดตเป็นประจำ เราจึงขอแนะนำให้คุณทดสอบความเข้ากันได้ กับแอปของคุณเป็นประจำโดยใช้เวอร์ชันเบต้าของ WebView หากต้องการเริ่มทดสอบ WebView เวอร์ชันก่อนเปิดตัวใน Android 7.0 ให้ดาวน์โหลดและติดตั้ง Chrome Dev หรือ Chrome Beta แล้วเลือกเป็นการใช้งาน WebView ในส่วนตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ตามที่อธิบายไว้ข้างต้น โปรดรายงานปัญหาผ่าน Chromium เครื่องมือติดตามข้อบกพร่อง เพื่อให้เราแก้ไขได้ก่อนที่จะใช้ WebView เวอร์ชันใหม่ เผยแพร่แล้ว
OpenGL™ ES 3.2 API
Android 7.0 เพิ่มอินเทอร์เฟซเฟรมเวิร์กและการสนับสนุนแพลตฟอร์มสำหรับ OpenGL ES 3.2 ซึ่งรวมถึง
- ส่วนขยายทั้งหมดจาก
Android Extension Pack (AEP) ยกเว้น
EXT_texture_sRGB_decode
- FrameBuffers ที่จุดลอยตัวสำหรับ HDR และการลงเฉดสีแบบหน่วงเวลา
- BaseVertex ดึงดูดการเรียกใช้เพื่อให้การรวมกลุ่มและสตรีมมิงมีประสิทธิภาพยิ่งขึ้น
- การควบคุมการเข้าถึงบัฟเฟอร์ที่มีประสิทธิภาพเพื่อลดค่าใช้จ่ายของ WebGL
Framework API สำหรับ OpenGL ES 3.2 ใน Android 7.0 มีให้ใช้งานในคลาส GLES32
เมื่อใช้ OpenGL ES 3.2 อย่าลืมประกาศฟิลด์
ในไฟล์ Manifest ของคุณโดยใช้แท็ก <uses-feature>
และ
android:glEsVersion
สำหรับข้อมูลเกี่ยวกับการใช้ OpenGL ES รวมถึงวิธีตรวจสอบ เวอร์ชัน OpenGL ES ที่รองรับขณะรันไทม์ โปรดดูคู่มือ API ของ OpenGL ES
การบันทึกใน Android TV
Android 7.0 เพิ่มความสามารถในการบันทึกและเล่นเนื้อหาจากอินพุต Android TV บริการผ่าน API การบันทึกใหม่ ต่อยอดจากการเปลี่ยนแปลงเวลาที่มีอยู่แล้ว API, บริการอินพุตทีวีสามารถควบคุมข้อมูลช่องที่จะบันทึกได้ รวมถึงวิธีการ ระบบจะบันทึกเซสชันที่บันทึกไว้ และจัดการการโต้ตอบของผู้ใช้กับเนื้อหาที่บันทึกไว้
ดูข้อมูลเพิ่มเติมได้ที่ Android TV Recording API
Android for Work
Android for Work เพิ่มฟีเจอร์และ API ใหม่ๆ มากมายสำหรับอุปกรณ์ที่ใช้ Android 7.0 โปรดดูรายการฟีเจอร์ทั้งหมดด้านล่าง ดังนี้ ฟีเจอร์ของ Android Enterprise
คำถามเพื่อความปลอดภัยของโปรไฟล์งาน
เจ้าของโปรไฟล์ที่กำหนดเป้าหมายเป็น N SDK
สามารถระบุระดับความปลอดภัยที่แยกกันต่างหากสำหรับแอปที่ทำงานใน
โปรไฟล์งาน ภารกิจการทำงานจะแสดงขึ้นเมื่อผู้ใช้พยายามเปิดแอปงาน การทำภารกิจรักษาความปลอดภัยให้สำเร็จจะช่วยปลดล็อก
โปรไฟล์งานและถอดรหัสหากจำเป็น สำหรับเจ้าของโปรไฟล์
ACTION_SET_NEW_PASSWORD
แจ้งให้ผู้ใช้ตั้งค่างาน
คำท้า และ ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
ข้อความแจ้ง
ให้ผู้ใช้ตั้งค่าการล็อกอุปกรณ์
เจ้าของโปรไฟล์สามารถกำหนดนโยบายรหัสผ่านที่แตกต่างกันสำหรับภารกิจการทำงาน
(เช่น ระยะเวลาที่ต้องใช้ PIN หรือว่าสามารถใช้ลายนิ้วมือได้หรือไม่
เพื่อปลดล็อกโปรไฟล์) โดยใช้ setPasswordQuality()
setPasswordMinimumLength()
และวิธีการที่เกี่ยวข้อง โปรไฟล์
เจ้าของยังตั้งค่าการล็อกอุปกรณ์โดยใช้DevicePolicyManager
ได้ด้วย
ที่แสดงผลโดยเมธอด getParentProfileInstance()
ใหม่
นอกจากนี้ เจ้าของโปรไฟล์ยังสามารถปรับแต่งหน้าจอเข้าสู่ระบบ
การทำงานโดยใช้ setOrganizationColor()
ใหม่และ
setOrganizationName()
วิธี
ปิดงาน
ในอุปกรณ์ที่มีโปรไฟล์งาน ผู้ใช้สามารถสลับโหมดงานได้ เมื่อโหมดงานคือ การปิดผู้ใช้ที่มีการจัดการถูกปิดชั่วคราว ซึ่งจะเป็นการปิดใช้โปรไฟล์งาน แอป การซิงค์ในแบ็กกราวด์ และการแจ้งเตือน ซึ่งรวมถึงเจ้าของโปรไฟล์ แอปพลิเคชัน เมื่อโหมดงานปิดอยู่ ระบบจะแสดงไอคอนสถานะแบบถาวรเพื่อเตือนให้ผู้ใช้ทราบว่าไม่สามารถเปิดแอปงานได้ โปรแกรมเปิดแอปจะระบุว่าเข้าถึงแอปและวิดเจ็ตงานไม่ได้
VPN แบบเปิดตลอดเวลา
เจ้าของอุปกรณ์และเจ้าของโปรไฟล์สามารถตรวจสอบได้ว่าแอปงานเชื่อมต่อผ่าน VPN ที่ระบุไว้เสมอ ระบบจะเริ่มต้น VPN ดังกล่าวโดยอัตโนมัติหลังจาก เปิดเครื่อง
เมธอด DevicePolicyManager
ใหม่คือ
setAlwaysOnVpnPackage()
และ
getAlwaysOnVpnPackage()
เนื่องจากระบบสามารถเชื่อมโยงบริการ VPN ได้โดยตรงโดยไม่ต้องใช้แอป
การโต้ตอบ ไคลเอ็นต์ VPN จะต้องจัดการจุดแรกเข้าใหม่สำหรับ VPN แบบเปิดตลอดเวลา อาส
ก่อนหน้านี้ บริการจะถูกระบุไปยังระบบโดยการจับคู่ตัวกรอง Intent
การดำเนินการ android.net.VpnService
ผู้ใช้ยังสามารถตั้งค่าไคลเอ็นต์ VPN แบบเปิดตลอดเวลาด้วยตนเองโดยใช้
VPNService
วิธีที่ใช้
การตั้งค่า > เพิ่มเติม > VPN ตัวเลือกในการเปิดใช้ VPN แบบเปิดตลอดเวลา
จากการตั้งค่าจะใช้ได้เฉพาะเมื่อไคลเอ็นต์ VPN กำหนดเป้าหมายเป็น API ระดับ 24 เท่านั้น
การจัดสรรแบบกำหนดเอง
แอปพลิเคชันสามารถปรับแต่งขั้นตอนการจัดสรรเจ้าของโปรไฟล์และเจ้าของอุปกรณ์ด้วยสีและโลโก้ขององค์กร
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
การปรับแต่ง
สีโฟลว์ DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
ปรับแต่งขั้นตอนโดยใช้โลโก้องค์กร
การเพิ่มประสิทธิภาพการช่วยเหลือพิเศษ
ขณะนี้ Android 7.0 นำเสนอการตั้งค่าการมองเห็นโดยตรงบนหน้าจอต้อนรับสำหรับ ตั้งค่าอุปกรณ์ ซึ่งช่วยให้ผู้ใช้ค้นพบและกำหนดค่าได้ง่ายขึ้น ฟีเจอร์การช่วยเหลือพิเศษในอุปกรณ์ ซึ่งรวมถึงท่าทางสัมผัสการขยายและแบบอักษร ขนาดการแสดงผล และ TalkBack
เมื่อฟีเจอร์การช่วยเหลือพิเศษเหล่านี้ได้รับตำแหน่งที่โดดเด่นมากขึ้น ผู้ใช้ของคุณ มีแนวโน้มที่จะลองใช้แอปโดย เปิดใช้ตัวเลือกนั้น อย่าลืมทดสอบแอปตั้งแต่เนิ่นๆ โดยเปิดใช้การตั้งค่าเหล่านี้ คุณจะเปิดใช้ได้จากการตั้งค่า > การช่วยเหลือพิเศษ
นอกจากนี้ ใน Android 7.0 บริการการช่วยเหลือพิเศษยังช่วยผู้ใช้เกี่ยวกับการเคลื่อนไหวได้ ความบกพร่องในการแตะหน้าจอ API ใหม่นี้ช่วยให้สร้างบริการด้วย เช่น การติดตามใบหน้า การติดตามดวงตา การสแกนจุด เป็นต้น ตอบสนองความต้องการของผู้ใช้เหล่านั้นได้
ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิงสำหรับ
GestureDescription
Direct Boot
การบูตโดยตรงจะปรับปรุงเวลาในการเริ่มต้นของอุปกรณ์และช่วยให้แอปที่ลงทะเบียนมีฟังก์ชันการทำงานแบบจำกัดแม้หลังจากรีบูตโดยไม่คาดคิด เช่น หากอุปกรณ์ที่เข้ารหัสรีบูตในขณะที่ผู้ใช้อยู่ในโหมดสลีป ตอนนี้การปลุกที่ลงทะเบียน ข้อความ และสายเรียกเข้าสามารถทำการแจ้งเตือนต่อไปได้ ผู้ใช้ตามปกติ บริการการช่วยเหลือพิเศษยัง พร้อมใช้งานทันทีหลังจากรีสตาร์ท
การเปิดเครื่องโดยตรงใช้ประโยชน์จากการเข้ารหัสตามไฟล์ใน Android 7.0 เพื่อเปิดใช้นโยบายการเข้ารหัสแบบละเอียดสำหรับทั้งข้อมูลระบบและแอป ระบบใช้พื้นที่เก็บข้อมูลที่เข้ารหัสในอุปกรณ์สำหรับข้อมูลระบบบางรายการและข้อมูลแอปที่ลงทะเบียนไว้อย่างชัดเจน โดยค่าเริ่มต้น พื้นที่เก็บข้อมูลที่เข้ารหัสข้อมูลเข้าสู่ระบบจะใช้สำหรับทุกคน ข้อมูลระบบอื่นๆ ข้อมูลผู้ใช้ แอป และข้อมูลแอป
เมื่อเปิดเครื่อง ระบบจะเริ่มทํางานในโหมดที่จำกัดซึ่งมีสิทธิ์เข้าถึง
ข้อมูลที่เข้ารหัสอุปกรณ์เท่านั้น และไม่มีการเข้าถึงทั่วไปสำหรับแอปหรือข้อมูล
หากคุณมีคอมโพเนนต์ที่ต้องการให้ทำงานในโหมดนี้ คุณสามารถลงทะเบียนได้
โดยการตั้งค่า Flag ในไฟล์ Manifest หลังจากรีสตาร์ทแล้ว ระบบจะเปิดใช้งาน
คอมโพเนนต์ที่ลงทะเบียนจากการเผยแพร่ LOCKED_BOOT_COMPLETED
Intent ระบบจะตรวจสอบว่ามีข้อมูลแอปที่เข้ารหัสอุปกรณ์ที่ลงทะเบียนไว้แล้ว
ก่อนปลดล็อก ข้อมูลอื่นๆ ทั้งหมดจะใช้งานไม่ได้จนกว่าผู้ใช้จะยืนยันการล็อก
เพื่อถอดรหัสได้
เอกสารรับรองคีย์
Android 7.0 เปิดตัวเอกสารรับรองคีย์ ซึ่งเป็นเครื่องมือรักษาความปลอดภัยใหม่ที่ช่วย คุณต้องตรวจสอบว่าคู่คีย์ที่เก็บไว้ในอุปกรณ์โดยใช้ฮาร์ดแวร์สำรอง คีย์สโตร์เพื่อปกป้องข้อมูลที่ละเอียดอ่อนที่แอปของคุณ การใช้งาน เมื่อใช้เครื่องมือนี้ คุณจะมั่นใจมากขึ้นว่าแอปของคุณ โต้ตอบกับคีย์ที่อยู่ในฮาร์ดแวร์ที่ปลอดภัย แม้ว่าอุปกรณ์จะ การเรียกใช้แอปมีการรูท หากคุณใช้คีย์จากคีย์สโตร์ที่สำรองข้อมูลด้วยฮาร์ดแวร์ในแอป คุณควรใช้เครื่องมือนี้ โดยเฉพาะในกรณีที่ใช้คีย์เพื่อยืนยันข้อมูลที่ละเอียดอ่อนภายในแอป
เอกสารรับรองคีย์ช่วยให้คุณยืนยันได้ว่าคู่คีย์ RSA หรือ EC ได้รับการ สร้างและจัดเก็บไว้ในคีย์สโตร์ที่ขับเคลื่อนโดยฮาร์ดแวร์ของอุปกรณ์ภายใน สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) เครื่องมือนี้ยังช่วยให้คุณใช้เครื่องมือ นอกอุปกรณ์ เช่น เซิร์ฟเวอร์แบ็กเอนด์ของแอป เพื่อระบุและ ตรวจสอบการใช้งานและความถูกต้องของคู่คีย์อย่างเข้มงวด ฟีเจอร์เหล่านี้ ระดับการรักษาความปลอดภัยเพิ่มเติมที่ช่วยปกป้องคู่คีย์ แม้ว่า รูทอุปกรณ์หรือทำให้เกิดความเสี่ยงต่อความปลอดภัยของแพลตฟอร์ม Android ที่ใช้ ในอุปกรณ์
หมายเหตุ: มีอุปกรณ์ที่ใช้ Android 7.0 เป็นจำนวนไม่มาก
รองรับเอกสารรับรองคีย์ระดับฮาร์ดแวร์ อุปกรณ์อื่นๆ ทั้งหมดที่ใช้ Android 7.0
ใช้เอกสารรับรองคีย์ระดับซอฟต์แวร์แทน ก่อนยืนยันพร็อพเพอร์ตี้
ของคีย์ที่สนับสนุนฮาร์ดแวร์ของอุปกรณ์ในสภาพแวดล้อมระดับที่ใช้งานจริง
ควรตรวจสอบว่าอุปกรณ์รองรับเอกสารรับรองคีย์ระดับฮาร์ดแวร์ ถึง
คุณควรตรวจสอบว่าชุดใบรับรองของเอกสารรับรองมีรูท
ที่ลงชื่อโดยคีย์รูทของเอกสารรับรองของ Google และ
องค์ประกอบ attestationSecurityLevel
ภายในคีย์
คำอธิบาย มีการตั้งค่าโครงสร้างข้อมูลเป็นความปลอดภัยของ TrustedEnvironment
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์เกี่ยวกับการรับรองคีย์
การกำหนดค่าการรักษาความปลอดภัยของเครือข่าย
ใน Android 7.0 แอปสามารถปรับแต่งลักษณะการทำงานของที่ปลอดภัย (HTTPS, TLS) ได้ ได้อย่างปลอดภัยโดยไม่ต้องแก้ไขโค้ด โดยการใช้ การกำหนดค่าความปลอดภัยของเครือข่ายแทนการใช้รูปแบบปกติ API แบบเป็นโปรแกรมที่เกิดข้อผิดพลาดได้ง่าย (เช่น X509TrustManager)
ฟีเจอร์ที่รองรับ:
- Trust Anchor ที่กำหนดเอง ให้แอปพลิเคชันกำหนดค่า ผู้ออกใบรับรอง (CA) ได้รับความไว้วางใจจากการเชื่อมต่อที่ปลอดภัย สำหรับ เช่น การเชื่อถือใบรับรองที่ลงนามด้วยตนเองบางรายการ หรือชุด CA สาธารณะแบบจำกัด
- การลบล้างสำหรับแก้ไขข้อบกพร่องเท่านั้น ช่วยให้นักพัฒนาแอปพลิเคชันแก้ไขข้อบกพร่องได้อย่างปลอดภัย กับแอปพลิเคชันได้อย่างปลอดภัยโดยไม่ต้องเพิ่มความเสี่ยงให้กับ ฐาน
- การเลือกไม่รับการเข้าชมแบบข้อความธรรมดา อนุญาตให้แอปพลิเคชันปกป้องตัวเองจาก การใช้การเข้าชมแบบข้อความธรรมดา (Cleartext) โดยไม่ได้ตั้งใจ
- การปักหมุดใบรับรอง ฟีเจอร์ขั้นสูงที่ช่วยให้แอปพลิเคชัน จำกัดคีย์เซิร์ฟเวอร์ที่เชื่อถือสำหรับการเชื่อมต่อที่ปลอดภัย
โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการกำหนดค่าความปลอดภัยของเครือข่าย
ผู้ออกใบรับรองที่เชื่อถือได้เริ่มต้น
โดยค่าเริ่มต้น แอปที่กำหนดเป้าหมายเป็น Android 7.0 จะเชื่อถือใบรับรองที่ระบบมีให้เท่านั้น และไม่เชื่อถือผู้ออกใบรับรอง (CA) ที่ผู้ใช้เพิ่มไว้อีกต่อไป แอปที่กำหนดเป้าหมายเป็น Android 7.0 (API ระดับ 24) ที่ต้องการเชื่อถือ CA ที่ผู้ใช้เพิ่มควรใช้ การกำหนดค่าความปลอดภัยของเครือข่ายเพื่อ ระบุวิธีที่ควรเชื่อถือ CA ของผู้ใช้
APK Signature Scheme v2
Android 7.0 เปิดตัว APK Signature Scheme v2 ซึ่งเป็นรูปแบบการลงนามแอปแบบใหม่ที่ ทำให้ติดตั้งแอปได้เร็วขึ้นและป้องกันผู้ใช้ที่ไม่ได้รับอนุญาตได้ดีขึ้น การเปลี่ยนแปลงในไฟล์ APK โดยค่าเริ่มต้น Android Studio 2.2 และ Android ปลั๊กอินสำหรับ Gradle 2.2 รับรองแอปของคุณโดยใช้ทั้ง APK Signature Scheme v2 และ แผนการลงนามแบบดั้งเดิม ซึ่งใช้การลงนาม JAR
แม้ว่าเราจะแนะนำให้ใช้ APK Signature Scheme v2 กับแอปของคุณ แต่
แต่ไม่ได้บังคับ หากแอปของคุณสร้างไม่ถูกต้องเมื่อใช้ APK
Signature Scheme v2 คุณจะปิดใช้รูปแบบใหม่ได้ กระบวนการปิดใช้
ทำให้ Android Studio 2.2 และ Android Plugin for Gradle 2.2 รับรอง
แอปโดยใช้เฉพาะรูปแบบการลงนามดั้งเดิมเท่านั้น หากต้องการลงนามโดยใช้
รูปแบบดั้งเดิม ให้เปิดไฟล์ build.gradle
ระดับโมดูล
เพิ่มบรรทัด v2SigningEnabled false
ในการรับรองรุ่น
การกำหนดค่า:
android { ... defaultConfig { ... } signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" v2SigningEnabled false } } }
ข้อควรระวัง: หากคุณลงชื่อแอปโดยใช้ APK Signature Scheme v2 และทําการเปลี่ยนแปลงแอปเพิ่มเติม การรับรองของแอปจะใช้งานไม่ได้ ด้วยเหตุนี้ ให้ใช้เครื่องมืออย่าง zipalign
ก่อนลงนามแอปโดยใช้ APK Signature Scheme v2 ไม่ใช่หลังจากลงนาม
สำหรับข้อมูลเพิ่มเติม โปรดอ่านเอกสารของ Android Studio ที่อธิบายวิธี ลงนามแอปใน Android Studio และวิธี กำหนดค่า ไฟล์บิลด์สำหรับการรับรองแอปโดยใช้ปลั๊กอิน Android สำหรับ Gradle
การเข้าถึงไดเรกทอรีที่กำหนดขอบเขต
ใน Android 7.0 แอปสามารถใช้ API ใหม่เพื่อขอสิทธิ์เข้าถึงไดเรกทอรีพื้นที่เก็บข้อมูลภายนอกที่เฉพาะเจาะจง รวมถึงไดเรกทอรีในสื่อแบบถอดออกได้ เช่น การ์ด SD API ใหม่นี้ช่วยให้แอปพลิเคชันเข้าถึงไดเรกทอรีพื้นที่เก็บข้อมูลภายนอกมาตรฐาน เช่น ไดเรกทอรี Pictures
ได้ง่ายขึ้นมาก แอป
เช่น แอปรูปภาพสามารถใช้ API เหล่านี้แทนการใช้
READ_EXTERNAL_STORAGE
ซึ่งให้สิทธิ์เข้าถึงพื้นที่เก็บข้อมูลทั้งหมด
ไดเรกทอรี หรือเฟรมเวิร์กการเข้าถึงพื้นที่เก็บข้อมูล ซึ่งทำให้ผู้ใช้ไปยัง
ไดเรกทอรี
นอกจากนี้ API ใหม่ยังช่วยลดความซับซ้อนของขั้นตอนที่ผู้ใช้ทำเพื่อให้สิทธิ์ภายนอก สิทธิ์เข้าถึงพื้นที่เก็บข้อมูลของแอป เมื่อคุณใช้ API ใหม่ ระบบจะใช้ UI การอนุญาตที่แจ้งรายละเอียดไดเรกทอรีของแอปพลิเคชันอย่างชัดเจน ที่ขอสิทธิ์การเข้าถึง
สำหรับข้อมูลเพิ่มเติม โปรดดู กำหนดขอบเขต เอกสารสำหรับนักพัฒนาซอฟต์แวร์เกี่ยวกับการเข้าถึงไดเรกทอรี
ตัวช่วยเหลือสำหรับแป้นพิมพ์ลัด
ใน Android 7.0 ผู้ใช้สามารถกด Meta + / เพื่อทริกเกอร์
หน้าจอแป้นพิมพ์ลัดที่แสดงแป้นพิมพ์ลัดทั้งหมดที่ใช้ได้
จากระบบและจากแอปที่ใช้งาน ระบบจะดึงข้อมูลทางลัดเหล่านี้จากเมนูของแอปโดยอัตโนมัติหากมีทางลัด คุณสามารถ
คุณยังสามารถมีรายการทางลัดที่ปรับแต่งมาสำหรับหน้าจอได้ คุณทำได้
โดยลบล้างเมธอด onProvideKeyboardShortcuts()
หมายเหตุ: คีย์ Meta ไม่พร้อมใช้งานในทุกที่ แป้นพิมพ์: บนแป้นพิมพ์ Macintosh ปุ่มจะเป็นแป้น Command บนแป้นพิมพ์ Windows นี่ก็คือแป้น Windows และใน Pixel C และแป้นพิมพ์ ChromeOS จะเป็นแป้นค้นหา
หากต้องการเรียกใช้งานตัวช่วยแป้นพิมพ์ลัดได้จากทุกที่ในแอปของคุณ ให้เรียกใช้
requestShowKeyboardShortcuts()
จากกิจกรรมที่เกี่ยวข้อง
API ตัวชี้ที่กำหนดเอง
Android 7.0 เปิดตัว Custom Pointer API ซึ่งช่วยให้คุณปรับแต่ง ลักษณะ การมองเห็น และการทำงานของตัวชี้ ความสามารถนี้ มีประโยชน์เป็นพิเศษเมื่อผู้ใช้ใช้เมาส์ หรือทัชแพดเพื่อโต้ตอบ ออบเจ็กต์ UI เคอร์เซอร์เริ่มต้นจะใช้ไอคอนมาตรฐาน API นี้ยังรวมถึง ฟังก์ชันขั้นสูง เช่น การเปลี่ยนลักษณะที่ปรากฏของไอคอนตัวชี้ตาม การเคลื่อนที่ของเมาส์หรือทัชแพดเฉพาะ
หากต้องการกำหนดไอคอนเคอร์เซอร์ ให้ลบล้าง onResolvePointerIcon()
ของคลาส View
วิธีนี้ใช้เมธอด
PointerIcon
สำหรับการวาดไอคอนที่สอดคล้องกับ
เหตุการณ์การเคลื่อนไหวที่เจาะจง
API ประสิทธิภาพที่ยั่งยืน
ประสิทธิภาพอาจผันผวนอย่างมากสำหรับแอปที่ทำงานเป็นเวลานาน จะควบคุมเครื่องยนต์ระบบวงจรรวมบนชิปเมื่อส่วนประกอบของอุปกรณ์ไปถึง ขีดจำกัดอุณหภูมิ ความผันผวนนี้แสดงถึงเป้าหมายที่เปลี่ยนไปของแอป ซึ่งเป็นการสร้างแอปที่มีประสิทธิภาพสูงและใช้งานได้ยาวนาน
ในการแก้ปัญหาข้อจำกัดเหล่านี้ Android 7.0 ได้รวมการสนับสนุนสำหรับ โหมดประสิทธิภาพที่ยั่งยืน ซึ่งช่วยให้ OEM สามารถให้คำแนะนำเกี่ยวกับ ประสิทธิภาพการทำงานของอุปกรณ์สำหรับแอปที่ทำงานเป็นเวลานาน นักพัฒนาแอป สามารถใช้คำแนะนำเหล่านี้เพื่อปรับแต่งแอปเพื่อให้ คาดการณ์ได้แม่นยำ ประสิทธิภาพของอุปกรณ์ในระดับที่สม่ำเสมอกันในระยะยาว
นักพัฒนาแอปสามารถลองใช้ API ใหม่นี้ได้ใน Android 7.0 บน
อุปกรณ์ Nexus 6P เท่านั้น หากต้องการใช้ฟีเจอร์นี้
ตั้งค่าสถานะกรอบเวลาด้านประสิทธิภาพที่ยั่งยืนสำหรับกรอบเวลานั้น
ที่คุณต้องการให้ทำงานในโหมดประสิทธิภาพที่ยั่งยืน ตั้งค่าสถานะนี้โดยใช้
Window.setSustainedPerformanceMode()
วิธี ระบบจะทำงานโดยอัตโนมัติ
ปิดใช้งานโหมดนี้เมื่อหน้าต่างไม่ได้อยู่ในโฟกัสแล้ว
รองรับ VR
Android 7.0 เพิ่มการรองรับแพลตฟอร์มและการเพิ่มประสิทธิภาพสำหรับโหมด VR ใหม่เพื่อให้นักพัฒนาแอปสร้างประสบการณ์ VR บนอุปกรณ์เคลื่อนที่ที่มีคุณภาพสูงให้แก่ผู้ใช้ ประสิทธิภาพการทำงานมีหลายอย่าง การเพิ่มประสิทธิภาพสูงสุด ซึ่งรวมถึงสิทธิ์เข้าถึง CPU Core สำหรับแอป VR โดยเฉพาะ ภายในแอปของคุณ คุณสามารถใช้ประโยชน์จากการติดตาม การเคลื่อนไหวของศีรษะอัจฉริยะ และการแจ้งเตือนแบบสเตอริโอที่ใช้งานได้กับ VR สิ่งสำคัญที่สุดคือ Android 7.0 ให้ กราฟิกที่มีเวลาในการตอบสนองต่ำมาก หากต้องการดูข้อมูลทั้งหมดเกี่ยวกับการสร้างแอป VR สำหรับ Android 7.0 ดู Google VR SDK สำหรับ Android
การเพิ่มประสิทธิภาพบริการการพิมพ์
ใน Android 7.0 ตอนนี้นักพัฒนาบริการพิมพ์สามารถแสดงข้อมูลเพิ่มเติมเกี่ยวกับเครื่องพิมพ์และงานพิมพ์แต่ละรายการได้แล้ว
เมื่อแสดงเครื่องพิมพ์ทีละเครื่อง ตอนนี้บริการพิมพ์สามารถกำหนดค่าบริการต่อเครื่องพิมพ์ได้ 1 เครื่องแล้ว ไอคอนได้ 2 วิธี ดังนี้
- คุณสามารถกำหนดไอคอนจากรหัสทรัพยากรได้โดยการเรียกใช้
setIconResourceId()
- คุณสามารถแสดงไอคอนจากเครือข่ายได้โดยเรียกใช้
setHasCustomPrinterIcon()
และตั้งค่าการเรียกกลับเมื่อมีการขอไอคอนโดยใช้onRequestCustomPrinterIcon()
นอกจากนี้ คุณยังระบุกิจกรรมต่อเครื่องพิมพ์เพื่อแสดงข้อมูลเพิ่มเติมได้โดยเรียกใช้ setInfoIntent()
คุณระบุความคืบหน้าและสถานะของงานพิมพ์ในงานพิมพ์ได้
การแจ้งเตือนด้วยการโทร
setProgress()
และ
setStatus()
ตามลำดับ
API เมตริกเฟรม
Frame Metrics API ช่วยให้แอปตรวจสอบประสิทธิภาพการแสดงผล UI ได้ API นี้ให้ความสามารถนี้โดยการเปิดเผย Pub/Sub API สตรีมมิงเพื่อโอนข้อมูลการจับเวลาเฟรมสําหรับกรอบเวลาปัจจุบันของแอป ข้อมูลที่แสดงผลคือ
เทียบเท่ากับที่ adb shell
dumpsys gfxinfo framestats
แสดง แต่ไม่จํากัดเพียง 120 เฟรมที่ผ่านมา
คุณใช้ Frame Metrics API เพื่อวัด UI ระดับการโต้ตอบได้
ประสิทธิภาพการทำงานจริง โดยไม่ต้องมีการเชื่อมต่อ USB API นี้
ทำให้เก็บรวบรวมข้อมูลได้ละเอียดกว่า
adb shell dumpsys gfxinfo
รายละเอียดที่ละเอียดยิ่งขึ้นนี้เป็นไปได้เนื่องจากระบบสามารถรวบรวมข้อมูลสำหรับการโต้ตอบบางอย่างในแอปได้ ระบบจึงไม่จำเป็นต้องบันทึกข้อมูลสรุปแบบรวมเกี่ยวกับประสิทธิภาพของแอปทั้งหมด หรือล้างสถานะแบบรวม คุณใช้
ความสามารถในการรวบรวมข้อมูลประสิทธิภาพและดูการถดถอยในประสิทธิภาพของ UI
สำหรับกรณีการใช้งานจริงภายในแอป
หากต้องการตรวจสอบหน้าต่าง ให้ใช้เมธอด
OnFrameMetricsAvailableListener.onFrameMetricsAvailable()
Callback และลงทะเบียนในหน้าต่างนั้น
API มีออบเจ็กต์ FrameMetrics
ซึ่งมีข้อมูลการจับเวลาซึ่งระบบย่อยการแสดงผลรายงานสำหรับเหตุการณ์สำคัญต่างๆ ในวงจรเฟรม เมตริกที่รองรับ ได้แก่ UNKNOWN_DELAY_DURATION
,
INPUT_HANDLING_DURATION
, ANIMATION_DURATION
,
LAYOUT_MEASURE_DURATION
, DRAW_DURATION
, SYNC_DURATION
,
COMMAND_ISSUE_DURATION
, SWAP_BUFFERS_DURATION
,
TOTAL_DURATION
และ FIRST_DRAW_FRAME
ไฟล์เสมือน
ใน Android เวอร์ชันก่อนหน้า แอปของคุณอาจใช้การเข้าถึงพื้นที่เก็บข้อมูล เฟรมเวิร์กที่อนุญาตให้ผู้ใช้เลือกไฟล์จากบัญชีพื้นที่เก็บข้อมูลระบบคลาวด์ เช่น Google ไดรฟ์ อย่างไรก็ตาม ไม่มีวิธีใดที่จะแสดงไฟล์ที่สามารถ ไม่มีการแสดงไบต์โค้ดโดยตรง ทุกไฟล์ต้องมี สตรีมอินพุต
Android 7.0 เพิ่มแนวคิดไฟล์เสมือนลงในเฟรมเวิร์กการเข้าถึงพื้นที่เก็บข้อมูล ฟีเจอร์ไฟล์เสมือนทำให้
DocumentsProvider
เพื่อแสดงผล URI เอกสารที่สามารถ
โดยใช้เจตจำนง ACTION_VIEW
แม้ว่า
ไม่มีการแสดงไบต์โค้ดโดยตรง นอกจากนี้ Android 7.0 ยังให้คุณระบุรูปแบบอื่นสำหรับไฟล์ของผู้ใช้ ไม่ว่าจะเป็นรูปแบบเสมือนจริงหรือรูปแบบอื่นๆ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปิดไฟล์เสมือน โปรดดู เปิดไฟล์เสมือนใน คู่มือเฟรมเวิร์กการเข้าถึงพื้นที่เก็บข้อมูล