- 博客(155)
- 资源 (10)
- 收藏
- 关注

原创 基于Android系统源码解决部分机型camera预览画面正常但拍照照片倒置问题
1、frameworks/basemedia/java/android/media/ExifInterface.java1503 /**1504 * Set the value of the specified tag.1505 *1506 * @param tag the name of the tag.1507 * @param v...
2019-08-08 14:42:18
1259

原创 基于Android系统源码解决camera画面预览倒置问题
网上有很多关于在应用层开发来解决camera预览画面倒置问题,我这里说一下基于源码解决此问题的方法。1、frameworks/base/core/java/android/hardware/Camera.java public void setDisplayOrientation(int d) { int rotation = SystemProperties...
2019-08-08 14:03:06
2469

原创 修改Android开机画面之rle制作
第一个动画:Bootloader开机使用的图片是linux.bmp,长高分别是120*120,色度是32,所以可以拿相同格式图片替换,进行编译烧写即可。第二个图片:内核logo这个修改方式,我在前面博客里写过,参考为手机定制ROM点击打开链接第三个图片:Android启动时的Android字样或者initlogo.rle文件先列出网上的方法1.安装y
2013-10-09 23:44:25
6408

原创 Android更改桌面应用程序launcher的两种方式
launcher,也就是android的桌面应用程序。下图是我正在使用的魅族手机的launcher应用程序: 接下来我们要开发一个自己的launcher,使其替代系统的默认launcher。怎样使我们的应用程序成为一个launcher? 首先我们要有一个自己的Android应用,在这里,我使用最简单的应用程序Hello,使用eclipse创建Androi
2013-07-30 22:23:22
97277
2

原创 scanf()函数用法小结
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。其调用格式为: scanf("格式化字符串>",);格式化字符串包括以下三类不同的字符;1、格式化说明符:格式化说明符与printf()函数中的格式说明符基本相同。但和printf()函数中格式字符串的用法有一些小区别。我们来看下面这个表。格式字符
2013-01-25 20:46:59
124040
2

原创 FS_S5PC100之madplay移植
FS_S5PC100平台内核2.6.35交叉编译器 arm-none-linux-gnueabi-gcc-4.5.1一.驱动的添加1.FS_S5PC100平台上WM9714 ALSA 移植:这个驱动在内核中支持,我们只需要进行简单的配置就行了,配置如下:修改 sound/soc/s3c24xx/Kconfig,使其支持FS_S5PC100平台 2
2012-10-20 09:12:08
1974

原创 C中结构体大小的计算
最近研究了一下c语言中结构体大小的计算,根据自己的理解以及参考网上的资料,想做一点总结。 先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。由于存储变量时地址对齐的要求,编译器在编译程序时会遵循两条原则:一、结构体变量中成员的偏移量必须是成员大小的整数倍(0被
2012-10-18 16:26:22
4785
原创 基于Android11简单分析audio_policy_configuration.xml
开篇先贴上一个高通的例子,后续基于此文件做具体分析。概括来说,这个文件定义了系统会使用到的,支持的音频流,以及设备与流之间的走向关系。devicePort对应设备,mixPort对应流,routes对应走向关系。
2024-10-09 17:40:34
1763
原创 av_read_frame error: Connection reset by peer
播放器加上这个选项即可:setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,"reconnect",1)
2023-10-07 18:58:15
258
原创 curl: (60) server certificate verification failed.
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt
2022-12-27 09:58:50
971
原创 Multimedia框架解析之MediaExtractor源码分析(二)
Multimedia框架解析之MediaExtractor源码分析(二)
2022-06-13 09:34:36
1300
1
原创 Android usb广播 ACTION_USB_DEVICE_ATTACHED流程源码分析
android usb ACTION_USB_DEVICE_ATTACHED 分析
2022-06-07 16:38:15
5713
原创 ijkplayer通过URLProtocol拉取http数据源码分析丰富篇
背景本文主要从URLProtocol的视角探究ffplay在demux数据之前是如何拉取数据的。首先先看一下函数调用的基本流程,如下图:stream_open : 在ffplay::main函数中,负责根据filename决定拉取数据的协议,以及生成URLProtocol等数据。avformat_open_input这个函数的作用是打开文件的链接,如果是网络连接,还会发起网络请求,并一直等待网络数据的返回,然后读取视频流的数据。ffurl_open_whitelist函数的功能主要是打.
2022-05-31 15:43:21
1401
原创 解决ffmpeg获取AAC音频文件duration不准
最近测试提出了一个bug,ijk获取到的aac文件的duration不准,发来一看,确实不准,在AE或者系统mediaplayer中得到的都是3m48s(准确时间是MMParserExtractor: ADTS: duration = 228010580us,如下图),ijk得到的是2m54s,在播放的时候,在2m54s的时候流就结束了,放到编译的ffmpeg中, Duration:居然是00:03:13.07,但是VLC是3m53s,这个文件也是奇葩了!其他播放器暂时不去讨论,现在只希望做到MMParse
2022-05-27 17:26:50
4808
2
原创 针对arm64架构编译SDL2
源码SDL使用版本是SDL2-2.0.3(找了许久才找到的SDL2-2.0.3-Android文档类资源-优快云下载)NDK版本是android-ndk-r20编译脚本将SDL2-2.0.14/build-scripts下的androidbuildlibs.sh拷贝到SDL2-2.0.3/build-scripts下,并作修改,因为我们只想编译libSDL2,所以APP_MODULES修改如下APP_MODULES="SDL2"编译build-scripts/android
2022-03-30 16:54:28
3005
1
原创 Gradle: Download卡住,Read timed out
最近不知道怎么了,Android Studio 抽风,Download总是卡住,提示Read timed out。本以为是自己的环境有问题,重装了AS,还是不行。在网上搜索了很多办法依然是无解,确实郁闷。从现象来看,就是网络出问题了,之前用公司的网络是可以的,所以一直没有再怀疑!偶然使用自己的手机热点,笔记本连上后,速度飞快,天啦撸啦!这么坑的呢!解决办法:只要把自己笔记本的无线网,连接上手机热点,问题即可解决 !!!...
2021-11-18 10:29:10
1340
原创 TBox、ECall、BCall、ICall
TBoxT-Box称为车载智能终端,作为车身唯一可以联网的控制单元,肩负着监控和控制车身状态的使命,其存在的最大价值就在与网络的连接性。TBOX上通云端TSP(Telematics Service Provider, 远程服务提供商),下连汽车CAN总线。其功能主要包括:车辆数据采集:通过车身CAN总线、GPS/BM、加速度传感器来完成对车辆状态信息的采集 车辆远程诊断:通过主动查询和被动接收OBD信息,对车辆的状态做一个诊断 车辆远程控制:下发锁车、开关空调、开关车门车窗等 车辆通信
2021-08-23 13:56:38
6257
2
原创 MediaCodec Flush
如果set surface 为null,那么audio下发的是FLUSH_CMD_NONE,video是FLUSH_CMD_SHUTDOWN ,NuPlayer::performDecoderFlush只会执行flushDecoder(false /* audio */, (video == FLUSH_CMD_SHUTDOWN)),此时会flush;如果surface不为空, 那么audio下发的是FLUSH_CMD_FLUSH ,video是FLUSH_CMD_SHUTDOWN ,此时audio
2021-07-06 17:42:27
879
原创 模糊查找字符串
find . "*" | xargs grep "ro.hardware" -rn --colorfind -name "*.rc" | xargs grep "ro.hardware" -rn --color # find -name "*.rc" | xargs grep -rn --color "ro.hardware"
2021-06-21 09:03:59
448
原创 HLS协议
HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。HLS
2021-06-09 16:53:31
444
原创 MediaPlayer 错误码
android.media.MediaPlayer错误码(frameworks/base/media/java/android/media/MediaPlayer.java ): /** Unspecified media player error. * @see android.media.MediaPlayer.OnErrorListener */ public static final int MEDIA_ERROR_UNKNOWN = 1; /** Media
2021-04-12 15:54:07
2952
2
转载 Android MultiMedia框架完全解析 - 概览
之前的工作中,一直在看Android MultiMedia的一些东西,关注我博客的同学也许知道我换工作了,以后将要从事Camera相关的工作,于是乎,将之前整理存放在有道云笔记里面的一些东西发出来,整理成一个专栏。工作的环境为Android N7.1,基于fsl公司的i.MX6q平台。当然,有很多东西是我自己的领悟,有不对的地方欢迎大家指正。在公司内部做了一个ppt分享,但是反馈一般,至于原因,我也不是太理解,囧~自认为,这个ppt和博客是自己认真做的,为此,离职前一个月天天加班..
2021-03-27 14:59:00
959
原创 陀螺传感器的原始数据
使用Sensor开发时我们都知道,当Sensor数据发生变化时,onSensorChange方法会被回调,我们可以从陀螺传感器的原始数据由三个float值组成 ,指定器件沿X,Y和Z轴的角速度。每个值的单位是每秒弧度。在沿着任何轴的逆时针旋转的情况下,与该轴相关联的值将为正。在顺时针旋转的情况下,它将为负。 陀螺仪测量设备围绕 x、y、z 轴旋转的速率,单位是 rad/s。...
2021-01-26 10:28:58
689
1
原创 Ubuntu18.04搭建RISCV之QEMU测试环境
Ubuntu搭建RISCV之QEMU测试环境前言搭建此测试环境需要qemu、交叉工具链、内核、文件系统安装QEMU安装运行库$ sudo apt-get install gcc libc6-dev pkg-config bridge-utils uml-utilities zlib1g-dev libglib2.0-dev autoconf automake libtool libsdl1.2-dev下载qemu$ git clone https://git.qemu.org/git
2020-10-22 16:00:14
5605
3
原创 如何在鲲鹏920安装Ubuntu
如何在鲲鹏920安装Ubuntu1、 镜像下载2、 制作U盘镜像linux 平台windows平台3、通过U盘安装操作系统最近拿到了同方的超翔TK630计算机,预装了UOS系统,平时使用Ubuntu做开发,所以想要安装一个Ubuntu系统。镜像下载此处安装的是最新版Ubuntu 20.10(groovy-desktop-arm64.iso ) 下载地址.制作U盘镜像Linux平台可以通过dd命令,将iso安装到U盘。dd if=groovy-desktop-arm6
2020-10-20 16:47:51
6235
1
原创 Android 10 init启动分析<一>
第一次研究Zygote启动时还是4.0,目前已经Android版本已经发展到了10,变化还是蛮大的,一起来看看吧!Android设备启动要经过3个阶段,BootLoader、Linux Kernel和Android系统服务,Android系统实际上是运行于Linux内核之上的一系列"服务进程",并不算一个完成意义上的"操作系统";而这一系列进程是维持Android设备正常工作的关键,所以它们肯定有一个"根进程",这个"根进程"衍生出了这一系列进程。这个"根进程"就是init进程。init进程是Andro
2020-09-11 15:19:11
1162
原创 shell 函数传参为数组
#!/bin/bash function showArr(){ arr=$1 for i in ${arr[*]}; do echo $i done } result=("AA" "BB" "CC") showArr "${r...
2020-01-09 08:50:21
1570
原创 shell :将标准输出及标准错误输出写到指定文件
脚本如下:logFile=/home/linux/test.txt shell命令 >> $logFile 2>&1 1为标准输出stdout、2为标准错误stderr。
2020-01-09 08:48:10
2193
原创 Shell变量while循环内改变无法传递到循环外
shell中使用管道会生成一个子shell,在子shell中使用while、for循环的代码也是在子shell中执行的,所以在循环中的修改的变量只在子shell中有效,当循环结束时,会回到主shell,子shell中修改的变量不会影响主shell中的变量 代码如下:A="1"B="2"C="/home/linux/a"cat $C | grep -v '^commit' | whil...
2020-01-09 08:45:44
4295
原创 Ubuntu18.04 GitLab仓库服务器搭建
首先安装必须的一些服务sudo apt-get updatesudo apt-get install -y curl openssh-server ca-certificatessudo apt-get install -y postfix使用左右键和回车键选择确定、取消,弹出列表选项的时候,选择 Internet Site接着信任 GitLab 的 GPG 公钥:...
2020-01-09 08:41:56
289
原创 ubuntu18.04 heirloom-mailx 通过外部SMTP服务器发送邮件
配置软件源ubuntu18.04上无法直接安装heirloom-mailx,需要添加软件源sudo vi /etc/apt/sources.list写入deb http://cz.archive.ubuntu.com/ubuntu xenial main universe安装heirloom-mailxsudo apt-get updatesudo ap...
2020-01-09 08:37:18
4008
原创 ActivityManagerService中根据UID获取App包名
public String getPackagesForUid(int uid) { return mContext.getPackageManager() .getPackagesForUi...
2019-09-10 09:17:31
4308
原创 判断是否为系统应用的方法
if((packageInfo.applicationInfo.flags& ApplicationInfo.FLAG_SYSTEM)!=0)public static boolean isSystemApplication(Context context, String packageName){ PackageManager mPackageMana...
2019-09-09 09:40:40
1529
转载 Android摄像头相关源码分析: 设备驱动, HAL, Framework
Table of Contents1. 序 2. V4L2 2.1. ioctls VIDIOC_QUERYCAP VIDIOC_ENUM_FMT VIDIOC_ENUM_FRAMESIZES VIDIOC_ENUM_FRAMEINTERVALS VIDIOC_TRY_FMT/VIDIOC_S_FMT/VIDIOC_G_FMT VIDIOC_S_PARM/...
2019-03-27 16:02:23
1317
1
视频分析工具:Elecard StreamEye Tools.zip
2022-05-28
sensor-fusion-demo.7z
2021-01-20
mokoid之LED案例
2015-04-23
adobeair.deb
2013-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人