自定义博客皮肤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等领域学习笔记与经验总结,也会不定期分享对技术行业前景的思考和分析。

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

原创 一文详解 OpenGL ES渲染管线——模板测试

模板测试,可以选择性丢弃一些绘制的片元(像素点),实际应用中可以在不规则形状中绘制图元,例如:在湖面上绘制两岸树木或建筑的倒影。

2013-05-01 21:14:10 1180

原创 2、通过pId获取包名

private static String getPackageName(Context context,int pId) { Log.i(TAG, "pId :" + pId + ""); if (context == null) { Log.i(TAG, "context == null"); return null; } if ((context instan...

2013-05-01 22:03:00 2185

原创 1、重写TextView的onDraw方法

Android重写系统TextView Git源码地址:https://github.com/AndroidAppWidgetDemo/Android_Widget_CustomTextView 一、目的重写Android系统TextView,是为了解决系统TextView中文换行所带来的参差不齐的锯齿效果。如图1.1为系统TextView的绘制结果,图1.2为期望中的Te...

2013-05-01 21:54:04 4560 1

原创 一文详解 深度缓冲API——glClearDepthf与glDepthFunc

详解 深度缓冲API——glClearDepthf与glDepthFunc

2013-05-01 21:41:35 1424

原创 一文详解 纹理采样与Mipmap纹理——构建山地渲染效果

在开发一些相对较大的场景时,例如:一片铺满相同草地纹理的丘陵地形,如果不采用一些技术手段,就会出现远处的丘陵较近处的丘陵相比更加的清晰的视觉效果,而这种效果与真实世界中近处的物体清晰远处物体模糊的效果是相违背的。这是因为采用“透视投影”进行三维场景的绘制过程中,会产生近大远小的效果,而远处的丘陵与近处丘陵在绘制过程中采用的却是同一幅纹理图。如下图所示为未采用Mipmap纹理贴图和采用Mipmap纹理贴图后的运行效果。

2013-05-01 21:40:50 2120

原创 一文详解 OpenGL采样API—— glTexParameter glGenerateMipmap glTexImage2D

在OpenGL ES中 glTexParameter、glGenerateMipmap、glTexImage2D 这三个API经常用于纹理采样、生成Mipmap纹理 和 加载纹理图。glTexParameter 用于加载纹理时的纹理采样 与 纹理拉伸算法 设定;glGenerateMipmap 用于生成Mipmap纹理;glTexImage2D 用于加载纹理图;

2013-05-01 21:32:44 3687

原创 一文详解 OpenGL ES中2的N次方纹理问题

从OpenGL ES官方API中,我们可以知道从OpenGL ES2.0开始,加载纹理时,对图片的宽高已不再要求未2的N次方比例。这一点在许多情况下还是非常有用的,例如:来自视频或摄像头的数据可能不为2的N次方。但从实际设备测试可知,对于OpenGL ES2.0的终端设备,不同厂商的设备表现可能不同,因此,对于加载的纹理,若可以使用2的N次方纹理,还是要尽量保持2的N次方。

2013-05-01 21:32:05 2417

原创 一文详解 EGL与使用举例

EGL 是底层原生平台窗口与 Khronos渲染API (如OpenGL ES、OpenVG等) 之间的接口,为OpenGLES等图形API 提供渲染窗口、图形上下文(EGLContext)、同步绘制接口等机制,使其可以与不同的平台窗口建立关联关系,从而实现在不同平台上(如Android、Windows等)的渲染工作。

2013-05-01 21:31:05 1787

原创 一文详解 OpenGL着色模式——平滑GL_SMOOTH、单调GL_FLAT着色

在Android GLSurfaceView中进行图形渲染时,经常会用到着色模式,其一般分为两种模式:一种是平滑着色 glShadeModel(GL10.GL_SMOOTH);一种是单调着色 glShadeModel(GL10. GL_FLAT)。两种着色模式,一般常用的为 平滑着色GL_SMOOTH 。

2013-05-01 21:15:08 2704

原创 一个猜测——三维空间重叠图元 “交替闪烁“ 现象猜想

之前有一段时间,使用OpenGL ES进行图形渲染过程中:三维空间中,两个深度相同三维实体,重叠部分出现交替闪烁的现象。

2013-05-01 21:13:29 1086

原创 一文详解 OpenGL 中三种抗锯齿处理

OpenGL ES中设置抗锯齿的方式有很多,这里介绍的三种方式。不同的场景可能适合不同的抗锯齿方式,如果您遇到锯齿问题,还需要根据具体问题具体分析。纹理加载阶段抗锯齿:设置合适的纹理采样方式;点、线、多边形抗锯齿:采用开启混合抗锯齿;多重采样

2013-05-01 21:13:06 5024

原创 一文简介 深度坐标精度

开启深度测试后,还需要设置深度缓冲区的位数以达到合理的精度。如果精度不足在“远方”的物体可能出现不希望的重叠。

2013-05-01 21:12:25 1387

原创 一文详解 OpenGL ES渲染管线——深度测试

深度测试是在片元处理过程中通过测试一个片元在`视椎体`的深度坐标,来判断它是否被更小深度坐标的片断遮挡而决定是否真去绘制它(开启深度测试有助于节省GPU性能)

2013-05-01 21:12:03 1087

原创 一文详解 OpenGL ES渲染管线——抖动

抖动是一种在色彩空间较小的设备上展示较大色彩空间的图像的一种方法。例如:在一个RGB_565的设备上展示RGB_888的图像,展示时如果简单进行数据截断位,会造成色彩的失真和生硬。抖动使用一个矩阵,来调整一个像素周围的像素的值,来使人眼产生错觉,而模拟出原来的色彩。

2013-05-01 21:11:36 3186

原创 一文详解 OpenGL ES绘制模式——自动渲染与脏渲染模式

在Android中使用 GLSurfaceView 进行图形渲染时,存在两种可选的绘制模式:一种是自动循环模式:OpenGL线程以一定的时间间隔自动的循环调用用户实现的 onDrawFrame() 方法进行一帧一帧的绘制;一种的“脏渲染”模式:当用户需要重绘的时候,主动“拉去”这个重绘过程,有点类似于Canvas中的invalidate()

2013-05-01 21:10:42 1275

原创 一文详解 OpenGL ES绘制方式——绘制 点 线 三角形

在OpenGL ES中,点、线段、三角形是构成三维物体的基本单位。所有的三维渲染物体均由这三种基本图形组合构成,而点、线段、三角形,这些构成三维物体的基本单位,每一类中又包括一种或多种具体的绘制方式。

2013-05-01 21:09:56 1613

原创 OpenGL ES相关网址

1、渲染管线 (OpenGL ES Graphics Pipeline)  http://www.khronos.org/opengles/2_X/2、API网址:opengl es 1.1网址http://www.khronos.org/opengles/sdk/1.1/docs/man/ opengl es 2.0网址http://www.k

2013-05-01 21:02:00 1102

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

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

png转pkm“Mali-Texture-Compression-Tool-v4Windows-x64”和“pkm.zip”资源

png转pkm“Mali_Texture_Compression_Tool_v4Windows_x64”和“pkm.zip”资源 1、Mali_Texture_Compression_Tool_v4Windows_x64 png转pkm工具(windows平台); 2、一组由Mali_Texture_Compression_Tool_v4Windows_x64生成的ETC1+Alpha的动画文件举例。

2024-08-13

OpenGLES2.0中加载".pkm图片资源"组成的“zip压缩包”,并以帧动画的渲染播放ETC1格式纹理数据

OpenGLES2.0中加载".pkm图片资源"组成的“zip压缩包”,并以帧动画的渲染播放ETC1格式纹理数据: 1、将png帧动画资源,通过MaliGPU Texture CompressionTool压缩为ETC1格式纹理(压缩后每一帧均包含“一个RGB的.pkm文件”和“一个alpha值的.pkm文件”); 2、将.pkm图片资源压缩为一个.zip的压缩包; 3、在Android中加载读取.zip文件,并通过OpenGLES2.0按帧动画的形式渲染播放一帧一帧的.pkm文件格式的ECT1压缩格式文件; 4、每一帧渲染都获取两个.pkm文件,分别加载为ETC1Texture纹理数据(一个获取RGB颜色值,一个获取Alpha值); 5、抖音、快手的直播画面中,送礼物特效可用该工程代码实现。

2024-08-08

Android工程OpenGL ES中YUV420转化RGB工程实现源码

1、通过Camera2获取Camera的YUV420图像数据; 2、将YUV420图像数据通过Shader语言,在GPU中转化为RGB; 3、在OpenGL ES中渲染最终的RGB纹理,实现图像预览。 4、本案例代码是: 一文详解微信视频通话、抖音视频回显实现方案:https://xiaxl.blog.csdn.net/article/details/103328195 一文学会 Opengl ES中YUV420与RGB转化:https://xiaxl.blog.csdn.net/article/details/72622236 技术博文的工程实现代码,具体实现可参考以上两篇技术文章。 5、当前App中GPU高效回显图像均通过该方案实现,具有较高的学习性。

2024-07-22

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

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

TA关注的人

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