安卓开发踩坑记
文章平均质量分 94
equation_l
equationl 被谁注册了呀,难道是被我自己注册了??(#滑稽)
展开
-
在安卓项目中使用 FFmpeg 实现 GIF 拼接(可扩展为实现视频会议多人同屏效果)
在开始之前先简单介绍一下什么是 FFmpeg,不过我相信只要是稍微接触过一点音视频的开发者都知道 FFmpeg。FFmpeg 是一个开放源代码的自由软件,可以执行音频和视频多种格式的录影、转换、串流功能,包含了 libavcodec ——这是一个用于多个项目中音频和视频的解码器库,以及 libavformat ——一个音频与视频格式转换库。简单来说,只要是和音视频相关的操作,几乎都可以使用 FFmpeg 来实现。-y 若指定的输出文件已存在则强制覆盖-i 设置输入文件,可以设置多个。原创 2022-09-19 13:36:51 · 1024 阅读 · 0 评论 -
compose使用入门:做一个丝滑的可展开列表
compose 的基础组件基本涵盖了所有的基本需求,即使是没有的组件我们也可以很快速的使用已有基础组件组合出我们需要的组件效果。另外,compose 的动画创建相比于传统 view 方便了许多,例如参数值改变的动画,现在只需要使用创建一个带动画的参数,再放到需要动画的地方即可,完全不需要其他多余的操作。原创 2022-09-19 13:35:29 · 500 阅读 · 0 评论 -
少年,不知道怎么在安卓中使用 PaddleOCR ?看我怎么把它二次封装成只需要两行代码即可使用
其实 PaddleOCR 部署并不算复杂,只是由于它的多平台特性,导致新手使用时会看的一脸懵逼,不知道到底该怎么去使用。最后,这个库我已经在我自己的项目隐云图解制作中使用了半年多了,目前没有发现有什么大问题,所以各位可以大胆的去尝试使用。当然,这个库只是为了方便快速接入使用 OCR 的开发者,如果你想要更多的自定义或扩展功能,还是得你自己去研究部署 PaddleOCR,如果你恰好有时间,并且认为这些功能其他人也能用的到的话,欢迎 PR 到这个库中。原创 2022-09-19 13:34:14 · 2231 阅读 · 7 评论 -
使用 Jetpack Compose 实现一个计算器APP
使用 compose 仿其他 APP 的界面相比较于使用传统 xml 可以说是方便的多了,现在 compose 基本也可以完美使用了,就是总还是会有一些奇奇怪怪的小 BUG 让人很烦,就比如我上面说到的这个尺寸溢出闪退的问题。原创 2022-09-19 13:30:47 · 1102 阅读 · 0 评论 -
使用 compose 的 Canvas 自定义绘制实现 LCD 显示数字效果
compose 的 Canvas 的自定义绘制相比于原生 view 的绘制简单的多,因为少了很多模板代码,也不用去考虑生命周期的问题。但是简单也有简单的劣势,那就是可定制性相比于原生 view 没有那么多,少了一些方法。对了,写完这个“仿真”显示界面,我突然觉得好像“仿真”计算器并没有什么意思,所以决定不做这个类型的了(笑。...原创 2022-08-09 13:20:38 · 582 阅读 · 0 评论 -
使用Compose实现基于MVI架构、retrofit2、支持 glance 小部件的TODO应用
实现基于 Gitee ISSUE 作为服务端,使用 MVI 框架,以 retrofit2 作为请求库,使用了依赖注入、数据分页,分页数据缓存数据库,支持 glance 桌面小部件的 TODO App原创 2022-08-05 15:19:56 · 2116 阅读 · 2 评论 -
使用compose实现康威生命游戏之二:我是如何将计算速度缩减将近十倍的
在上一篇文章中,我们使用compose写了个游戏,虽然我说运行很流畅,但是实际上如果画布尺寸稍大就会出现卡顿,本文就将探究卡顿的原因,并给出优化方案,并且最终将计算时间由 20+ms 优化至3ms。......原创 2022-08-04 17:27:19 · 1215 阅读 · 0 评论 -
基于 jetpack compose,使用MVI架构+自定义布局实现的康威生命游戏
基于 jetpack compose,使用 MVI架构+自定义布局实现的康威生命游戏,本文介绍了如何使用compose来实现一个简单的小游戏。原创 2022-08-02 17:00:42 · 2010 阅读 · 0 评论 -
Android 未进行依赖管理导致的问题:IDE 报错 “Unresolved reference: registerForActivityResult“但是能正常编译运行
由于未进行依赖管理,导致项目各模块之间依赖冲突,触发了 IDE 的一个由来已久的BUG,使得 IDE 错误的提示方法不存在。原创 2022-07-28 10:21:33 · 2857 阅读 · 4 评论 -
记一次 kotlin 在 MutableList 中使用 remove 引发的问题
但是此处,为了方便返回数据,我会在原有 list 末尾再添加两条数据,并且在遍历前将这两条数据通过 remove 移除。此时再去遍历这个 list 就出现了上述所说的顺序错乱。所以合理猜测是由于调用了 remove 导致顺序被重新排列了?...原创 2022-07-20 16:26:19 · 2332 阅读 · 4 评论 -
安卓定位方案的价格对比(包含可免费商用的服务)
由于公司业务需求,需要给设备加上电子围栏功能,目前的解决方案是设备定期上传当前所处位置给后台,由后台判定是否超出电子围栏范围。前期测试时一直使用的是高德提供的定位服务,但是最近高德通知禁止使用高德的服务进行商业运营获利,如果使用到了高德的服务,则必须支付商业授权费用。由于某些原因,领导不想付钱,只想免费使用,所以便有了这篇文章。安卓原生API提供了获取定位的方法,一般有两种渠道:使用GNSS定位(即GPS、北斗等)、使用网络定位(基站、wifi等)。GNSS无需多说,直接使用卫星定位,优点是定位精确,无需网原创 2022-07-12 09:45:26 · 3941 阅读 · 5 评论 -
Android Bitmap.compress 方法返回 false 的一个可能原因(jpg文件编码的分辨率限制)
前言最近在解决一个遗留以久的BUG时,发现调用 Bitmap 的 compress 方法将 bitmap 导出到文件流时,如果导出的 bitmap 特别大且导出编码为 Bitmap.CompressFormat.JPEG 的话该方法会直接返回 false 而没有抛出任何错误。而对于同一个 bitmap ,改用 Bitmap.CompressFormat.PNG 就不会返回 false 而是能正常导出。原因与解决方法懒得看分析过程的可以直接看这里:经过我的分析,导致 compress 方法返回 fa原创 2021-07-27 21:18:34 · 862 阅读 · 1 评论 -
在安卓项目中使用gifsicle编辑GIF动图-Android NDK 编译 gifsicle 为可执行文件记录
一、前言最近项目中有需要压缩GIF的需求,最开始时试图使用FFmpeg通过降低GIF的分辨率和帧率的来减少GIF文件体积,但实际测试下来,大多数情况下压缩效果并不理想,甚至会出现降低分辨率后导出的GIF甚至比原文件还大的情况。故选择放弃FFmpeg,经过大量的查询资料,发现如果想要压缩GIF大致有以下几个途径:参考文章1.由于 GIF 支持全局调色盘和局部调色盘,在没有局部调色盘的时候会用放在文件头中的全局调色盘。所以对于颜色变化不大的 GIF,可以将颜色放入全局调色盘中,去除局部调色盘。2.原创 2020-12-15 22:38:53 · 946 阅读 · 0 评论 -
java.lang.IllegalArgumentException Unknown URI: content://downloads/public_downloads/ 解决方案
当使用如下代码调用安卓的自带文件选择Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.setType("video/*");intent.addCategory(intent.CATEGORY_OPENABLE);startActivityForResult(Intent.createChooser(intent, "...原创 2018-12-20 17:27:03 · 12367 阅读 · 10 评论 -
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used) 解决方法
当我准备使用ffmpeg截取视频帧时出现了如题错误提示。使用命令如下:ffmpeg -ss 15.683 -i /storage/emulated/0/test.mp4 -y -f image2 -t 0.001 /storage/emulated/0/0.jpg为了便于理解,在说解决方法之前,先解释一下这个命令的各参数用处:-ss 15.683 :将视频指向 15.683 秒...原创 2018-12-07 20:11:19 · 4860 阅读 · 2 评论 -
androidstudio gradle错误:Error:Unrecognized SSL message, plaintext connection? 解决方案
在安卓开发过程中经常会遇到 gradle 无法下载依赖的问题,大多数情况下都与下载源被墙了有关,作为程序员,相信大家也是常备梯子,我也不例外。但是今天新建一个项目时却遇到这样的错误:Error:Unrecognized SSL message, plaintext connection?Consult IDE log for more details (Help | Show Lo原创 2018-02-07 21:34:17 · 8988 阅读 · 3 评论