自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bjxiaxueliang的CODING技术小馆

技术分享为主,Android、OpenGLES、Vulkan等领域学习笔记与经验总结,也会不定期分享对技术行业前景的思考和分析。

  • 博客(357)
  • 资源 (41)
  • 问答 (1)
  • 收藏
  • 关注

原创 运营商名称 是如何显示到 手机通知栏上的?

在我们日常使用手机的过程中,经常会在通知栏或设置菜单中看到特定的运营商名称,例如"中国移动"、"中国联通"或"中国电信"等。那么,这些运营商的名称是如何出现在我们手机上的呢?手机又是如何区分不同运营商的网络呢?当我们漫游到海外时,手机显示的是国外还是国内的运营商名称呢?

2024-04-09 19:10:08 1036

原创 一文详解RTSP协议:流媒体传输控制协议

RTSP由RFC2326规范,是一种实现实时流媒体传输与播放的控制协议,可用于流媒体的点播和直播场景。RTSP主要有两个方面的作用:一是用于协商客户端与服务端之间的实时媒体通道。二是在建立媒体通道后,通过RTSP协议定义的控制方法(Method),实现流媒体的播放、暂停、停止、快进、倒退等控制操作。

2024-02-02 14:33:40 259

原创 一文详解MSRP协议:IM多媒体信息的传输协议

MSRP(Message Session Relay Protocol)消息会话中继协议,由RFC4975规范,是一种基于文本的、面向连接的协议。常用于在IM实时通信会话中传输或交换多媒体数据(文本、图片、音视频文件等)。支持点对点和多点传输,并提供了扩展性,可以适应不同的应用场景和需求。

2024-02-02 10:27:58 146

原创 OpenGL纹理转换谜团:纹理写入FRAMEBUFFER后的镜像现象

在OpenGL中,将一个 GL_TEXTURE_2D 纹理写入到 GL_FRAMEBUFFER ,然后从GL_FRAMEBUFFER读取为GL_TEXTURE_2D纹理后,发现GL_TEXTURE_2D纹理变为了输入纹理的镜像纹理。本文将探讨这个问题的原因,并提出解决方案

2024-01-02 20:24:09 853

原创 一文详解如何将 ExternalOES转换为 TEXTURE_2D纹理

在实际应用中,我们通常将TEXTURE_2D和TEXTURE_EXTERNAL_OES纹理类型分开使用,并且它们互不干扰。实际上,这种情况占据了80%的使用场景。然而,有时候也会遇到一些特殊情况,需要将TEXTURE_EXTERNAL_OES纹理转化为TEXTURE_2D纹理进行视频处理。这里对此情况,一般我们可以通过一些技术手段,如离屏渲染或FrameBuffer帧缓冲区对象,将TEXTURE_EXTERNAL_OES纹理转换为TEXTURE_2D纹理,再进行后续的处理和计算。

2023-12-21 18:50:10 1215

原创 一文学会WebRTC API:掌握实时通信利器

WebRTC(Web Real-Time Communication)是一项开放标准和技术集合,由 W3C 和 IETF 等组织共同推动和维护,旨在通过Web浏览器实现实时通信和媒体流传输。WebRTC于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准,其提供了一组API和协议,使开发者能够在浏览器中构建实时音视频通信、数据传输和协作应用。目前WebRTC已得到包括主流的Web浏览器(如Chrome、Firefox、Safari)和移动设备平台的广泛的

2023-10-17 15:03:25 604

原创 一文详解常见标准化组织

从事软件研发工作多年,在工作中有时会查阅一些通信相关的国际标准。然而,对于制定这些标准的组织,一直缺乏一个系统的了解。本文将对几个常见的标准化组织进行介绍,其中包括ITU、3GPP、GSMA和CCSA,了解它们的背景、成立目的和主要任务。

2023-07-14 10:26:54 980

原创 一文详解 Okio 输入输出流

Okio最初是作为OkHttp的一个组件出现,是 OkHttp 实现HTTP协议数据构建、解析中使用到的底层 IO 库。其相比于传统的 java.io 和 java.nio ,其在文件、网络等数据读写操作更加便捷、高效。

2023-07-14 09:53:20 390

原创 一文学会TextureID渲染到Surface

