บางคนชอบที่จะเรียกมันว่าการกระจายตัวของคนอื่น ๆ เรียกว่าทางเลือก แต่โดยชื่อใด ๆ มีโทรศัพท์ Android ที่แตกต่างกันอย่างแน่นอน การสร้างแอปพลิเคชั่นที่ต้องใช้งานกับมันทั้งหมดนั้นไม่ใช่เรื่องง่าย คุณมีการกำหนดค่าฮาร์ดแวร์ที่แตกต่างกันอย่างดุเดือดซึ่งสร้างความแตกต่างอย่างมากในด้านประสิทธิภาพและแม้ว่าไฟล์ apk หนึ่งไฟล์สามารถทำงานได้กับทุก ๆ ไฟล์ แต่ยังคงมีปัญหาที่ต้องใช้แอปเพื่อให้ทำงานได้อย่างราบรื่นบนอุปกรณ์ระดับล่าง อุปกรณ์สิ้น เมื่อคุณพูดถึงแอพที่ได้รับความนิยมใน Facebook สิ่งนี้อาจกลายเป็นฝันร้ายสำหรับผู้ที่กำลังทำการเข้ารหัส
Facebook แสดงให้ทุกคนที่ Big Android Meat และทักทายกับโซลูชันใหม่ที่เรียบง่าย - องค์ประกอบ Device Year Class
นักพัฒนาของ Facebook อธิบายส่วนประกอบซอฟต์แวร์ใหม่ดังนี้:
Device Year Class เป็นห้องสมุด Android ที่ใช้อัลกอริทึมอย่างง่ายที่แมป RAM ของคอร์ CPU และความเร็วสัญญาณนาฬิกาถึงปีที่การรวมกันของสเป็กเหล่านั้นถือว่าสูง สิ่งนี้ทำให้นักพัฒนาสามารถปรับเปลี่ยนพฤติกรรมแอปพลิเคชันได้ง่ายขึ้นอยู่กับความสามารถของฮาร์ดแวร์ของโทรศัพท์
ไลบรารีไม่เปลี่ยนแปลงพฤติกรรมใด ๆ ในแอปพลิเคชัน ส่งคืนค่า (แสดงเป็นปี) ที่เก็บไว้ในรหัสสำหรับเวลาที่นักพัฒนาต้องการเปลี่ยนวิธีที่แอปทำงานเพื่อปรับแต่งประสบการณ์ให้เข้ากับฮาร์ดแวร์ชนิดใดชนิดหนึ่ง ซึ่งหมายความว่านักพัฒนาสามารถเขียนแอปที่มีภาพเคลื่อนไหวและการเปลี่ยนแฟนซีที่จะเล่นได้ตามต้องการเมื่อใช้งานในบางสิ่งเช่น Galaxy Note 4 แต่ไม่ใช้ eye-candy เมื่อแอพทำงานบน Moto E อย่างที่คุณทำได้ ลองจินตนาการว่าการควบคุมแบบนี้บนแอพเช่น Facebook ซึ่งติดตั้งในโทรศัพท์หลายล้านเครื่องและสามารถสร้างประสบการณ์ที่ดีกว่าสำหรับทุกคน และใช้งานง่าย จากเอกสารใน GitHub:
if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }
สิ่งที่ดีที่สุดคือห้องสมุดเปิดแหล่งภายใต้ใบอนุญาตซอฟต์แวร์ BSD (ใบอนุญาตเดียวกันกับที่ Google ใช้สำหรับแหล่ง Android) และพร้อมให้นักพัฒนาทุกคนใช้งานฟรี
เรารู้ว่านี่ไม่ใช่เวทมนตร์และเป็นไปได้ว่านักพัฒนาส่วนใหญ่ที่ทำงานในโครงการขนาดใหญ่มีวิธีการจัดการกับการกำหนดค่าฮาร์ดแวร์ที่แตกต่างกัน สิ่งที่ชั้นปีอุปกรณ์ทำคือมอบวิธีการแก้ปัญหาที่ง่ายและ "สง่างาม" ให้กับปัญหาใหญ่และทุกคนสามารถใช้งานได้
หน้า GitHub ระดับอุปกรณ์ 'ปี