adb install失败: INSTALL_PARSE_FAILED_NO_CERTIFICATES 这个错误表明在尝试安装 APK 文件时出现了问题,原因是 APK 文件中的 AndroidManifest.xml 没有签名证书。在 Android 系统中,所有的应用都必须经过签名才能安装到设备上。
adb有线连接正常,adb connect失败 step3: adb connect 192.168.1.105 这样大概率就能成功了。2. 确认此网络是否有adb连接的权限(有的公司网络不允许adb)step1: 先用有线连接设备,执行adb tcpip 5555。1. 确认两个设备在同一个局域网。adb connect失败。step2: 拔掉有线。3. 确认防火墙设置。
通过反汇编解析crash问题 delegate_对应的类,发现我们有新加一个虚函数,所以定位问题可能是客户拿到我们的sdk后,替换了so,但是未替换头文件导致。从上面的反汇编代码可以看出,首先是调用了ParseDeviceControlResponseParams函数,然后调用了notify,然后做了一系列处理,最终出错。用户反馈的问题,有时候我们拿到log,发现有crash问题,有堆栈打印,能看到具体出错的函数,但是无法定位具体出错的行数和内容,这个时候就需要用到反汇编辅助我们定位问题。所以,出错的原因就是。
asound.conf 模版 pcm.!defaulttype asymtype plugtype plugslave {pcm.patype plugtype plugtype plugtype plugtype plugtype plugtype plug# }#}type multicontrol {card 0max_dB 0.0type dmix!!!slave {channels 2bindings {0 01 1!!!slave {channels 2。
git push出错: src refspec dev/xxx does not match any 可能是因为本地有多个head?git commit 之后没有push然后又git reset到别的commit。为什么之前同样的本地分支和远程分支使用git push origin 远端分支名 就没问题?
Qt信号槽函数没有响应问题 我自己写的信号槽函数,信号函数在read线程,槽函数在主线程。函数的参数类型是uint16_t。通过如下方式连接信号槽,发现信号函数被调用后槽函数无法响应。尝试调用别的信号槽函数(参数为int类型),发现调用ok。unsigned short参数ok,使用uint16_t无法响应,所以应该是uint16_t参数类型问题,尝试注册uint16_t到qt,修改之后信号槽函数响应ok。搜了网上资料,可能是槽函数操作耗时,可以设置连接类型为Qt::BlockingQueuedConnection。
996 log抓取过程 1. log抓取方法*#*#996996#*#* 开始抓取*#*#996996#*#* 结束抓取2. log文件和存储存储位置: sdcard/diag_logs文件:1. 81cf12e6-b266-eefa-cd8e-8676e8ff3684.qdb2. diag_log_20220329_1558111648540691565.qmdl23. diag_qdss_log_mpss_adsp_audio_pd_20220329_1558231648540703019..
Android-绝对音量和相对音量设置 前言:绝对音量: 手机端不处理音量,只把当前音量告诉耳机,耳机端处理音量。相对音量: 手机端处理,耳机端不确定是默认最大,还是有一个默认音量还是按照之前设置的绝对音量的值处理的。手机音量转换绝对音量,此处会有一个计算过程,大致就是手机侧计算出当前音量和最大音量的百分比然后设置给耳机,耳机端收到百分比去处理。不然每个手机的音量范围不同,不做归一化就很难适配。当通过音量按键调节音量时,会通过input事件分发,input把event分发给mediassesion, mediasession调用a
Android-蓝牙sco通话 APP调用AudioManager::startBluetoothSco()// frameworks/base/media/java/android/media/AudioManager.javapublic void startBluetoothSco(){ service.startBluetoothSco(mICallBack, getContext().getApplicationInfo().targetSdkVersion);}//
头文件定义static变量 记录一个问题:在头文件test.h中定义了static变量如下:static char* str;然后在a.cpp和b.cpp中都包含了test.h,并在这两个cpp中使用了str,然后发现,运行过程中str的值一直变,看了半天发现,str的指针,在a.cpp中是一个,在b.cpp中是另一个。然后查资料发现:定义全局变量时使用static,意味着该变量的作用域只限于定义它的源文件中,其它源文件不能访问。既然这种定义方式出现在头文件中,那么可以很自然地推测:包含了该头文件的所有源文件中
Android-AudioFlinger thread讲解 1. 都有什么thread,有什么区别class RecordThread; // 录制线程类,由 ThreadBase 派生class PlaybackThread; // 播放thread的基类 class MixerThread; // 混音回放线程类,由PlaybackThread派生,负责 // 处理标识为 AUDIO_OUTPUT_FLAG_PRIMARY、
Android-audio playback/record Monitor 前言:安卓在Q上支持了多应用同时录音,当两个应用试图捕获音频时,它们都可以接收输入信号,或者其中一个可能会受到静默处理。当多个应用同时捕获音频时,只有一个或两个应用处于“活动”状态(正在接收音频),其他应用则处于静音状态(接收静音)。当活动应用发生更改时,音频框架可能会根据以下规则重新配置音频路径:每个活动应用的音频输入设备可能会更改(例如,从内置麦克风更改为已连接的蓝牙耳机)。启用与最高优先级活动应用相关联的预处理。其他预处理都将被忽略。当优先级较高的应用处于活动状态时,活动应用可能会受到静默处理
Android-binder通信详解 1. binder是什么?binder是安卓系统的进程间通信方式。2. 为什么安卓要用binder?Android内核是基于Linux系统,linux本身就有很多种进程间通信方式: 内存共享,消息队列、信号量等,为什么安卓还要用binder呢?传统ipc(进程间通信):共享内存,不需要内存拷贝,但是控制繁琐。管道通信,需要两次内存拷贝。binder通信:Binder只需要一次拷贝是因为安卓的内存映射方法,也就是mmap。a进程发数据给b进程,a进程把数据拷贝给m.
SSH访问远程服务器 安装和卸载ssh:确认是否已经安装SSH:dpkg -l | grep ssh安装SSH:sudo apt-get install openssh-clientsudo apt-get install openssh-server口令登录远程服务器:普通登录:ssh ldz@192.168.0.1如果需要调用图形界面程序可以使用 -X 选项ssh -X ldz@192.168.0.1如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。ssh 19
linux解析so信息 命令:readelf -a libxxx.so -a表示打印全部信息,其他可选信息命令如下: -a --all Equivalent to: -h -l -S -s -r -d -V -A -I -h --file-header Display the ELF file header -l --program-headers Display the program headers --segments An ali
Android-adb shell am broadcast发广播 命令举例:adb shell am broadcast -a android.media.AUDIO_RECORD_STATE_CHANGED_ACTION --es string_pkg "com.tencent.mm" --ei int_state 3 --ez boolean_open true com.miui.test参数解释:-a: action, 具体的action--es: string类型extra data--ez: boolean类型extra data--e.