10 三火哥

尚未进行身份认证

我要认证

android系统开发

等级
TA的排名 7w+

android7.1 MediaCodec.configure流程分析

参考资料1.https://blog.csdn.net/u012188065/article/details/867165132.https://blog.csdn.net/u012188065/article/details/86723535

2020-10-28 15:42:10

MSM8953 ACC状态上报

说明acc状态通过发送键值的方式上报给应用,点火发送F12,熄火发送F11.1.添加键值: device/qcom/msm8953_64/gpio-keys.klkey 167 DVRkey 139 MENUkey 28 ENTER+key 88 F12+key 87 F112.添加ACC驱动设备树节点kernel/msm-3.18/arch/arm/boot/dts/qcom/sc826-cn-01-evk/msm8953.dtsi+

2020-05-28 11:48:19

Andorid7.1 系统接口H264数据回调,并且支持修改分辨率,帧率等信息

前言 公司是做车机的,车机行业会有一些特殊需求,需要做实时视频上传,这时候应用就需要将预览的YUV数据转换成h264数据再上传,但是公司要求将该工作交给系统处理,应用接收h264数据,然后上传就行,该h264数据支持分辨率,I帧间隔,码率,帧率等修改。这时候就需要去看系统源码,然后添加新的api给应用。实现 1.修改内容如下:zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git$ git statusOn bran...

2020-10-26 17:41:40

音频驱动休眠与唤醒

diff --git a/kernel/msm-3.18/drivers/misc/bd37_audio.c b/kernel/msm-3.18/drivers/misc/bd37_audio.cindex b5f4a2f..cc85ba2 100755--- a/kernel/msm-3.18/drivers/misc/bd37_audio.c+++ b/kernel/msm-3.18/drivers/misc/bd37_audio.c@@ -57,7 +57,15 @@ #include &.

2020-10-16 16:15:48

Linux/Android的cpu/memory/磁盘占用情况

一、查看内存使用率<1>.free命令free total used free shared buffers cachedMem: 246788 41004 205784 160 6464 13464-/+ buffers/cache: 21076 225712total:总计物理内存的大小used:已使用多大free:可用.

2020-10-16 09:38:25

高通平台gpio简单调试

