![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
InsightAndroid
这个作者很懒,什么都没留下…
展开
-
编译静态库为动态so库
在从事Android开发的过程中,经常会使用到用c或c++编写的第三方的静态库,比如对接第三方时,对方不希望提供源码,又比如在我们的编译环境下,无法编译某个库。这个时候就可以用静态库来编译成动态库so。之前在网络上看过很多方法,似乎都编译失败,因此这里有必要记录一下。下面以从ffmpeg社区获取到的静态库和头文件的例子,来讲解将静态库编译成动态库so。编写的Android.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODUL原创 2020-12-04 09:18:13 · 796 阅读 · 0 评论 -
Android多媒体添加软解码
1 软解码加载简介1.1 编解码器信息与配置导入android中decoder的管理是以plugin的模式,其控制是在OMXMaster内完成的。OMXMaster是在omx被创建时就创建了OMX::OMX(): mMaster(new OMXMaster),mNodeCounter(0) {}Plugin在OMXMaster构造的时候载入OMXMaster::OMXMaster(): mVendorLibHandle(NULL) { addVendorPlugin(); /原创 2020-12-03 18:35:10 · 2918 阅读 · 0 评论 -
GStreamer和gst-omx插件
1 Gstreamer基本介绍1.1 Gstreamer简介Gstreamer是linux上的多媒体框架。如下所示:从上面这个图中可以看到,底层是以plugin插件形式存在包括codec标准,parser,audio, protocol等,也包括用户自己开发的plugin和第三方开发的plugin。core framework提供了plugin之间的交互机制和管理,通过将一些plugin连接起来形成一个系统,并且对上提供访问的接口。APP是构建在framework上的。通过这个框架,底层开发者可以转载 2020-11-26 16:40:40 · 3074 阅读 · 1 评论 -
Android input键值从底层到应用层映射流程与修改方法
一、Android输入子系统简介:Android输入事件的源头是位于/dev/input/下的设备节点,而输入系统的终点是由WMS管理的某个窗口。最初的输入事件为内核生成的原始事件,而最终交付给窗口的则是KeyEvent或MotionEvent对象。因此Android输入系统的主要工作是读取设备节点中的原始事件,将其加工封装,然后派发给一个特定的窗口以及窗口中的控件。这个过程由InputManagerService(以下简称IMS)系统服务为核心的多个参与者共同完成。二、kernel键值定义(1)键扫原创 2020-08-13 16:38:43 · 4232 阅读 · 0 评论 -
selinux常见neverallow项解决方法与常用命令
1. dac_overrideegbin: type=1400 audit(0.0:879): avc: denied { dac_override } for capability=1 s:egbin:s0 tclass=capability permissive=1 需要给egbin dac_override权限,但是该权限是Android P的neverallow规则中的,不能被添加。dac_override权限意思是容许进程旁路的所有DAC权限:uid,gid,ACL 等等,即有这个权限可原创 2020-08-13 16:31:25 · 28042 阅读 · 2 评论 -
在Android和linux上操作GPIO
本文记录如何在Android和linux上操作GPIO 。1 前置条件ROM必须满足以下条件:* Android M >= V170603* Android N >= V170421* Ubuntu Server >= V180712* Ubuntu Mate >= V1805312、如何获取GPIO编号可以从GPIO Bank或 Pins 获取GPIO编号。 不同版本的内核将有所不同。Linux 3.14 (Android M, N and原创 2020-07-03 17:49:25 · 1318 阅读 · 0 评论 -
Android 编译错误undefined symbol分析与解决
Android 编译错误undefined symbol分析与解决方案最近在Android Q上写一个bin文件时遇到编译报错的问题,具体报错如下:ld.lld: error: undefined symbol: android::RefBase::decStrong(void const*) const>>> referenced by StrongPointer.h:182 (system/core/libutils/include/utilsPointer.h:182)原创 2020-07-03 15:51:40 · 47337 阅读 · 2 评论 -
使用wareshark导出网络包视频流
在分析播放问题时,经常需要抓取网络包进行分析,判断网络是否有丢包、抖动,延时等。如果能从网络包从导出视频流,然后查看视频流的播放情况,在一定程度上也能帮助我们分析、解决问题。下面将一种使用wareshark获取视频流的方法。1、用wareshark打开网络包2、过滤视频流选择任意一个视频流,右键选择追踪流->UDP流等待左下角加载完,才可以操作3 保存视频流数据加载完之后,点击 显示和保存数据为 原始数据,然后点击Save as弹出保存的界面,数据文件名为.ts,然后保存等原创 2020-06-23 18:12:32 · 2726 阅读 · 2 评论 -
动态so库修改方法
对于linux和Android开发者,有时可能需要查看或者修改.so文件,下面来讲述如何查看或者修改so文件。1、本文使用的工具IDA Pro: https://www.52pojie.cn/thread-675251-1-1.html010 Editor:http://www.pc6.com/softview/SoftView_55129.html2、反编译.so文件 本文使用的反编译软件是IDA Pro,它是一个优秀的静态反编译软件。由于IDA功能较为复杂,本文只给出查看和修改so直接相原创 2020-06-01 15:48:54 · 8849 阅读 · 0 评论 -
Android添加自定义公共so库
Android对应用应用的系统库限制越来越严格,上层应用包括(apk、jar包)不能直接引用系统的一些so库了。如果需要使用,只能使用,系统申明的公共库。如果使用非系统申明的公共库,apk运行后调用该so库时,app会直接挂掉。1、错误信息具体报错形式如下:01-01 02:17:24.222 7475 7475 E linker : library "/system/lib/libhalloworld.so" ("/system/lib/libhalloworld.so") needed原创 2020-05-26 15:51:14 · 7160 阅读 · 1 评论 -
Linux使用mailx通过第三方SMTP发送邮件,也可发送附件
mailx安装1、手动安装:wget http://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gztar zxvf heirloom-mailx_12.5.orig.tar.gzcd heirloom-mailx-12.5/make && make inst...原创 2020-08-13 16:33:43 · 889 阅读 · 0 评论