android studio背景模糊_[Android翻譯]CameraX:過去、現在和未來的一瞥

62ea5e376a75ddb8a45612739f8407a0.png

CameraX是一個未捆綁的Android Jetpack庫,它可以幫助你在Android應用中輕松添加攝像頭功能。傳統上,由于Android設備種類繁多編程模型復雜,在Android上構建具有相機功能的應用程序非常困難。

現在成千上萬的開發者都在使用CameraX,許多開發者已經實現了APK大小的縮小業務指標的改善,同時也精簡了他們的資源,使他們的工程師能夠專注于構建很酷的新功能

本篇講述了CameraX如何顛覆現有的相機框架編程模型,如何幫助你在Android上擴展你的應用,并介紹了自Beta版以來的新功能,比如輕松地將ML Kit等智能功能集成到你的應用中。

fee1ec9918598e73efa0282c79b88292.png

顛覆過去的復雜性

我們首先在網上搜索你們所遇到的各種問題,并在現場用一些現有的設備進行實驗。我們驚訝地了解到,你們中的許多人為了讓事情順利進行,在不同的制造商、芯片組、甚至是特定的設備上使用了大量的if-else代碼塊。造成這種行為的原因之一是,使用Camera1或Camera2框架API,你需要從一組特定設備和操作系統的輸入開始,以實現所需的輸出,例如拍攝一張照片。通過設計,這需要你提前知道設備配置,以幫助你實現目標-當新設備推出時,很難擴展你的代碼。

6557fb9c077afba10d8f863cd8147acf.png
Camera1/Camera2框架編程模型

我們不得不從根本上重新思考編程模型。你們的很多反饋啟發我們翻轉漏斗,從基于用例的方法開始(如下圖所示)。

4e3117bb80c7692093bcdc637afc810b.png
CameraX編程模型

通過這種新的方法,團隊創建了一個非捆綁的庫CameraX,它對所有主要的Android版本都是不可知的,并且可以在超過94%的設備上工作,從API 21開始,不需要特定設備的if-else塊。在CameraX中,你首先通過創建一個用例來指定你的目標,例如 "拍照 "與ImageCapture用例。

然后CameraX確定操作系統和設備的具體配置,以幫助你實現你的目標。今天,用例是CameraX體驗的基礎,從Preview、ImageAnalysis和ImageCapture開始

幫助開發者擴大測試規模

除了現有的框架API實現和使用的復雜性之外,許多開發人員在跨大量Android設備和不同的相機配置的大規模測試他們的應用程序時遇到了困難。我們了解到的是,即使是最基本的相機應用,你的大量資源也花在了測試一個龐大的設備池上,導致了前面提到的特定設備的變通方法。

鑒于測試是你整體開發的關鍵部分,這啟發我們建立一個專門的CameraX測試實驗室,以提供跨多個Android設備的測試覆蓋。

52d3350107063fce173bc83b781dc975.png
三星Galaxy J1 Ace在光控CameraX測試箱內。

今天這個實驗室里有90多臺安卓設備。兩部手機被安裝在一個定制的測試箱內,箱內有可控的燈光和一個電機,用來模擬相機應用的旋轉和方向。

這90多部設備代表了約4.5億部活躍的Android設備,涵蓋了所有的操作系統級別(從Marshmallow開始)、價格層級(我們最低端的手機零售價在100美元以下)、芯片組(涵蓋聯發科、高通和Unisoc)和制造商(完整的設備列表)

縮小差距

在過去的幾年里,安卓制造商取得了巨大的進步,為移動設備帶來了高動態范圍(HDR)模糊虛化和夜景攝影等新功能。然而,到目前為止,這種功能只能通過手機的本地(或系統)相機應用程序來實現。CameraX Vendor Extensions(又稱擴展功能)填補了這一空白,并向所有開發者開放了五種特定廠商的功能。這包括

  • HDR:使用制造商的多幀處理功能,合并多個幀,并提供保留場景高光和低光的圖像。
  • 夜間:使用制造商的低光多幀處理功能,在低光條件下提供更有吸引力的圖片。
  • 自動:根據當前的環境光照條件,自動確定并提供HDR或夜景圖像。
  • 虛化:提供背景模糊的圖像,非常適合人物攝影。
  • 美顏:在圖像中啟用面部美顏效果。

最棒的是:當啟用Extensions時,你不需要特定設備的if-else塊--只需編寫一次代碼,它就能在所有支持的設備上工作。您可以通過使用ExtensionsManager.ExtensionsAvailability來檢查是否在特定設備上啟用了Extensions。

如果有擴展功能,您可以向用戶顯示必要的UI元素(如果適用),并將預覽和ImageCapture用例配置為使用擴展功能而不是正常的圖像捕獲。只需多寫幾行代碼,您就可以大幅提高圖像質量和整體用戶體驗。

d757602a734e41aa83e6cc3a3fe36e9b.png
使用CameraX Extensions拍攝的三星S10+的HDR關閉(左)HDR開啟(右)對比。