0.编译读写gpio寄存器地址工具:/system/bin/rAndroid9.0源码地址:system/core/toolbox/r.csystem/core/toolbox/Android.bpcc_binary { .

2020-10-16 09:29:44

Android7.1 Settings加入永不休眠选项

前言 做车机的公司没有系统应用工程师,只要涉及到系统的所有问题,全部由系统工程师解决,测试提出需要在Settings中加入永不休眠选项,下面是具体实现。实现zhoujy@TP:~/data/android/sc826_cn_01_00_a620/msm_8953_git$ git show 19cfd7ff7d73f1835def9eb3f7d97db524f2081ccommit 19cfd7ff7d73f1835def9eb3f7d97db524f2081cAuthor: zhouj..

2020-10-15 18:02:23

ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系(and5.1)

由于ActivityManagerService没有使用aidl机制,因此就直接用了代码实现看上去复杂了一些,下面我们来理下ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系。1.ActivityManagerNative先来看ActivityManagerNative:public abstract class ActivityManagerNative extends Bi

2020-10-15 17:45:05

Window和WindowManager知识点总结

前言本文为《Android开发艺术探索》(下面简称“艺术探索”)第八章读书笔记。现在应届生真的好强,比如这位的简书minmin_1123的简书,对《艺术探索》各章节的内容总结的有条有理。Activity,Window,WindowManager有什么联系Window表示一个窗口的概念,在日常开发中直接接触Window的机会并不多,但是在某些特殊时候我们需要在桌面上显示一个类似悬浮窗的东西,那么这种效果就需要用到Window来实现。Window的具体实现位于WindowManagerService

2020-10-15 16:24:52

android7.1日志系统功能开发

前言 每个公司都会要求将系统所有日志保存到指定目录,方便分析问题,我们公司也不例外,下面记录我这边做功能的具体实现。实现 1.创建打印日志的脚本init.corelog.sh 目录:/device/qcom/msm8953_64/init.corelog.sh#!/system/bin/sh#LOGPATH=/sdcard/corelogDATE=$(date +%Y%m%d%H%M)ROOTPATH=/data/corelogLOGPATH=$ROOTPA...

2020-10-14 17:00:29

android7.1动态显示和隐藏状态栏和导航栏

前言 由于公司应用不知道如何隐藏状态栏和导航栏,要求系统提供接口实现该功能,没有办法,搞系统开发的苦逼青年们就得满足各种要求,即使知道不合理!下面是具体实现。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git$ git diffdiff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusB...

2020-10-14 15:49:31

MediaRecorder添加setNextOutputFile流程

MediaRecorder添加setNextOutputFile流程 MediaRecorder.java ↓ Android_media_mediarec...

2020-09-11 11:35:29

[Android Video FrameWork] OMXNodeIntance中动态控制log的一种方法

从事此行业N年,遇到问题上去先是一通王八拳,能把问题打死,就继续找下一个问题的茬,如果打不死,就再打一套王八拳,直至打死问题为止。王八拳(不成体系的定位方法和手段)对付问题有效果,但是效率低,我的王八拳主要是:加log,编译,替库,运行,看log, 加log,编译,替库,运行,看log……运用这种磨豆腐的磨劲,磨死了好多问题,但 碰到流程套路深的框架和体系,这个效率实在实在是太低了,有时候能从java层跟到内核层,有种上穷碧落下黄泉的感觉,甚至最后还 两处茫茫皆不见。后来升级王八拳至 王八

2020-09-09 16:46:02

常用android命令备忘录

1. 常用基本命令adb devices 查看当前挂载手机设备的信息adb root root userdebug版本的手机。adb remount 将 '/system' 目录改为可写入的模式,默认情况下 '/system' 部分是只读模式的。 这个命令只适用于已被 root 的设备, 即调用过 adb root之后。 注意,使用其他命令之前,最好先使用adb root和adb remount命令。adb push test.mp4 /sdcard/ push 文件置于sdcard

2020-09-09 16:30:45

使用调用栈来调试Android代码

Android代码流程比较复杂,单纯看代码很容易跟丢,如果能在对应位置增加调用栈函数,运行时,我们可以根据调用栈来退出安卓代码的调用流程,可以事半功倍。1、java代码java代码中加调用栈方法很简单,抛一个异常即可。import android.util.Log;Log.i(TAG, Log.getStackTraceString(new Throwable()));注意,有的java文件中使用了Slog.i 来打印信息, Slog实际封装了Log的部分方法,但是没有封装get.

2020-09-09 16:22:59

Android 7.1.2 源码修改,使用自己的 app 作为默认桌面,不弹出桌面选择弹窗

需求:使用自己开发的桌面 app 作为默认,不再出现桌面选择在不修改源码前提下,可以设置自己的app为桌面,但是如果自己的应用出现崩溃,则在 Android 启动机制下会弹出桌面选择弹窗,如果在定制的系统中,这个是不能接受的,但本身在开发也需要使用默认 launcher 进行其他的一些设置,所以需要保留多个桌面启动器。1、解决思路在没有自己的启动器时候,由系统自己处理,即弹出弹窗选择或者使用自带的 Launcher3 桌面;在自己app存在情况下,使用自身app,拒绝弹窗选择。2、分析从

2020-09-08 17:47:22

给第三方Apk进行系统签名

一、Android签名系统默认的四种签名类型:四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。3、shared:该APK需要和home/contacts进程共享数据。4、media:该APK是media/download系统中的一环。应用程序的Android.mk中有一个LOCAL_C

2020-08-25 11:59:01

Ioctl返回-1 出错,解决办法

通过APK 操作gpio驱动 点灯时,发现ioctl(gpio_fileHandler, cmd, arg) 函数返回值一直是-1.驱动无法执行ioctl 中gpio request等其他操作.我怀疑是ioctl函数有问题.发现file_operations 中ioctl用的是 .unlocked_ioctl .static const struct file_operations gpio_test_fops = { .owner = THIS_MODULE,// .u

2020-08-17 16:25:05

Android lk启动流程

Andorid 7.1.1 lk启动流程little kernel 是小内核小操作系统,简称lk,主要用来引导运行OS系统,lk启动后根据一些参数值,引导启动进入不同模式。其实Android手机有四种启动方式,四种方式分别为:正常开机启动; recovery启动; fastboot启动; ffbm启动下面就以高通代码为例,分析下这四种启动方式分别是在什么条件下启动的手机上电后,会从固定的地址(固化在ROM中)加载bootloader到RAM,然后跳转到bootloader的入口函数开始执行

2020-08-14 09:37:37

程序中umask(0)的作用

在分析init.cpp 源码的时候遇到了umask(0);umask这个命令之前有用过,权限掩码的意思,这里不做具体的解释。linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。文件的访问允许权限共有9种,分别是:r w x r w x r w x(它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行)。其实这个函数的作用,就是设置允许当前进程创建文件或者目录最大可操作的权限,比如这里设置为0,它的意思就是0取反再创

2020-08-14 09:25:56

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享精英
    分享精英
    成功上传11个资源即可获取