将一个GL_TEXTURE_2D类型的纹理ID写入到ImageReader生成的Surface中。具体实现是使用 EGL 提供的 eglCreateWindowSurface() 函数,将 EGLSurface 与 Surface 对象关联起来。然后就可以通过 OpenGL ES 将渲染结果绘制到 EGLSurface 中,最终渲染到Surface上。

2023-07-12 15:30:17 511 1

原创 OpenGL不够用?为何还要开发Vulkan?

对于许多图形开发者来说,OpenGL是一个非常熟悉和广泛使用的图形API接口。然而,随着计算机图形处理的需求越来越高,OpenGL也逐渐显露出一些不足,例如驱动程序开销较高、多线程支持不足等。为了解决这些问题,并更好地满足现代计算机图形处理的需求,新一代图形API接口Vulkan应运而生。

2023-06-30 13:09:28 1575

原创 一文详解IPv4与IPv6协议

前段时间的工作大多与通信协议相关,随着协议相关工作的不断深入,相关数据包的分析占据了不少工作时间。在数据报文分析中,发现大学期间IP协议内容已经重新还给了老师,相关知识完全没有了印象,这篇文章算是一篇复习文,对相关IP协议进行重学习。

2023-06-12 17:34:10 3679 1

原创 一文详解 SCTP 传输层协议

SCTP(Stream Control Transmission Protocol)流控制传输协议,由 RFC2960 定义。SCTP的设计目的是提供一种可靠的、面向消息的数据传输服务,以便于支持多点通信以及满足传输的可靠性需求。SCTP 目前广泛应用于VoIP、移动通信和云计算等领域。

2023-05-05 21:26:02 1886 1

原创 一文详解 DTLS 传输层加密协议

DTLS (Datagram Transport Layer Security)数据包安全传输协议,用于在不可靠的数据包传输协议上 (如UDP)提供数据的安全传输,DTLS1.2版本由 RFC6347 定义。DTLS为TLS协议的一个变体,因TLS不能用来保证UDP上传输的数据的安全性,Datagram TLS试图在现存的TLS协议架构上提出扩展,成为TLS的一个支持数据包传输的版本。DTLS常用于保护实时通信 (如VoIP和视频会议) 以及IoT设备通信的信息安全。

2023-03-27 10:31:07 1640

原创 一文读懂字符编码ASCII、Unicode与UTF-8

最近在写一个Http协议栈当涉及CRLF控制字符写入时,发现自己对CRLF与\r\n的关系不太了解,因此决定详细学习一下;查阅资料的同时,又遇到UTF-8与ASCII编码的疑问。

2023-03-13 18:07:45 494

原创 一文详解jitpack多渠道maven库发布

JitPack 是一 个构建与发布 Git 存储库的便捷服务,可用于在 GitHub、GitLab 上打包、发布与部署依赖库,便于使用者通过maven依赖的形式引用开发者发布的依赖库。

2023-02-21 22:33:35 753

原创 一文详解 Linux Crontab 调度任务

在Linux环境中,Crontab是一个调度守护进程,可以按分钟、小时、每月的某天、每月、每周的某天来执行特定任务,这些特定的任务被称为 Cron 作业,基于这个特点,Crontab 经常被用于自动执行系统维护与管理。

2023-01-12 20:50:59 1533

原创 Android 13 新特性及适配指南

Android 13(API 33)于 2022年8月15日正式发布(发布时间较往年早了一些),正式版Release源代码也于当日被推送到AOSP Android开源项目。截止到笔者撰写这篇文章时,国内部分应用软件开发厂商已逐步接到手机厂商(华米OV等)的新版本适配要求。当前,对于Android应用开发者来说,Android 13 的软件兼容适配已需提上工作日程。

2022-10-24 15:39:34 10462 7

原创 一文详解 implementation api embed

最近使用 Android Studio 从事项目开发时,发现对 implementation、api、embed 的用法了解的不是很清楚,这里准备一篇文章对其使用场景或者说是使用方式进行一个总结。

2022-08-10 10:57:55 1577

原创 一文详解 WebSocket 协议:双向长连接数据传输协议

WebSocket 是一种应用层网据传输协议,可在单个TCP连接上进行全双工数据通信。WebSocket 诞生于2008年6月,2011年底成为国际标准,其最初被应用于HTML5规范中。WebSocket协议相比于Http协议,其最大的特点是`允许服务端主动向客户端推送数据`,`客户端也可以主动向服务端请求数据`。在WebSocket API中,浏览器和服务器只需要`完成一次握手`,两者之间就可以建立持久性的连接,并进行双向数据传输。