這些擴展功能適用于三星(從S10+開始的所有旗艦機)、摩托羅拉(他們的大部分設備都升級或推出了Android 10)、Oppo(Reno Pro 2)以及一些使用Unisoc移動處理器的入門級手機。

我們很高興能通過Extensions縮小差距,并感謝所有制造商不斷擴大具有這些功能的設備數量。

Getting to know CameraX Beta

目前在Play Store上有數千款應用部署了CameraX,涉及汽車、銀行、交友、聊天、電子商務、搜索、社交等多個類別。一些發現CameraX有幫助的開發者包括以下幾個。

  • Monzo銀行使用CameraX a)消除了9000行代碼,包括UI代碼,b)將識別圖像捕捉和自拍視頻錄制的掉線率從25%降低到5%左右(案例研究)。
  • YouCam Perfect通過CameraX實現了減少70%的代碼行數(比Camera2),它極大地提高了新產品開發的效率。
  • Ufoto使用CameraX精簡了他們的資源,使他們的工程師能夠專注于開發很酷的新功能。他們還觀察到從Camera1遷移到CameraX時,有了明顯的改善。例如,在一些設備上,圖像捕捉速度提高了10%,在一些設備上,預覽幀率提高了30%。

下一步工作

我們將不斷提高Android系統的設備兼容性和可靠性,同時使CameraX更容易使用(開發者報告的已修復CameraX問題列表)。例如,在未來幾個月內,我們將在CameraX測試實驗室中增加更多的設備。我們堅信,開發者不應該擔心底層相機堆棧或設備的特殊性,這樣他們就可以專注于開發用戶喜歡的很棒的應用程序。

有超過2,000名開發者在生產中使用CameraX,我們建議你嘗試采用和部署CameraX Beta的最新版本。 如果你想親身體驗CameraX,請查看我們的教程和官方示例。在您試用CameraX之后,我們很樂意聽到您看到的改進類型。

如果你發現最新版本有任何問題,請盡可能在bugreports中提交一個bug(我們每周都會進行分流)。你也可以給Android CameraX討論組發郵件提出問題,或者在StackOverflow上用 "android-camerax "標簽發帖。

我們最衷心地感謝您,我們了不起的開發者、合作伙伴、制造商和CameraX團隊成員,感謝他們幫助我們塑造和構建CameraX Jetpack庫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396717.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html頁面根據分辨率縮放,html2Canvas根據不同分辨率,生成pdf內容自適應

根據屏幕大小不同,頁面內容自適應并一頁展示,應該如何實現// 導出頁面為PDF格式import html2Canvas from html2canvasimport JsPDF from jspdfexport default{install (Vue, options) {Vue.prototype.getPdf function () {setTimeout(() > {var titl…

【agc002f】Leftmost Ball(動態規劃)

【agc002f】Leftmost Ball(動態規劃) 題面 atcoder洛谷 題解 我們從前往后依次把每個顏色按順序來放,那么如果當前放的是某種顏色的第一個球,那么放的就會變成\(0\)號顏色,所以無論何時,\(0\)號顏色的數量不…

VS2010中的快捷鍵

一. VS2010中的快捷鍵 1&#xff1a; Ctrl Enter &#xff08;在光標指定位置的上 K C &#xff08;注釋&#xff09; Ctrl E U &#xff08;取消注釋&#xff09;  <>  Ctrl K U &#xff08;取消注釋&#xff09; 5&#xff1a; Tab &#xff08;增加縮進&a…

export function函數傳參_04 js高階函數(惰性函數、柯里化函數、compose函數)和單例設計模式...

高階函數的定義在《javascript設計模式和開發實踐》中是這樣定義的。函數可以作為參數被傳遞&#xff1b;函數可以作為返回值輸出。結合這兩個特點&#xff0c;首先想到的肯定是回調函數&#xff0c;回調函數也是高階函數的一種&#xff0c;除了回調函數&#xff0c;還有很多的…

Javascript構造函數的繼承

僅供學習參考&#xff0c;原文鏈接&#xff1a;http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html 今天要介紹的是&#xff0c;對象之間的"繼承"的五種方法。 比如&#xff0c;現在有一個"動物"對象的構造函數。 funct…

python輸入字符串str_python字符串(str)

#value "raitOrEi"#v value.capitalize()#首字母大寫#print(v)#v1 v.casefold()#全部變小寫&#xff0c;不只是英文的&#xff0c;其他語言特殊的大小寫也變換#print(v1)#v2 v.lower()#只是英文變小寫#print(v2)#設置寬度&#xff0c;并將內容居中#20 代指總長度…

html5 audio api 錄音,如何使用HTML5 Web Audio API錄制我的聲音

在webkit瀏覽器上,您可以將get user media api與webkitGetUserMedia一起使用 – 如html5rocks所示.如果你想用你的聲音來創建javascript事件(例如控制屏幕上的對象)你必須分析傳入的聲音(例如事件1的高頻率 – 事件2的低頻率,語音分析要復雜得多,見下文)另外,還有chrome的’x-w…

修改密碼

