随笔分类 -  Android

摘要:ksp是官方提供的用来解析Kotlin文件的工具,这里我用它来实现解析Kotlin项目,自动生成UML类图的功能(如上图所示)。 网上包括外网所有的ksp介绍都是在Android Studio中使用通过gradle配置,因为我想用ksp解析任意项目,而不是集成到某个项目里面,所以我研究了一下通过命令 阅读全文
posted @ 2023-02-06 17:26 rome753 阅读(572) 评论(0) 推荐(0) 编辑
摘要:1. 标准方式 直接实例化对象 view.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View?) { v?.getTag() } }) 2. lambda表达式 方法只有一个参数的时候可以使用 阅读全文
posted @ 2022-07-19 20:22 rome753 阅读(767) 评论(0) 推荐(0) 编辑
摘要:一些APP需要新手引导功能,如下图所示: 一个黑色半透明的浮层盖住页面的大部分,需要引导用户操作的地方突出显示。实现这种效果有两种思路: 将要突出显示的地方做成图片,放到下层页面相同的位置,实现伪透明效果。这样的缺点是,如果图片较大或者是动画会占用空间,或者要突出的内容是可变的也不合适。 在View 阅读全文
posted @ 2022-07-19 20:21 rome753 阅读(444) 评论(0) 推荐(0) 编辑
摘要:之前写过一篇使用RecyclerView,一句代码就够了,介绍了一个功能较完善的RecyclerView框架的实现。该框架虽然代码不多,但是仍然不够简洁,耦合度也比较高,难以扩展。现将里面的核心部分 OneAdapter 抽取出来,去掉不必要的泛型、类型判断和其他方法,以实现最简单、通用性和扩展性最 阅读全文
posted @ 2022-07-19 20:21 rome753 阅读(531) 评论(0) 推荐(0) 编辑
摘要:前言 RecyclerView出来有好几年了,它的重要性不言而喻。然而RecyclerView只提供了基本的View复用功能,相关功能如刷新、点击等都需要开发者自己实现,每个项目实现一遍RecyclerView功能集成又无必要,因此出现了许多RecyclerView封装的“轮子”,Github上一搜 阅读全文
posted @ 2022-07-19 20:20 rome753 阅读(136) 评论(0) 推荐(0) 编辑
摘要:新版使用方法 Github地址:https://github.com/rome753/ActivityTaskView 安装ActivityTaskView release app,启动并给予悬浮窗权限 https://github.com/rome753/ActivityTaskView/rele 阅读全文
posted @ 2022-07-19 20:19 rome753 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:安卓中使用相机从来就不是一件容易的事。 Camera1要自己管理Camera相机实例,要处理SufraceView相关的一堆东西,还有预览尺寸跟画面尺寸的选择,页面生命周期切换等等问题。。。 后来推出了Camera2,从官方Demo 就上千行代码来看,Camera2并不解决用起来复杂的问题,它提供了 阅读全文
posted @ 2022-07-19 20:19 rome753 阅读(827) 评论(0) 推荐(1) 编辑
摘要:简介 Activity是四大组件中最重要的一个,也是平时开发中接触最多的。与Activity启动行为相关的就是它的启动模式,Standard、SingleTop、SingleTask、SingleInstance这4种launchMode相信大家不陌生,如果不太熟悉可以看这里: https://ww 阅读全文
posted @ 2022-07-19 20:18 rome753 阅读(2403) 评论(0) 推荐(0) 编辑
摘要:在看Box2D游戏引擎时,发现了一个很有意思的液体引擎 LiquidFun ,它是Box2D的扩展。给Box2D加上了粒子系统,并且粒子能实现液体的特性。 LiquidFun Github是一个Google的开源项目,LiquidFun官网里面有很多有趣的演示和很多资料,包括它的原理PPT讲解:它其 阅读全文
posted @ 2022-07-18 18:06 rome753 阅读(359) 评论(0) 推荐(0) 编辑
摘要:之前写过一篇 Android YUV图像转换算法和检测工具,里面实现了YUV420的四种格式的相互转换,和与RGB之间的转换。因为是直接用CPU计算的,所以对CPU有一定的消耗和占用。这里我们用OpenGL实现GPU转换。 我们用相机作为YUV420图像输入,上一篇 Android OpenGLES 阅读全文
posted @ 2022-07-18 18:06 rome753 阅读(752) 评论(0) 推荐(0) 编辑
摘要:普通的OpenGL绘图时是绘制到当前帧上面,由于GL环境跟当前屏幕进行了关联,也就直接绘制到屏幕了。这样有两个问题:1. 如果有的帧计算得快,有的计算得慢,而屏幕刷新率是固定的,就会拖慢整体帧率;2. 在着色器里面只能处理当前位置的点,没办法处理当前点跟其他点的关系。 如果将OpenGL计算后的帧缓 阅读全文
posted @ 2022-07-18 18:05 rome753 阅读(383) 评论(0) 推荐(0) 编辑
摘要:小米手机播放音乐时锁屏页面可以设置音频可视化效果,这是用OpenGL绘制出来的,我们来实现一下。 首先简单分析一下原理: 图形的每一行代表一个声音片段,它就是一个一维数组,按照数值大小绘制不同的高度,就形成了一条“山脉”;获取到下一个声音片段后,将它绘制到下面一行,然后画面整体向上滚动就可以了。整体 阅读全文
posted @ 2022-07-18 18:05 rome753 阅读(710) 评论(0) 推荐(0) 编辑
摘要:OpenGL绘图一般是在主内存创建数据,计算后传给GPU内存,如果数据是频繁变化的,那么每一帧都要将数据用glBufferSubData方法复制到GPU。其实主内存数据可能是在一个固定的数组里,却要将这个数组反复复制到GPU。如果这个数组能放进GPU,在CPU计算完通知GPU刷新,就省去了复制的操作 阅读全文
posted @ 2022-07-18 18:04 rome753 阅读(187) 评论(0) 推荐(0) 编辑
摘要:https://github.com/android/media-samples 安卓官方的视频解码器示例 球形视频在全景视频、VR等领域有应用,原理是:解码视频获取每一帧图像,将图像用OpenGL渲染成球形展示出来。下面实现一个简单的Demo,分为三步:展示球体、解码视频、播放球形视频。 1 球体 阅读全文
posted @ 2022-07-18 18:04 rome753 阅读(415) 评论(0) 推荐(0) 编辑
摘要:https://www.jianshu.com/p/0b66c00d7073 iOS 计算和读取的例子 https://wiki.jikexueyuan.com/project/modern-opengl-tutorial/tutorial28.html PC上解释比较清晰的粒子系统 https:/ 阅读全文
posted @ 2022-07-18 18:03 rome753 阅读(290) 评论(0) 推荐(0) 编辑
摘要:在B站上偶然看到一个这样的鱼群模拟的视频,很有意思。大自然很多东西都是类似分形、群体涌现的模式。我们可以用OpenGL简单地模拟一下,先实现一个二维模型,再尝试扩展到三维。 相关资料: https://blog.csdn.net/liweizhao/article/details/82106886 阅读全文
posted @ 2022-07-18 18:03 rome753 阅读(115) 评论(0) 推荐(0) 编辑
摘要:https://developer.arm.com/documentation/100587/0100/compute-shaders/compute-shaders-example ARM官方文档里的简单计算Demo https://blog.csdn.net/koibiki/article/de 阅读全文
posted @ 2022-07-18 18:02 rome753 阅读(199) 评论(0) 推荐(0) 编辑
摘要:几年前写了一篇Android SurfaceView 多线程绘图,多线程计算分形图案绘制到屏幕上,这种并行运算更适合用GPU处理。目前手机GPU有几百乃至上千个ALU运算单元,简单地说,相当于一个几百核的处理器,那么处理速度也就比CPU开启多线程快多了。 那么我们用OpenGL来实现一下,效果如下: 阅读全文
posted @ 2022-07-18 18:02 rome753 阅读(473) 评论(0) 推荐(0) 编辑
摘要:相机处理是OpenGL一个重要的应用场景,因为OpenGL的主要工作是处理图像,而相机每秒生成几十帧图像,用GPU来处理再合适不过了。 至于Android CameraX和OpenGL的结合使用,网上有不少教程了,然而它们都有一个特点,就是给两者增加了不必要的耦合。由于两者本身架构都设计得非常好,实 阅读全文
posted @ 2022-07-18 18:01 rome753 阅读(838) 评论(0) 推荐(0) 编辑
摘要:WebRTC安卓端没有官方教程,甚至连API文档都没有。这是一件奇怪的事,毕竟WebRTC是Google开发的。目前官方文档和Demo都只有web端的,虽然写得简单易懂,整体用法也和安卓端相同,但是具体细节还是有巨大的差异。 当然,仔细找Google和Github上还是能找到一些不错的教程,我这里将 阅读全文
posted @ 2022-07-18 18:01 rome753 阅读(933) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示