自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (5)
  • 收藏
  • 关注

原创 Jetpack Compose入门详解(实时更新)

Jetpack Compose入门详解前排提醒🥯前言(Compose是什么)🧇1.实战准备一、优势与缺点🍞二、前四课🥐三、标准布局组件🥖1.Column2.Row3.Box四、xml和compose混合使用 + livedata数据绑定🥨1.xml和compose混合使用a.xml中使用composeb.compose中使用view2.livedata数据绑定五.compose结合navigation使用🥞1.集成导航2.传递参数3.深层链接.....

2022-05-04 15:59:53 15145 22

原创 Android WorkManager入门(二)

在当今快节奏的生活中,移动设备已经成为我们日常工作和生活不可或缺的一部分。然而,随着应用程序的复杂性不断增加,开发人员面临着一个重要的挑战:如何在后台执行任务,而不会影响用户的体验和设备的性能?在过去,开发人员通常使用传统的后台服务或定时任务来解决这个问题。然而,这些方法往往很复杂,需要大量的代码和资源,并且很难管理和调度任务。幸运的是,谷歌最近推出了一个新的解决方案:安卓WorkManager。安卓WorkManager是一个灵活、强大的后台任务调度库,旨在帮助开发人员轻松管理和执行后台任务。

2024-01-18 13:11:11 1301

原创 Android WorkManager入门(一)

在当今快节奏的生活中,移动设备已经成为我们日常工作和生活不可或缺的一部分。然而,随着应用程序的复杂性不断增加,开发人员面临着一个重要的挑战:如何在后台执行任务,而不会影响用户的体验和设备的性能?在过去,开发人员通常使用传统的后台服务或定时任务来解决这个问题。然而,这些方法往往很复杂,需要大量的代码和资源,并且很难管理和调度任务。幸运的是,谷歌最近推出了一个新的解决方案:安卓WorkManager。安卓WorkManager是一个灵活、强大的后台任务调度库,旨在帮助开发人员轻松管理和执行后台任务。

2023-12-19 13:29:17 1011

原创 Android Activity收不到bundle消息(singleInstance,singletop模式)

本文主要讲述了在使用singleInstance模式下,无法接收到传递的Bundle数据的问题,并提供了解决方案。首先介绍了singleInstance模式的启动机制,解释了为什么会出现无法接收数据的情况。然后介绍了onNewIntent方法,该方法在singleTop和singleInstance模式下都可以使用,在该方法中调用setIntent可以获取到新的Intent数据。

2023-12-18 10:36:42 1045

原创 Android gradle配置jar包加载顺序及延伸知识

项目涉及到了要加载framework.jar,需要将libs文件夹下的framework.jar的依赖在原生framework依赖之前加载,触及到知识盲区,学习并记录下来。项目的jdk环境:17.0.6以上就是今天要讲的内容,本文仅仅简单介绍了Android gradle配置jar包加载顺序及延伸知识。

2023-12-13 17:40:50 1462

原创 TextToSpeech类学习和简单封装

业务涉及到对接TTS相关,所以简单学习下如何使用。我们翻译一下:从文本中合成语音,以便立即播放或创建声音文件。TextToSpeech 实例只能在完成初始化后用于合成文本。实现 TextToSpeech.OnInitListener 以通知初始化完成。当您使用完TextToSpeech实例时,请调用shutdown()方法以释放TextToSpeech引擎使用的本机资源。使用文本到语音的应用程序的目标Android 11应声明TextToSpeech。然后要在清单文件做以下申明。

2023-12-01 15:32:36 2186

原创 开源播放器GSYVideoPlayer + ViewPager2 源码解析

本文介绍GSYVideoPlayer源码中关于ViewPager2 +GSYVideoPlayer 实现的滑动播放列表的实现原理。本文主要介绍了开源播放器GSYVideoPlayer和ViewPager2的结合使用,实现滑动播放列表的原理。通过对ViewPager2Activity、RecyclerItemNormalHolder等类中的代码解析,了解了如何在ViewPager2中播放视频,关键代码为gsyVideoOptionBuilder。

2023-11-29 11:06:39 1743

原创 android viewpager 禁止滑动

