API ส่วนขยายผู้จำหน่าย CameraX ของ Google ช่วยให้แอปกล้องของบริษัทอื่นสามารถใช้คุณสมบัติที่ดีที่สุดของแอปกล้องสต็อกได้
มีเรื่องตลกที่มีมายาวนานบนอินเทอร์เน็ตที่คุณสามารถบอกได้ว่ามีคนใช้โทรศัพท์ Android อยู่หรือไม่ คุณภาพเซลฟี่ที่ไม่ดี. แม้ว่ามส์จะพูดเกินจริงไปสักหน่อย แต่น่าเสียดายที่มีความจริงอยู่บ้างเบื้องหลัง โดยปกติแล้วโทรศัพท์ Android จะนำหน้า iPhone ในแง่ของประสิทธิภาพของกล้อง อย่างน้อยก็บนกระดาษ ผู้ผลิต OEM เช่น LG และ Samsung มักจะใช้กล้องที่มีพิกเซลมากกว่าและรูรับแสงกว้างกว่า iPhone คู่แข่ง แม้ว่าสเป็คจะไม่ใช่ทุกอย่างก็ตาม สาเหตุหนึ่งที่ทำให้ Apple สามารถแข่งขันในเกมกล้องได้ก็เนื่องมาจากซอฟต์แวร์ของ iOS OEM ทั้งหมดตั้งแต่ Apple ไปจนถึง ZTE ใช้ซอฟต์แวร์วิเศษเพื่อทำให้รูปภาพและวิดีโอดูดีขึ้น บริษัทต่างๆ ใช้อัลกอริธึมเพื่อลดสัญญาณรบกวน ปรับแต่งความอิ่มตัวของสีและคอนทราสต์ และแม้แต่เพิ่มความสว่างให้กับฉากที่มืด ทั้งหมดนี้เพื่อทำให้ผลลัพธ์สุดท้ายน่าพึงพอใจยิ่งขึ้น ในอดีตนี่คือจุดที่ Android OEM ขาด Apple
การพัฒนาซอฟต์แวร์
แต่ไม่นานมานี้ สิ่งต่างๆ ก็เริ่มเปลี่ยนไป ตัวอย่างที่ใหญ่ที่สุดของการเปลี่ยนแปลงนี้น่าจะเป็น Google และกลุ่มผลิตภัณฑ์ Pixel ในแง่ของฮาร์ดแวร์ กล้อง Pixel ไม่สามารถเปรียบเทียบกับเรือธงอื่นๆ ได้จริงๆ ซอฟต์แวร์คือจุดที่ Google สร้างความแตกต่าง ด้วยคุณสมบัติต่างๆ เช่น โหมดแนวตั้ง, โหมดกลางคืน, HDR+ และซูมแบบความละเอียดสูง Pixels ได้รับชื่อเสียงในด้านคุณสมบัติบางอย่าง
กล้องสมาร์ทโฟนที่ดีที่สุดในตลาด.Android OEM อื่นๆ กำลังติดตามผู้นำของ Google Samsung, OPPO, Xiaomi, Vivo, OnePlus และอื่น ๆ ต่างได้เปิดตัวฟีเจอร์กล้องยอดนิยมของ Pixel ในเวอร์ชันของตัวเองแล้ว และพวกเขาก็ยังมีฟีเจอร์เฉพาะของตัวเองด้วย ด้วยคำศัพท์เช่น "AI" และ "การเรียนรู้ของเครื่อง" Android OEM พยายามโน้มน้าวคุณว่าซอฟต์แวร์ของพวกเขาคือซอฟต์แวร์ที่คุณต้องการปรับปรุงรูปภาพและวิดีโอของคุณ เรามาถึงจุดที่โทรศัพท์ Android สามารถแข่งขันกับ iPhone ได้อย่างแท้จริงในทุกด้านของประสิทธิภาพของกล้อง
ปัญหา
น่าเสียดายที่ยังคงมีข้อยกเว้นที่สำคัญอยู่ประการหนึ่ง นั่นก็คือแอปของบุคคลที่สาม กล้องระดับเรือธง 50 ตัวที่ยอดเยี่ยมของคุณอาจถ่ายภาพที่น่าทึ่งด้วยแอพกล้องในตัว แต่เปลี่ยนมาใช้ Instagram Snapchat หรือแม้แต่แอปกล้องของบุคคลที่สาม และโดยพื้นฐานแล้วเป็นหลักประกันได้ว่าสิ่งที่คุณถ่ายจะดูไม่ใกล้เคียง ดี. ราวกับว่ายังไม่เพียงพอ คุณยังสูญเสียฟีเจอร์และโหมดกล้องสุดเจ๋งไปอีกด้วย เนื่องจาก Android ไม่มีเฟรมเวิร์กกล้องที่รวมเป็นหนึ่งเดียว ซึ่งต่างจาก iOS ตรงที่ แน่นอนว่ามีคุณสมบัติพื้นฐานอยู่ที่นั่น แอพของบริษัทอื่นยังสามารถถ่ายภาพและวิดีโอ และใช้แฟลชได้ แต่จะเกิดอะไรขึ้นหากโทรศัพท์ของคุณมีเซ็นเซอร์รองสำหรับมุมกว้างหรือเทเลโฟโต้? เป็นไปได้ว่านักพัฒนาจะสามารถเข้าถึงเซ็นเซอร์ตัวที่สองได้ แต่วิธีการที่พวกเขาใช้จะต้องเฉพาะกับอุปกรณ์ของคุณ
สมมติว่าคุณมี LG V40 (ฉันรู้ ฉันรู้ ลองจินตนาการว่าคุณมี) V40 มีเซ็นเซอร์สามตัว: มาตรฐาน เทเลโฟโต้ และอัลตร้าไวด์ แอพกล้องในตัวไม่มีปัญหาในการสลับระหว่างเซ็นเซอร์ต่างๆ เหล่านี้ แต่ลืมเกี่ยวกับการใช้เซ็นเซอร์อัลตร้าไวด์บน Instagram ตอนนี้ Instagram สามารถดูว่าแอพกล้องของ LG ใช้เซ็นเซอร์ต่างๆ อย่างไร และพัฒนาวิธีให้ผู้ใช้ถ่ายภาพมุมกว้างหรือซูมภาพ แต่นั่นอาจจะใช้ได้กับ LG V40 เท่านั้น แม้ว่า Galaxy S10 จะมีโหมดเซ็นเซอร์สามโหมดเหมือนกัน (มาตรฐาน, เทเลโฟโต้ และอัลตร้าไวด์) แต่ทีมงาน Instagram ก็ต้องพัฒนาวิธีการอื่นสำหรับ Samsung
ตอนนี้เพิ่ม Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC และแบรนด์อื่น ๆ ที่คุณนึกออก ดังที่คุณคงจินตนาการได้ การพยายามพัฒนาวิธีการเข้าถึงเซ็นเซอร์พิเศษที่เป็นไปได้สำหรับโทรศัพท์แต่ละเครื่องจากแต่ละแบรนด์จะเป็นเรื่องที่น่าเบื่ออย่างไม่น่าเชื่อ จากนั้นคุณจะต้องรักษาความเข้ากันได้กับโทรศัพท์ปัจจุบันและใหม่ทั้งหมด
ข้อจำกัดเหล่านี้ใช้กับคุณสมบัติของกล้องด้วย สิ่งต่างๆ เช่น โหมดแนวตั้ง, โหมดกลางคืน และ HDR+ จำเป็นต้องใช้วิธีการเฉพาะสำหรับแต่ละอุปกรณ์ หรือไม่ก็แอปของบุคคลที่สามไม่สามารถเข้าถึงได้โดยสิ้นเชิง
แน่นอนว่าสำหรับแอปอย่าง Instagram นี่ไม่ใช่เรื่องใหญ่เกินไป ไม่ใช่จุดสนใจของพวกเขา และคุณสามารถใช้แอปกล้องถ่ายรูปในโทรศัพท์เพื่อถ่ายภาพก่อนได้เสมอ แต่แล้วแอพกล้องเฉพาะล่ะ?
ผลกระทบ
เปิด Google Play Store และค้นหา "กล้อง" คุณจะพบผลลัพธ์นับร้อย แม้ว่าจะมีการปรับปรุงซอฟต์แวร์กล้องถ่ายรูปของบุคคลที่หนึ่ง แต่แอปกล้องถ่ายรูปของบุคคลที่สามยังคงได้รับความนิยมอย่างมาก บางส่วนมีเป้าหมายเพื่อให้คุณสมบัติทางเทคนิคเพิ่มเติม เช่น การเปิดรับแสงแบบแมนนวลและการโฟกัส (คุณสมบัติที่แอปกล้องถ่ายรูปในโทรศัพท์ของคุณอาจไม่มี) อื่นๆ ตั้งเป้าที่จะมอบ UX ที่สอดคล้องกันในอุปกรณ์ของคุณ
โดยเฉพาะอย่างยิ่งด้วยเหตุผลหลังนี้ การกระจายตัวของกล้องของ Android อาจทำให้การพัฒนาและบำรุงรักษาแอปกล้องที่เข้ากันได้อย่างกว้างขวางเป็นเรื่องยากอย่างไม่น่าเชื่อ หากคุณต้องการนำเสนอคุณสมบัติพิเศษ คุณจะรวมคุณสมบัติที่เป็นไปได้ทั้งหมดของแอปบุคคลที่หนึ่งที่มีศักยภาพทั้งหมดได้อย่างไร หากคุณกำลังมองหาประสบการณ์ที่สอดคล้องกัน คุณจะรับประกันตามความเป็นจริงได้อย่างไรว่าการเข้าถึงเซ็นเซอร์มุมกว้างบนอุปกรณ์ทุกเครื่องที่มีเซ็นเซอร์นั้นจะได้ผล
คำตอบคือ: คุณไม่สามารถ คุณสามารถพยายามสนับสนุนฟีเจอร์ต่าง ๆ บนอุปกรณ์ได้มากที่สุดเท่าที่จะเป็นไปได้ แต่ท้ายที่สุดแล้ว มันจะเป็นงานหนักและได้รับรางวัลค่อนข้างน้อย ไม่ยากเลยที่จะจินตนาการว่านักพัฒนาอย่างน้อยสองสามรายก็ล้มเลิกการสร้างแอปกล้องถ่ายรูปที่มีคุณสมบัติครบถ้วนสำหรับ Android อันที่จริงก็มีหลายอย่าง
ผู้เสียชีวิต
ไปค้นหาแอพกล้องใน Play Store คุณจะสังเกตเห็นบางสิ่ง หนึ่ง มี มาก ของตัวเลือก สอง ส่วนใหญ่ทำสิ่งที่คล้ายกัน (ใช้ตัวกรองตามความเป็นจริงและอื่นๆ) ประการที่สาม ตัวเลือกขั้นสูงอาจไม่ได้รับการอัปเดตบ่อยนัก คุณอาจพบผลการค้นหาบน Google ที่ไม่มีอยู่ในร้านค้าอีกต่อไป
เมื่อเร็ว ๆ นี้ เราได้รับตัวอย่างที่ค่อนข้างสำคัญของผู้คนที่บอกว่าเลิกใช้ Moment ตัดสินใจหยุดการพัฒนาแอป Pro Camera สำหรับ Android
แอพ Pro Camera ของ Moment มุ่งหวังที่จะนำฟีเจอร์รูปภาพและวิดีโอขั้นสูงมาสู่ Android นี่เป็นเพียงคุณสมบัติบางส่วนเท่านั้น:
- ฮิสโตแกรม RGB
- แยกโฟกัส
- ควบคุมค่าแสง, ISO, ความเร็วชัตเตอร์, สมดุลสีขาวด้วยตนเอง
- โฟกัสจุดพีค
- การจับภาพแบบ RAW
- การเปลี่ยนแปลงอัตราเฟรมและความละเอียดแบบไดนามิก
ปัญหาคือฟีเจอร์เหล่านี้ใช้งานไม่ได้กับอุปกรณ์จำนวนมาก การดูรายการความเข้ากันได้ของฟีเจอร์ของ Moment ก็เหมือนกับการดูภาพฟลอร์เต้นรำ แม้จะอยู่ในสายผลิตภัณฑ์เดียวกัน การสนับสนุนฟีเจอร์ก็กระจัดกระจายอย่างไม่น่าเชื่อ หลังจากพัฒนามาเป็นเวลาสองปี Moment ก็ไม่มีความสามารถในการพัฒนาแอปต่อไปอีกต่อไป
สีเขียว = รองรับโดยกล้อง Moment Pro สีเหลือง = รองรับโดยอุปกรณ์ แต่ไม่ใช่กล้อง Moment Pro ของฉัน สีแดง = อุปกรณ์ไม่รองรับ แหล่งที่มาของภาพ: ช่วงเวลา ดึงข้อมูลผ่านทาง: 9to5Google.
การแก้ไขปัญหา?
เป็นเวลาเกือบ 12 ปีแล้วนับตั้งแต่ Android เปิดตัวครั้งแรก แต่ในที่สุดเราก็อาจมีวิธีแก้ปัญหาการกระจายตัวของกล้องได้
โซลูชันนี้มาจาก Google โดยตรง แม้ว่าจะไม่ได้ติดตั้งอยู่ใน Android โดยตรงก็ตาม แทนที่จะเป็น ไลบรารีการสนับสนุน Jetpack. หากคุณคุ้นเคยกับการพัฒนาแอป Android คุณอาจเคยเจอชุดไลบรารีสนับสนุน AppCompat และ AndroidX ไลบรารีเหล่านี้จาก Google มีเป้าหมายเพื่อให้นักพัฒนาสามารถรักษาความเข้ากันได้แบบย้อนหลังกับ Android เวอร์ชันเก่าได้ง่ายขึ้น ในขณะที่ยังสามารถแนะนำคุณลักษณะและสไตล์ใหม่ๆ ได้
สิ่งที่เพิ่มเติมใหม่ของ Jetpack (ประเภทหนึ่ง) คือไลบรารี CameraX เช่นเดียวกับไลบรารี Jetpack อื่นๆ เป้าหมายของ CameraX คือทำให้การพัฒนากล้องง่ายขึ้น ในรูปแบบพื้นฐานที่สุด CameraX ล้อมรอบ Android กล้อง2ซึ่งเป็น API ที่อนุญาตให้แอปตรวจสอบคุณสมบัติของกล้องบนอุปกรณ์ โดยที่ OEM เปิดเผยคุณสมบัติของกล้องเหล่านั้นให้กับ API ผู้ใช้สามารถตรวจสอบคุณสมบัติกล้องใดบ้างที่เปิดเผยต่อ Camera2 API โดยใช้แอปพลิเคชัน Camera2 API Probe จากนั้นเปรียบเทียบกับคุณสมบัติที่มีอยู่ในแอปพลิเคชันกล้องสต็อก
ราคา: ฟรี
4.2.
ประโยชน์ของการใช้ CameraX เป็น wrapper สำหรับ Camera2 API ก็คือ จะช่วยแก้ไขปัญหาความเข้ากันได้เฉพาะของอุปกรณ์ใดๆ ที่อาจเกิดขึ้นภายในได้ สิ่งนี้เพียงอย่างเดียวจะเป็นประโยชน์สำหรับนักพัฒนาแอปกล้อง เนื่องจากสามารถลดโค้ดสำเร็จรูปและเวลาที่ใช้ในการค้นคว้าปัญหาของกล้องได้ นั่นไม่ใช่ทั้งหมดที่ CameraX สามารถทำได้
แม้ว่าส่วนแรกส่วนใหญ่จะน่าสนใจสำหรับนักพัฒนาเท่านั้น แต่ก็มีอีกส่วนหนึ่งที่ใช้กับทั้งนักพัฒนาและผู้ใช้ปลายทาง: ส่วนขยายของผู้ขาย. นี่คือคำตอบของ Google ต่อการกระจายตัวของคุณสมบัติกล้องบน Android ผู้ผลิตอุปกรณ์สามารถเลือกที่จะจัดส่งไลบรารีส่วนขยายพร้อมกับโทรศัพท์ของตนซึ่งช่วยให้ CameraX (และนักพัฒนาและผู้ใช้) สามารถใช้ประโยชน์จากคุณลักษณะของกล้องแบบเนทีฟได้ ตัวอย่างเช่น สมมติว่าคุณชอบเอฟเฟกต์โหมดแนวตั้งของ Samsung มาก แต่คุณไม่ชอบแอปกล้องถ่ายรูปเลย หาก Samsung ตัดสินใจที่จะใช้ส่วนขยายโหมดแนวตั้งของ CameraX ในโทรศัพท์ แอปของบุคคลที่สามที่ใช้ CameraX จะสามารถใช้โหมดแนวตั้งของ Samsung ได้ แน่นอนว่านี่ไม่ได้จำกัดอยู่เพียงฟีเจอร์เดียวเท่านั้น ผู้ผลิตสามารถเปิดฟีเจอร์กล้องของตนไปยังแอปที่ใช้ CameraX ได้ในทางทฤษฎี
น่าเสียดายที่มีข้อแม้ที่ผมได้กล่าวไว้ก่อนหน้านี้: นี่ไม่ใช่ข้อกำหนดสำหรับผู้ผลิต Google กล่าวว่า พวกเขาจะรองรับส่วนขยายในอุปกรณ์ Pixel ใหม่และที่กำลังจะเปิดตัวทั้งหมด โดยเริ่มจาก Pixel 4 ออปโป้กล่าว พวกเขาได้เปิดโหมดความงามและ HDR แล้ว OEM อื่นๆ อาจเลือกที่จะให้เฉพาะโหมดกลางคืนใช้งานได้กับ CameraX เท่านั้น หรืออาจเลือกที่จะไม่ใช้ส่วนขยายใดๆ เลยก็ได้ ขึ้นอยู่กับผู้ผลิตว่าอุปกรณ์ใดรองรับส่วนขยาย CameraX ใด (ถ้ามี) Google ใช้เพื่อรักษารายการอุปกรณ์ ที่รองรับส่วนขยายผู้ขายและฟีเจอร์กล้องที่พวกเขาเปิด แต่ไม่ได้อัปเดตรายการในช่วงหลายเดือนที่ผ่านมา เราติดต่อ Google เมื่อไม่กี่สัปดาห์ก่อนเพื่อสอบถามว่าพวกเขาสามารถจัดเตรียมรายการที่อัปเดตได้หรือไม่ แต่บริษัทยังไม่ได้ตอบกลับพร้อมรายการดังกล่าว สำหรับสิ่งที่คุ้มค่าก โพสต์บล็อกของ Google ล่าสุด ระบุว่าอุปกรณ์จาก Samsung, LG, OPPO, Xiaomi และ Motorola (บน Android 10) มีส่วนขยายบางอย่าง แต่โพสต์ในบล็อกไม่ได้ระบุอย่างชัดเจนว่าอุปกรณ์ใดบ้างที่รองรับหรือฟังก์ชันใดบ้าง จัดเตรียม.
หากผู้ผลิตจำนวนมากตัดสินใจใช้ส่วนขยาย ฉากกล้องของบุคคลที่สามของ Android จะสว่างขึ้นมาก นักพัฒนาจะไม่ต้องเสียเวลาปรับใช้ฟีเจอร์ของกล้องใหม่กับทุกอุปกรณ์ที่พวกเขาสามารถทำได้ เนื่องจากเฟรมเวิร์กของ CameraX จะดูแลมันเอง การกระจายตัวของฟีเจอร์จะน้อยลงเนื่องจากฟีเจอร์ที่คล้ายกันในอุปกรณ์ต่างๆ จะสามารถเข้าถึงได้ผ่านอินเทอร์เฟซทั่วไป และมีความเป็นไปได้อีกมากมาย
แน่นอนว่าทั้งหมดนี้ขึ้นอยู่กับความสามารถของ Google ในการโน้มน้าวผู้ผลิตให้นำไลบรารี CameraX Vendor Extension มาใช้นับจากนี้เป็นต้นไป เว้นแต่ว่า CameraX จะถูกนำมาใช้อย่างกว้างขวาง มันก็จะเพิ่มการแตกแฟรกเมนต์ในปัจจุบัน แต่โดยส่วนตัวแล้วฉันยังมีความหวัง Google สามารถโน้มน้าวใจได้มากเมื่อต้องการ และดูเหมือนว่างานจำนวนมากกำลังเข้าสู่ CameraX เป็นเรื่องน่าตื่นเต้นที่ได้เห็นวิธีแก้ปัญหาที่เป็นไปได้สำหรับปัญหากล้องของ Android ในอนาคตอันใกล้ และฉันหวังว่าจะได้เห็นว่า CameraX จะปรับปรุงและขยายออกไปอย่างไรเมื่อเวลาผ่านไป
คุณคิดอย่างไรเกี่ยวกับ CameraX? Google จะประสบความสำเร็จในการสร้างประสบการณ์กล้องแบบครบวงจรสำหรับ Android หรือไม่