自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一航jason

IT民工,爱好:Android、C/C++、HTML5、Flutter、Framework、PHP、Unity

  • 博客(282)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android 10 Q版本 activity 冷启动流程

由于工作原因需要了解activity启动流程,在网上已经有很多相关文章,不过为了记忆深刻还是自己无脑跑一遍流程,接下来是Android 10 Q Android api 29 的无脑跟流程。这次流程跟踪是activity冷启动,也就是相当于一个A端APP通过intent启动另外一个B端APP的首次启动流程。

2023-03-22 17:00:24 672

原创 Android 使用ffmpeg软编码 将摄像头采集视频编码成视频文件

Android 适用ffmpeg软编码 将摄像头采集视频编码成视频文件。这次代码实现的是视频采集的功能,Android 通过jni 调用ffmpeg 编码yuv数据变成视频文件。先上代码://编码器上下文保存的实体struct EnCodeBean { FILE *f; AVFrame *frame; AVPacket *pkt; AVCodecContext *c = NULL; int width=0; int height=0;};EnC

2021-08-23 19:30:12 1306 2

原创 android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议

最近做了一个支持onvif标准的摄像头管理程序,主要就是在局域网中通过程序控制摄像头获取摄像头视频流分发给广域网中的客户端设备;这里面用了onvif协议相关知识和ffmpeg视频流处理的相关知识。onvif相关的以后有机会再分享,今天主要是把android ffmpeg相关的东西分享一下。视频播放流程:解封装:常见封装格式有mp4、3gp、AVI等,这些封装格式包含了音视频流相关信息。每种封装格式都有自己的规则那么解封装就是按照规则分离出音视频数据。例如:mp4格式MP4(MPEG-4 Par

2020-09-11 16:02:03 1935 2

原创 opencv features2d对象识别

对象识别代码: const Ptr<AKAZE> &detetor = AKAZE::create(); vector<KeyPoint> oneKeyPoint; vector<KeyPoint> twoKeyPoint; Mat oneDes, twoDes; //角点查找和特征向量计算描述 detetor->detectAndCompute(oneMat,

2020-08-11 11:06:49 920

原创 android 插件式apk换肤 字体大小切换 框架ThemeManger

由于公司需要使用换肤功能,市面上一些框架代码都是比较低版本的,而且有些功能不能够满足,所以就自己写了一款基于apk插件式无刷新换肤框架-CXThemeManger ,代码版本使用 android api 28 开发。CXThemeManager 特点和功能 支持apk插件式换肤 支持属性替换 更新主题不需要刷新 支持扩展替换属性 支持字体大小切换 最低兼容...

2018-07-19 14:35:45 1186

原创 android架构设计之插件化、组件化

原文地址:http://blog.csdn.net/mhhyoucom/article/details/79000072 如今移动app市场已经是百花齐放,其中有不乏有很多大型公司、巨型公司都是通过app创业发展起来的;app类型更加丰富,有电子商务、有视频、有社交、有工具等等,基本上涵盖了各行各业每个角落,为了更加具有竞争力app不仅功能上有创性,内容也更加多元化,更加饱满,所以出现了巨大的工...

2018-01-08 10:21:50 40324 12

原创 《android framework常用api源码分析》之Activity启动流程

Activity的启动流程是一个源码分析非常重要的一个知识点,其实通过这篇学习你可以对android内部源码有个大致的了解,应为他耐括基本上最重要的几处只是,有binder机制、handler机制、antivity strack、context等重要内容。Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder

2017-12-14 12:03:20 1911

原创 Android插件化框架SpeedTools

插件化这个词在移动开发当中已经被提了很久了,市场上插件化框架也是多如牛毛,但是现在插件化更多是用在Android端,iOS端估计没戏了,因为苹果公司开始在限制这种app上架。其实iOS在现在插件化Android以后也会限制,至少已经开有动作了,例如resource对象创建在Android n之后进入了废弃的行业。插件化其实如果对权限没有限制他就是病毒,你想想如果你的app可

2017-05-18 15:24:41 599

原创 使用 MediaCodec 在 Android 上进行硬解码

需要注意的是,硬解码的支持和性能可能因设备、Android 版本和视频编码格式的不同而有所差异。确保你的设备支持硬解码,并且适当处理解码器的输入和输出缓冲区。在上述代码中,你需要根据解码器输出的数据格式进行相应的转换,以获取 RGBA 数据。具体的转换流程和代码取决于解码器输出的数据格式和你的需求。

2024-04-24 09:15:37 285

原创 android wifi直连 wifip2pmanager

Android WiFi 直连(Wi-Fi Direct,也称为Wi-Fi P2P)是一种让两台或多台设备通过Wi-Fi技术直接进行点对点连接的技术,无需借助传统的无线路由器或接入点。在这个组中,一台设备会被选为“组主人”(Group Owner,GO),相当于小型网络的接入点,负责管理组内的连接和数据传输。设备发现:启用Wi-Fi Direct功能的设备可以通过广播信号搜索和发现附近的其他支持Wi-Fi Direct的设备。连接请求:用户在设备列表中选择要连接的目标设备后,发起连接请求。

2024-04-15 15:34:59 401

原创 笔记 socket长连接工具类

框架与库支持: 虽然可以直接使用Java或Kotlin的原生Socket类来实现长连接,但为了简化开发和处理复杂性,往往会选择使用成熟的网络库或框架,如Apache MINA、Netty、OkHttp(配合WebSocket或HTTP/2的长轮询)等。连接持久性: 在长连接模式下,客户端与服务器在首次成功建立连接后,不会立即关闭连接,而是保持其有效直至应用程序明确关闭它,或者由于网络故障、超时或其他异常情况导致连接中断。这种持久连接减少了建立新连接所需的握手过程,有助于降低延迟,提高数据传输效率。

2024-03-27 15:42:59 273

原创 Android 长按网页选中文字的弹出菜单的自定义

在Android WebView中定制长按网页选择文字的菜单,需要使用到Android的ActionMode和ActionMode.Callback。创建一个自定义的WebView类,重写startActionMode方法。如果想定制Android 长按网页选中文字的弹出菜单;

2024-01-24 11:45:38 770

原创 webrtc 工具类

webrtc 工具类。

2023-12-11 10:30:04 581

原创 android.bp文件禁用oat 优化

1.Android.bp禁用odex。

2023-10-27 17:27:18 256

原创 adb调试系统app

要通过 adb 替换 systemui app 来测试新功能,你需要首先确保你的设备已经获取了 root 权限,因为 systemui app 是系统级别的应用,替换它需要 root 权限。替换 SystemUI 应用:首先,你需要将你的新 SystemUI APK 文件推送到你的设备上。连接你的设备:使用 USB 线将你的设备连接到你的电脑,并确保你的电脑已经安装了 adb 工具。重启你的设备:在 adb shell 中,输入 reboot 命令来重启你的设备。

2023-10-21 14:30:30 592

原创 android pcm播放器:有进度条同步、快进、快退、倍速功能

采样率:PCM 文件中的音频数据以一定的采样率(Samples Per Second,通常以Hz表示)进行采样。位深度:PCM 数据以一定的位深度来表示每个样本的值,通常以位数表示。较高的位深度可以提供更好的音频质量,因为它可以更准确地表示音频振幅,但也会占用更多的存储空间。总之,PCM 是一种直观的音频编码格式,它以原始的数字形式表示音频数据,没有压缩,因此在需要高音质的应用中很常见,如音乐制作和专业音频处理。PCM(脉冲编码调制)是一种常见的数字音频编码格式,它代表原始音频数据的一种无损编码方式。

2023-09-18 17:52:20 788

原创 android audiotrack

AudioTrack 是 Android 中用于音频播放的类,其主要作用是允许你将音频数据传输到设备的音频输出,以进行音频播放。音频效果处理:AudioTrack 可以与音频效果处理库一起使用,例如 Android 提供的音频效果处理器或自定义效果处理器。这样,你可以实现音频均衡、重低音、混响等效果。实时音频传输:你可以使用 AudioTrack 来实现实时音频传输,如音频聊天、语音会议等应用。音频数据播放控制:AudioTrack 允许你控制音频播放的速度、音量、平衡等参数,以满足不同场景的需求。

2023-09-16 10:52:44 445

原创 android AudioRecord

AudioRecord是Android中用于音频录制的类,它的主要作用是捕获来自设备麦克风或其他音频源的音频数据,并将其保存为PCM格式的音频流,以供后续处理或存储。音频录制:AudioRecord可以用于录制来自麦克风、耳机麦克风或其他音频输入源的音频。实时音频处理:你可以将录制的音频数据传递给其他音频处理库或自定义算法,以进行实时音频处理,如降噪、回声消除、音频效果等。声音分析:通过捕获音频数据,你可以进行声音分析,如检测音频的频谱、音量、音调等特征,用于声音处理和分析应用。

2023-09-16 10:50:17 397

原创 Android WIFI工具类 特别兼容Android12

【代码】Android WIFI工具类 特别兼容Android12。

2023-09-05 11:15:35 848

原创 android frida

Frida 是一个用于动态分析、调试和修改 Android 应用程序的强大工具。它的主要作用包括:代码注入和Hooking: Frida 允许您在运行时修改和监视应用程序的行为。您可以通过Frida注入JavaScript代码到目标应用程序中,然后使用该代码来Hook(钩住)并修改应用程序的函数和方法。这对于进行应用程序的反调试、破解或逆向工程非常有用。动态分析: Frida 提供了实时访问目标应用程序的内存和运行状态的能力。这使得您可以在应用程序运行时查看和修改内存中的数据,以进行调试和分析。

2023-08-22 16:05:08 448

原创 android 屏幕适配(亲测最兼容方便)

1、设置屏幕固定尺寸适配,例如适配1280x720,只适合少量固定屏幕的设备。在程序中调用makesize 就可以在app file 目录中得到标尺。3、通过密度值px转dp来适配,方便兼容,基本准确。2、百分比布局,开发中多了很多代码。

2023-08-16 10:05:49 314

原创 android jetpack room 数据库工具使用

创建实体类:创建一个用@Entity注解的类来表示数据库中的表,其中每个字段都应该用@ColumnInfo注解进行注释。创建数据库:创建一个继承自RoomDatabase的抽象类,并在其中声明数据库的实例和具体的DAO接口。创建DAO接口:创建一个带有对数据库执行操作的接口。使用@Dao注解标记该接口,使用@Query、@Insert、@Update和@Delete等注解定义具体的操作。初始化数据库:在您的应用程序中的某个地方,通过调用Room.databaseBuilder()方法来构建数据库的实例。

2023-08-11 10:45:42 528

原创 MediaExtractor MediaCodec手动解码播放音乐

MediaExtractor MediaCodec手动解码播放音乐,笔记。

2023-08-10 18:29:00 196

原创 android webview 显示灰度网页

这样就可以在WebView中显示灰度网页了。根据系统版本的不同,使用了不同的滤镜方法来实现灰度效果。请注意,这种方法可能会影响WebView的性能和渲染速度,因此请确保在使用之前进行足够的测试。使用的原理两种方式,一种使用画笔,一种是js css注入。都能够实现黑白色灰度网页。

2023-08-10 13:49:19 688

原创 Android Navigation 导航切换fragment用法

现在,您可以在您的代码中使用导航控制器来进行导航。例如,在Fragment中使用findNavController()方法获取导航控制器,并使用navigate()方法导航到其他Fragment。这样就可以通过使用导航组件实现在Fragment之间的导航了。您可以根据自己的需求在导航图中定义多个Fragment,以及在代码中设置不同的导航操作。在你的res目录下的navigation文件夹中创建一个nav_graph.xml文件,并定义您的导航图。在您的Activity中,设置导航控制器并处理导航事件。

2023-08-10 13:45:23 1042

原创 android nv21数据用mediacodec编解码

上述代码中的变量和参数需要根据你的实际情况进行调整。此外,NV21 格式的数据需要根据具体需要进行分割和处理传入编码器和解码器。

2023-08-07 11:23:35 722 1

原创 给apk手动签名

jarsigner -verbose -keystore 签名文件.jks -storepass 密码 -keypass 密码 需要签名的应用.apk 别名。

2023-08-05 10:06:30 90

原创 android adb模仿遥控器上下左右等操作常用命令

通过运行这些命令,ADB将会在已连接的设备上调整音量大小。请确保设备已连接并且ADB已正确配置。请注意,不同的设备厂商可能会有不同的键盘代码,所以某些命令可能不能适用于所有设备。要使用ADB模拟遥控器动作,你需要连接一台安卓设备并在计算机上安装ADB(Android Debug Bridge)工具。通过运行这些命令,ADB将会在已连接的设备上模拟遥控器动作。请确保设备已连接并且ADB已正确配置。

2023-07-24 18:04:29 1147

原创 exoplayer3 ffmpeg 扩展库编译 aar,导入集成

exoplayer3 编译出来的ffmpeg扩展库aar

2023-07-24 16:55:40 1050

原创 测试回声消除APP 里面开启aec agc ns 增益 降噪(带源码)

测试回声消除、降噪、增益消除APP。

2023-07-24 15:13:06 295

原创 adb旋转屏幕命令

在某些设备上可能需要先运行以下命令禁用自动旋转功能,才能成功强制旋转屏幕。

2023-06-07 17:54:58 2710

原创 Android使用OpenCV来实现bitmap独立设置每个圆角

Android使用OpenCV来实现bitmap独立设置每个圆角,关于opencv集成请参考我的其他文章,这里方便起见已经封装成java方法供大家调用:代码如下: public static Bitmap drawCircleRadius(int w, int h, int circleR, boolean topLeft, boolean topRight, boolean bottomLeft, boolean bottomRight, Bitmap bitmap) { if

2021-08-24 10:28:43 293

原创 flutter CustomMultiChildLayout 自定义控件实现图片瀑布流效果

CustomMultiChildLayout允许我们通过delegate自定义子组件的布局约束、位置以及父组件的大小(父组件大小不依赖于子组件的情况下),和CustomSingleChildLayout基本一样,区别就是CustomSingleChildLayout包裹一个子控件,而CustomMultiChildLayout包裹多个。接下来我会用CustomMultiChildLayout 控件实现一个图片瀑布流墙的效果,效果如下:图片瀑布流 imgCustomMultiChildLayout控件

2021-06-09 14:21:05 723 2

原创 Android camera2 api 相机 预览 拍照

从 Android 5.0 开始,Google 引入了一套全新的相机框架 Camera2 api。现在主流机型基本上都在5.0,所以可以完全不用考虑camera1 api 兼容问题。Camera1 那寥寥无几的 API 和极差的灵活性早已不能满足日益复杂的相机功能开发。Camera2 的出现给相机应用程序带来了巨大的变革,因为它的目的是为了给应用层提供更多的相机控制权限,从而构建出更高质量的相机应用程序。camera2 api 优势:1、可以获取更多的帧(预览/拍照)信息以及手动控制每一帧的参数2、

2021-06-08 16:51:14 1175 3

原创 Android 使用JS注入获取网页视频链接

Android 使用JS注入获取网页视频链接思路:1、通过js注入获取整个网页html。2、通过jsoup分析获取video播放器的数据源。一、开启webviewjs功能,注入js回调mWebView.addJavascriptInterface(new LocalAndroidObj(), "local_android_obj");// js 注入回调二、通过jsoup 分析网页,使用方法类似jQuery语法。 private class LocalAndroidObj{

2021-02-24 09:37:21 2249 1

原创 通过图片哈希值计算汉明距离来匹配人脸

opencv通过图片哈希值计算汉明距离来匹配人脸string xmlPath = "/data/data/org.opencv.samples.tutorial2/cache/lbpcascade_frontalface.xml";//识别并截取人脸Mat detectAndDisplay(Mat image) { CascadeClassifier ccf; ccf.load(xmlPath); vector<Rect> faces; Mat gray;

2020-08-13 15:39:33 983

原创 opencv中使用Caffe框架

Caffe,全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel

2020-08-13 10:52:50 737

原创 opencv PCA主成分分析的使用

简介主成分分析(PCA)是提取数据集最重要特征的统计程序。PCA(Principal Components Analysis,中文名叫主成分分析,是数据降维很常用的算法。按照书上的说法是:寻找最小均方意义下,最能代表原始数据的投影方法。PCA的一个经典应用就是人脸识别,感兴趣的可以在网上搜eigenface。PCA的主要思想是寻找到数据的主轴方向,由主轴构成一个新的坐标系,这里的维数可以比原维数低,然后数据由原坐标系向新的坐标系投影,这个投影的过程就可以是降维的过程。使用//绘制向量轴void

2020-08-12 14:20:46 1165

原创 SVM 简介和使用

简介Support Vector Machines(SVM)是由分离超平面正式定义的鉴别分类器。如何计算最佳超平面?我们来介绍用于定义超平面的符号:SVM简介其中β被称为权重向量,而β0称为偏差。也可以看看这和超平面更深入的描述,你可以在4.5节(发现分隔条件超平面书的):统计学习的要素通过 T. Hastie, R. Tibshirani和JH Friedman([172])。通过缩放β和可以以无限数量的不同方式表示最优超平面β0。作为惯例,在超平面的所有可能的表示中,选择的是SVM其

2020-08-12 10:32:02 1018

原创 k-Nearest 最近邻分类算法

概述kNN算法又称为k最近邻(k-nearest neighbor classification)分类算法。所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。kNN算法的核心思想是,在一个含未知样本的空间,可以根据离这个样本最邻近的k个样本的数据类型来确定样本的数据类型。该算法涉及3个主要因素:训练集、距离与相似的衡量、k的大小;主要考虑因素:距离与相似度。opencv中使用 Mat img = oneMat; Mat gray;

2020-08-12 09:14:40 1061

exoplayer 编译出来的ffmpeg扩展库aar

exoplayer 编译出来的ffmpeg扩展库aar,FFmpeg 模块提供 ,它使用 FFmpeg 进行解码 并且可以呈现以各种格式编码的音频。FfmpegAudioRenderer。 使用模块将aar加入项目libs。 按照上述说明进行检查后,构建并依赖 模块,下一步就是告诉ExoPlayer使用。如何 执行此操作取决于您使用的播放器 API:FfmpegAudioRenderer 如果要将 传递给 ,则 可以通过设置参数来启用使用模块 的构造函数。这将用于 播放(如果不支持输入格式)。通过以优先于 .DefaultRenderersFactoryExoPlayer.BuilderextensionRendererModeDefaultRenderersFactoryEXTENSION_RENDERER_MODE_ONFfmpegAudioRendererMediaCodecAudioRendererEXTENSION_RENDERER_MODE_PREFERFfmpegAudioRendererMediaCodecAudioRenderer 如果已子类化,则在 中的输出列表中

2023-07-24

FFmpegVideoPlayer.rar

SurfaceViewMediaPlayer-android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议;是从IPC摄像头管理提取出来,项目虽然说是一个播放器但是每个每个层面都是分开,例如可以做成p2p点到点媒体的传输和播放;每个api都可以独立当做工具类使用。

2020-09-11

android 插件式无刷新换肤和字体大小切换 兼容android 8.1

android 插件式无刷新换肤和字体大小切换 兼容android 8.1; theme_dome 为dome 案例工程;black_theme 皮肤包工程。

2018-07-19

空空如也

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

TA关注的人

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