android IntentService服务应用举例demo源码
IntentService 是 Service 组件类的一个扩展,用于按需处理异步请求(以 Intent 的形式表达)。客户端通过调用 android.content.Context#startService(Intent) 方法发送请求;服务会在需要时被启动,使用一个工作线程依次处理每个 Intent,并在没有更多工作要处理时自行停止。
这种“工作队列处理器”模式通常用于将任务从应用程序的主线程中获取出来。IntentService 类的存在就是为了简化这种模式并处理其机制。要使用它,你需要扩展 IntentService 并实现 onHandleIntent(Intent) 方法。IntentService 会接收 Intent,启动一个工作线程,并在适当的时候停止服务。
所有请求都在单个工作线程上处理——只要有请求,线程就会工作。(并且不会阻塞应用程序的主循环),但一次只能处理一个请求。
android组件Service服务应用举例demo源码
android组件Service服务应用举例demo源码
详情介绍请见:https://mp.youkuaiyun.com/mp_blog/creation/editor/145040064
目录
一、Service概述
二、Service分类
1.前台服务
2.后台服务
3.绑定服务
三、Service的两种启动方式
1.start启动模式
2.bind绑定模式
四、权限
五、Service生命周期
六、组件与绑定Service的通信方式
1.扩展 Binder 类
2.Messenger信使
3.AIDL
七、总结
场景使用区别
八、源码下载
Android OpenGL ES多个纹理实现混叠显示项目源码
Android OpenGL ES多个纹理实现混叠显示项目源码
详解见:https://blog.youkuaiyun.com/github_27263697/article/details/144408165?sharetype=blogdetail&sharerId=144408165&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
目录
一、获取图片纹理数据
二、着色器编写
1. 顶点着色器
2. 片元着色器
三、绑定和绘制纹理
1. 绑定纹理
2. 绘制纹理
四、源码下载
YUV格式图片和视频文件
YUV格式图片和视频文件:image_640_480.yuv,video_640_480.yuv
Android OpenGL ES创建绘制YUV格式图片和视频项目源码
Android OpenGL ES创建绘制YUV格式图片和视频项目源码
详解:https://blog.youkuaiyun.com/github_27263697/article/details/144349961?sharetype=blogdetail&sharerId=144349961&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
目录
一、YUV介绍
1. 为什么使用YUV
2. YUV 格式
二、YUV转RGB公式
三、YUV渲染
1. GL_LUMINANCE介绍
2. 获取 YUV 视频
3. 读取YUV文件数据
4. 着色器编写
5. 纹理加载和绘制
四、源码下载
Android OpenGL ES绘制圆角矩形演示demo源码
Android OpenGL ES绘制圆角矩形演示demo源码
绘制圆角,详解见https://blog.youkuaiyun.com/github_27263697/article/details/143981399?sharetype=blogdetail&sharerId=143981399&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
目录
1、绘制矩形
Renderer基类
矩形Renderer类
顶点着色器
片元着色器
2、绘制圆形
圆形Renderer类
顶点着色器
片元着色器
3、绘制圆角矩形
圆角矩形Renderer类
顶点着色器
片元着色器
Android OpenGL高级GLSL应用-GLSL的内建变量的使用-绘制顶点功能源码
Android OpenGL高级GLSL应用——GLSL的内建变量的使用_绘制顶点功能源码
Android OpenGL ES详解——高级GLSL
详解见:https://blog.youkuaiyun.com/github_27263697/article/details/143758317
目录
一、GLSL的内建变量
1、顶点着色器变量
gl_Position
gl_PointSize
gl_VertexID
2、片段着色器的变量
gl_FragCoord
gl_FrontFacing
gl_FragDepth
二、接口块
1、输出块
2、输入块
三、Uniform缓冲对象
1、创建uniform缓冲对象
2、Uniform块布局
3、使用uniform缓冲
块绑定到绑定点
缓冲对象绑定到绑定点
4、应用举例
5、好处
Android OpenGL ES多重采样抗锯齿MSAA演示demo源码
Android OpenGL ES多重采样抗锯齿MSAA演示demo源码
多重采样抗锯齿MSAA,详解见:https://blog.youkuaiyun.com/github_27263697/article/details/143859755
目录
一、抗锯齿概念
二、多重采样
三、OpenGL中的MSAA
1、多样本缓冲的使用
2、离屏MSAA——多采样帧缓冲
1、多采样纹理附件
2、多采样渲染缓冲对象
3、渲染到多采样帧缓冲
四、自定义抗锯齿算法
五、总结
RBO渲染缓冲附件关联到FBO演示demo源码
RBO渲染缓冲附件关联到FBO演示demo源码
RBO渲染缓冲简介
详解:https://blog.youkuaiyun.com/github_27263697/article/details/143058770
使用纹理来存储颜色缓存附件、深度缓存附件、模板缓存附件,但纹理并不是唯一的选择。尤其是针对深度缓存附件、模板缓存附件这类不需要在着色器中读取的缓存数据,OpenGL 还提供了另一种更加高效的缓存区附件——渲染缓冲对象(Renderbuffer Object, RBO)附件,用于存储渲染结果。
渲染缓冲对象(RBO)是 OpenGL 提供的一种存储渲染结果的帧缓冲对象(FrameBuffer Object,FBO)附件,与帧缓冲对象(FBO)配合使用。
裁剪Scissor功能应用演示demo源码
裁剪Scissor功能应用演示demo源码
1、开发语言Kotlin
2、开发环境Android Studio
3、裁剪功能介绍
详解:https://blog.youkuaiyun.com/github_27263697/article/details/143380432?sharetype=blogdetail&sharerId=143380432&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
裁剪是OpenGL中提⾼渲染的⼀种方式,只刷新屏幕上发生变化的部分,OpenGL 允许将要进⾏渲染的窗⼝中指定⼀个裁剪框。
基本原理:⽤于渲染时限制绘制区域,通过此技术可以在屏幕(帧缓冲)指定一个矩形区域。启⽤剪裁测试之后,不在此矩形区域内的片元被丢弃,只有在此矩形区域内的片元才有可能进入帧缓冲。因此实际达到的效果就是在屏幕上开辟了了一个小窗⼝,可以再其中进行行指定内容的绘制。
模板测试StencilTest功能应用演示demo源码
模板测试StencilTest功能应用演示demo源码
详解:https://blog.youkuaiyun.com/github_27263697/article/details/143401842?sharetype=blogdetail&sharerId=143401842&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
在OpenGL中,模板测试(Stencil Testing)是一种用于控制像素绘制的方式。它允许开发者根据模板缓冲区(Stencil Buffer)中的值来决定是否绘制某个像素。模板测试通常用于实现一些高级的图形效果,如阴影、反射、折射等。
当片段着色器处理完片段之后,模板测试(Stencil Test) 就开始执行了,和深度测试一样,它能丢弃一些片段。仍然保留下来的片段进入深度测试阶段,深度测试可能丢弃更多。模板测试基于另一个缓冲,这个缓冲叫做模板缓冲。
Android OpenGL 立方体贴图应用举例-天空盒演示demo源码
Android OpenGL 立方体贴图应用举例——天空盒演示demo源码
立方体贴图详解见:https://blog.youkuaiyun.com/github_27263697/article/details/143738612
一、概念
二、如何使用
1、创建立方体贴图
2、生成纹理
3、设置纹理环绕和过滤方式
4、激活和绑定立方体贴图
三、应用举例——天空盒
1、概念
2、加载天空盒
3、显示天空盒
4、优化
四、应用举例——环境映射:反射
五、应用举例——环境映射:折射
六、应用举例——动态环境贴图
Android OpenGL Texture纹理附件关联到FBO演示demo源码
Android OpenGL Texture纹理附件关联到FBO演示demo源码
1、开发语言kotlin
2、开发环境Android studio
3、Texture纹理附件关联到FBO
详解:
https://blog.youkuaiyun.com/github_27263697/article/details/143058770
FBO 虽然也叫缓冲区对象,但是它并不是一个真正的缓冲区,因为 OpenGL 并没有为它分配存储空间去存储渲染所需的几何、像素数据,我们可以认为它是一个指针的集合,这些指针指向了颜色缓冲区、深度缓冲区、模板缓冲区、累积缓冲区等这些真正的缓冲区对象,我们把这里的『指向关系』叫做附着,而 FBO 中的附着点类型有:颜色附着、深度附着和模板附着。这些附着点指向的缓冲区通常包含在某些对象里,我们把这些对象叫做附件,附件的类型有:纹理(Texture)或渲染缓冲区对象(Render Buffer Object,RBO)。
Android OpenGL 图片Texture渲染render 演示demo
Android OpenGL 图片Texture渲染render 演示demo
1、开发语言:Kotlin
2、开发环境:Android studio
3、图片纹理渲染简介
OpenGL图片纹理渲染是指在3D图形渲染过程中,将2D图片(纹理)映射到3D物体表面的过程。这个过程主要通过以下几个步骤实现:
创建纹理对象:通过调用OpenGL的接口,创建一个纹理对象。纹理对象是一个用于存储纹理数据的缓冲区1。
加载纹理数据:将图像数据加载到纹理对象中。在Android中,可以使用Bitmap类加载图片,并将其转换为OpenGL的纹理数据1。
设置纹理参数:为纹理对象设置一些参数,例如过滤方式、边缘处理等。
纹理映射是将2D纹理映射到3D物体上的过程。
Android OpenGL EBO索引缓冲区对象应用演示demo
Android OpenGL EBO索引缓冲区对象应用演示demo
1、EBO索引缓冲区对
详解:https://blog.youkuaiyun.com/github_27263697/article/details/143058770
2、开发环境:Android studio
3、开发语言:Kotlin
4、EBO索引缓冲区对象——简介
IBO/EBO, Element Buffer Objec,索引缓冲区对象。EBO用于存储顶点的索引数据,允许通过索引引用顶点,避免重复存储相同的顶点数据。
索引缓冲区和顶点缓冲区类似,也是显存上的一段内存,只不过上面的数据用处不同,索引缓冲区故名思义里面的数据是用于索引,主要作用是用于复用顶点缓冲区里的数据。
使用的GL_ELEMENT_ARRAY_BUFFER表示索引缓冲区。
EBO提高了渲染效率,减少了顶点数据的冗余,尤其在渲染复杂网格时,通过索引复用顶点能够显著节省内存。
Android OpenGL混合(Blend)半透明功能应用演示demo
Android OpenGL混合Blend功能应用演示demo
1、Blend混合半透明功能
详解如下:
https://blog.youkuaiyun.com/github_27263697/article/details/141888912
2、开发工具android studio
3、开发语言kotlin
4、混合(Blend)概念
混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。
混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。
假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。
Android OpenGL VAO顶点数组对象应用演示demo
Android OpenGL VAO顶点数组对象应用演示demo
1、VAO顶点数组对象
详解如下
https://blog.youkuaiyun.com/github_27263697/article/details/143058770?sharetype=blogdetail&sharerId=143058770&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
2、开发语言kotlin
3、开发环境Android studio
4、概念
VAO顶点数组对象。
VAO是OpenGL ES 3.0之后才推出的新特性, 所以在使用VAO前需要确定OpenGL ES的版本是否是3.0之后的版本。
顶点数组对象可以像顶点缓冲对象那样被绑定,任何随后的顶点属性调用都会储存在这个VAO中。这样的好处就是,当配置顶点属性指针时,你只需要将那些调用执行一次,之后再绘制物体的时候只需要绑定相应的VAO就行了。这使在不同顶点数据和属性配置之间切换变得非常简单,只需要绑定不同的VAO就行了.
Android OpenGL VBO顶点缓冲区对象应用演示demo
Android OpenGL顶点缓冲区对象应用演示demo
1、VBO顶点缓冲区对象
详解如下:
https://blog.youkuaiyun.com/github_27263697/article/details/143058770?sharetype=blogdetail&sharerId=143058770&sharerefer=PC&sharesource=github_27263697&spm=1011.2480.3001.8118
2、开发语言kotlin
3、开发环境Android studio
4、VBO顶点缓冲区概念
VBO(Vertex Buffer Object)顶点缓冲对象,是在显卡存储空间(即,GPU内存)中开辟的一块区域,在显卡存储空间中开辟一块区域,用于存放顶点的各类属性信息。如顶点坐标、纹理坐标、顶点颜色等数据。
在渲染时直接从显VBO去取数据而不必与CPU进行数据交换。
Android OpenGL粒子系统演示demo
开发语言Kotlin
开发环境Android studio
粒子系统简介
。粒子是一种基本的图形元素,它们通常被表示为一组点。通过巧妙地组合一些基础的物理效果,我们能够创造出许多令人惊叹的视觉效果。想象一下,我们可以模拟一个水滴从喷泉中喷出,然后优雅地落回地面的场景。同样,我们也能模拟出逼真的下雨效果,或者制作出爆炸和烟花的动画。粒子系统的数学原理相对简单,这使得它们很容易被集成到任何三维场景中。