2022-05-20 00:13:28 802 1

原创 一文详解 Python3使用openpyxl或xlrd依赖库读写Excel

最近工作中需要统计APP线上终端用户 `手机品牌`、`手机型号`与`对应型号的用户量`,并生成Excel表格汇报项目组。因线上手机品牌、型号数量过于庞大,手动操作过于消耗时间,所以搞了一个 python3 的脚本来生成所需要的表格。

2022-04-01 23:07:17 4054

原创 Android12 新特性及适配指南

Android 12(API 31)于2021年10月4日正式发布,正式版源代码也于当日被推送到AOSP Android开源项目。截止到笔者撰写这篇文章时,国内各终端厂商的在售Android设备,已经逐步开启了Android 12正式版本的更新。当前,对于Android应用开发者来说,Android 12 的软件兼容适配已迫在眉睫。

2022-03-19 22:08:09 14817 2

原创 Android 12 适配指南——SplashScreen

Android 12(API 31)引入了 SplashScreen 相关API,用于开发Android应用的启动页。SplashScreen相关API的引入影响在Andorid 12设备上运行的所有应用。若开发者未进行SplashScreen的适配工作,在应用冷启动和温启动时,可能会呈现两个启动页先后出现的情况(Android SplashScreen启动页 + Android应用自定义开发的启动页或引导页)。

2022-03-16 11:34:56 13817 2

原创 一文学会 使用Kotlin Coroutine协程

关于线程、协程两者的对比,可以简要叙述如下:线程:线程由操作系统调度,线程切换或线程阻塞由操作系统和CPU调度实现;协程:协程运行于操作系统的用户态,其依赖于线程来实现,通过用户态程序控制,尽量`减少或避免因线程阻塞造成的操作系统与CPU开销`。与线程相比不同点在于,`协程挂起时不需要阻塞其运行的线程`。`协成挂起`期间,其对应的`线程可以被分配其他协程任务来执行`,待`该协程任务挂起结束再次开始时,将该协成再次交由某个线程来继续执行`(挂起期间,`类似于将该协程任务添加到了某个任务队列中`)

2022-03-09 18:16:23 6212

原创 一文详解RTP/RTCP流媒体协议

RTP协议 运行于传输层UDP协议之上,与RTCP协议协作 常用于流媒体数据传输,例如:直播、远程摄像头流媒体播放、流媒体视频播放、视频会议等应用场景。其规定了在互联网上传递音频和视频的标准数据包格式,最初被设计为一个多播协议,但后来被常被应用在很多单播应用中。

2022-01-17 18:23:39 3760

原创 一文详解 OpenGL ES 纹理颜色混合

在OpenGL中绘制的时候,有时候想使新画的颜色和已经有的颜色按照一定的方式进行混合。例如:想使物体拥有半透明的效果,或者绘制叠加光亮的效果,这时候就需要用到OpenGLES混合。如上图所示,为石头墙、绿色矩形、蓝色云彩 三个矩形混合后的展示效果。三个矩形(Z轴深度由深到浅)分别为,石头墙、绿色矩形、蓝色云彩。一、混合API在OpenGLES中若使用混合,需要用到API函数方法(Java):void glBlendFunc( int srcfactor, int destfactor );(1)

2021-11-30 15:51:17 1567

原创 一文了解 OpenGL ES Shading Language

