- 博客(50)
- 收藏
- 关注
原创 FFmpeg在Android开发中的核心价值是什么?
支持广泛格式:FFmpeg 支持几乎所有主流音视频格式(如 H.264/265、AAC、MP3、FLV、MP4 等),弥补了 Android 原生 MediaCodec 的局限性(如部分格式或编码器缺失)。- 自定义编解码:开发者可深度控制编解码参数(如码率、帧率、分辨率),满足直播、短视频等场景的高定制需求。- 音视频合成/剪辑:支持多轨道混流、裁剪、拼接、滤镜(如添加水印、美颜),适用于视频编辑类应用。- 活跃社区:丰富的文档、开源项目(如 Telegram、VLC)参考,快速解决开发问题。
2025-05-13 21:18:36
172
原创 Android NDK 高版本交叉编译:为何无需配置 FLAGS 和 INCLUDES
Android NDK(Native Development Kit)在r19版本后进行了重大革新,显著简化了交叉编译流程。旧版NDK(r18及以前)需要开发者手动配置大量编译参数(如CFLAGS、LDFLAGS),存在路径硬编码、重复劳动、容易出错和维护困难等问题。而新版NDK通过统一的工具链结构、智能编译器命名规则和自动路径解析机制,极大地减少了配置复杂度。
2025-05-13 21:04:41
316
原创 FFmpeg在Android平台的音频解码流程详解
FFmpeg作为业界领先的多媒体处理框架,在音频解码领域具有显著优势,广泛支持多种音频格式,跨平台兼容性强,且成熟稳定。本文详细介绍了如何在Android应用中集成FFmpeg,实现专业级的音频解码方案。首先,提供了两种FFmpeg库的集成方案:使用预编译库和自行编译。接着,讲解了CMake配置的关键点以及权限与兼容性处理。最后,详细阐述了核心解码流程的实现,包括解码器初始化和完整解码循环的实现。通过这些步骤,开发者可以在Android应用中高效地实现音频解码,并与Android音频系统完美对接。
2025-05-12 12:19:42
250
原创 Android音频解码中的时钟同步问题:原理、挑战与解决方案
音频同步在多媒体播放系统中至关重要,直接影响用户体验。研究表明,15ms以上的同步偏差会被53%的用户感知,而300ms以上的偏差则会导致90%的用户停止观看。音频同步的核心问题包括时间戳解析错误、时钟漂移、缓冲区动态调整等。在Android平台上,时钟精度和冷启动延迟是主要挑战。通过使用精确的硬件时钟、预缓冲策略和性能监控工具,可以有效优化音频同步。前沿解决方案如基于机器学习的动态调整和自适应抗抖动算法,进一步提升了同步精度和稳定性。
2025-05-12 12:19:12
539
9
原创 ndk.symlinkdir - 在 Android Studio 3.5 及更高版本中,创建指向 NDK 的符号链接
在 Android Studio 3.5 及更高版本中,是一个配置选项,用于在 Windows 系统上创建指向 NDK 安装目录的它的主要目的是解决 Windows 系统中 NDK 工具(如ld.exe)对的问题。
2025-05-10 11:54:16
387
6
原创 Android平台FFmpeg音视频开发深度指南
FFmpeg在Android开发中具有核心价值,提供了跨平台支持、完整功能链和灵活扩展性,帮助开发者突破系统原生API限制,实现专业音视频处理。环境搭建包括FFmpeg编译和Android项目集成,编译时需优化安全性和性能,项目集成则通过CMake配置。核心开发流程涵盖初始化、媒体文件解析和解码引擎优化,确保高效、安全地处理音视频数据。
2025-05-10 11:52:55
1156
15
原创 Android NDK版本迭代与FFmpeg交叉编译完全指南
本文深入探讨了在Android开发中使用NDK进行原生代码开发,特别是集成FFmpeg多媒体处理库的关键步骤。文章首先分析了Android NDK的版本迭代,从NDK r23及之前版本到NDK r25+版本的新特性,详细介绍了各版本的特点和变更。接着,文章重点讲解了FFmpeg交叉编译的注意事项,包括版本匹配原则、API级别选择策略、工具链选择指南和输出命名规范。此外,文章提供了完整的编译脚本示例,分别针对高版本NDK(r21+)和低版本NDK(r16-r20)的ARM64和ARMv7架构。最后,文章总结了
2025-05-08 23:49:22
1235
原创 Android平台FFmpeg视频解码全流程指南
本文介绍了在Android平台上使用FFmpeg进行高效视频解码的实现方案,采用面向对象的设计思想。整体架构分为三层:应用层、业务逻辑层和Native层,分别负责用户接口、解码流程管理和FFmpeg核心解码实现。状态管理通过静态常量实现,核心类包括视频帧数据封装类(VideoFrame)和视频解码器封装类(VideoDecoder)。VideoFrame类封装了视频帧数据及其属性,并提供了转换为Bitmap的方法;VideoDecoder类则负责解码流程的管理,包括准备、开始、暂停、恢复、停止和释放等操作,
2025-05-08 23:40:42
917
原创 FLAGS是否需要加上 -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21
• 指定编译器搜索系统头文件的路径(针对 ARMv7 架构的 Android 头文件)。• NDK 可能使用默认值(如最新 API),导致在低版本设备上崩溃。• 影响 NDK 提供的库和头文件行为(如启用或禁用某些 API)。指定了 NDK 系统根目录(现代 NDK 更推荐这种方式)。• 编译通过,但运行时可能因缺少 API 而报错。• 你正在编译 ARMv7(32位) 的代码。• 编译的是 ARMv8(64位),路径应为。• 如果使用较新 NDK(r18+),推荐用。),且未通过其他方式指定路径。
2025-05-05 23:43:39
380
原创 详解 FFMPEG 交叉编译 `FLAGS` 和 `INCLUDES` 的作用
这两行是 Android NDK 编译时的编译器选项,用于控制代码生成、优化、调试、安全性和头文件搜索路径。适用场景:所有正式版本都应启用这些选项,防止安全漏洞。适用场景:开发调试阶段使用,发布时应移除。定义了传递给 C/C++ 编译器(如。优化性能,并确保安全选项开启。可删除未使用的代码,减小。适用场景:配合链接器选项。
2025-05-05 23:29:14
1143
原创 Android JNI开发中头文件引入的常见问题与解决方案,提示:file not found
假设你在开发一个JNI项目,想要实现一个线程安全的队列(SafeQueue),于是直接在。Android NDK 默认不会自动包含所有标准库路径,需要在。在C/C++中,头文件(.h)本身不参与编译,而是在。文件包含它,编译器就不知道去哪里找这些标准库路径。文件,这样编译器才能正确解析标准库路径。文件会报错,但别人却能正常编译?文件并引入标准库,但没有任何。是标准库,为什么找不到?,并正确找到标准库路径。就能正常编译,不会再出现。中配置,才能正确找到。
2025-04-22 23:33:35
354
转载 一文解析微信小程序Echarts动态使用及图表层级踩坑解决方案
最近收到一个需求,要在小程序上去做数据看板,能让公司运营和老板看到那些销售的数据情况。这就导致需要我去重新捡起Echarts了,距离上一次用它还是五年前了吧。不过好在现在的Echarts已经能很好的适配微信小程序了,不需要处理一些额外的bug,只需要看着官方的案例和文档去做就行。但是,官方给的Echarts示例都是简易的、静态的,数据也都是固定的,还得需要自己去做动态适配,在做的过程中,还发现了当使用Vant组件弹出层置顶的时候,底部的Echarts图的层级会盖住弹出层的层级。
2025-04-18 10:12:17
238
原创 ARM架构FFmpeg极致优化交叉编译指南
这是一个优秀的ARM交叉编译基础方案,针对生产环境建议:根据具体芯片型号细化-mcpu和-mfpu参数,添加安全加固编译选项,对于Android/iOS等移动平台需添加额外参数,考虑LTO链接时优化(需工具链支持)
2025-04-13 22:19:24
645
原创 Android Cmake构建的项目,需不需要配置指定ndk及版本
在 CMake 构建的 Android 项目中,是否需要显式配置 NDK 及其版本,取决于项目的具体需求和环境。
2025-04-13 22:07:11
731
原创 Ubuntu 64-bit 交叉编译 FFmpeg(高级用户指南)
适用于 ARM (aarch64)、Windows (mingw)、Android、Raspberry Pi 等平台的交叉编译
2025-04-06 17:13:18
850
2
转载 Android事件分发机制详解:史上最全面、最易懂
转载自:https://www.jianshu.com/p/38015afcdb58前言Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化等等 今天,我将全面总结Android的事件分发机制,我能保证这是市面上的最全面、最清晰、最易懂的本文秉着“结论先行...
2018-07-25 12:43:32
788
转载 centos6.6学习笔记:ActiveMQ安装
转载自:https://segmentfault.com/a/1190000008904171一、安装JDK1.查询是否安装JDKyum list installed|grep jdk2.如果没有安装JDK,查询YUM安装列表JDK版本,选择版本进行JDK安装yum list|grep jdkyum install java-1.7.0-openjdk.x86_64二、安装PHP Stomp扩...
2018-06-13 10:52:21
477
转载 android音频编辑(裁剪,合成)(1)
原文地址:http://blog.csdn.net/qq_25497621/article/details/61920062公司最近在做自己的项目,关于音视频编辑,还有图片的编辑方面。上网搜了一下,哇!很烦,大都用的FFmpeg进行编码、解码,再进行相应的操作!国外也有大牛,封装了jar,大家搜一下就很多了!在这也不多说了,用FFmpeg进行格式转换,裁剪等等操作的,也可以在
2018-01-24 09:48:58
623
转载 在Android中使用FFmpeg(android studio环境) 合成音频与视频
原文:https://www.jianshu.com/p/e0c32c8b0ebc1.首先我们需要一个已经编译好的libffmpeg.so文件。(怎么编译是个大坑,可以参考windows环境下编译android中使用的FFmpeg,也可以用网上下载的现成的,本文相关的github项目里也有。),当然也要下载好ffmpeg的源码,一会要用到。2.打开你的Android工程,在 src/ma
2018-01-23 17:04:50
2159
转载 android百度地图开发--自定义最短路径搜索图层
原文:http://blog.csdn.net/wb7931021/article/details/38958957由于需要,需要在百度地图的基础上实现小范围(例如校园,景区等地)内的详细最短路径导航,百度地图无法实现,因此通过SQLite数据库自行添加地点坐标信息,然后通过Dijkstra算法实现了两地点间的最短路径搜索。 直接上代码:首先是定义的一个节点雷:Side.java用于存放以及获取节
2018-01-18 11:09:44
653
1
转载 Android中的录音与音频合成
原文:http://blog.csdn.net/u013676055/article/details/50440893IOS的框架层有许多有趣的特性,使得它可以将多条音轨合并成一条音轨。你可以使用Audio Unit 和它提供的方法但是你想要一个类似的功能在Android上?Android的音频框架层并不支持这个。所以我用了几天时间在Google群和StackOverflow上边,去阅读上边的未答
2018-01-18 11:07:10
2064
转载 Android APK反编译就这么简单 详解(附图)
原文:http://blog.csdn.net/vipzjyno1/article/details/21039349/ Android APK反编译就这么简单 详解(附图) - CSDN博客在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎
2018-01-17 10:30:18
1254
转载 JAVA实现最短距离算法之迪杰斯特拉算法
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/50889670http://www.llwjy.com/blogdetail/9f4acca84ef514bdc8c2abb695cdf56f.html个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~-------------
2018-01-11 10:20:36
395
转载 Android 扫描附近的蓝牙设备并连接蓝牙音响的示例
转载:http://www.jb51.net/article/123248.htm写了一个可以扫描附近蓝牙设备的小Demo,可以查看蓝牙设备的设备名和Mac地址代码量不多,很容易看懂1234567891011121314151617181920212223242526
2018-01-09 15:27:19
907
转载 MQTT协议笔记之连接和心跳
转载:http://www.blogjava.net/yongboy/archive/2014/02/09/409630.html前言本篇会把连接(CONNECT)、心跳(PINGREQ/PINGRESP)、确认(CONNACK)、断开连接(DISCONNECT)和在一起。CONNECT像前面所说,MQTT有关字符串部分采用的修改版的UTF-8编码,CONN
2018-01-09 13:47:33
592
转载 Android基于MQTT协议实现的推送功能
转载:http://blog.csdn.net/boonya/article/details/51425832基于MQTT协议的实现有三种方式:1.官方的C2DM,但是只支持android2.2及以上平台的,而且使用的google的服务器。对于google服务器的问题,网友应该都清楚,天朝的大中华区局域网总是让它不时的给你断一下。2.第三方的androidpn,
2018-01-09 13:42:30
309
原创 MQTT V3.1协议规范 谷歌翻译
原文地址:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html作者:国际商业机器公司(IBM)Eurotech的抽象MQ遥测传输(MQTT)是一个轻量级的基于代理的发布/订阅消息传递协议,旨在实现开放,简单,轻量级和易于实现。这些特性使其非常适合在受限环境中使用,例如但不限于:
2018-01-09 11:08:25
541
转载 Android 6.0上sdcard和U盘路径获取和区分
转载:http://blog.csdn.net/xuan521521/article/details/70799159Android6.0上会根据卡的种类和卡的挂载状态来动态生成挂载路径,所以之前写固定路径的办法不可用,最后通过网上查找和分析android源码,通过反射获取到路径,并且进行了正确区分,代码如下:/** * 6.0获取外置sdcard和U盘路径
2018-01-04 15:43:00
651
转载 SELinux深入理解
转载:http://blog.csdn.net/MyArrow/article/details/98560951. 简介 SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制。 Security-Enhanced Linux (SELinux)由以下两部分组成: 1) Kernel SELinux模块(/kernel/security/selinux)
2018-01-02 13:24:00
263
转载 Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
转载:http://blog.csdn.net/xiaanming/article/details/10163203了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google啥的,发现很多朋友都有介
2017-12-29 16:13:51
231
转载 深入理解SELinux SEAndroid(第一部分)
转载:http://blog.csdn.net/innost/article/details/19299937深入理解SELinux SEAndroidSEAndroid是Google在Android 4.4上正式推出的一套以SELinux为基础于核心的系统安全机制。而SELinux则是由美国NSA(国安局)和一些公司(RedHat、Tresys)设计的一个针对
2017-12-29 15:53:20
207
转载 Android如何修改系统文件访问权限
转载:http://blog.csdn.net/goleftgoright/article/details/7389420我这里编译都是在Android源码包下,文章比较针对系统开发人员。以proc/cmdline为例,连接手机敲入命令可以看到默认情况下普通用户没有proc/cmdline的任何操作权限,如下图所示修改权限的大致思路就,1、用c语
2017-12-28 10:33:25
8176
转载 Android系统不刷机的情况下 修改系统文件
经过偶不知道多少次的刷机和查阅大量网络资源后,终于找到了完全可以解决此权限问题的方法!现介绍给大家以使大家走出对修改系统文件的恐惧及重复刷机的心理阴影一、ROOT重要:取得root权限后,在修改系统文件前,必须使ADB取得最高权限,千万不要等系统已经起不来了再想办法ROOT。 方法如下: 1、手机开机并与电脑通过数据线连接。安装手机驱动程序(只要你刷过机,自
2017-12-28 10:11:38
4922
转载 android6.0 adbd深入分析(一)adb驱动初始化、读取adb节点线程
转载:http://blog.csdn.net/kc58236582/article/details/51132674 adbd之前看过一次,觉得代码太复杂然后,又是adb client adb server adbd交织在一起感觉看起来太累,最近项目需要把它大致看完了,梳理下,感觉从adbd能学到很多东西,在此总结下,adbd的代码。我只分析我看懂了,不可
2017-12-27 15:17:09
2310
转载 Android 5.x SEAndroid/SElinux内核节点的读写权限
转载自:http://blog.csdn.net/tung214/article/details/44461985 Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权
2017-12-25 14:07:17
906
转载 Android 6.0打开串口返回-1问题
转载:http://blog.csdn.net/li7032/article/details/75095384Android 6.0打开串口返回-1问题type=1400 audit(0.0:17): avc: denied { read write } for name="ttyS2" dev="tmpfs" ino=4332 scontext=u:r:untrusted_a
2017-12-25 11:17:20
3515
1
转载 Android NDK开发扫盲及最新CMake的编译使用
1 NDK 简介在介绍 NDK 之前还是首推 Android 官方 NDK 文档。传送门官方文档分别从以下几个方面介绍了 NDKNDK 的基础概念如何编译 NDK 项目ABI 是什么以及不同 CPU 指令集支持哪些 ABI如何使用您自己及其他预建的库本节将会对文档进行总结和补充。所以建议先浏览一遍文档,或者看完本篇文章再回头看一遍文档。1.1 NDK 基础概念首先先用简
2017-12-23 13:14:10
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人