原文地址:magdamiu.com/2020/07/06/…
作者:MAGDA MIU
作为人类,我们有情感和感觉,捕捉我们情感的最好方法之一就是拍照。
我们最伟大的一些经历实际上是在图片中捕捉到的。当然,我们每个人都有生日聚会、假期、旅行、会议的照片。我们也喜欢捕捉快乐或坏惊喜发生时的反应等感觉。最近几年,我们发现我们喜欢自拍。
简介
这些图片帮助我们评估我们的生活是如何改变的,或者它们可以帮助我们专注于特定的时间或感觉。
如今,如果我们想保留一份记忆,照片不一定需要清洗和打印出来,也不一定需要手动放入相册,因为现在照片是数字的,可以存储在硬盘、云中,甚至可以创建在线相册。
目前,社交媒体提高了摄影的重要性。它们使我们能够表达自己。
带有图片的脸书帖子获得了2.5倍的参与度(喜欢、分享和评论)
这些照片中有很多是自拍——通常用智能手机拍摄的自拍。截至本文撰写之时,已有近3亿张Instagram照片被贴上了自拍标签。
人脸追踪研究表明,个人资料图片或化身是脸谱网和其他社交媒体个人资料中眼睛首先被吸引的地方。所以确保你有一张恒星的个人资料照片。
在Instagram上,有人脸的照片比没有人脸的照片更有可能获得38%的喜欢,更有可能吸引32%的评论。
我们都知道,一张图片胜过千言万语。我们真的觉得有必要捕捉生活中的瞬间,因为照片有助于我们讲述故事。自拍是关于自我形象——我们如何定义自己。还有一个心理学概念叫做“镜子自我”,它说我们如何看待自己并不来自我们真实的身份,而是来自我们认为别人如何看待我们。
你认为一年拍多少张照片?!
现在我们知道每年拍摄多少张照片,让我们看看用什么设备来制作这些照片,我们有三个主要类别:数码相机、手机和平板电脑。
重要的是要明白,很大一部分照片是通过手机拍摄的。
使用相机API的挑战
既然我们是安卓开发者,让我们看看在构建拍照应用程序时使用相机应用编程接口有什么挑战。
有三种不同的挑战。
-
我们必须设法构建适用于不同Android版本的应用程序。自从谷歌每年推出新的安卓版本以来,我们有很多操作系统口味
-
平台碎片化。我们创建的应用程序运行在不同类型的设备上,就配置和价格而言,有入门级设备、中档设备和高级设备。
-
相机API的复杂性
在相机API方面,我们有:
-
遗留的一个,或现在已弃用的Camera 1 API。
-
Camera 2 API是在API级别21(Android棒棒糖)中添加的。事实上,它增加了一些改进,但是就使用这个应用编程接口而言,它意味着要编写大量代码,并确保摄像机会话的生命周期得到良好的管理。
-
在谷歌I/O,2019年相机发布。它是Android Jetpack的一部分,实际上是Camera 2 API的包装。
使用CameraX API的优势
由于CameraX是Camera 2 API的包装器,因此它与L+设备兼容,这意味着Android 5或棒棒糖(API 21)。因此,通过使用这个应用编程接口,我们覆盖了大约90%的安卓设备。
CameraX提供了一个易于使用的应用程序接口,本演示的目的是向您展示如何将该应用程序接口轻松集成到我们的应用程序中。
代码行数减少
使用CameraX vs Camera 2的第一个优点是写入的行数减少了70%。有一个关于Monzo的案例研究,它减少了9000多行代码,并通过CameraX将注册辍学率提高了5倍。
生命周期意识
就像其他Jetpack库一样,CameraX的核心属性之一是生命周期意识。只要我们提供一个生命周期所有者,CameraX就可以代表我们处理这个问题,而不必管理摄像机设备和会话的打开和关闭。当生命周期开始时,相机也是如此;当生命周期停止时,我们也不必担心关闭,因为CameraX为我们做到了这一点。
用例驱动的方法
CameraX Jetpack库的另一个核心原则是它的用例驱动方法。UseCase实际上是一个抽象类。这里要提到的一件重要的事情是,每个用例都是完全独立的。我们可以只使用其中一个,也可以将它们结合起来。
跨设备的一致行为
然而,即使我们的应用程序在相同的API级别上运行,也有一些不同的设备。例如,HAL会对性能产生很大影响。为了解决这个问题,CameraX团队在自动化测试方面投入了大量资金,包括建立一个拥有大量设备的专用测试实验室。所有这些都是为了在设备之间保持一致的行为。
谷歌使用大量的设备来测试CameraX库。你可以在这里查看设备列表。
有52种不同类型的设备代表2亿个活动设备对这个库有信心。单元,集成和功能测试应用于这些设备,而不是CameraX集成在镜头Go中,这为谷歌提供了从大量用户那里获得反馈的可能性。
在本系列的下一篇博客文章中,我们将讨论CameraX中可用的所有用例,以及供应商扩展。在此之前,让我们总结一下使用CameraX的主要优势:
如果有什么不清楚或有问题,请随时留下评论。如果你喜欢它,请分享! 感谢您的阅读! 关注我: Twitter|媒体|Dev.to