引言 updateTexImage 简单使用 SurfaceTexture 初始化相关源码分析 Surface 绘制流程源码分析 createBufferQueue 源码分析 SurfaceTexture 之 updateTexImage 源码分析 结尾 本文首发地址 https://h89.cn/archives/140.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 引言 在Android系统中,SurfaceTexture 是一个特殊的类,它将来自硬件纹理缓冲区(如相机预览流或视频解码输出)的图像数据转换为 OpenGL ES 可以直接使用的纹理。updateTexImage() 方法是 SurfaceTexture 类的核心方法之一,此方法的主要作用是从 SurfaceTex

- 阅读剩余部分 -

Markdown Not Support JCEF Version Control 中 Local Changes 不显示 自动同步不同电脑 Android Studio 配置 自动格式化代码 自动导入包 一些好用插件 本文收发地址 https://h89.cn/archives/130.html 最新更新地址 https://gitee.com/chenjim/chenjimblog Android Studio 是安卓开发的最强工具,本文主要介绍一些个人配置,以提高我们的开发效率 Markdown Not Support JCEF 问题 Your environment does not support JCEF,can not use Mardkdown Editor Preview Android Studio 默认运行时暂不支持JCEF,无法使用mar

- 阅读剩余部分 -

之前部署了一个脚本同步 Gitee 代码到 Github 刚发现无法同步了。 从日志看到,2024.01.17 开始,无法连接上服务器: ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. 通过站长工具 https://ping.chinaz.com/github.com 看到 国内都无法直接访问 Github ,同步服务部署在群晖,安装梯子也会比较麻烦。 可以看到部分IP能够通,我们可以修改 host 以访问 Windows 以管理员打开 C:\Windows\System32\drivers\etc\hosts 添加如下内容 20.200.245.247 github.com 这里的IP不是固定的,需要从如上网页中

- 阅读剩余部分 -

前言 视频采集 视频编码 视频编码写入 结语 本文首发地址 https://blog.csdn.net/CSqingchen/article/details/134896821 最新更新地址 https://gitee.com/chenjim/chenjimblog 前言 通过 文2 我们知道了 MediaRecorder 各个接口 Framework 中的实现。 通过 文3 我们 知道了 MediaRecorder 底层音频的采集、编码、写入文件等详细流程。 本文主要介绍 MediaRecorder 视频的采集、编码等相关流程。 视频采集 在 文1 我们知道了如何使用 MediaRecorder 录制音频,那么如何同时录制声音和视频呢,可以参见 Demo Camera2Video,这里不再贴代码。 通过此示例,我们知道录制视频需要如下设置

- 阅读剩余部分 -

前言 音频采集 音频初始化 AudioRecord 分析 AudioSource 采集到音频 音频编码 音频编码后数据处理 MPEG4Writer写入音频编码后数据到文件 MPEG4Writer::Track 取编码后的音频编数据 结语 本文首发地址 https://blog.csdn.net/CSqingchen/article/details/134896808 最新更新地址 https://gitee.com/chenjim/chenjimblog 前言 通过安卓MediaRecorder(2)录制源码分析,我们知道 MediaRecorder 相关接口是在 StagefrightRecorder.cpp 中实现,本文进一步分析音频采集、编码、写入文件详细流程。 音频采集 音频初始化 通过前文,我们知道 setupAudioEncode

- 阅读剩余部分 -

前言 String 和 StringBuilder 性能对比 String 和 StringBuilder 使用的字节码对比 总结 本文收发地址 https://blog.csdn.net/CSqingchen/article/details/135324313 最新更新地址 https://gitee.com/chenjim/chenjimblog 前言 最近编码时看到 Intellij 建议使用 String 替换 StringBuilder ,不是应该推荐 StringBuilder 嘛? 在 jetbrains 上也有对此问题的讨论,链接如下 https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000093250 String 和 StringBui

- 阅读剩余部分 -

前言 问题示例 解决问题 问题扩展 本文代码地址 https://gitee.com/chenjim/QueryAppInfo 最新更新地址 https://gitee.com/chenjim/chenjimblog 前言 如果应用以 Android 11(API 级别 30)或更高版本为目标平台,并查询与设备上已安装的其他应用相关的信息,则系统在默认情况下会过滤此信息。 此过滤行为意味着您的应用无法检测设备上安装的所有应用,这有助于最大限度地减少您的应用可以访问但在执行其用例时不需要的潜在敏感信息。 比如 queryIntentActivities()、getPackageInfo() 和 getInstalledApplications() 将无法获取到返回结果. 问题示例 在本文示例代码中,先运行 app2 ,在运行 app,从日志可以看到未

- 阅读剩余部分 -

生成APK签名文件 使用keytool命令生成.jks 使用 androidd studio 的生成如下 对apk签名的几种方式 用指定的keystore(jks) 对 apk 签名 使用私钥和证书(platform.x509.pem和platform.pk8)对 apk 签名 使用集成IDE对APK签名 查看签名信息 查看签名文件(jks)的签名信息 用apksigner查看apk签名V1 V2 V3 支持情况 用 keytool 查看 apk 签名 在项目中用gradle查看签名信息 应用代码中获取APK签名信息 签名文件转换 .jks 转 .p12 .p12 转 .keystore .keystore转 .x509.pem和.pk8 pem 转 jks keytool、jarsigner 均是jdk提供的工具,JDK下载链接 涉及的文件可以参考示例 An

- 阅读剩余部分 -