在updateservlet.java中寫了方法&#xff0c;修改用戶密碼&#xff0c;代碼不成功求大神指教&#xff0c;代碼如下&#xff1a; updateadminpw.jsp <% page contentType"text/html;charsetgb2312" pageEncoding"gb2312" %><% taglib uri"ht…

MlLib--邏輯回歸筆記

批量梯度下降的邏輯回歸可以參考這篇文章&#xff1a;http://blog.csdn.net/pakko/article/details/37878837 看了一些Scala語法后&#xff0c;打算看看MlLib的機器學習算法的并行化&#xff0c;那就是邏輯回歸&#xff0c;找到package org.apache.spark.mllib.classification下…

mysql相關命令操作

2019獨角獸企業重金招聘Python工程師標準>>> 遠程連接容器中的mysql&#xff1a;mysql -h 192.168.5.116 -P 3306 -u root -p123456 啟動mysql容器&#xff1a; $ sudo docker pull mysql:5.6.35 $ sudo docker run --name mysql -p 12345:3306 -e MYSQL_ROOT_PASSW…

html實體注冊商標,html 注冊商標,html 注冊商標代碼

html中注冊的頁面用什么標簽寫好對于html中的注冊頁面&#xff0c;策朋專業辦理商標注冊、專利申請、版權登記保護&#xff0c;需要一個表格。使用標簽&#xff0c;輸入和按鈕標簽來組合成就。使用html作為注冊頁面。實際上&#xff0c;只要您能達到期望的效果&#xff0c;它的…

java已知一個二叉樹_#二叉樹復習#

#二叉樹復習#目錄滿二叉樹完全二叉樹平衡二叉樹二叉樹的主要性質--二叉樹的度--二叉樹的深度計算二叉樹的遍歷其他符號變量結點總數深度度為0的結點數/葉子結點數度為1的結點數度為2的結點數什么是滿二叉樹&#xff1f;二叉樹每層的結點數為。滿二叉樹總結點數&#xff1a;。圖…

hashtable - hashmap

http://www.importnew.com/24822.html轉載于:https://www.cnblogs.com/qinqiu/p/9711147.html

java 反射機制_基礎篇:深入解析JAVA反射機制

反射的概念java 的放射機制&#xff1a;在程序運行時&#xff0c;程序有能力獲取一個類的所有方法和屬性&#xff1b;并且對于任意一個對象&#xff0c;可以調用它的任意方法或者獲取其屬性通俗解析&#xff1a;java 文件需要編譯成. class 文件才能被 jvm 加載使用, 對象的. c…

構建之法閱讀筆記01

本學期閱讀計劃有兩個&#xff0c;一個是《構建之法》&#xff0c;另一個是《大道至簡》。 在快速閱讀構建之法后&#xff0c;我想提一下幾個問題&#xff1a; 1、軟件程序軟件工程&#xff0c;那么只會軟件工程是怎樣具體詳細的將程序變成合格的軟件的&#xff1f; 2、效能分析…

html div float center,跨瀏覽器實現float:center

跨瀏覽器實現float:center互聯網 發布時間&#xff1a;2008-10-17 19:26:11 作者&#xff1a;佚名 我要評論原文&#xff1a;http://www.macji.com/blog/article/to-achieve-cross-browser-css-float-center/to-achieve-cross-browser-css-float-center/我們都知道float…

博弈論中:納什均衡、純策略納什均衡、混合策略納什均衡、占優策略

納什均衡 納什均衡是由約翰福布斯納什&#xff08;John Forbes Nash&#xff09;在20世紀50年代提出的博弈論概念&#xff0c;用于描述博弈中的一種穩定狀態。在納什均衡狀態下&#xff0c;每個參與者都假定其他參與者的策略是已知的&#xff0c;他們選擇的策略是最優的&#…

工具_HBuilder使用快捷方式

HBuilder常用快捷鍵大概共9類&#xff08;【4 13 3】文件、編輯、插入&#xff1b;【4 9 8】選擇、跳轉、查找&#xff1b;【1 1 6】運行、工具、視圖&#xff09; 1.文件(4) 新建 Ctrl N 關閉 Ctrl F4 全部關閉 Ctrl Shift F4 屬性 Alt Enter 2.編輯(13) 激活代碼助…

oracle左連接沒用_一周零基礎學完Oracle數據庫第三天02

四、 多表查詢1 什么是多表查詢多表查詢&#xff1a;當查詢的數據并不是來源一個表時&#xff0c;需要使用多表鏈接操作完成查詢。根據 不同表中的數據之間的關系查詢相關聯的數據。多表鏈接方式&#xff1a; 內連接&#xff1a;連接兩個表&#xff0c;通過相等或不等判斷鏈接列…

weblogic啟動項目報錯找不到類_啟動類報錯是經常出現的事但是單一的從一個地方找原因會越找越錯...

Error starting ApplicationContext. To display the conditions report rerun your application with debug enabled.當我們看到這個報錯的時候有的說是jar包重復&#xff0c;有的說是Controller包和Application包處于平行位置&#xff0c;還有的覺得是RequestMapping的valu…