本文介绍了本人有一个相关的需求需要实现这一功能,在过程中发现自己之前没做过,然后记录下实现这一功能的过程及相关的小知识点。然后把,就不出意外的出意外了,测试反馈说我一点一点的滑动,还是可以话,我试了下确实是这样,但是日志又打印的确实是true,表示确实把事件已经拦截了,我一下子脑子卡主了,想了好一会才反应过来。顺便带大家复习一下setOnTouchListener和onTouchEvent的区别。职责不同:onTouchEvent是View类中的一个方法,用于处理由View对象接收到的触摸事件。

2023-11-29 10:10:19 2706

原创 手势监听类GestureDetector Listener源码解析

在写自定义view的时候,涉及到了手势监听这块的知识,补充下知识营养本文介绍了Android手势监听类GestureDetector,包括其基本功能和回调方法OnGestureListener、OnDoubleTapListener、OnContextClickListener及其实现类SimpleOnGestureListener。通过实现这些回调方法,开发者可以监听和处理用户的手势操作,从而实现手势识别和响应。

2023-11-27 18:03:52 1209

原创 Android 单元测试初体验(二)-断言

当初在学校学安卓的时候,老师敢教学进度,翻到单元测试这一章节的时候提了两句,没有把单元测试当重点讲,只是说我们工作中几乎不会用到,果真在之前的几年工作当中我真的没有用到,工作中都没有写过单元测试,后来我自己也下意识的忽略了这一块,直到听说现在这家公司后面会要求单元测试用例覆盖率达到百分之七十。我开始慌了,单元测试什么的,国内真的不太重视,这不,抽个周末简单学习下。对于安卓的单元测试的话,现在新建一个项目可以看到都是用的Junit4,ps:涉及Compose的单元测试本文不会过多解释。这是官网前一篇。

2023-11-27 17:44:05 1235

原创 Android 单元测试初体验

当初在学校学安卓的时候,老师敢教学进度,翻到单元测试这一章节的时候提了两句,没有把单元测试当重点讲,只是说我们工作中几乎不会用到,果真在之前的几年工作当中我真的没有用到,工作中都没有写过单元测试,后来我自己也下意识的忽略了这一块,直到听说现在这家公司后面会要求单元测试用例覆盖率达到百分之七十。我开始慌了,单元测试什么的,国内真的不太重视,这不,抽个周末简单学习下。对于安卓的单元测试的话,现在新建一个项目可以看到都是用的Junit4,ps:涉及Compose的单元测试本文不会过多解释。

2023-11-26 17:20:32 1340

原创 网络带宽基础知识简单介绍

最近一些需求涉及到了网络带宽,整理后有了本文网络带宽是指在单位时间内能够传输的数据量,是网络通信的能力。它受到多种因素的影响,包括网络设备的性能、网络协议、信号质量、网络拓扑结构、网络负载和网络管理策略等因素。常用的网络带宽单位有bps、kbps、Mbps和Gbps,其中1 Byte等于8 bits。在计算机领域中,数据存储和传输的最小单位是bit,时间的基本单位是second,因此网络带宽的单位是bit/s。在使用网络带宽时,需要根据实际情况综合考虑多种因素,以便更好地利用和管理网络带宽。

2023-11-08 14:49:28 642

原创 安卓 车轮视图 WheelView kotlin

有个需求涉及到类似这个视图,于是在网上找了个轮子,自己改吧改吧用,拿来主义当然后,但做事不仅要知其然,还要知其所以然,所以拿来用的同时还要理解。于是就有了本文。主要还是考查自定义view相关能力。

2023-11-08 14:30:49 919

原创 网络测试工具—— iperf2 安卓APK 下载 及简单使用

加载局域网图片加载不出来,要测试一个安卓设备的带宽,所以使用到了iperf2本文介绍了一款网络性能测试工具——iperf2,在安卓设备上可以通过下载APK进行使用。使用步骤包括将一个设备作为服务端,另一个设备作为客户端接收数据,通过命令启动测试并查看测试结果。该工具可以测量TCP和UDP带宽质量,并可报告带宽、延迟抖动和数据包丢失等信息。

