ถ้ายังจำกันได้ เมื่อเดือน พ.ค. ที่ผ่านมาในงาน Google I/O 2013 เราไม่เห็น Android เวอร์ชันใหม่ แต่เห็นข่าวใหญ่ของ Google Play Services ที่ผนวกเอา API สำคัญๆ จำนวนมากมาไว้ในตัวมันแทน
เวลาผ่านไปหลายเดือน Android 4.3 ที่เปิดตัวหลังจากนั้นไม่นานก็ยังไม่ได้รับความนิยม (ปัญหาเดิมๆ) แต่เว็บไซต์ Ars Technica ก็ไปขุดข้อมูลมาและพบว่าแท้จริงแล้ว การไม่ได้อัพเดต Android อาจไม่ใช่ปัญหาใหญ่อีกต่อไปแล้ว เนื่องจากว่า Google Play Services เป็นวิธีการแก้ปัญหาระบบไม่ได้อัพเดตของกูเกิลนั่นเอง
ถ้ามีมือถือ Android อยู่กับตัวแล้วลองเปิดดูข้อมูลของ Google Play Services จะพบว่ามันขอสิทธิเข้าถึงระบบหรือฮาร์ดแวร์เยอะมาก (ขอแทบทุกอย่าง) การทำงานของมันรันอยู่เบื้องหลังแบบเงียบๆ และอัพเดตตัวเองอัตโนมัติ โดยไม่ผ่านกระบวนการอัพเดตแอพแบบปกติ แถมจากสถิติของกูเกิลเองระบุว่าอุปกรณ์ Android 98.7% มี Google Play Services ติดตั้งและทำงานอยู่ (รองรับกลับไปถึง Android 2.2)
สิ่งที่ Google Play Services ทำได้ในปัจจุบันคือ
หมายเหตุ: Google Play Services เป็นคนละส่วนกับ Google Play Store
ดังนั้นอาจพอสรุปได้ว่า กูเกิลพยายามแก้ปัญหา fragmentation โดยแยกส่วนฟีเจอร์ของระบบ กลุ่มหนึ่งใส่แอพที่สามารถดาวน์โหลดได้จาก Google Play (และอัพเดตได้ง่าย), กลุ่มหนึ่งยัดใส่ Google Play Services (อัพเดตตัวเองอัตโนมัติ) และกลุ่มสุดท้ายอยู่กับตัว Android OS เหมือนเดิม (ที่ติดปัญหาการอัพเดตจากผู้ผลิต-โอเปอเรเตอร์)
ที่มา - Ars Technica
Comments
ผมใช้ Nexus 7 Google Play Services รันบ่อยมาก จนทำให้แบตหมดไวกว่าปกติ T_T
เห็นเว็บ arstechnica.com อธิบายแบบแยกส่วนด้วย เข้าใจง่ายดี ขอแปะไว้หน่อย
ที่มาภาพ : arstechnica.com
เข้าใจคิดจริงๆ ปัญหา fragmentation อีกไม่นานคงหมด
คงยาก ถ้า SS ยังขยันออกเครื่องทุกขนาดหน้าจออย่างตอนนี้
เรื่องหน้าจอต่างขนาดก็ถือเป็นปัญหาประเภท fragmentation อย่างหนึ่งครับ แต่ไม่ใช่ปัญหาที่ใหญ่มากและแก้ได้ยาก (เพราะ app สามารถเขียนให้รองรับหน้าจอหลายๆขนาดได้ในคราาวเดียวกันแต่แรกได้อยู่แล้วครับ) ปัญหาที่ส่วนใหญ่ทั้ง user และ dev อย่างผมเจอบ่อยๆและแก้ได้ยากคือ ความสามารถที่แตกต่างกันระหว่างแต่ละเวอร์ชั่นของแอนดรอยด์ (บางเครื่องยัง 2.2 หลายเครื่องก็ 4.x) ที่ทำให้ความสามารถบางอย่างใช้กับแอนดรอยด์รุ่นเก่าๆไม่ได้ แต่ลูกค้าส่วนใหญ่ก็ยังใช้แอนดรอยดฺรุ่นนั้นๆอยู่ เพราะผู้ผลิตไม่อัพเดทให้นั่นเอง แต่ความสามารถของ google play service ตรงนี้จะสามารถลดปัญหาตรงนี้ได้ครับ
มือถือรุ่นเก่าอายุ 2 ปีกว่า ตอนลง Rom เสร็จใหม่ๆลื่นปรู๊ดปร๊าดเร็วมาก แต่พอต่อเน็ตอัพเดต Play Service เท่านั้นแหละ ... อืดแบบแทบจะทำอะไรไม่ได้เลย =_="
ผมใช้ SS Mini ลง 4.2 ส่วน Google Play Service ก็จัดเต็ม ก็ไม่มีปัญหาอะไรนะครับ แบตอืด เครื่องก็ยังลื่นดี
อีกเครื่องเป็น Grand Duos ก็ไม่รู้สึกว่ามีอะไรแตกต่างกันมากนะครับ
HTC Incredible S ครับ เครื่องอืดลงอย่างเห็นได้ชัดหลังจากอัพเดต Play Service เวอร์ชันหลังจากงาน I/O 2013 เป็นต้นมา
อาจจะต้องลองดูที่ Logcat ว่าเกิดอะไรขึ้นครับ Sense อาจจะตีกับตัว Play Service
เหมือนก่อนหน้านี้ก็มีอัพเดท google play ใหญ่ๆครั้งสองครั้งนี่ครับ ที่ครั้งนึงเปลี่ยนชื่อจาก android market ไปเป็น google play อยู่ดีๆก็อัพให้เองเหมือนกัน (ไม่รู้มันอัพservice ให้หรือเปล่า) อัพเดทแบบนี้ไม่ใช่เรื่องใหม่ใช่ไหมครับ
ตอนแรกว่าจะเขียนอันนี้ แต่ว่าลืม มัวแต่ไปเล่นเกมอยู่ :P
ว้าว
เดี๋ยวต้องมีคนบอกว่า มันก็ Fragment ที่ตัว HW อยู่ดีแน่ ๆ (พวกขนาดหน้าจอ/จำนวนเซ็นเซอร์/ความสามารถพิเศษต่างๆ)
อันนี้เห็นว่าเขาเริ่มเปลี่ยนไปเรียกว่า Diversification (ความหลากหลาย) แทน Fragmentation (ความแตกแยก) กันบ้างแล้วนะครับ
บางคนเขาก็ บ่นไปงั้นเอง ล่ะมั้งครับ
เวลาเขียน app จริง ๆ HW Fragment มันไม่ใช่ปัญหาเท่าไหร่ เว้นแต่ว่ากำลังทำ app เฉพาะทางจริง ๆ หรือพวกเกมไขปริศนา
สมัยเขียนโปรแกรม PC Fragmentation มันก็มากล้น ขนาดแค่เรื่องกล้องหรือไมโครโฟนก็ยังมีกันแค่ครึ่ง ๆ ก็ไม่เห็นจะบ่นอะไรกัน
ถ้า update API ให้เรื่อย ๆ นี่ก็สบายแล้วครับ
เวลาผมไปถามใครว่า HW Fragmentation นี่มันจะทำให้เกิดปัญหากับ app แบบไหนได้บ้าง ก็ไม่ค่อยมีคนตอบได้นะครับ
คนที่ตอบได้ คำตอบมันก็มาเป็นปัญหาเฉพาะทางสุด ๆ แบบที่น้อยคนจะทำ app แบบนั้น
เท่าที่ผมอ่าน มันเหมือนการบอกหลอกๆว่าไม่มีปัญหา ปัญหาของ android มันอยู่ที่ system มากกว่า api ที่จะทำให้app เข้าถึงฟังค์ชันต่างๆได้ง่ายขึ้นมากกว่าการที่จะพัฒนาระบบเพื่อลดปัญหา
ถ้าอ่านข้างบน Google แยกส่วน Android โดยย้าย api ต่างๆ ไปอยู่กับ Play Services ที่ Update อัตโนมัติครับ
API ต่างๆ น่าจะค่อยๆ ย้ายจาก OS มาอยู่กับ Play Services จนหมด ทำให้ไม่ต้องผ่าน 3 ด่าน driver, operator, oem
น่าจะเปลี่ยน model เป็น Incremental development ด้วย
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
ดีครับ รออัพเดตพร้อม firmware ของผู้ผลิตมือถือคงไม่ไหว
อคติทำให้คนรับเหตุผลด้านเดียว
มองอีกมุม เป็นการสกัด Android สายที่ fork ออกไปโดยไม่มี Google Play Service ได้เลย
นั่นสิครับ ต่อไป Xiaomi กับ Meizu จะลำบากขึ้นเรื่อยๆ เพราะแอพพึ่งพิง Play Service กันหมด
ส่วนที่อยากได้ไม่มีใน google play service ไง มันอยู่ใน android os
A smooth sea never made a skillful sailor.
GPS มันจะช่วยเรื่องการเข้ากันได้ของโปรแกรมน่ะครับ ทำให้พวกแอพสามารถเรียกใช้ Service พวกนี้ได้โดยที่ไม่ต้องมาพะวงมากนักว่าจะมีปัีญหาเรื่องเวอร์ชั่นหรือเปล่า เป็นการลดอาการที่เครื่องเวอร์ชั่นเก่า ๆ หาแอพใช้ไม่ได้นั่นเอง
แต่พวกฟีเจอร์ระดับล่าง ๆ ของตัวระบบปฎิบัติการเนี่ยมันจะมากับตัวระบบปฎิบัติการครับ อันนี้ช่วยไม่ได้ ที่จริงฟีเจอร์ระดับล่างของแต่ละยี่ห้อก็ทำงานไม่เหมือนกันเท่าไหร่ด้วย 55
แล้วเรื่อง API ก็เหมือนกัน คือ Google ก็ฉลาดทำ backward-compatible ให้ Android version เก่าๆตั้งแต่ 1.6 ขึ้นไป สามารถใช้ API ใหม่ๆได้ แต่อาจจะทำให้แอพบวมขึ้นนิดหน่อยเพราะต้องยัด lib เข้าไปในแอพของเรา
ลองเข้าไปอ่านเพิ่มเติมได้ครับ
ก็ยังเป็นปัญหาอยู่ดีนั่นแหละ เพราะบางอย่างมันก็อยู่นอก Google service เช่น Android 4.3 ใช้พลังงานน้อยลง มี OpenGL ES 3.0 ซึ่งถ้าไม่ได้อัพเดตตัว OS มันก็ไม่ได้อยู่ดี
อันนี้อนาคตไม่แน่ใจเหมือนกันครับ เพราะการเปลี่ยน developing โมเดล อาจจะไช้เวลาพอสมควร โดยเฉพาะ Incremental development ที่จะต้องแยกโปรแกรที่เคยเป็นชิ้นเดียวออกมาเป็นหลายๆส่วน แล้ว update แยกกัน ทำให้ตัว os สามารถ update ง่ายขึ้น
นอกจากนั้นเมื่อถึงจุดหนึ่งอาจจะแยกให้ค่ายมือถือดูแลเพียง linux kernel และ driver (ที่ Googlew ดูแลไม่ใด้) และส่วนที่ค่ายมือถือดัดแปลง (ซึ่งลดภาระ devloper ของค่ายมือถือ) นอกจากนั้นทุกส่วนที่ original รวมถึงเลข version อาจ update โดย Google Play Service ก็ใด้
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
บอกตรงๆ ว่าอ่านที่คุณเขียนไม่รู้เรื่องครับ
ลืมไปว่าในนี้ไม่ใด้มีแต่ developer / sa ....
ผมพยายามจะบอกว่า Google กำลังเปลี่ยนวิธีการ update โดยแยก Android เป็นส่วนเล็กๆ แล้วปรับปรุงทีละชิ้นแยกกัน
สิ่งที่จะเกิดขึ้นก็คือค่ายมือถือ ก็จะ modify ชิ้นส่วนน้อยลง ทำให้ upgrade ใด้ง่ายขึ้น ชิ้นส่วนที่ไม่ใด้ modify ก็ upgrade ผ่าน Google Play Service
และวันหนึ่ง Google Play Service อาจเป็นตัวกำหนดเลข version ของ Android
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
นั่นยังไม่ได้ช่วยตอบประเด็นที่ผมโพสต์ไปนะ ว่าส่วนที่อยู่ระดับต่ำกว่า application เนี่ยมันจะอัพเดตยังไง ถ้าไม่อัพเดตที่ตัว ROM
ก็แตกส่วนนั้นให้เป็น Application หรือ Api แล้ว update ผ่าน Play Store หรือ Google Play Services ไงครับ :)
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
ส่วนที่ต่ำกว่า application มันจะกลายมาเป็น application ได้ยังไงครับผมอยากรู้ พูดเหมือนง่ายเลยนะครับ
ผู้ผลิตแถมแพ กูเกิลเลยช่วยด้วยการแถมไม้ค้ำมาให้
Trust me, I am a Wizard
เป็นวิธีแก้ปัญหาที่เจ๋งมากครับ (- -)d
ขนาดหน้าจอไม่มีผลตรงไหนเนี่ย เล่นเกมแล้วจอล้น ขาดๆหายๆนี่ไม่ถือว่าเป็น fragment เหรอครับ
อันนั้นน่าจะเกิดจากการออกแบบ UX ของเกมนั้น ๆ ที่ไม่รองรับอัตราส่วน/ขนาดหน้าจอที่แตกต่างกันครับ
สาเหตุอาจจะเกิดจากว่าเป็นเกมที่ออกแบบมาสำหรับ iOS แล้วพอร์ทมา
มันแก้ง่ายสุด ๆ เลยครับ
เวลาผมทำโปรแกรมลงคอม มันก็มีจอหลายขนาด ผมก็ทำให้มันปรับขนาดจอได้ เลือก resolution ได้ detect resolution ได้
จบครับ
ถ้าคนทำ app ไม่มักง่าย เขียนให้มันอ่าน resolution หน้าจอนี่เพิ่ม code อีกไม่ถึงห้าบรรทัดเองครับ
บนแอนดรอยด์มันไม่ได้ง่ายๆอย่างนั้นนะสิครับ ในแต่ละ dpi ต้องมานั่งแยก resource รูป ขนาดของ component ไหนจะ mobile tablet ก็ต้องมานั่งแยก layout อีก เครื่องศักยภาพก็ไม่เท่ากัน ทรัพยากรก็จำกัด ต้องมาจูนโค้ดให้พอดี จะ test ทีก็ต้องมานั่ง deploy ใส่เครื่อง แก้ layout แค่จุดเดียวก็ต้องมานั่งเทสต์กับเครื่องเป็นสิบ ผมว่าเรื่อง ขนาดหน้าจอนี่มันสุดยอด fragmentation เลยนะ
เขาพูดถึงเกมครับ ...
Android ออกแบบให้รองรับความละเอียดที่หลากหลายครับ ถ้าเข้าใจโปรแกรมแบบ responsive มันก็ไม่มีปัญหา
samsung ใหญ่แค่ใหน ?
https://youtu.be/6Afpey7Eldo
แอพนี้ป่ะที่เรตต่ำเตี้ยเพราะคนใช้มือถือรุ่นที่เมมไม่พอมากดให้ - -
May the Force Close be with you. || @nuttyi