Android Go คือ Android Oreo 8.1 เวอร์ชันแยกส่วนจาก Google สำหรับอุปกรณ์ใหม่ที่มี RAM ต่ำ ปรากฎว่าอาจช่วยในการพัฒนา ROM แบบกำหนดเองบนอุปกรณ์รุ่นเก่าได้เช่นกัน
Android Go เป็น Android เวอร์ชันแยกส่วนของ Google ที่ใช้ Android 8.1 Oreo และมีเป้าหมายเพื่อเป็น Android เวอร์ชันที่ได้รับการปรับปรุงสำหรับอุปกรณ์ระดับล่างที่มี RAM 1GB หรือต่ำกว่า มีการประกาศเมื่อเดือนพฤษภาคมปีที่แล้วที่การประชุม Google I/O Developer และ ในที่สุดก็มีการเปิดเผยรายละเอียดเพิ่มเติมในเดือนธันวาคมต่อมาในปีนั้น. ว่ากันว่าถูกสร้างขึ้นมาสำหรับอุปกรณ์ระดับเริ่มต้นรุ่นถัดไปเพื่อให้แน่ใจว่าอุปกรณ์เหล่านั้นจะเข้ามา ประเทศกำลังพัฒนายังคงสามารถใช้สมาร์ทโฟนที่ใช้งานได้เพื่อเข้าถึงอินเทอร์เน็ตและ ใช้แอพ
Go มีการเพิ่มประสิทธิภาพและปรับปรุงประสิทธิภาพที่หลากหลาย รวมถึงใช้พื้นที่จัดเก็บข้อมูลน้อยกว่าการติดตั้ง Android Oreo โดยเฉลี่ยถึง 50 เปอร์เซ็นต์ ต้องขอบคุณ Android Runtime (ART) และการปรับแต่งเคอร์เนลให้เหมาะสมเช่นกัน อุปกรณ์ที่ใช้ Android Go จะทำงานเร็วกว่าการติดตั้ง Android Oreo ทั่วไปบนอุปกรณ์เดียวกันโดยเฉลี่ยถึง 15 เปอร์เซ็นต์ การเพิ่มประสิทธิภาพเหล่านี้ดำเนินการผ่านการกำหนดค่าบิลด์พิเศษหลายอย่างที่ทำโดย Google ซึ่งเราจะอธิบายในภายหลัง
Android Go ยังได้รับประโยชน์จากแอปพลิเคชัน "Go" พิเศษเช่น ไฟล์ไป, YouTube ไป และ Google Maps ไป. แอปพลิเคชันเหล่านี้เป็นเวอร์ชันน้ำหนักเบาที่สร้างโดย Google ซึ่งทำให้ข้อกำหนดในการทำงานมีประสิทธิภาพลดลง ซึ่งหมายความว่าผู้ที่ใช้อุปกรณ์ Android Go สามารถเพลิดเพลินกับสิทธิประโยชน์ส่วนใหญ่เช่นเดียวกับที่ผู้ใช้ Android Oreo ทั่วไปสามารถทำได้เช่นกัน การใช้ชุดแอปพลิเคชันของ Google โดยไม่ต้องเสียเงินเป็นจำนวนมากกับงบประมาณหลักหรืองบประมาณที่แพงกว่าเล็กน้อย อุปกรณ์.
มันเป็นเรื่องของ Google ที่จะขยายตลาดของพวกเขา ยังทำให้เกิดคำถามว่าหาก Android Go ประกอบด้วยการกำหนดค่าบิวด์และชุดแอป Google ที่ได้รับการปรับปรุงเป็นส่วนใหญ่ นักพัฒนาจะสามารถสร้าง Android Go ของตัวเองได้หรือไม่ ในระยะสั้น, ใช่เราทำได้.
นักพัฒนา LineageOS เพียงไม่กี่รายกำลังสร้าง ROM แบบกำหนดเองที่ปรับให้เหมาะกับ Android Go อยู่แล้ว
เราเห็นการใช้งาน Android Go บ้างแล้วจากนักพัฒนา ROM แบบกำหนดเองบางราย เช่น โดย XDA Recognized Developer เอเดรียน ดี.ซีด้วยผลงานของเขาบน LineageOS 15.1 พร้อมการกำหนดค่า Android Go โทรศัพท์ Sony รุ่นเก่าหลายรุ่น. อุปกรณ์ดังกล่าว ได้แก่ Sony Xperia SP, Sony Xperia T, Sony Xperia V และ Sony Xperia TX อุปกรณ์เหล่านี้ล้วนย้อนกลับไปในปี 2012 และ 2013 แต่จะได้รับ LineageOS 15.1 ที่ใช้ Android 8.1 Oreo โดยใช้ Android ไปสร้างการกำหนดค่าซึ่งอาจอนุญาตให้อุปกรณ์เรียกใช้แอป Google 'Go' ได้อย่างราบรื่นหากในที่สุดชุด Android Go ของ Gapps จะเป็น ปล่อยแล้ว.
ผู้ดูแล LOS แต่ละคนควรจะสามารถแนะนำบิลด์ที่กำหนดค่า Android Go ได้ โดยเป็นชุดของการกำหนดค่าบิลด์และการเพิ่มประสิทธิภาพอื่นๆ ความหมายก็คือผู้ที่อาจซื้อ Sony Xperia T เช่น อุปกรณ์ที่ใช้ Android 4.0.4 Ice Cream Sandwich เมื่อเปิดตัว จะสามารถใช้ โครงสร้างที่ได้รับการปรับให้เหมาะสมยิ่งขึ้นของ Android 8.1 Oreo บนอุปกรณ์ โดยใช้ประโยชน์จากแอปพลิเคชันต่างๆ เช่น YouTube Go และ Google Maps Go มันจะไม่ทำงานที่ประสิทธิภาพระดับเรือธง แต่มันควรจะเป็น ใช้งานได้—โดยเฉพาะสำหรับอุปกรณ์ที่มีอายุย้อนไปถึงปี 2012
Android Go สามารถช่วยให้โทรศัพท์ Android รุ่นเก่าใช้ Android Oreo ได้อย่างไร
การกำหนดค่าบิวด์บน Android คือชุดพารามิเตอร์ที่เกี่ยวข้องกับแง่มุมต่างๆ ของระบบ Android ที่นำไปใช้เมื่อรวบรวมอิมเมจระบบสำหรับการแฟลชบนอุปกรณ์ โดยทั่วไปสิ่งเหล่านี้จะเปลี่ยนวิธีการทำงานของระบบ และที่มาของการเพิ่มประสิทธิภาพหลักของ Android Go การกำหนดค่าบิวด์เหล่านี้.
ฉันได้พูดคุยกับ XDA Recognized Developer ร่าเริงซึ่งช่วยให้ฉันเข้าใจการเปลี่ยนแปลงที่กำลังเกิดขึ้นได้อย่างมาก อะไรที่ทำให้ Android Go ใช้งานได้จริง การกำหนดค่าบิวด์เหล่านี้บางส่วนไม่สามารถเปลี่ยนแปลงได้หากไม่มีการคอมไพล์ใหม่ และเป็นส่วนหนึ่งของพิมพ์เขียวของ ROM เอง สิ่งเหล่านี้คือแฟล็กที่ใช้ตัวพิมพ์ใหญ่ทั้งหมด
อย่างไรก็ตาม ธงทั้งหมดนี้เกี่ยวข้องกับแง่มุมต่างๆ มากมายของ Android ที่เกี่ยวข้องกับพื้นที่จัดเก็บข้อมูลและการใช้หน่วยความจำ เหล่านี้ได้แก่ การจัดการพื้นที่เก็บข้อมูลอัตโนมัตินักฆ่าหน่วยความจำเหลือน้อยของ Android dex (งอัลวิค อดีตไฟล์ที่สามารถแก้ไขได้) เครื่องมือเพิ่มประสิทธิภาพและขีดจำกัด RAM สำหรับการรันแอป ไฟล์ APK ประกอบด้วยไฟล์ DEX เหล่านี้ ดังนั้น ในแง่หนึ่ง คุณจึงอาจมองไฟล์ APK เป็นเพียงไฟล์ ZIP ที่มีไฟล์ .dex จำนวนมาก ซึ่งเป็นไฟล์ที่ Android รันเมื่อรันไฟล์ แอปพลิเคชัน. การจัดการพื้นที่เก็บข้อมูลอัตโนมัติจะถูกควบคุมโดยแอปพลิเคชัน Files Go แทน ไม่ใช่ระบบ Android
Android Go Utilities โหมด RAM ต่ำของ Android
ใน Android 4.4 KitKat Google ได้เปิดตัวธงใหม่ที่เรียกว่า "แรมต่ำ" ซึ่งมีเป้าหมายเพื่อรองรับอุปกรณ์ที่มี RAM ขนาด 512MB มันทำการเพิ่มประสิทธิภาพหลายประการให้กับระบบ การเปลี่ยนแปลงเหล่านี้มีประโยชน์อย่างมากต่ออุปกรณ์ RAM ที่ต่ำกว่า
ปรับปรุงการจัดการหน่วยความจำ
- การกำหนดค่าเคอร์เนลประหยัดหน่วยความจำที่ได้รับการตรวจสอบแล้ว: สลับเป็น ZRAM
- ฆ่ากระบวนการที่แคชไว้หากกำลังจะไม่ถูกแคชและมีขนาดใหญ่เกินไป
- อย่าปล่อยให้บริการขนาดใหญ่นำตัวเองกลับเข้าสู่บริการ A (เพื่อไม่ให้บริการเหล่านั้นไม่สามารถทำให้ Launcher ถูกฆ่าได้)
- ฆ่ากระบวนการ (แม้แต่กระบวนการที่ไม่สามารถจัดการได้ตามปกติ เช่น IME ปัจจุบัน) ที่มีมากเกินไปในการบำรุงรักษาที่ไม่ได้ใช้งาน
- ทำให้การเปิดตัวบริการเบื้องหลังเป็นอนุกรม
- ปรับแต่งการใช้หน่วยความจำของอุปกรณ์ RAM ต่ำ: ระดับการปรับระดับหน่วยความจำไม่เพียงพอ (OOM) ที่เข้มงวดมากขึ้น แคชกราฟิกขนาดเล็กลง ฯลฯ
การเปลี่ยนแปลงข้างต้นโดยพื้นฐานแล้วทำให้แน่ใจได้ว่าระบบจะใช้ RAM ที่บีบอัดหากเป็นไปได้ผ่านการใช้ ZRAM โดยพื้นฐานแล้ว ZRAM นั้นเป็น RAMdisk (สื่อเก็บข้อมูลที่ใช้ RAM ซึ่งเร็วกว่าการใช้ที่เก็บข้อมูลปกติบนอุปกรณ์มาก) เป็นไฟล์สลับ ไฟล์สลับจะใช้เมื่อมีการใช้งาน RAM สูงและแอปพลิเคชันยังต้องการหน่วยความจำ ซึ่งช้ากว่า RAM มาก และควรหลีกเลี่ยงหากเป็นไปได้ โดยพื้นฐานแล้ว มันเพียงบีบอัดเนื้อหาของหน่วยความจำ
หน่วยความจำระบบลดลง
- ตัดกระบวนการ system_server และ SystemUI (บันทึกได้หลาย MB)
- โหลดแคช dex ล่วงหน้าใน Dalvik (บันทึกได้หลาย MB)
- ตัวเลือก JIT-off ที่ตรวจสอบแล้ว (ประหยัดได้ถึง 1.5MB ต่อกระบวนการ)
- ลดค่าใช้จ่ายแคชแบบอักษรต่อกระบวนการ
- เปิดตัว ArrayMap/ArraySet และใช้อย่างกว้างขวางในกรอบงานเพื่อทดแทน HashMap/HashSet ที่เบากว่า
สิ่งที่เกิดขึ้นส่วนใหญ่ที่นี่คือเพียงลดการใช้หน่วยความจำจากกระบวนการต่างๆ ที่ทำงานบนอุปกรณ์ เพื่อให้เป็นแบบอนุรักษ์นิยมที่สุดเท่าที่จะเป็นไปได้ บริการระบบที่สำคัญถูกถอดออกเพื่อใช้หน่วยความจำน้อยที่สุดในเบื้องหลัง เนื่องจาก RAM ทุกเมกะไบต์มีความสำคัญ
Android Go ใช้ Low Memory Killer ที่ได้รับการแก้ไขและการเพิ่มประสิทธิภาพ dex
เนื่องจาก Android Go มีไว้สำหรับอุปกรณ์ที่มี RAM ขนาด 1GB หรือน้อยกว่าเป็นหลัก จึงจำเป็นต้องมีการจัดการหน่วยความจำเชิงรุกมากขึ้น Android Go ปรับเปลี่ยน Low Memory Killer (LMK) ด้วยวิธีที่แตกต่างกันสองสามวิธี ขั้นแรก เมื่อใช้ RAM ในปริมาณมาก ตัวทำลายหน่วยความจำเหลือน้อยจะไปที่ "ความกดดันที่สำคัญ" สถานะ. เนื่องจากเมื่อใช้หน่วยความจำสูง ระบบจะอืด เนื่องจากพยายามเข้าถึงไฟล์สลับบนพื้นที่เก็บข้อมูลของอุปกรณ์อยู่ตลอดเวลา การรักษา RAM ให้ชัดเจนจะป้องกันไม่ให้ระบบจำเป็นต้องใช้ไฟล์สลับนี้และป้องกันไม่ให้หน่วยความจำพัง การพังทลายของหน่วยความจำเกิดขึ้นเมื่อหน่วยความจำของอุปกรณ์เต็ม และต้องจัดเพจไฟล์สลับบนที่จัดเก็บข้อมูลของอุปกรณ์อยู่ตลอดเวลา ส่งผลให้ประสิทธิภาพลดลงอย่างมาก
บริการและบริการ WiFi ได้รับการตั้งค่าเป็น "โปรไฟล์ความเร็ว” ซึ่งหมายความว่าวิธีการที่เลือกในบริการเหล่านี้ได้รับการรวบรวมล่วงหน้า (AOT) (วิธีการหมายถึงชุดของรหัสที่สามารถเรียกชื่อได้ทุกจุด) ซึ่งจะช่วยลดการใช้ RAM และ ที่เก็บข้อมูล เนื่องจากระบบ Android ไม่จำเป็นต้องคอมไพล์บริการสำคัญที่ทำงานบนเครื่องอย่างต่อเนื่อง อุปกรณ์. ในขณะเดียวกัน APK ที่แชร์จะถูกตั้งค่าเป็น "เร็ว" ซึ่งได้รับการออกแบบมาเพื่อให้อายุการใช้งานแบตเตอรี่ยาวนานขึ้นและรอบ CPU ที่เพิ่มขึ้นโดยการปรับคำสั่ง dex ให้เหมาะสมเพื่อให้ได้ประสิทธิภาพที่ดีขึ้น
ในแง่ของการเพิ่มประสิทธิภาพ dex นั้น Android Go ทำได้ค่อนข้างมาก สำหรับผู้เริ่มต้น หลังจากผ่านไป 10 วัน ก็จะเป็นเช่นนั้น ดาวน์เกรดแอปพลิเคชัน หากไม่ได้ใช้เพื่อประหยัดพื้นที่ การลดระดับที่นี่ไม่ได้หมายถึงหมายเลขเวอร์ชันจริงของแอปพลิเคชันที่ลดลง แต่หมายความว่า dalvik_cache สำหรับแอปจะถูกล้างข้อมูล แคช Dalvik ถูกใช้เพื่อให้อุปกรณ์ไม่จำเป็นต้องคอมไพล์แอปใหม่ แต่จะรวบรวมเฉพาะส่วนที่จำเป็นที่สุดเท่านั้นและแคชสิ่งนั้น ส่วนที่เหลือจะถูกคอมไพล์โดยใช้คอมไพเลอร์ Just in Time (JIT) เมื่อรันแอปพลิเคชัน อย่างไรก็ตาม หากไม่ได้ใช้แอปพลิเคชันเป็นเวลา 10 วัน ส่วนสำคัญของแอปพลิเคชันที่คอมไพล์ไว้ล่วงหน้าจะถูกลบออกด้วย ทำเช่นนี้เพื่อเพิ่มพื้นที่ว่างให้มากที่สุด การเปลี่ยนแปลงง่ายๆ อีกประการหนึ่งคือการไม่อนุญาตให้การใช้ RAM ของแอปเกิน 256MB เพื่อให้แอปไม่สามารถใช้ RAM ทั้งหมดบนอุปกรณ์ได้
Android Go เป็นอนาคตของการพัฒนา ROM แบบกำหนดเองบนอุปกรณ์ระดับล่างหรือไม่?
ขณะนี้เราไม่ทราบคำตอบสำหรับเรื่องนี้ แต่อนาคตดูสดใสสำหรับการพัฒนา ROM แบบกำหนดเองบนอุปกรณ์รุ่นเก่า อาจมีปัญหาอื่น ๆ ในการเรียกใช้ Android เวอร์ชันใหม่บนอุปกรณ์ แต่ในทางทฤษฎีแล้วการอัพเกรดเป็น Android Go ที่ได้รับการปรับปรุงให้เหมาะสมยิ่งขึ้นโดยใช้ Android Oreo ควร ทำให้อุปกรณ์รุ่นเก่าๆ ระดับล่างทำงานได้ดีขึ้น