2023-11-07 15:28:44 3092 1

原创 Snackbar使用介绍及自定义

有个UI要显示自定义样式的toast,并居中,然后我就去看toast的源码,发现toast在新版本不支持一些设置了,并推荐使用Snackbar,于是就有了这篇文章本文介绍了什么是Snackbar以及如何使用这个轻量级的通知组件。在简单使用方面,提供了一个在用户点击按钮后显示Snackbar的示例,同时演示了如何在Snackbar中添加动作按钮。在进阶使用方面,文中详细说明了如何自定义Snackbar的样式,包括居中显示、更改背景和文本样式等。最终,实现了一个类比自定义toast的Snackbar。

2023-11-01 14:36:32 1129

原创 开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化

本文介绍,开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化本文介绍了开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化。首先介绍了GSYVideoPlayer的特点和优缺点,接着详细介绍了其简单使用的步骤和常用代码。最后,本文重点介绍了如何对GSYVideoPlayer播放rtsp流进行优化,在此过程中,介绍了一些常见的设置项,最终达成了延时降低的目的。

2023-11-01 10:02:09 3899 2

原创 @CallSuper注解方法学习

总之,@CallSuper注解可以帮助开发者确保在重写父类方法时调用了父类方法,以防止潜在的错误。在使用该注解时,应该记住它只能用于至少被一个子类重写的方法上。

2023-10-27 17:29:32 372

原创 安卓 实现60s倒计时的CountDownTimer(小坑)

前段时间写倒计时没有用线程,想换一种实现方式结果踩了个小坑,特此记录。本文介绍了 Android 开发中常用的 CountDownTimer 类,用于实现倒计时功能,包括代码示例和小坑的点。需要注意的是,CountDownTimer 有一定的误差,需要注意及时取消,以避免内存泄漏和空指针问题。参考CountDownTimer使用心得及总结。

2023-10-24 07:00:00 843

原创 安卓富文本部分高亮及点击事件

富文本其实不是很常用,但有遇到了过后使用很方便的场景,例如免责声明。这时候就很重要了,前段时间遇到了,自己重新整理了下方便以后找本文主要介绍了安卓富文本的实现方式。第一种是使用html格式的富文本,需要先创建一个html文件,然后使用WebView加载该文件以显示富文本。第二种是使用SpannableString,需要创建一个SpannableString对象,并设置需要高亮或点击的部分的起始和结束位置以及对应的点击事件。在设置完富文本后,需要将其设置到TextView或其他文本控件中以显示效果。

2023-10-20 14:12:58 495

原创 RecyclerView中ItemDecoration的基础,粘性头部及点击事件

在工作中遇到ItemDecoration相关需求,发现自己以前学习的太过粗糙,特此重新学习记录相关知识。本文介绍了RecyclerView中ItemDecoration的相关方法,从基础的onDraw()和getItemOffsets()到进阶的onDrawOver(),最后还实现了ItemDecoration的点击事件的监听。

2023-10-18 09:52:55 411

原创 Compose Canvas基础(2) 图形转换

