深度解析:如何用 Paging3 优雅地处理复杂数据源切换
Paging3 提供了强大的工具,能够帮助我们优雅地实现数据加载和切换逻辑。然而,对于一些复杂的场景,例如在线数据与本地数据的动态切换,或者在没有在线数据时优雅降级到本地数据,这些仍然需要我们做一些额外的处理和优化。
Android分页查询数据库方案
在项目中,经常会有展示本地数据的设计,如果我们不采用分页,当数据量大时,加载的速度就会大幅下降,用户Loading的时间大幅增加,对于体验感来说非常不友好
深入浅出:Android Paging3 实现在线与本地数据的高效融合与动态布局解析
最近项目有个需求是实现类似百度网盘和一刻相册的云盘相册效果,刚好有时间就可以解析一下实现的思路
解决setText()触发requestLayout导致View位置频繁刷新的问题
在我们的一个应用中有一个功能是需要显示时间的秒数分钟数等,正常的逻辑中,就是每秒去更新一次TextView的setText()从而实现数据的显示。而当我们需要这个TextVIew能够移动时,却发现移动后每秒TextVIew都会重制位置
Android 相机开发中的隐藏坑:如何正确设置预览和拍摄比例
在 Android 相机开发中,「预览比例」和「拍摄比例」的设置是一个绕不过去的问题。我们在日常开发中可能常常看到 3:4、9:16、1:1,甚至是所谓的“全屏比例”被设置为预览或拍摄尺寸。但这些比例的背后,其实隐藏着一个容易忽略、却又很容易踩坑的关键点:相机支持的尺寸和屏幕尺寸不是一一对应的,尤其是在全面屏设备上。
从forEach理解一下kotlin的inline
在Android开发中有很多语法糖,其中forEach可以替代for循环,简洁的语法是很常用的
从findViewById失效的问题到深入setContentView
findViewById是Android中的定位函数,主要作用是引用xml布局中的组件id,每个Android工程师应该都不陌生,在Android studio3.6推出ViewBinding后,更方便的ViewBinding开始替代findViewById。
从绘制时机深入浅出View.post
最近新接手了一个项目的Bug修复任务,其中有一个Bug是在一个页面有一个ImageView,ImageView根据传入的图片设置宽度拉满或者高度拉满,然后根据imageView的大小通过代码绘制一个新的View,在onCreate中绘制总是位置错乱,放入onResume后,从后台重新进入应用就可以正常绘制。
从Glide.with(View)开始优化RecyclerView掉帧问题
最近在项目中发现有个recyclerview滑动掉帧现象很严重,刚好最近要更新一个版本,就准备把这个问题优化了
Android跨进程传输大数据解决方案
近期猛猛修bug,针对跨进程activity与activity,activity与fragment之间传递大数据可能出现的崩溃进行修复
适配target30返回监听以及简单分析finish()和onBackPressed()的区别
前段时间适配target30,然后发现返回监听实效了,于是适配了下,顺便看了下finish()和onBackPressed()的区别
踩坑OPPO系的系统关于切换页面输入法重复弹出的问题
在OPPO系中包括,OPPO,一加(OnePlus)和realme(真我)的系统都会出现,其他系统暂时没有发现
解决Android中输入框点击第二次才触发点击效果
最近遇到的一个bug,在点击输入框第二次后才会触发设置的点击事件,然后查到了一个有意识的事情
深入浅出Android系列之从ViewToBitmap延伸到View的绘制全过程
我们的项目有个需求,是将当前的布局生成图片并保存到本地,最近遇到的一个Bug,当我们应用将View生成图片后,布局会出现布局错乱的现象,经过一系列的检查找出了问题,同时延伸到了View的绘制全过程
Android踩坑记录:部分网站在WebView上播放视频会重复播放
前几天在项目运行中发现,我们的项目WebView在部分网站播放视频,老是播着播着就回到卡住然后从头开始播放,一直循环
深入浅出系列之从new一个Activit的操作延伸到Activity启动流程
前段时间在公司一个老项目中,看到有个惊为天人的操作——直接new 了一个activity,当然最后他没有调用,估计是调用后发现崩溃了,当时的第一反应是怎么敢这样干的啊,activity的创建应该是AMS干的,自己new的activity系统就没办法进行管理,关于activity的生命周期等等全部都乱套了,然后就在想,那Android的activity是如何启动的,甚至与Android系统是如何启动的?
深入浅出Android系列之Android进程间通信
在所有使用Linux内核的衍生系统中,都离不开通信,其中又分为进程间(跨进程,又称为IPC)和线程间(进程内)。而Android作为基于Linux的系统,在开发中更是离不开进程间的通信。
客户端工程师开发IOS踩坑日记
截止到写这篇博客时,已经在开发第二个IOS项目了,特此记录这段时间的开发
Android工程师的IOS开发记录
这是我开发iOS项目以来的第一次开发记录,踩了很多的坑,摸索了很多也查了很多东西,不同于我在安卓上可以扒原理,看源码的技术程度,iOS开发目前还属于初级水平,只能解决问题,但是对于很多问题目前只有一些猜测,属于知其然不知其所以然
Android开发日记:好久没写的冒泡排序
最近在开发时遇到一个需求,给定一个ListA集合,里面存储不定长度的String字符串,通过网络请求获取另外一串ListB数据,读取ListB,将ListB中含有ListA中字符串的数据放到集合前方,将不含有相关数据的放入后方