- 博客(32)
- 收藏
- 关注
原创 Android OpenGL ES 视频应用开发教程目录
基础知识章节完成情况0. 技术背景√1. 基础概念√2. 架构体系√3. 几何图形绘制√4. 正交投影√5. 渐变色√6. 顶点索引方式√7.1 纹理绘制√7.2 多纹理绘制√8. FBO离屏渲染√9.1 基础颜色滤镜√9.2 位置滤镜√EGL○坐标系统&图形变换○...
2018-08-31 16:55:30 183
原创 NDK开发填坑录
一. 编译失败1. 缺少平台支持No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabiNo toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideab...
2022-07-11 11:33:38 514
原创 Android Studio & IDEA工程文档编写
不知道大家有没有这样的需求:项目工程想规范化,有一些关键类的说明文档;或者刚接手了一个不堪入目,没有注释的工程,每次找一些关键类的时候,总是靠记忆或者其他笔记去打开。今天在梳理接手的工程时候,想让写一个ReadMe文档,并且可以跳转打开一些文件,比如某些关键类。先看效果:这个效果很大地满足了我的需求。为了达到这个效果,需要具备2个知识点:Markdown语法: 不了解同学的可以百度下,不到10分钟你就可以成为一个Markdown入门选手跳转文件链接的配置Markdown配置与语法安装.
2021-02-03 21:14:36 364
原创 Android Studio插件推荐
工欲善其事,必先利其器1. ADB Idea:ADB命令快捷操作能快速实现多种ADB常用的功能:命令说明ADB Uninstall App卸载应用ADB Kill App杀死进程ADB Start App启动应用ADB Restart App杀死应用后,再重启应用ADB Clear App Data清除应用数据ADB Clear ...
2020-05-07 10:36:46 356
原创 Unity自动化打包Android APK
零. 前言最近在做Unity开发,有个任务是通过Jenkins实现自动化打包Unity游戏成Android APK的需求,所以在完成任务后,梳理成了一个最简单的教学,也把遇到的坑和大家分享。若需要Jenkins打包,指需要通过Jenkins调用下面的命令即可实现基础需求。一. 原理打开Unity程序 → 打开指定工程 → 调用Unity的BuildPipeline类进行打包二. 打包...
2020-04-22 18:33:38 1232
原创 Android按钮点击缩放效果
刚刚在做点击缩放的效果,虽然5、6年前就已经实现过一版了,但是技术的迭代更新,实现方案也进化了,相比之前(自定义View,不同类型的系统组件都要封装一次)简洁太多了,所以拿出来和大家分享下。效果TextView、Button、LinearLayout等等所有View的子类,都可以兼容。addClickScale.gif代码关键部分/** * 添加点击缩放效果 */...
2019-11-09 17:17:24 2917 4
原创 Android OpenGL ES 8.FrameBuffer离屏渲染
作用FrameBuffer Object,也称FBO,离屏渲染,可以摆脱屏幕的束缚,在后台做图像处理。理解FrameBuffer和Texture绑定,FrameBuffer犹如画板,而Texture犹如画纸,我们在上面画东西,画完后,我们可以拿Texture去绘制到其他地方上面。(本文重点:这个是我个人对FBO的理解,也是帮助我去使用它的方式。如果有更好的理解方式,可以留言沟通。)代码...
2019-08-05 16:18:12 304
原创 Android OpenGL ES 11.1 相机
课程介绍本节课主要讲解如何通过OpenGL将相机获取到的内容渲染到画面上,而拍摄、录像、相机API则不是本节课的重点。相机画面的渲染和视频的渲染都比较接近,OpenGL部分基本一致,主要是流程上需要对应处理下,所以,直接看本章节的朋友,可以先看下上一章Android OpenGL ES 10.1 视频播放器。一. 视频播放器搭建1. 视图容器界面视图容器依旧使用GLSurfaceView...
2019-04-23 11:37:17 146
原创 Android OpenGL ES 10.1 视频播放器
课程介绍在学习了前面章节OpenGL基础知识后,读者应该具备了复杂界面特效、图片高效处理的开发能力。接下来的章节主要转向Android视频应用开发中的OpenGL ES部分。一. 视频播放器搭建1. 视图容器界面视图容器依旧使用GLSurfaceView,绘制方式是RENDERMODE_CONTINUOUSLY持续绘制的模式(课程演示,减少框架部分,相应的有不必要的性能损耗)。2. 必要...
2019-03-11 18:28:24 339
原创 音视频开发基础知识
音视频入门前,需要了解下一些基础概念,不必死记硬背,可之后再补再翻阅。一. 颜色模式RGBRGB颜色模型的主要目的是在电子系统中检测,表示和显示图像,比如电视和计算机,但是在传统摄影中也有应用。基础的部分不过多描述,更多内容点击标题见维基百科。YUVY'UV的发明是由于彩色电视与黑白电视的过渡时期。黑白视频只有Y(Luma,Luminance)视频,也就是灰阶值。到了彩色电视规格的...
2019-03-05 17:15:58 243
原创 Android OpenGL ES 9.2 位置滤镜
课程介绍本节介绍如何改变改变片元着色器内的坐标位置参数,从而让渲染的内容动起来或者达到一些特殊的效果。位置滤镜效果实现讲解本节课的核心原理是修改采样的纹理坐标。这是之前课程中的纹理坐标图,纹理默认传入的读取范围是(0,0)到(1,1)的范围内读取颜色值。ST纹理坐标如果对读取的位置进行调整修改,那么就可以做出各种各样的效果。比如缩放动画,让读取的范围改成(-1...
2019-01-21 16:04:59 166
原创 Android OpenGL ES 9.1 基础颜色滤镜
课程介绍本节介绍滤镜基础框架+基础颜色滤镜。课程效果.gif基础框架这节课我们开始讲滤镜的开发,为了便于展示各种滤镜的效果,设计了一套简易的框架,分两部分。1. 滤镜的基类主要的生命周期方法如下:onCreated:创建的时候onSizeChanged:滤镜尺寸改变onDraw:绘制每一帧onDestroy:销毁,用于回收无用资源而实现基础滤镜的时候,只需要复写...
2019-01-15 16:01:50 444
原创 Android OpenGL ES 7.2多纹理绘制
基本原理1. 多次绘制,单纹理单元之前我们在第三节基础图形绘制的时候有推导出一个结论:上面的示例图中,在onDrawFrame里,同时绘制了点、线、三角形,也就是多次调用glDrawArrays,并且绘制出来了。 我们暂时定义glDrawArrays是进行一次图元组装,也就是绘制一个图层,那么一次onDrawFrame只绘制一帧,而这一帧可以绘制多种图元,多个图层。 也就是:一次只绘制一帧...
2018-11-09 14:25:23 294
原创 Android OpenGL ES 7.1纹理绘制
基本原理与渐变色接近,但有些区别:渐变色:光栅化过程中,计算出颜色值,然后在片段着色器的时候可以直接赋值纹理:光栅化过程中,计算出当前片段在纹理上的坐标位置,然后在片段着色器的中,根据这个纹理上的坐标,去纹理中取出相应的颜色值。纹理坐标OpenGL中,2D纹理也有自己的坐标体系,取值范围在(0,0)到(1,1)内,两个维度分别是S、T,所以一般称为ST纹理坐标。而有些时候也叫UV坐标。...
2018-11-09 14:21:27 161
原创 图像处理学习资料
RGB、YUV和HSV颜色空间模型RGB立方体模型RGBYUV:其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。HSV:HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightne...
2018-11-07 16:05:43 125
原创 Android OpenGL ES 6.索引法绘制
前言之前我们绘制的都是一些简单的基础图形,本章节我们绘制一个复杂些的形状,如下。索引绘制图中的数字是后期标注,并非GL绘制。根据之前学的知识,我们知道,这个图形可以分解为4个三角形,用数字代表顶点序号,分别是0, 1, 20, 2, 30, 4, 13, 2, 5在程序中,每个顶点对应x、y坐标,那么我们的顶点数组数据就需要如下声明:private stat...
2018-11-06 15:57:25 172
原创 Android OpenGL ES 5.渐变色
前言之前我们绘制的图形都是只有一个颜色,而本章节我们绘制一个正方形,并且给图形上渐变色,让简单的图形变得绚丽些。原理在基础概念的课程中,我们讲解了渲染管道的流程,现在我们再回顾一下。OpenGL ES开发重点之前的章节我们都了解使用过了uniform、attribute这两个限定符,现在我们再了解下varying这个限定符。attritude:一般用于各个顶点各不相同的量...
2018-11-06 15:51:14 240 1
原创 Android OpenGL ES 4.正交投影
前言之前我们的所有图形效果,都是变形的,比如我们原本绘制的是长宽比是1:1的,结果在手机屏幕上的效果展示却是长方形。那么,本节课我们通过正交投影来解决这个问题。本节课主要讲解如何去编写相关代码来解决问题,而具体的原理、概念、GL坐标体系变换等暂不做深入说明,会在之后的课程在讲解。归一化设备坐标在OpenGL中,我们要渲染的所有物体都要映射到x轴、y轴、z轴上的[-1, 1]范围内,这个范围...
2018-09-14 16:18:40 127
原创 Android OpenGL ES 3.基础图形、多边形的绘制
基础图形绘制之前讲解过,OpenGL ES中,只提供了3种基本图形:点、线、三角形。而其他我们熟知的图形,都是基于这3种基本图形处理拼接合成的。那么本章节我们先从OpenGL中给我们提供的3种基础图形讲起,再介绍下其他图形的绘制。基础图形绘制API/** * 使用顶点数据绘制图形 */ GLES20.glDrawArrays(int mode, int first, int count...
2018-09-14 16:12:37 292
原创 Android OpenGL ES 2.基本框架-Hello World
一.视图组件 GLSurfaceViewAndroid上用于显示OpenGL视图,一般是使用GLSurfaceView,一个继承自SurfaceView的组件。它的渲染绘制在一个单独的线程中,而非主线程。GLSurfaceView一般是结合一个GLSurfaceView的内部接口类Renderer来使用。Renderer类负责渲染图形图像,而GLSurfaceView负责触摸事件等逻辑的处理...
2018-08-31 17:22:37 173
原创 Android OpenGL ES 1.基础概念
基本图形从上面的渲染流程我们可以知道,GL中是先绘制好图形的轮廓,再将颜色、图案绘制到这个轮廓上的,所以,能画什么样的图形至关重要。OpenGL ES中,只提供了3种基本图形:点、线、三角形。而其他我们熟知的图形,都是基于这3种基本图形处理拼接合成的。2.0版本渲染流程OpenGL展示到屏幕上的流程整体上,我将7个流程步骤拆解成了3大部分:确定顶点的位置,通过这些顶点绘制出指定的图形...
2018-08-31 17:13:19 120
原创 Android OpenGL ES 0.简介
OpenGL是什么OpenGL是一个跨平台的软件接口语言,用于调用硬件的2D、3D图形处理器。由于是只软件接口,所以具体底层实现依赖硬件设备制造商。Android includes support for high performance 2D and 3D graphics with the Open Graphics Library (OpenGL®), specifically,...
2018-08-31 16:59:32 146
原创 如果你更新了Android Studio
更新Android Studio是一件非常恐怖的事情,因为,你可能会和我一样,被各种莫名其妙的事情折腾一个下午,并且,这些东西,可能由于各种情况引起,在Google上不一定能直接搜到解决方法。本文用于记录升级过程中遇到的问题。1. Kotlin版本问题No cached version of org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2 availab...
2018-06-26 19:10:24 153
原创 C盘学习资料
掘金:高质量文章,开发者https://juejin.im/timelineifanr爱范儿:科技资讯平台http://www.ifanr.com/AppSo:应用资讯平台,应用使用技巧(小白)http://www.ifanr.com/app少数派:应用资讯平台,应用使用技巧(极客)https://sspai.com/Gank.io:代码家的开发资讯博客:Android、ios、前...
2018-06-05 10:58:49 94
原创 Android开发工具
代码编程在线Java运行工具http://www.beta.browxy.com/Json在线解析格式化https://www.json.cn/Github库命令行直接编译安装,无需Android Studio配置工程https://github.com/cesarferreira/dryrunChrome插件OctoTree : Github目录导航栏https://chro...
2018-03-07 14:21:00 69
原创 音视频处理学习资料
雷霄骅qqchenjian318知心猛男基础知识音视频基础概念H264视频编码介绍技术方案微信 Android 视频编码爬过的那些坑ImageReader - OpenGL最高效的像素拷贝方式...
2018-01-26 15:21:48 152
原创 Android OpenGL ES学习资料
Android OpenGL ES 视频应用开发教程目录官网资料khronos2.0版快速参考卡片2.0版API参考文档书籍推荐《OpenGL ES 2 for Android: A Quick-Start Guide》(英文原版电子书)《OpenGL ES应用开发实践指南 Android卷》(中文版):已绝版,请淘宝系统教程Android官方指导Android ...
2017-11-09 18:03:57 123
原创 Android程序设计探索:MVP与模块化
一. MVP0. 背景最早接触到MVP这种设计模式,是在14年读《打造高质量Android应用:Android开发必知的50个诀窍》一书中了解到,而之后也逐步尝试去使用,至今体验下来,它不是一个可以完美到可以生搬硬套到各个场景的模式,正确地使用才能最好地发挥它的作用。1. 作用简介分层:将代码分层,抽取出数据、模型、界面。复用:对V层或者P层接口的多种实现。2. 作用-分层我们...
2017-06-29 16:21:30 174
原创 Android Studio SVN Locked问题.md
问题现象由于WIFI多次故障,导致SVN提交出错,提示。Error:svn: E155004: Working copy '/Users/AndroidStudioProjects/Project' lockedsvn: E155004: '/Users/AndroidStudioProjects/Project' is already locked.解决方案按照网上的解决方式,去到....
2017-05-25 14:50:38 98
原创 Android读文笔记
单例总结 - 腾讯BuglyEnum枚举才是最好的单例实现方式,解决了懒加载、反序列化、反射、克隆、性能等问题。需要JDK1.5以上,但大部分的Android设备都是满足需求的,所以推荐。相比于静态方法、变量,单例的好处在于内存、效率、加载时机控制、业务状态。Application传递数据会造成数据丢失,还是乖乖的bundle、onSaveInstanceState吧。之前有文章说过...
2017-03-14 16:18:08 57
原创 Activity你该懂的
本文不适合入门新手,适合进阶者阅读。0. 提问onStart和onResume有什么区别?onPause和onStop有什么区别?打开一个新Activity时的回调顺序?4种启动模式的含义?任务栈的作用?Activity一定会放入其taskAffinity属性所声明的栈中吗?一. 生命周期1. 顺序Activity Lifecycle2. 详细作用onCre...
2017-02-13 11:50:27 84
原创 Android版本历史
API版本名Codename代号备注11.021.1Petit Four花色小蛋糕31.5Cupcake纸杯蛋糕41.6Donut甜甜圈52.0Eclair松饼62.0.1Eclair松饼72.1Eclair松饼82.2 - 2.2.3Froyo冻酸奶92.3 ...
2016-12-29 00:29:16 60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人