阅读本文需要一定compose基础,如果没有请移步Jetpack Compose入门详解(实时更新)本文介绍Compose Canvas基础,介绍Canvas可组合项绘制的图形的转换相关api。drawArc(drawArc(效果如下:需要讲解的是inset()方法,它有四个参数horizontal-插入左右边界的像素数。默认为零vertical-插入上边界和下边界的可选像素数。默认为零block-lambda,用于将图形包裹起来的lambda。

2023-10-17 18:06:24 279

原创 Android 自定义view 圆形进度条

先来看看效果,大概要实现这么一个圆形的进度条本文介绍了如何实现一个圆形进度条的自定义 View,并分析了需要实现的基本要素,包括画笔、弧度和圆弧的位置。最后给出了完整的代码。

2023-10-17 15:43:52 277

原创 Compose Canvas基础(1) drawxxx()绘制方法

阅读本文需要一定compose基础,如果没有请移步Jetpack Compose入门详解(实时更新)本文介绍Compose Canvas基础,介绍Canvas可组合项依赖的原理和绘制相关的内置api。

2023-10-05 16:13:41 451

原创 Android LiveData 介绍

本系列根据官网介绍Jetpack中的数据通信组件,本文介绍LiveData。在介绍LiveData之前,我们需要知道安卓官方推荐我们在viewmodel中处理业务或者数据的一些运算和网络请求,并通过观察数据的变化,来通知activity或者fragment数据更新。以上就是今天要讲的内容,本文简单介绍了LiveData是什么及其使用,通过创建观察更新六字口诀初步掌握LiveData的使用。

2023-09-30 19:27:19 761

原创 不忘初心,方得始终(730天创作纪念日)

刚毕业的我无疑是一个小白,一个fastjson版本的错误让我直接原地踏步了两三天,当时好不容易从GitHub上找到了问题的源头,非常高兴的将这件事记录下来,成就感满满,从此把写博客当成自己的技术笔记,踏上了这条写博客的分享路。安卓使用fastjson解析带BigDecimal参数的实体类报错java.lang.NumberFormatException: For input string:乱码…

2023-09-27 10:27:47 101

原创 Compose的一些小Tips - 可组合项的绘制

本系列介绍Compose的一些常识,了解这些tips并不会让人摇身一变成为大佬,但可以帮助到一些学习Compose的安卓开发者避免一些误区,也是对Compose入门详解中遗漏的一个补充。本文介绍可组合项的绘制。

2023-09-20 14:36:03 120

原创 面向使用者的git与gerrit相关笔记

本文是介绍什么是gerrit和工作中git与gerrit相关的命令来避免一些提交代码的坑和很多公司常用的代码库gitlab或者什么华为云阿里云不同,Gerrit更侧重于review,而正因为如此提交代码的方式和平常也不相同,而我们公司的leader代码审核非常的严格(不是说不好),但是用idea的图形化工具提交代码不太能行得通,只能用命令行的方式来提交代码,这也是为什么有这篇文章的原因。部分摘录于Gerrit使用教程。

2023-09-19 14:52:33 403

原创 Compose的一些小Tips - 列表的优化

本系列介绍Compose的一些常识,了解这些tips并不会让人摇身一变成为大佬,但可以帮助到一些学习Compose的安卓开发者避免一些误区,也是对入门详解中遗漏的一个补充。列表的优化列表的优化主要是讲延迟列表LazyColumn只是一个例子,LazyRow和其他延迟组件都是一样的。

2023-09-13 13:48:16 222

原创 学习Jetpack Compose的反思,总结及新的开始(无干货,纯叙事)

对Jetpack Compose入门详解(实时更新)的一个阶段性的反思和总结以及关于学习Compose的一些新的想法

2023-09-08 14:24:23 153

原创 Compose的一些小Tips - 可组合项的生命周期

本系列介绍Compose的一些常识,了解这些tips并不会让人摇身一变成为大佬,但可以帮助到一些学习Compose的安卓开发者避免一些误区,也是对入门详解中遗漏的一个补充。本文介绍生命周期可组合项的生命周期就像玩搭积木,从把积木从抽屉中拿出来开始,拼一次或n次,最后收起来放回抽屉。

2023-09-07 18:10:49 256

原创 HarmonyOS ArkUI Canvas(你相信光吗?)

Canvas是 ArkUI 提供的画布组件,用于自定义绘制图形。它使用类似于HTML5 Canvas的方式进行绘制,可以实现高效、灵活的自定义UI界面。Canvas可以实现在画布上自由绘制图形,包括线条、矩形、圆形、文本、图片等,并且可以通过控制绘制顺序和渲染顺序来实现图层管理和遮盖效果。

2023-08-31 10:49:53 440

原创 Compose眼珠跟随手势移动的笑脸

通过Compose Canvas中的一些方法配合简单的动画API实现了这个眼珠跟随手势移动的笑脸😁。

2023-08-29 15:22:25 199

原创 记一次PlanUML时序图学习

PlanUML时序图是一个非常有用的工具,可以帮助开发者更好地理解系统中不同对象之间的交互方式和流程,从而有助于提高系统的设计质量和开发效率。PlanUML时序图是UML(Unified Modeling Language)建模语言中的一种图示,用于描述对象之间的交互和消息传递的时间顺序。

2023-08-28 16:58:34 458

原创 Compose pager分页器入门使用 HorizontalPager与VerticalPager(2023/8)

本文介绍Compose pager分页器, pager分页器 就是viewpager2的compose版本;这还是一个实验性api,在此之前依赖已经有一次迁移pager分为横向的与纵向的,它们继承的基类为Pager;如果你使用过viewpager或viewpager2,相信你对这些属性一定不陌生

2023-08-28 14:34:59 1657

原创 HarmonyOS ArkUI 属性动画入门详解

鸿蒙OS最近吹的很凶,赶紧卷一下。学习过程中发现很多人吐槽官方属性动画这一章比较敷衍,我第一遍也看的半懂不懂的,所以就有了这篇文章,在官方的介绍基础上补充了自己的理解

2023-08-24 10:36:44 1188

原创 LeakCanray不需要手动初始化的秘密(2.7源码解析)

需要初始化的版本中,我们需要在application中初始化leakcanary,为什么新版本的leakcanary不需要了呢?本文带你探究LeakCanary是一个适用于Android的内存泄漏检测库。LeakCanary对安卓框架内部的了解使其能够独特地缩小每次泄漏的原因,帮助开发人员显著减少应用程序未响应冻结和OutOfMemoryError崩溃。“一个小漏洞会击沉一艘大船。”-本杰明·富兰克林

2023-08-23 10:52:48 155

原创 Handler及相关的理论知识

Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。(也就是异步操作) 这种机制通常用来处理相对耗时比较长的操作(例如网络操作等)。

2023-08-21 16:22:11 86

原创 Android kotlin 跳转手机热点开关页面和判断热点是否打开

网上方法比较多,我这边使用了通过WifiManager 拿反射的getWifiApState方法获取判断,亲测可用,最近迷上了扩展方法【dog】跳转手机热点的页面肯定是用intent,重点是action不知道是什么,网上最常见的就是。跳转wifi设置页面,费了一番力气,同样写为扩展方法。

2023-08-21 11:12:47 1777 2

原创 物联网的wifi配网方案

wifi配网的基本原理就是将wifi热点的用户名和密码通过某种方式输入给智能设备,然后智能设备把用户名和密码作为通行证连接热点,从而实现连接互联网,最终实现万物互联。几乎没啥缺点,硬要说缺点嘛,就是可能会有额外的咪头支出,而往往绝大多数智能硬件(尤其是智能玩具,智能摄像机,智能机器人等领域)又自带咪头,所以这个费用可以忽略。顾名思义,就是在智能设备的输入设备中输入用户名和密码然后实现wifi配网,比如我们的手机就是最典型的通过人工输入wifi用户名和密码来实现wifi配网的。蓝牙配对本身优点麻烦。

2023-08-18 11:29:56 819

原创 glide+kotlin 加载图片最舒适的几个扩展方法

glide加载网络图片,glide加载视频关键帧;做安卓的对kotlin和glide应该都不陌生,在这里就不多说了,但是很多原生开发(包括以前的我)对于kotlin扩展方法这一块都没有想到去利用,本篇文章主要是记录自己用的很舒服的几个结合kotlin特性和glide加载网络图片的imageview的扩展方法;也是抛砖引玉让大家方便自己不要老是惦记自己那些个工具类了,大家可以根据自己的需求更改。

2023-08-16 16:24:52 362

安卓 谷歌zxing代码简化模块.zip

(自用)谷歌zxing 简化 模块,从zxing上扒下来的

2021-12-21

雷神模拟器 ldinst_3.110.0.exe

雷神模拟器 ldinst_3.110.0.exe

2021-11-02

用于安卓设备在电脑上投屏,比市面上的收费软件还要好用,功能齐全 安卓投屏_V8.2.1.zip

用于安卓设备在电脑上投屏,比市面上的收费软件还要好用,功能齐全 安卓投屏_V8.2.1.zip

2021-11-02

识别安卓设备的adb驱动.zip

识别安卓设备的驱动

2021-11-02

windows签名工具.zip

安卓签名工具

2021-10-20

空空如也

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

TA关注的人

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