[Android] ทำความรู้จัก Cache กันอีกซักนิด

ถ้าพูดถึง Cache หลายคนมักเรียกมันว่าขยะ แต่อันที่จริงแล้ว Cache มีประโยชน์มากกว่าจะเรียกมันว่าขยะนะ

จริง ๆ แล้ว Cache มันคือที่พักข้อมูล ไม่ว่าจะระบบใดก็ตาม สิ่งที่เก็บอยู่ใน Cache นั้น ถูกสร้างมาจากระบบหรือโปรแกรมเมอร์เอง โดยคำนึงถึงประโยชน์แก่ระบบและผู้ใช้งาน

Android-logo_Cache

ส่วนใหญ่จะรู้จัก Cache ก็มาจาก Browser ต่าง ๆ จะเห็นว่ามีเมนูให้เราทำการ Clear Cache ทิ้งนั่นเอง

แล้วประโยชน์มันคืออะไรล่ะ!?

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

หน้าที่ของระบบ (ในที่นี้คือ Browser) จะตัดสินใจว่า จะ Cache อะไรไว้บ้างดี เพื่อที่ถ้ามีการเรียกใช้ครั้งหน้า ก็เอามันขึ้นมาจาก Cache เลย ไม่ต้องโหลดใหม่ ส่วนหน้าที่ของโปรแกรมเมอร์ ก็สามารถไปกำหนดในเว็บตัวเองได้ ว่าจะให้ทำการ Cache อะไรบ้าง เป็นเวลานานแค่ไหน

คร่าว ๆ ก็แค่นี้ละกัน คงเห็นภาพกันแล้วเน๊อะ เห็นประโยชน์ของมันแล้วใช่ม๊า~!!

ทีนี้ เวลามี Cache เพิ่มขึ้นเรื่อย ๆ ก็ส่งผลให้ระบบทำงานได้ช้าลง เพราะว่า เวลาหาข้อมูลจาก Cache กว่ามันจะไปหาข้อมูลจุดที่ต้องการเจอ รวมถึงพื้นที่ที่ใช้ Cache ใน Storage ก็ใหญ่โตขึ้น กินพื้นที่ใช้งานไปเรื่อย ๆ แถมบางที ข้อมูลอัพเดตแล้ว แต่ไม่ถูกโหลดใหม่ เอาจาก Cache มาอยู่นั่นแหล่ะ ด้วยเหตุนี้ถึงต้องมีให้เราทำการ Clear Cache ได้

ในส่วนของ Android นั้น ถ้าพูดถึง Cache จะมีอยู่ด้วยกัน 2 ส่วน ก็คือ Cache Partition และ App Cache ซึ่งมันเป็นคนละจุดกัน หลาย ๆ คนมักเข้าใจว่ามันเป็นเรื่องเดียวกัน เลยหยิบเรื่องนี้มาเขียน Blog ซะเลย

 

Cache Partition

สำหรับ Cache Partition นั้นก็คือ Partition ที่ไว้สำหรับการเขียนไฟล์สำหรับการอัพเดตระบบ และพวก Log การทำงานต่าง ๆ ของ Recovery mode

รายละเอียดของ Cache Partition นั้น อยู่ในบทความตอน สอนวิธีการฝึกอาชีพ OTA Hunter สำหรับ Nexus นะครับ ลองไปอ่านกันดูนะ

สำหรับเครื่องที่ root แล้วเท่านั้น ถึงจะเข้าถึงไฟล์ข้างใน Cache Partition ได้ (หรือจะใช้ Custom Recovery ก็เข้าถึงได้อยู่นะ) ถ้าเครื่องใคร root แล้ว ลองทำตามดูนะครับ

เริ่มจาก… ลง App ES File Explorer ก่อนเลย แล้วเปิด App ขึ้นมา ปัดเมนูจากทางขอบด้านซ้ายออกมา แล้วเลื่อน ๆ ดู จะพบกับเมนู Root Explorer ก็เปิดใช้งานซะให้เรียบร้อย

เมนูด้านข้างของ App ES File Explorer
เมนูด้านข้างของ App ES File Explorer

เปิดไปที่ Cache Partition ซึ่งอยู่ที่ Path / จะเห็น cache อยู่ เลือก cache แล้วเลือกเมนู More จากด้านล่าง ตามด้วย Properties ก็จะพบกับหน้าต่าง Properties

เมนู More ของ App ES File Explorer
เมนู More ของ App ES File Explorer
Properties dialog ของ App ES File Explorer
Properties dialog ของ App ES File Explorer

จากรูปด้านบน จะเห็นว่า Cache Partition มีไฟล์ข้างในเพียง 3 ไฟล์ รวมแล้วเพิ่งจะใช้พื้นที่ไป 37,777 Bytes เท่านั้นเอง

ถ้าลองเปิดเข้าไปดูข้างใน จะพบว่า เป็นไฟล์ Log ทั้งนั้น ซึ่งก็ได้อธิบายไปในบทความตอน สอนวิธีการฝึกอาชีพ OTA Hunter สำหรับ Nexus แล้วนั่นแหล่ะ

