记录一下不会的内容1、java的设计原则2、LinearLayout和FrameLayout的绘制流程有什么区别 文心一言答案:FrameLayout是从上到下的一个堆叠的方式进行绘制的 LinearLayout在两个方向上绘制的布局,绘制的时候按照指定的方向绘制,比FrameLayout要慢3、如果发现Recyclerview的一些性能问题,应该如何优化? 1、bindViewHolder方法是在UI线程进行的,如果在该方法进行耗时操作,将会影响滑动的流畅性 2、减少布局层级,可以考虑使用自定义View来减少层级 3、RecyclerView数据预处理 4、加大RecyclerView的缓存3、相机的旋转是怎么做适配的 相机旋转后通过CameraCaptureSession.OnConfiguredListener回调函数通知的 https://blog.csdn.net/wangyantaozzu/article/details/1037681424、相机预览的适配 1、根据预览的尺寸,将屏幕的大小根据预览比例调整界面的布局,截取屏幕的部分出来与预览一致 2、根据预览的尺寸,将TextureView显示时的画布按屏幕进行比例缩放,偏移再展示到TextureView中 建议第二种5、camera2与camera1的区别 1、Camera1只能一次拍摄一张图片,而Camera2支持一次拍摄多张图片 2、Camera2有CameraCharacteristics实例专门提供相机信息,可以在不开启相机的前提下检查所有相机信息 3、camera2改进了新硬件的性能,使用更先进的API架构; 4、可以获取更多的帧(预览/拍照)信息以及手动控制每一帧的参数; 5、支持调整focus distance, 剪裁预览/拍照图片 6、支持更多图片格式(yuv/raw);