สำหรับ Android Device ของตระกูล Nexus นั้นมักจะสนุกสนานกับการที่ได้อัพเดทเวอร์ชันใหม่สุดก่อนใคร อย่างล่าสุดก็คือ Android 5.0 Lollipop ที่ใกล้จะปล่อยให้อัพเดทกันแล้ว และก็จะรู้กันอยู่แล้วว่าทาง Google นั้นจะใช้วิธีทยอยปล่อยให้อัพเดทกันไปเรื่อยๆ ไม่ใช่ปล่อยตู้มเดียวอัพเดททั่วโลก จึงทำให้ชาวชนคนไทยที่รออัพเดทนั้นเกิดอาการรอจนทนไม่ไหว จนใช้ไม้ตายที่เรียกว่า “Clear Data ใน Google Services Framework”

      ซึ่งวิธีดังกล่าวนี้จะช่วยให้ได้อัพเดทในทันทีก็จริง แต่ก็เป็นที่ดราม่ามาหลายต่อหลายครั้งแล้ว (อัพเดทเวอร์ชันใหม่ทีไรต้องมีดราม่านี้ทุกทีแหละ…) เนื่องจากทีมพัฒนา Android ก็ได้ชี้แจงว่าการทำแบบนี้จะให้เครื่องมีปัญหาได้ [แหล่งข่าว] ซึ่งส่วนใหญ่ก็รับรู้กันอยู่แล้ว แต่ก็มีหลายๆคนที่ยังใช้วิธีนี้อยู่ ดังนั้นมาดูกันว่าทำไมถึงไม่ควรทำแบบนี้

 

Google Services Framework คืออะไร?

        เราจะไม่รู้ที่มาของปัญหาถ้าเราไม่เริ่มจากทำความรู้จักกับมันก่อน สำหรับ Google Services Framework เรียกได้ว่าเป็นตัวจัดการในการทำงานต่างๆของ Google Services ที่มีอยู่ในเครื่องนั้นๆ เช่น Google Play Services โดยตัว Google Services Framework จะมีการเก็บข้อมูลบางอย่างไว้ด้วยซึ่งเปรียบเสมือนศูนย์กลางข้อมูลที่เหล่า Google Services ตัวอื่นๆจะเรียกใช้งานนั่นเอง ถ้าอธิบายง่ายๆก็จะเป็นแบบนี้

 

      ซึ่งข้อมูลที่อยู่ใน Google Services Framework ก็จะมาจากแอพฯต่างๆที่เรียกใช้งานด้วยเช่นกัน เพราะแอพฯบางตัวก็สร้างขึ้นมูลมาแล้วเก็บไว้ในนี้อีกทีหนึ่ง และข้อมูลที่ว่านี้ก็จะถูกนำไปใช้งานอีกที เช่น ส่งให้กับเซิฟเวอร์ เป็นต้น และถ้าถามว่าข้อมูลในนี้มีอะไรบ้างก็ต้องบอกว่า “โคตรเยอะเลย…” จากที่ลองไปนั่งส่องดูเล่นๆ ซึ่งข้อมูลเหล่านี้ก็จะถูกเก็บไว้เป็นฐานข้อมูลอีกทีหนึ่ง

 

        และก็มีข้อมูลที่อยู่ในรูปของไฟล์ XML ที่เรียกกันว่า Shared Preferences ด้วย

  

ทำไมการ Clear Data ของแอพฯดังกล่าวจึงทำให้เกิดปัญหา?

        ไม่ว่าจะเป็นการ Clear Data หรือการลบแอพฯแล้วลงใหม่ สิ่งที่เหมือนๆกันก็คือ “ข้อมูลหาย” ซึ่งข้อมูลที่ว่านี้ก็คือฐานข้อมูลและ Shared Preferences ของแอพฯนั้นๆนั่นเอง ทำให้แอพฯที่ถูก Clear Data มีสภาพเหมือนตอนติดตั้งใหม่ๆเลย

      ดังนั้นสิ่งที่เกิดขึ้นก็คือข้อมูลที่เก็บไว้ใน Google Services Framework นั้นหายเกลี้ยง สะอาดหมดจด ไร้กลิ่นติดจาน ไร้สารตกค้าง

      สมมติง่ายๆว่ามีการ Generated ข้อมูลบางอย่างขึ้นใน Google Services Framework แล้วมีแอพฯตัวหนึ่งที่ดึงข้อมูลดังกล่าวมาใช้งานและส่งไปที่เซิฟเวอร์เพื่อจำไว้ว่าเป็นของเครื่องนั้นๆ 

 

        แล้วเกิดว่า User ไป Clear Data ทิ้งก็จะทำให้ข้อมูลหายไป แต่ทว่าฝั่งเซิฟเวอร์และแอพฯนั้นยังคงเก็บข้อมูลไว้อยู่จึงทำให้เวลาที่จะเช็คข้อมูลก่อนทำงานบางอย่างเกิดปัญหาขึ้น เพราะข้อมูลเก่าหายไปแล้ว และกลายเป็นว่ามีการ Generated ข้อมูลใหม่ขึ้นมาที่ไม่ตรงกับของเก่า

       จึงทำให้ข้อมูลดังกล่าวไม่ตรงกันและอาจจะทำให้แอพฯมีปัญหาเกิดขึ้นได้ ซึ่งแอพฯที่จะมีปัญหาก็จะเป็นเหล่าแอพที่มีการเรียกใช้งานข้อมูลจาก Google Services Framework นั่นเอง

 

