自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(154)
  • 资源 (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 1168

原创 基于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 2262

原创 修改Android开机画面之rle制作

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

2013-10-09 23:44:25 6356 3

原创 Android更改桌面应用程序launcher的两种方式

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

2013-07-30 22:23:22 96297 14

原创 scanf()函数用法小结

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

2013-01-25 20:46:59 123394 6

原创 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 1944

原创 C中结构体大小的计算

最近研究了一下c语言中结构体大小的计算,根据自己的理解以及参考网上的资料,想做一点总结。   先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。由于存储变量时地址对齐的要求,编译器在编译程序时会遵循两条原则:一、结构体变量中成员的偏移量必须是成员大小的整数倍(0被

2012-10-18 16:26:22 4714 6

原创 av_read_frame error: Connection reset by peer

播放器加上这个选项即可:setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,"reconnect",1)

2023-10-07 18:58:15 152

原创 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 809 1

原创 MP4文件格式解析之结合实例分析

MP4格式文件解析

2022-07-04 16:13:04 4151 2

原创 Multimedia框架解析之MediaExtractor源码分析(二)

Multimedia框架解析之MediaExtractor源码分析(二)

2022-06-13 09:34:36 1054 1

原创 Multimedia框架解析之MediaExtractor源码分析(一)

Multimedia框架解析之MediaExtractor源码分析

2022-06-08 17:44:45 1744

原创 Android usb广播 ACTION_USB_DEVICE_ATTACHED流程源码分析

android usb ACTION_USB_DEVICE_ATTACHED 分析

2022-06-07 16:38:15 4433

原创 Android中获取当前时间戳

Android中获取时间戳的四种方法

2022-06-01 13:48:09 3569

原创 统计某次操作(函数)耗时时长

Linux时间函数之gettimeofday()使用方法

2022-06-01 13:38:54 778

原创 ijkPlayer中的错误码

常见的IJKPlayer错误码,持续发现中

2022-06-01 10:36:59 777

原创 ijkplayer通过URLProtocol拉取http数据源码分析丰富篇

背景本文主要从URLProtocol的视角探究ffplay在demux数据之前是如何拉取数据的。首先先看一下函数调用的基本流程,如下图:stream_open : 在ffplay::main函数中,负责根据filename决定拉取数据的协议,以及生成URLProtocol等数据。avformat_open_input这个函数的作用是打开文件的链接,如果是网络连接,还会发起网络请求,并一直等待网络数据的返回,然后读取视频流的数据。ffurl_open_whitelist函数的功能主要是打.

2022-05-31 15:43:21 1075

原创 解决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 3461 2

原创 针对arm64架构编译SDL2

源码SDL使用版本是SDL2-2.0.3(找了许久才找到的SDL2-2.0.3-Android文档类资源-CSDN下载)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 2760 1

原创 Gradle: Download卡住,Read timed out

最近不知道怎么了,Android Studio 抽风,Download总是卡住,提示Read timed out。本以为是自己的环境有问题,重装了AS,还是不行。在网上搜索了很多办法依然是无解,确实郁闷。从现象来看,就是网络出问题了,之前用公司的网络是可以的,所以一直没有再怀疑!偶然使用自己的手机热点,笔记本连上后,速度飞快,天啦撸啦!这么坑的呢!解决办法:只要把自己笔记本的无线网,连接上手机热点,问题即可解决 !!!...

2021-11-18 10:29:10 1212

原创 TBox、ECall、BCall、ICall

TBoxT-Box称为车载智能终端,作为车身唯一可以联网的控制单元,肩负着监控和控制车身状态的使命,其存在的最大价值就在与网络的连接性。TBOX上通云端TSP(Telematics Service Provider, 远程服务提供商),下连汽车CAN总线。其功能主要包括:车辆数据采集:通过车身CAN总线、GPS/BM、加速度传感器来完成对车辆状态信息的采集 车辆远程诊断:通过主动查询和被动接收OBD信息,对车辆的状态做一个诊断 车辆远程控制:下发锁车、开关空调、开关车门车窗等 车辆通信

2021-08-23 13:56:38 5243

原创 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 722

原创 模糊查找字符串

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 396

原创 HLS协议

HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。HLS

2021-06-09 16:53:31 341

原创 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 2143

转载 Android MultiMedia框架完全解析 - 概览

之前的工作中,一直在看Android MultiMedia的一些东西,关注我博客的同学也许知道我换工作了,以后将要从事Camera相关的工作,于是乎,将之前整理存放在有道云笔记里面的一些东西发出来,整理成一个专栏。工作的环境为Android N7.1,基于fsl公司的i.MX6q平台。当然,有很多东西是我自己的领悟,有不对的地方欢迎大家指正。在公司内部做了一个ppt分享,但是反馈一般,至于原因,我也不是太理解,囧~自认为,这个ppt和博客是自己认真做的,为此,离职前一个月天天加班..

2021-03-27 14:59:00 724

原创 Android 源码下载断线重连

断线重连repo syncwhile [ $? -ne 0 ]do repo syncdone

2021-02-19 14:24:33 129

原创 陀螺传感器的原始数据

使用Sensor开发时我们都知道,当Sensor数据发生变化时,onSensorChange方法会被回调,我们可以从陀螺传感器的原始数据由三个float值组成 ,指定器件沿X,Y和Z轴的角速度。每个值的单位是每秒弧度。在沿着任何轴的逆时针旋转的情况下,与该轴相关联的值将为正。在顺时针旋转的情况下,它将为负。 陀螺仪测量设备围绕 x、y、z 轴旋转的速率,单位是 rad/s。...

2021-01-26 10:28:58 495 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 5166 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 5060 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 1073

原创 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 1510

原创 shell :将标准输出及标准错误输出写到指定文件

脚本如下:logFile=/home/linux/test.txt shell命令 >> $logFile 2>&1 1为标准输出stdout、2为标准错误stderr。

2020-01-09 08:48:10 2057

原创 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 3701

原创 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 253

原创 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 3806

原创 ActivityManagerService中根据UID获取App包名

public String getPackagesForUid(int uid) { return mContext.getPackageManager() .getPackagesForUi...

2019-09-10 09:17:31 4062

原创 判断是否为系统应用的方法

if((packageInfo.applicationInfo.flags& ApplicationInfo.FLAG_SYSTEM)!=0)public static boolean isSystemApplication(Context context, String packageName){ PackageManager mPackageMana...

2019-09-09 09:40:40 1365

转载 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 1175 1

转载 Android 9 功能和 API(四)-----------其它一些改变

多摄像头支持和摄像头更新在运行 Android 9 的设备上,您可以通过两个或更多物理摄像头来同时访问多个视频流。] 在配备双前置摄像头或双后置摄像头的设备上,您可以创建只配备单摄像头的设备所不可能实现的创新功能,例如无缝缩放、背景虚化和立体成像。 通过该 API,您还可以调用逻辑或融合的摄像头视频流,该视频流可在两个或更多摄像头之间自动切换。摄像头方面的其他改进还包括附加会话参数和 Su...

2019-02-25 16:08:09 293

视频分析工具:Elecard StreamEye Tools.zip

免安装,双击可运行,可查看视频本身信息以及关键帧非关键帧,如果柱形图为红色,则为关键帧,如果是绿色,则是非关键帧

2022-05-28

找了许久才找到的SDL2-2.0.3

找了许久才找到的SDL2-2.0.3

2022-03-30

jeffy-vim-main.zip

jeffy-vim-main.zip

2021-08-06

sensor-fusion-demo.7z

国外一个非常给力的一个根据各类Sensor计算旋转角度的案例,非常有参考价值! This application demonstrates the capabilities of various sensors and sensor-fusions. Data from the Gyroscope, Accelerometer and compass are combined in different ways and the result is shown as a cube that can be rotated by rotating the device.

2021-01-20

mokoid之LED案例

来自台湾的Jollen可能是走在Android HAL研究的最前沿,这也和他以前专注做嵌入式linux(openmoko)的工作经历有关,毕竟Android的application开发是基于Java的,而之前Jollen做的更多的还是C/C++开发,因此选择从HAL作为进入Android的shortcut还是很明智的,我以前也主要是做linux kernel以及基于C/C++的app开发,现在转作Android,发现它的HAL比较有意思,也是可以研究的一个很好的方向。

2015-04-23

adobeair.deb

我们都知道Adobe air已经放弃对Linux 的更新支持。而air 的PPA也已经被移除。但最起码在Ubuntu 12.04的依赖环境中,还是能够安装Air的上一个版本的。adobeair.deb

2013-07-14

HL-340驱动

珍藏许久的,经久耐用,安装简便,不要错过了

2012-09-04

usbser.sys

usbser.sys

2012-09-04

2410_led驱动

初学的2410LED灯驱动,可以欣赏下 初学的2410LED灯驱动,可以欣赏下

2011-08-19

jsp加oracle留言板

留言板 利用jsp加oracle 实现留言的功能

2010-05-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除