- 博客(27)
- 收藏
- 关注
原创 【无标题】
1. a. :使用命令 git log -p fileName > search.txt (fileName要查找的文件)//把一个文件的提交记录全全部查找出来,可以使用edit 软件查找。data/system/users/0/settings_system.xml --- Settings数据库。Android12的/data/system/XXXX.xml被默认设置二进制xml格式,直接打开是乱码。提交代码出现以上错误的时候,输入git-gerrit,然后一路回车,等系统自己push。
2025-02-13 18:37:27
467
原创 AudioPolicyManager解析
在代码中的体现就是通过mixport标签对应的实体类IOProfile,在IOProfile里面有一个mSupportedDevices成员,它是一个DeviceDescriptor集合类型,意思也就是IOProfile支持的设备集合,这些设备集合可以把音频数据传递给IOProfile或IOProfile可以把数据传给device;route是把deviceport和mixport连接起来的路由,数据由一个stream输出到另一个device,或者从一个device输出到另一个stream;
2025-02-13 17:41:34
784
原创 c++基础
在C++中,对象和指针是两种完全不同的数据类型,因此对于这两种类型的操作,我们需要使用不同的运算符。如果一个函数被定义为内联函数,在编译的时候,C++将用内联函数的代码代替对它这个函数的每次调用。在上述代码中,我们创建了一个指向MyClass对象的指针objPtr,并使用"->"运算符访问并修改myVariable的值,以及调用myFunction函数。这些成员可以是变量,也可以是函数。这里就可以看出,在需要调用Add()函数的时候,没有去调用Add()函数,而是直接使用Add()函数中的代码逻辑实现。
2025-02-13 17:38:52
733
原创 车机音频参数下发流程
在int32_t GVMAudioLogic::setBalance(uint32_t source, int32_t step) 中调用sendAudioHalParam(AC_OP_SET_BALANCE, DOUBLE_PARAMS, source, step);在 sendAudioHalParam 中通过audio_fdbus_client_->sendAudioMsg给qnx发消息。在 gSetParmsHandlerTable 中通过AC_KEY_AUDIO_SOURCE。
2025-02-08 13:19:38
490
原创 hidl方式的hal编写示例
再执行一遍 update-makefiles.sh,这个时候就会发现提示 hash 值不正确了,同时会给出正确的 hash 值,我们把正确的 hash 值替换到 current.txt 即可。# -rjelly.hardware:vendor/jelly/hardware/interfaces 用于指定包名与路径的对应关系。这里主要是对我们的协议进行实现,实现了对上一节实现的设备文件 /dev/hello 的读写。文件,并预制到手机的 /vendor/lib 和 /vendor/lib64/ 目录下。
2025-01-09 15:22:03
1005
原创 添加一条usage修改的文件
1. frameworks\base\media\java\android\media\AudioAttributes.java2.packages/services/Car/service/res/values/attrs.xml packages/services/Car/service/src/com/android/car/audio/CarAudioContext.java packages/services/Car/service/src/com/android/car/audio/CarAud
2024-12-27 20:25:26
326
原创 命令大杂烩
4. :使用命令 git log -p fileName > search.txt (fileName要查找的文件)//把一个文件的提交记录全全部查找出来,可以使用edit 软件查找。(4). 解压framework.zip,进入到framework目录执行 adb push . /system/framework/data/system/users/0/settings_system.xml --- Settings数据库。15 .关机命令 adb shell reboot -p。
2024-01-23 16:38:38
470
1
原创 焦点分发流程
04-24 20:07:59.777 1119 2046 D Debug Info: java.lang.Throwable04-24 20:07:59.777 1119 2046 D Debug Info: at com.android.server.audio.FocusRequester.handleFocusLoss(FocusRequester.java:347)04-24 20:07:59.777 1119 2046 D Debug Info: at com.an
2023-04-24 21:25:43
424
原创 音频焦点矩阵
在 MediaFocusControl.java中配置了一个二维数组。如果要进行混音的话通过修改二维数组PriorityMartix来实现。这个二维数组是根据下面的常量来定位每个位置中代表的音频类型。
2022-09-27 10:49:42
284
原创 耳机插拔流程
插入拔出framework部分相关源码流程分析涉及到的类文件./framework/base/services/core/java/com/android/server/input/InputManagerService.java./framework/base/services/core/java/com/android/server/WiredAccessoryManager.java./framework/base/core/res/res/values/config.xml./fra
2021-03-26 17:13:09
1912
原创 Android音量调节流程
应用通过下面的接口调节音量audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,AudioManager.FLAG_SHOW_UI); //调高声音应用通过调用AudioManager的adjustStreamVolume方法调节音量AudioService.java - adjustStreamVolume音量...
2021-03-26 17:02:40
2102
原创 AudioTrack播放流程
AudioTrack介绍音频播放声音分为MediaPlayer和AudioTrack两种方案的。MediaPlayer可以播放多种格式的声音文件,例如MP3,WAV,OGG,AAC,MIDI等。然而AudioTrack只能播放PCM数据流。当然两者之间还是有紧密的联系,MediaPlayer在播放音频时,在framework层还是会创建AudioTrack,把解码后的PCM数流传递给AudioTrack,最后由AudioFlinger进行混音,传递音频给硬件播放出来。利用AudioTrack播放只是跳过
2021-03-26 16:49:30
3283
1
原创 MediaPlayer播放流程
MediaPlayer播放流程setDataSource流程应用通过setDataSource(FileDescriptor fd, long offset, long length)这个方法将音频资源设置下来,setDataSource 将path 变成文件 描述符fd,最后将fd通过native的_setDataSource设置到下面去Android_media_MediaPlayer.cpp在JNI注册表中将_setDataSource方法映射成 an...
2021-03-26 16:20:46
1489
1
原创 三方apk反编译和回编译
1. 下载反编译工具apktool2.dos窗口下进入apktool目录3.java -jar apktool_2.3.4.jar d -f DouYin.apk -o aa将DouYin.apk反编译到aa文件夹中4. 修改之后回编译java -jar apktool_2.3.4.jar d -f DouYin.apk -o aa...
2021-01-08 10:03:05
1877
2
原创 Android input事件
跟input相关的问题,可以先用以下命令查看事件上报是否正常getevent -l |grep -E "ABS_MT_TOUCH_MAJOR|ABS_MT_PRESSURE|ABS_MT_TOUCH_MINOR|ABS_MT_WIDTH_MAJOR|ABS_MT_WIDTH_MINOR"手写输入法以及划线相关的问题,可以通过在adb shell下用input swipe 400 1600 700 1780 来模拟划线...
2020-05-11 16:17:30
249
原创 tombstone 解析
Revision: '0'ABI: 'arm64'Timestamp: 2019-12-27 11:56:30+0100pid: 22601, tid: 22874, name: Chrome_InProcGp >>> in.AajTak.headlines <<<uid: 10182signal 6 (SIGABRT), code -1...
2019-12-31 17:35:40
2353
1
原创 anr 问题处理
com.xvideostudio.videoeditor 这个应用发生无响应1. 在system log里面搜索关键字,ANR in,定位到下面的地方11-01 15:52:37.386071 1148 1273 I AnrManager: ANR in com.xvideostudio.videoeditor (com.xvideostudio.videoeditor/.ac...
2019-12-09 20:52:58
1670
1
原创 音乐播放器不识别push进去的音频文件
1.使用adb命令push进去的mp3文件,被系统识别成了 斌File2. 拷贝进手机的mp3就被识别程MP3文件而音乐播放器只能识别mp3,aac、ogg等格式的音频文件...
2019-12-09 16:39:42
532
原创 android 里面添加打印调用堆栈
1.Android.bp文件shared_libs: ["libbacktrace","libutilscallstack",]如果是Android.mk文件,添加LOCAL_SHARED_LIBRARIES += libcutils libutils2. Native层的头文件上添加#include<utils/CallStack.h&g...
2019-12-04 20:09:28
2937
1
原创 android性能分析之systemtrace
systemtrace可以说systemtrace是调节性能问题的必备工具。下面从两方面聊一下对systemtrace的使用1.systemtrace的获取手动抓取$> cd android-sdk/tools/systrace --- 进入到你的SDK目录下$> python systrace.py --set-tags gfx,view,wm$> ad...
2019-11-15 22:40:48
9326
原创 android SDK里面的monitor.bat打开闪退的问题
如果打开monitor.bat闪退就需要在dos命令行里面运行monitor.bat,此时如果还提示报错,查看java jdk是否正确安装。
2019-10-22 14:35:09
1303
原创 Android P版本编译出现报错ninja: build stopped: subcommand failed. 17:56:49 ninja failed with: exit status 1
编译的时候报错ninja: build stopped: subcommand failed.17:56:49 ninja failed with: exit status 1试了如下几种办法1. 发现home目录下没有.jack-server文件,于是到prebuild/sdk/tools/目录下执行./jack-admin install-server jack-launcher.j...
2019-10-15 11:14:23
8241
6
原创 Android系统服务注册
在frameworks/base/core/java/android/app/SystemServiceRegistry.java中的静态代码块中用如下形式注册系统服务,registerService(Context.DISPLAY_SERVICE, DisplayManager.class, new CachedServiceFetcher() {
2017-05-08 21:03:48
638
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人