ทำไมการ Clear Data ถึงทำให้ได้รับ OTA Update ได้ไวขึ้น?

      เนื่องจากการอัพเดทในแต่ละเวอร์ชันจะมีการต่อคิวรอ ซึ่งอิงจากหมายเลข ID ที่อยู่ใน Google Services Framework ที่มีชื่อว่า Android  ID หรือเรียกกันว่า GSF ID

      การ Clear Data จะทำให้ Android ID ของเดิมนั้นหายไป และเมื่อเชื่อมต่อกับ Google Services ใหม่อีกครั้งก็จะทำการสร้าง ID ชุดใหม่ขึ้นมา (เสมือน User ที่พึ่งเปิดใช้งานเครื่องใหม่นั่นเอง) จึงทำให้มีโอกาสได้รับการอัพเดตได้ไวขึ้น

 

ทำไมกับผู้ใช้เฉพาะบางคนถึงไม่มีปัญหา

      กรณีนี้เห็นว่าเกิดขึ้นบ่อยมาก เนื่องจากมีผู้ใช้บางคนลอง Clear Data แล้ว OTA Update แล้วไม่พบอาการผิดปกติก็สามารถใช้งานได้ปกติ ซึ่งเอาเข้าจริงแล้วจะอยู่ที่ว่าแอพฯที่แต่ละคนใช้อยู่มีการใช้ข้อมูลจาก Google Services Framework หรือไม่ ถ้าไม่ได้ใช้แอพฯเหล่านั้นก็โชคดีไป แต่ถ้าใช้ก็อาจจะเห็นผลในไม่ช้า จึงทำให้บางคนก็พบอาการเครื่องเอ๋อๆหลังจากใช้วิธี Clear Data ใน Google Services Framework ไป 

      ดังนั้นปัญหาที่เกิดขึ้นจากการ Clear Data จะไม่ได้เกิดขึ้นในทันที แต่จะเกิดขึ้นก็ต่อเมื่อมีการใช้ข้อมูลจาก Google Services Framework แล้วโปรแกรมพบว่าค่าไม่ตรงกับของเดิม เพราะอย่าลืมว่ามีแค่ Google Services Framework เท่านั้นที่ Clear Data จึงทำให้แอพฯตัวอื่นๆนั้นยังมีข้อมูลเดิมอยู่ ซึ่งหลักๆเลยก็คือ Google Cloud Messaging หรือ GCM นั่นเอง

 

ถ้าไม่ใช้วิํธีนี้ จะมีวิธีไหนที่ทำให้ได้ OTA Update ได้ไวๆมั้ย?

      ถ้ายังอยากจะได้อัพเดทแต่เลี่ยงวิธีดังกล่าวก็พอจะมีอยู่นะเออ โดยผมขอแบ่งเป็นทั้งหมด 3 วิธีดังนี้ 

      1. Factory Reset ไปเลย วิธีนี้โคตรได้ผลเป็นอย่างมาก เพราะว่าเป็นการ Clear ข้อมูลทั้งหมดในเครื่องไม่ว่าจะเป็น Google Services Framework และแอพฯอื่นๆ จึงทำให้มั่นใจว่าแอพฯทุกตัวไม่มีข้อมูลตกค้าง แต่ข้อเสียก็รู้ๆกันอยู่ว่า “ข้อมูลหายหมดจ้า” 

      2. ดาวน์โหลด OTA File มาอัพเดทเองผ่านทาง Stock Recovery โดยปกติแล้วเมื่อมีการปล่อยอัพเดทเวอร์ชันใหม่ๆ ทางทีมงาน Android ก็จะมีการปล่อย Factory Image ให้อยู่แล้ว [Factory Image for Nexus devices] ซึ่งไฟล์ดังกล่าวชาว Nexus จะรู้กันอยู่แล้วว่ามันคือ Official ROM แต่ทว่ามันก็มีวิธีอัพเดทจากไฟล์นี้เช่นกัน แต่ข้อเสียของวิธีนี้ก็คงมีอย่างเดียวคือ “ต้อง Unlock Bootloader” (ไม่ต้อง Root ไม่ต้องลง Custom Recovery) 

      ส่วนวิธีการทำดูตามนี้ได้เลยจ้า 

            วิธี Flash Official ROM จาก Google อย่างง่ายบน Windows เพื่อรอการอัพเดตก่อนใคร

            วิธีการอัพเดตด้วย OTA แบบ Manual บน Jelly Bean, KitKat ผ่าน Recovery mode

      3. วางเครื่องทิ้งไว้แล้วออกไปหาอะไรทำซะ ผู้ใช้งานส่วนใหญ่ที่รีบร้อนอยากจะอัพเดทนักหนานั้น ส่วนใหญ่ก็จะมาจากการที่เห็นว่าคนอื่นๆได้อัพเดทกันแล้ว จึงทำให้รู้สึกกระวนกระวายอยากจะรีบอัพเดทเหมือนชาวบ้านเค้าบ้าง ดังนั้นทางที่ดีก็คือควรปล่อยวางไปหาอย่างอื่นทำให้กาลเวลาผ่านไปจนถึงเวลาอันสมควรแก่เครื่องนั้นๆที่จะได้รับอัพเดท ซึ่งวิธีนี้มีข้อเสียคือ “มันไม่ได้ไวขึ้นเลย”

 

      ดังนั้นชาว Nexus คนใดที่คิดจะลอง Clear Data ดูก็ไม่ว่ากันนะ แต่ทางที่ดีก็ Factory Reset ด้วยละกัน เพราะถ้าใช้วิธี Clear Data ยังไงในวันหน้าก็ต้อง Factory Reset เพื่อแก้ปัญหาที่ตามมาอยู่นะ ^ ^