前言
博主本人并非專職相機開發,還涉及系統的其他幾個模塊,雖然都屬于owner,但是都還在學習探索的一個過程,自認為掌握還不夠細致,此篇文章僅梳理,總結,印證自己近五年相機模塊的一個學習過程,以及對后續相機學習的一個方向,講的也是比較寬泛,后續有空的話會考慮挑幾個實用且常見的一些應用流程詳細講一下,但也希望能擠出時間來,博主實在太忙了~
1.Camera LV1
我最早接觸的相機肯定是高通Android系統相機,剛接觸的時候我便對它產生了濃厚的興趣,為啥可以有這么多有趣的功能,輕輕點一下按鈕,怎么就能將空間時間都定格放到了圖片,視頻里了呢,這也太神奇了吧,這是怎么做到的啊,我開始了解相機是由什么組成的,當然是從軟件層開始了解它,軟件層的相機是由什么組成的呢,慢慢的我把他大致分成拍照和錄像兩大模塊,按照功能區分,拍照是怎么拍照的呢,錄像是怎么錄像的呢,但這些都離不開相機的openCamera,startPreview的過程,不斷去細扣源碼,從上層到底層,并將所能接觸到的平臺所有相關的知識進行瘋狂汲取,對所有能認識的同學積極請教,學習和分享,這大概是我最初時間里快速成長的原因之一,再后來從A8到A15系統升級,相機不同平臺和硬件兼容適配,逐漸加深對系統相機的認識。
2.Camera LV2
這個時候非常熟悉的了解軟件層的相機啟動的過程,慢慢了解到相機軟件與相機服務的聯系,相機3A,NR,EE等算法原理,還有美顏這些常見算法,開始熟悉相機效果調試,了解主觀測試,客觀測試;實現相機服務定制相關需求;開始熟悉相機debug的一些方式,相機遇到的一些問題的定位,例如灰屏,紅屏,閃屏,花屏,相機無法連接,相機崩潰,以及各類三方應用調用提供support以及fix方案;為業務相機組件以及測試相機調試提供技術支撐,解決所遇到的各種Camera技術屏障。
3.Camera LV3
這個階段我開始研究并設計系統相機橫屏方案,因為原生平臺相機是基于豎屏開發的,最終獨立完成將豎屏相機適配成橫屏相機,大幅優化用戶使用體驗;又或者將谷歌原生的相機深度定制化,實現基于產品需求客制化系統相機應用落地,這兩個成熟系統相機設計方案目前都以上線,上線多年目前看市場反應良好,幾乎沒有相關的用戶反饋和投訴,獲得了市場和用戶的廣泛認可。
4.Camera LV4
這個階段得我非常癡迷相機的硬件結構,也就是相機硬件的組成部分,相機成像的原理,這個時候也是斥巨資買了專業數碼相機,在圖書館花了近一年半的時間學習并實踐各種專業攝影技術,省圖書館相關的書籍也是被我幾乎翻了個遍,在此期間,也是開始探索手機相機硬件,軟件未來的發展方向。
5.Camera LV5
這個時候我能熟練的排查相機的各種問題了,從上至下,定位相機本身的各種異常,以及三方應用調用相機時候出現的各種異常問題快速分析定位并解決,開始著手相機性能優化,以及功耗優化的探索,在此期間通過探索上述優化,不斷提升用戶使用體驗。
6.Camera LV6
這個階段開始潛心鉆研未來Android相機的發展,例如聚焦后續相機的模組的優化方向,相機sensor的硬件提升方向,更豐富的相機算法,相機軟件提供更多實用且便捷的創新功能等。相機一直在旗艦手機里面作為一個關鍵的核心賣點,所以摸清相機的發展方向是很重要的,最重要的還是創新能力,探索精神,我也是很期待未來手機相機出色表現,科技帶來的不一樣的風景,所見即所得,所想即所得~