ถ้าเปิดเข้าไปใน Recovery mode แล้วถ้าใช้ Stock Recovery ก็จะเห็นดังรูปด้านล่าง ซึ่งมีการซ่อนเมนูไว้

มีผู้ใช้จำนวนมาก เรียกมันว่า Android นอนตายบ้าง นอนท้องแตกบ้าง แล้วไปต่อไม่เป็น

Android Stock Recovery
Android Stock Recovery

การเปิดเมนูลับขึ้นมา เพียงแค่กดปุ่ม Power (เปิด/ปิดเครื่อง) ตามด้วยปุ่ม VolUp (เพิ่มเสียง) โดยกดแล้วปล่อยเร็ว ๆ ก็จะพบกับเมนูลับที่ซ่อนไว้ ดังรูปด้านล่าง

ส่วนใครที่ใช้ Custom Recovery (ไม่ว่าจะเป็น CWM, TWRP หรืออื่น ๆ) จะเห็นเมนูเลย ไม่ต้องกดปุ่มอะไร

Android Stock Recovery menu
Android Stock Recovery menu

เห็นเมนู Wipe cache partition แล้วใช่ไม๊ครับ นั่นแหล่ะ คือเมนูสำหรับ Clear ข้อมูลใน Cache Partition หรือ /cache นั่นแหล่ะ

สรุปว่า Cache Partition เป็นส่วนที่ระบบใช้งาน ซึ่งกินพื้นที่น้อยมาก (จะกินพื้นที่เยอะหน่อยเฉพาะตอนโหลด OTA File แต่เดี๋ยวอัพเดตเสร็จมันก็ลบทิ้งเอง) จึงไม่ค่อยมีความจำเป็นที่จะต้องไปยุ่งกับมันนัก และการ Wipe cache partition นั้น ก็ไม่ได้ใช้ในการแก้ปัญหาของระบบแต่อย่างใด จะ Wipe หรือไม่ก็ได้ เก็บไว้อย่างนั้นก็ได้ ไม่มีผลกับระบบ

ส่วนการ Wipe data/factory reset ระบบจะทำการ Wipe cache partition ให้ด้วย ไม่จำเป็นต้องทำซ้ำอีก (สังเกตุได้จากข้อความที่แสดงตอนมันทำงาน)

 

App Cache

ทีนี้มาดูส่วนของ App Cache กันบ้าง… โดยเปิดเข้าไปที่ Settings > Storage จะเห็นดังรูปด้านล่าง

เมนู Storage ใน Settings ของ Android
เมนู Storage ใน Settings ของ Android

สังเกตที่ Cached data อันนี้แหล่ะ คือ App Cache ของทั้งเครื่อง ซึ่งมาจาก System App และ User App (App ที่เราติดตั้งเอง) จะเห็นว่ากินพื้นที่ไป 451 MB ต่างจาก Cache Partition อยู่เยอะเลย

แค่นี้ก็คงพอจะทำให้รู้แล้วเน๊อะ ว่ามันคนละเรื่องกัน

ถ้าแตะไปที่ Cached data จะพบกับหน้าต่าง Clear cached data เราก็สามารถเคลียร์จากที่นี่ได้เลย

Clear cached data dialog
Clear cached data dialog

ทีนี้มาดู App Cache ของแต่ละ App กันบ้าง โดยเปิดเข้าไปที่ App info ของ App ที่ต้องการจะดู จะเห็นว่า จะมีส่วนของ Cache แสดงไว้อยู่ และมีปุ่ม Clear cache ให้กดได้ด้วย

ส่วนปุ่ม Clear data นี่ ทำให้ข้อมูลของ App นั้น ๆ หายหมด เทียบเท่ากับการลบ App ออก แล้วลงใหม่นั่นเอง

App info ของ App Facebook Messenger
App info ของ App Facebook Messenger

ถ้าใช้ App ES File Explorer เปิดเข้าไปที่ /data/data (ใช้สิทธิ์ root) จะพบกับ Path ของแต่ละ App รวมอยู่ในนี้ ซึ่ง Path ต่าง ๆ นั้น จะถูกกำหนดตามชื่อ Package name ของ App อย่างเช่น Facebook Messenger ก็จะมี Package name ว่า com.facebook.orca และถ้าเราลองตรวจสอบดู จะพบว่า กินพื้นที่ไป 44.32 MB ซึ่งข้างในนั้น จะประกอบไปด้วย App data และ App cache นั่นเอง (ไม่ค่อยตรงกับหน้า App info นะ ตรงนี้ผมก็ไม่ทราบเหมือนกันว่า App info คำนวณขนาด App data และ App cache จากอะไรบ้าง)

Properties dialog ของ App ES File Explorer
Properties dialog ของ App ES File Explorer

แล้ว Package name ของ App หาได้จากไหนล่ะ!?

ก็ไม่ยากครับ สังเกตุ URL ใน Google Play Store ซิ เห็นแล้วใช่มะ

Google Play Store แสดงผล App Facebook Messenger
Google Play Store แสดงผล App Facebook Messenger

 

ถ้าใครอ่านถึงตรงนี้ คงเข้าใจแล้วเน๊อะ ว่า Cache Partition กับ App Cache มันต่างกัน

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.