从OpenGL ES2.0开始,OpenGL ES由固定渲染管线更改为可编程渲染管线。因此开发人员若使用OpenGL ES2.0版本及以上API进行图形渲染,必须使用着色语言(OpenGL ES Shading Language)编写顶点着色器与片元着色器的代码。与OpenGL ES1.x固定渲染管线相比:顶点着色器 取代了固定渲染管线中的 变换和光照;片元着色器 取代了固定渲染管线中的纹理环境和颜色求和、 雾 以及 Alpha测试。OpenGL ES 着色语言(OpenGL ES Shadin

2021-11-29 17:29:10 340

原创 一文详解 OpenGL ES 3.x 渲染管线

OpenGL ES 构建的三维空间,其中的三维实体由许多的三角形拼接构成。如下图左侧所示的三维实体圆锥,其由许多三角形按照一定规律拼接构成。而组成圆锥的每一个三角形,其任意一个顶点由三维空间中 x、y、z 三个坐标分量来定义。对于我们日常使用的移动手持设备,手机屏幕窗口由不连续的有限的二维像素小格子构成的,每一个像素格子有x、y两个分量来定义。因此在OpenGL ES绘制流程中,其主要工作是将三维空间中的坐标点(x,y,z)构成的三维图形,转化为手机屏幕上的二维像素点。这个转化过程主要分为两个步骤:

2021-11-22 10:55:30 1374

原创 一文分析 Android现状及发展前景

Coding这些年,一直低头“搬砖”,好像从未仔细审视过Android的发展现状,亦未好好思考Android的发展前景。“低头干活,还要抬头看路”,写一篇文章简要审视一下Android的发展现状、展望一下Android的发展前景。Android 诞生背景Android 发展现状Android 前景趋势从Android的诞生背景开始说起,举例一些数据看一下Android当前的发展现状,最后结合数据看一下Android的未来发展。一、诞生背景2003年10月,Andy Rubin、Rich Mi

2021-11-17 19:11:57 13977

原创 一文了解 OpenGL ES

OpenGL ES(OpenGL for Embedded Systems) 是一种免费的跨平台3D图形 API接口,其适用于低功耗设备,可用于嵌入式设备和移动设备(包括手机、车载大屏 和嵌入式电器终端设备)上渲染高效的 2D 、 3D 图形。其由OpenGL(Open Graphics Library)针对嵌入式设备裁剪而来,去除了OpenGL中许多不是必须冗余特性,比如:GL_QUADS(四边形)、GL_POLYGONS(多边形)绘制模式、glBegin(开始)/glEnd(结束)等特性。OpenG

2021-11-17 16:53:21 2289

原创 一文详解 Android进程及TCP动态心跳保活:App动态心跳保活方案

面对国内GCM推送服务不可用,也未出现一个统一市场PUSH平台的现状。早期的第三方软件一般通过维持一个终端与远端服务器之间的TCP长连接,达到PUSH拉活和消息及时送达的目的。而为了维持这个`TCP长连接`不断开,前提条件就是保证自己APP的后台服务进程,不会被杀死(因为只有活着的终端进程才能定期与远端服务器通信,保证长连接不断连)。

2021-10-28 09:04:09 3363

原创 一文分析 快应用技术架构及业务前景

2018年3月 华为、小米、Oppo、Vivo、中兴、联想、魅族、一加、努比亚、金立 共10家国内终端厂商成立快应用联盟,并召开快应用标准发布会。新成立的快应用联盟,在快应用技术规范层面做了统一,保证快应用开发者开发的快应用,可以直接在所有快应用联盟内厂商的终端设备上运行。

2021-09-14 08:19:01 5874 10

原创 一文详解 Interpolator动画插值器

Interpolator 被用来修饰动画效果,定义动画的变化率。 在Android源码中对应的接口类为 TimeInterpolator,通过输入均匀变化的0~1之间的值,可以得到匀速、正加速、负加速、无规则变加速等0~1之间的变化曲线。

2021-08-30 19:35:22 1179

原创 一文详解 OpenGL ES 2.x 渲染管线

khronos官方对OpenGL ES的描述如下:OpenGL® ES is a royalty-free, cross-platform API for rendering advanced 2D and 3D graphics on embedded and mobile systems - including consoles, phones, appliances and vehicles. It consists of a well-defined subset of desktop OpenG

2021-08-27 21:12:39 611

原创 一文了解 操作系统发展史

最近在写一个Android、IOS、Fuchsia、HarmonyOS对比的报告,需要了解一下各操作系统的起源联系以及内核的对比,因此有了这个文章总结(算是学习笔记吧)。一、各历史阶段的操作系统我们都知道,操作系统自20世纪50年代诞生。操作系统诞生后经历了从专用操作系统(每个主机与应用场景均需要一个新的操作系统)到通用操作系统(一个操作系统覆盖很多设备与应用场景,如Windows、Linux等)的转变。PC时代由于Windows操作系统的广泛应用部署,微软于20世纪90年代成为全球市值最高的公司

2021-08-19 15:07:25 8324

原创 一文详解 Base64编码原理

Base64 是一种 编码方式,最早出现在电子邮件传输协议中。 电子邮件问世之初,传递消息时只支持 ASCII 字符,后来随着电子邮件的广泛使用,传递非ASCII字符内容的需求增加,例如:传输中文、传输文件(图片、视频)。

2021-08-04 11:01:52 1079

原创 一文详解 MD5 信息摘要算法

对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改、验证文件完整性,甚至将MD5当作加密算法使用。MD5虽不陌生,但不是所有研发人员都了解其算法原理,通过这篇文章详细学习MD5 摘要算法。

2021-07-13 09:11:14 2935

原创 App性能优化——内存、CPU、耗电、启动时间指标获取分析

考虑到既然是优化性能,那首先要获取App的相关性能指标,比如: 内存占用、CPU利用率、App启动时间、App耗电量等情况,获取以上各指标后,才能针对性分析确定是否存在优化的可能。

2021-06-15 09:17:14 4959 4

原创 一文读懂 微内核

2019年8月9日华为 余承东 发布HarmonyOS 1.0,HarmonyOS的发布将一个计算机领域内非常专业的词带到了广大公众的视线内,这就是 微内核 。

2021-05-14 18:46:38 1824

原创 一文了解 APK瘦身属性android:extractNativeLibs

android:extractNativeLibs属性瘦身APK先描述一下结论:android:extractNativeLibs = true时,gradle打包时会对工程中的so库进行压缩,最终生成apk包的体积会减小。但用户在手机端进行apk安装时,系统会对压缩后的so库进行解压,从而造成用户安装apk的时间变长。关于android:extractNativeLibs默认值设定方面,若开发人员未对android:extractNativeLibs进行特殊配置:minSdkVersion &

2021-03-26 18:54:14 2729 4

原创 Android R 新特性分析及适配指南

Android R(Android 11 API 30)于2020年9月9日正式发布,随国内各终端厂商在售Android设备的版本更新升级,应用软件对Android R 版本的兼容适配已迫在眉睫。

2021-03-12 15:23:52 4809 1

capture.pcap

使用tcpdump抓包工具,抓包“https get请求百度主页”,生成的capture.pcap文件。 该文件可用wireshark打开,查看和学习 DNS解析步骤、TCP三次握手、TSL握手和秘钥协商 等过程

2020-06-12

SIP-RFC3428.doc

本资源为RFC3428中文翻译,其对应的原协议地址为:https://tools.ietf.org/html/rfc3428 。 想要了解Sip协议Message方法扩展由来、Pager Model通信方式、Pager Model通信方式的具体举例的同学,可以下载。

2020-03-07

QRcode.jar

java -jar QRCode.jar url=test image=qrcode.png save=/xiaxl/ 亲测可用

2019-05-21

MVP_RxJava_Demo

http://dev.qq.com/topic/5799d7844bef22a823b3ad44中介绍的, Android MVP框架

2016-07-29

glide_disklrucache

glide与UniversalImageloader均使用的sdcard缓存策略

2016-03-13

gradle多渠道打包的两种实现demo

gradle多渠道打包的两种实现demo

2016-01-27

ES_001_Triangle

win7下VS2013搭建opengl es 2.0的C++开发环境案例代码。详情请查看博客: http://xiaxveliang.blog.163.com/blog/static/2970803420151014104946451/

2015-11-14

Gson简单与复杂json数据解析案例

可实现简单json数据与复杂json数据解析,详情请看:http://xiaxveliang.blog.163.com/blog/static/297080342014102674623118/

2014-11-26

完善程序地图poi搜索

完善腾腾地图POI搜索1、自定义POI点选中图标2、自定义POI点详细信息弹框。详情请查看:http://xiaxveliang.blog.163.com/blog/static/297080342014102510537125/

2014-11-26

Android_surfaceView与layout屏幕适配总结

Android各种屏幕适配策略demo总结,文档介绍链接地址: http://xiaxveliang.blog.163.com/blog/static/2970803420149277310588/

2014-10-27

shader中uniform变量的if或for会降低帧率

文档介绍博客地址:http://xiaxveliang.blog.163.com/blog/static/29708034201492735228272/

2014-10-27

Xml本地格式化工具(Java代码显示,图形操作)

Xml本地格式化工具(Java代码显示,图形操作),使用详情:http://xiaxveliang.blog.163.com/blog/static/29708034201471044250517/

2014-08-10

Android用SAX2解析xml

一个android小demo,采用SAX2方式解析xml。详细介绍请看: http://xiaxveliang.blog.163.com/blog/static/2970803420147784312563/

2014-08-07

android静默卸载data/app下的应用程序

前提:android设备需已root 详情请看: http://xiaxveliang.blog.163.com/blog/static/2970803420146223547873/

2014-07-03

android静默卸载指定包名APP

代码模拟"uninstall + 包名"命令,详情请浏览地址: http://xiaxveliang.blog.163.com/blog/static/2970803420146223547873/

2014-07-02

百度地图附近商铺信息

通过百度地图API获取附近商铺信息,效果图请看: http://xiaxveliang.blog.163.com/blog/static/29708034201442035825239/

2014-05-20

Activity启动和退出动画

Activity启动和退出时的动画效果,动画为从右侧进入和从右侧退出

2014-05-09

android获取焦点后按钮变大

当按钮获取焦点后,按钮增大到之前的1.3倍。个人博客:xiaxveliang.blog.163.com

2014-02-28

获取Android所有应用程序列表,点击某一项时可启动相应应用

一个简单案例,可获取android系统所有应用程序列表,实现点击列表中的某一项,打开相应的应用

2014-02-27

Smack帮助文档中文版

Smack是一个用于和XMPP服务器通信的类库 由此可以实现即时通讯和聊天 Smack主要优势 非常简单易用 并且有十分强大的 API 只需三行代码就可以向用户发关文本消息: XMPPConnection connection new XMPPConnection "jabber org" ; connection login "mtucker" "password" ; connection createChat "jsmith@jivesoftware com" sendMessage "Howdy " ; 不像其它类库那样强制您进行包级别的编码 Smack提供智能的更高级的构造 像 Chat和GroupChat类 让您进行高效的编程 不需用您熟悉XMPP XML格式 即使您熟悉 XML 提供简单的设计以进行通讯 Smack允许您在每个消息中设置任意数量的属性 包括java对象 Apache许可下的开源类库 这意味着您可以将Smack整合进您的商业或非商业的应用中 ">Smack是一个用于和XMPP服务器通信的类库 由此可以实现即时通讯和聊天 Smack主要优势 非常简单易用 并且有十分强大的 API 只需三行代码就可以向用户发关文本消息: XMPPConnection connection new XMPPConnection "jabber org&quot [更多]

2014-02-24

ExternalOES纹理数据 转换为 TEXTURE-2D纹理数据 工程代码

图形开发中,通常将TEXTURE_2D和TEXTURE_EXTERNAL_OES纹理分开使用,这种情况占据了80%的场景。然而,有时候也需要将TEXTURE_EXTERNAL_OES纹理转化为TEXTURE_2D纹理进行视频处理。这种情况,我们可以通过 如离屏渲染或FrameBuffer帧缓冲区对象,完成纹理数据的转化。 1. 首先,需创建一个OES纹理ID; 2. 完成OES纹理ID创建后,通过oesTexId创建一个图像消费者SurfaceTexture; 3. 通过SurfaceTexture创建Surface,将Surface对象传递给MediaPlayer,获取Sdcard中对应路径的视频帧数据获取; 4. 创建FRAMEBUFFER帧缓冲区,并绑定TEXTURE_2D空白纹理对象; 5. 将EXTERNAL_OES纹理渲染到FRAMEBUFFER帧缓冲区中; 6. 绘制渲染TEXTURE_2D纹理,完成纹理图像的显示; 文档介绍地址如下: https://xiaxl.blog.csdn.net/article/details/135137815

2023-12-21

OpenGLES渲染播放Sdcard中的视频资源

1、案例运行注意事项: 案例源码运行前,需向Sdcard如下路径存入测试视频:/sdcard/Android/data/com.xiaxl.glesvideo/files/video/demo.mp4 2、案例源码原理: a、在OpenGL ES中创建 samplerExternalOES 类型纹理,用于渲染展示视频图像; b、通过 samplerExternalOES 纹理创建一个 SurfaceTexture; c、通过 SurfaceTexture 生成一个 Surface; d、将该 Surface 绑定到 MediaPlayer 中; e、通过 MediaPlayer 解封装视频,并最终通过OpenGL ES渲染解封装后的视频图像,同时播放视频的声音;

2023-11-02

Android平台OpenGLES3将GL-TEXTURE-2D纹理id渲染到ImageReader提供的Surface上

效果目的: Android平台 将 GL_TEXTURE_2D纹理 渲染到 Surface 上 案例实现文章介绍: https://xiaxl.blog.csdn.net/article/details/131682521 技术实现流程大致如下: 1、OpenGLES3中加载GL_TEXTURE_2D纹理,生成纹理ID; 2、通过EGL构建EGLDisplay虚拟屏幕,并绑定ImageReader提供的Surface; 3、在EGL线程中,渲染GL_TEXTURE_2D对应的纹理图形; 4、在EGL线程中,完成渲染后,通过eglSwapBuffers方法交换缓冲数据; 5、在ImageReader中onImageAvailable方法中读取surface数据,保存为一张Bitmap; 6、将 步骤5 的Bitmap显示到ImageView上(用于验证纹理ID是否正常写入到Surface) 因实现流程较为复杂,技术难度要求较高,研究此案例代码花费时间较多,付费下载,谢谢。

2023-06-28

监听Android系统软键盘的弹出与关闭(案例代码)

代码来源: 从facebook React源码ReactRootView中抽离CustomGlobalLayoutListener,用于监听Android系统软键盘的弹出与关闭。 实现原理: 监听Android DecorView对应的GlobalLayout布局变化,从而判断是否弹出了软键盘。 其他: 案例demo名称为GlobalKeyboardChange,可直接运行; 软键盘弹出和关闭时,可同时回调 keyboardHeight 软键盘的高度值。

2023-06-20

TCP与TLS数据报文抓包

使用 tcpdump 抓包工具,抓取 “https get”请求数据包: 1、生成 wireshark 工具可读取的 capture.pcap 抓包文件; 2、学习 “DNS解析步骤”报文结构; 3、学习 “TCP三次握手”报文结构; 4、学习 “TLS握手与秘钥协商” 等过程。 详细介绍,可参考我的技术文章: 一文读懂 HTTPS 与 TLS证书链校验 https://xiaxl.blog.csdn.net/article/details/106927624 一文详解 TCP与UDP 协议 https://xiaxl.blog.csdn.net/article/details/106223354

2023-03-18

Android使用 jitpack 发布 maven 多渠道AAR依赖库 案例实现

网络上大量涉及 JitPack 的教程不可用; 经过两天的研究,分别实现了Gradle 6.1与Gradle 7.5两种Gradle版本,多渠道发布JitPack maven AAR依赖库的案例,案例分别为: + jitpack_MultiFlavorLibDemo_gradle_6_1 + jitpack_MultiFlavorLibDemo_gradle_7_5 并给出了详细的使用说明教程,详见如下地址: https://xiaxl.blog.csdn.net/article/details/129151720

2023-02-21

Android录制屏幕生成mp4文件

Android录制屏幕生成mp4文件: 1、运行环境要求: Android 5.0以上,无需ROOT; 2、案例实现方式: 使用MediaProjection构建虚拟VirtualDisplay,完成屏幕录制生成mp4文件保存到本地sdcard。 3、案例源码: 案例源码以实现录屏最小集的方式实现,注释充分,通俗易懂。

2022-07-07

Python3使用openpyxl、xlrd依赖库操作Excel案例源码

使用python3脚本实现如下功能: 使用 openpyxl 依赖库,详解.xlsx 新版Excel文件的读、写、设置行高、列宽、合并单元格等操作; 使用 xlrd 依赖库,详解.xls 旧版Excel文件的读取,并使用 xlutils.copy 依赖库修改Excel文件出最终的修订结果Excel; 详细文章介绍地址如下: https://xiaxl.blog.csdn.net/article/details/123910322

2022-04-15

Python3使用xlrd修改Excel数据映射关系

使用python3脚本实现如下功能: 根据映射关系数据,完善Excel表格中品牌与型号的对应关系,输出修改后的Excel。 使用 xlrd 依赖库,实现Excel数据的读写; 使用 xlutils.copy 依赖库,复制并修改Excel文件, 并输出最终的修订结果Excel。 详细文章介绍地址如下: https://xiaxl.blog.csdn.net/article/details/123910322

2022-04-01

Android12 SplashScreen使用案例代码下载

Android12 SplashScreen使用举例代码下载,运行效果 与 相关API使用介绍请参考博文: Android12适配指南——SplashScreen: https://xiaxl.blog.csdn.net/article/details/123522277 Android 12(API 31)引入了 SplashScreen 相关API,用于开发Android应用的启动页。 SplashScreen相关API的引入影响在Andorid 12设备上运行的所有应用。 若开发者未进行SplashScreen的适配工作,在应用冷启动和温启动时,可能会呈现两个启动页先后出现的情况(Android SplashScreen启动页 + Android应用自定义开发的启动页或引导页)。

2022-03-16

安卓Kotlin Coroutine协程使用案例代码

安卓 Kotlin Coroutine协程 使用方式代码举例: 包含GlobalScope 、CoroutineScope 详细使用代码举例,相关介绍文章,可参考: https://xiaxl.blog.csdn.net/article/details/123383727

2022-03-09

Android veridex 非SDK接口检测工具

1、Android非SDK接口检测工具(2022.02.16版本) 2、对应的官方地址为: https://android.googlesource.com/platform/prebuilts/runtime/+/master/appcompat

2022-02-16

Android平台 使用OpenGLES3.0实现纹理纹理、颜色混合

在Android平台,使用OpenGLES3.0实现纹理纹理、颜色混合代码实现举例。 具体案例文章讲解请见: https://xiaxl.blog.csdn.net/article/details/121634894

2021-12-15

Android平台 OpenGL ES3.0绘制点、线、三角形实现源码

Android平台,OpenGL ES3.0 点、线、三角形绘制方式源码实现举例。 相关绘制方式文章讲解请参考: https://xiaxl.blog.csdn.net/article/details/8873002

2021-12-10

Android平台OpenGLES生成使用Mipmap纹理

该案例代码为Android 平台OpenGL ES实现举例,有两个作用: 1、在Android平台,使用OpenGL ES通过加载灰度图,构建山地图形渲染效果; 2、使用 OpenGLES 生成与使用Mipmap纹理,构建远处模糊,近处清晰的效果。 具体案例文章讲解请见: https://xiaxl.blog.csdn.net/article/details/8873106

2021-12-08

OpenGLES三种抗锯齿实现案例

介绍Android OpenGL ES中,三种可用的抗锯齿实现方式,这里给出详细的代码实现。 文章介绍,请参考: https://blog.csdn.net/xiaxl/article/details/8873018

2021-12-06

Android使用MediaCodeC与OpenGL硬解码 录制mp4音视频实现源码

将Camera数据显示到OpenGL ES渲染的图像中,并通过MediaCodeC 将 OpenGL ES 缓冲数据,硬编码写入到 mp4 视频文件中,完成视频的录制。 文件介绍请见: https://xiaxl.blog.csdn.net/article/details/72530314 原理及实现步骤: 1、通过OpenGLES渲染Camera采集数据; 2、通过 MediaCodec.createInputSurface获取一个Surface; 3、通过EGL构建EGLDisplay并绑定Surface; 4、通过 EGL 线程中渲染GL_TEXTURE_EXTERNAL_OES对应的纹理ID; 5、在 EGL 线程完成渲染后,通过eglSwapBuffers交换缓冲,将EGL渲染内容交换到MediaCodeC给定的Surface中,从而完成mp4视频录制。

2021-11-02

Android端 网易公开课3D动画勋章 实现源码

Android端 网易公开课3D动画勋章 实现源码,使用OpenGL ES 2.0加载、展示3dmax导出的obj、mtl勋章文件,通过自定义的openel 动画引擎,进行3D勋章的动画展示。

2021-11-02

SIMalliance_OpenMobileAPI2_02.rar

Android于Android 9.0 引入了OMAPI相关实现,这篇文章是关于OMAPI的架构实现、API使用介绍实现文档。 Sim Alliance组织提供了一个标准接口规范Open Mobile API specification,使手机上层应用可以访问手机端不同的Secure Elements。

2021-07-30

Android tcpdump

Android tcpdump Version 4.9.3 / 1.9.1.

2020-10-14

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

TA关注的人

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