为什么要开启混淆 如何开启代码混淆 如何开启资源压缩 代码混淆配置 代码混淆后,Crash 问题定位 结尾 本文首发地址:https://h89.cn/archives/211.html 最新更新地址:https://gitee.com/chenjim/chenjimblog 为什么要开启混淆 先上一个 简单示例 MainActivity.kt class MainActivity : AppCompatActivity() { private val p = Person("chenjim", 18) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R

- 阅读剩余部分 -

本文首发地址 https://h89.cn/archives/201.html 本文最新更新地址 https://gitee.com/chenjim/chenjimblog 慢动作英文称呼SlowMotion,也就是高帧率录像,如果以正常30帧播放,就能看到慢动作效果,可以用来拍摄快速移动物体的瞬间,比如鱼儿的游动、终点冲刺结果等。本文主要介绍慢动作在安卓相机应用中如何实现。 获取高速录像支持的尺寸和帧率 可以通过如下获取支持的 Size 和 FPS cameraManager.cameraIdList.forEach { id -> val characteristics = cameraManager.getCameraCharacteristics(id) val capabilities = characteristics.get(CameraCharac

- 阅读剩余部分 -

本地首发地址 https://h89.cn/archives/189.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 原文地址 https://www.romainguy.dev/posts/2024/speeding-up-isblank/ 最近在优化 Jetpack Compose 运行时的部分时,偶然发现了一个看似无害的 API isBlank() 。如果调用的字符串为空或仅由空格字符组成,则此 API 将返回 true 。 但它真的无害吗?让我们看一下 JVM 实现,以更好地了解它的作用: public actual fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhit

- 阅读剩余部分 -

一、关于工作与生活 二、 根源 三、什么是好工作 四、普通人 五、跳槽与积累 六、等待 七、入对行跟对人 八、选择 九、选择职业 2012年4月从QQ空间保存的一篇文章,时过境迁,已不知道出处,依旧会很触动。 以下是原文 如果这篇文章没有分享给你,那是我的错。 如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我。 如果你看了这篇文章,只读了一半你就说没时间了,说明你已经是个“茫"人了。 如果你看完了,你觉得这篇文章只是讲讲大道理,说明你的人生阅历还不够,需要你把这篇文章珍藏,走出去碰几年壁,头破血流后再回来,再读,你就会感叹自己的年少无知。 如果你看完了,觉得很有道理,然后束之高阁,继续走进拥挤的地铁,依然用着自己昨日的观念来思考自己的未来,你的人生也将继续重复着昨日的状况。 如果你看完了,觉得那是一个过来人,对你的人生忠告,并你也愿意用他告诉

- 阅读剩余部分 -

前文回顾 音频处理 留个小思考 总结 本文首发地址 https://h89.cn/archives/146.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 源码地址: Gitee: OpenGLRecorder 通过 前文 我们知道了如何采集 Camera 视频,叠加水印、贴纸保存为MP4,但是录制视频并没有音频,本文进一步介绍添加音频录制实现。 前文回顾 前文介绍的视频处理流程及主要类如下 CameraGlView 用来显示Camera预览的View CameraGlView extends GLSurfaceView 创建 SurfaceTexture 来显示 Camera 预览,参见 CameraRenderer.java mSurfaceTexture = new Surface

- 阅读剩余部分 -

上车自动开启手机 WIFI 热点 骚扰来电拦截 隐私保护水印 本文首发地址 https://h89.cn/archives/188.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 从小米1开始使用 MIUI 系统,中间短暂使用过 IOS、EMUI、Flyme 等, 都没法很舒畅的切换过去,本文主要分享一些对我实用的 MIUI 功能。 上车自动开启手机 WIFI 热点 手机管家(8.6.7) --> 自动化任务 --> 开车 如果连接到车载的蓝牙,就自动打开热点,供车机使用;如果断开连接,就关闭热点。如下图 骚扰来电拦截 电话 --> 设置 --> 骚扰拦截 --> 设置 --> 来电拦截 可以拦截 陌生人、呼叫转移来电、海外来电、标记号码来电 拦截标记号码来电,特别好使,可以避免好多骚扰电

- 阅读剩余部分 -

安装软件 运行效果 结尾 本文首发地址 https://h89.cn/archives/181.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 闲置的手机平板、触屏音箱等,均可作为电脑的扩展屏,为电脑增加一块显示屏,本文介绍如何使用免费的软件spacedesk实现。 安装软件 去https://www.spacedesk.net/#download下载安装软件 目前只支持作为 Windows 系统的扩展屏,如上图选择与你电脑匹配的安装包。 如果无法访问,可以从如下地址下载 Win10/11 (X64) 安装包和 Android 应用 APK https://gofile.me/4rWEv/1a3NCJBvo 也可邮件 me@h89.cn 获取 运行效果 运行 Windows 客户端,结果如下图,可以不做任何配置修改 运行

- 阅读剩余部分 -

Linux 终端使用 Windows Git Bash 使用 本文首发地址 https://h89.cn/archives/174.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 本文主要记录博主的常用配置 Linux 终端使用 禁用Vim退出后回显或者清屏 在 ~/.bashrc 添加 export TERM=xterm 命令行终端忽略文件路径tab忽略大小写 在 ~/.inputrc 添加 set completion-ignore-case on 终端命令单独另起一行 修改 ~/.bashrc 中 PS1 字段 在 \w 后加 \n Windows Git Bash 使用 Windows Terminal 可以直接使用 Git Bash 了,以前使用 cmder 复制换行会存在一些问题。 配合如下配

- 阅读剩余部分 -