- 博客(254)
- 资源 (3)
- 收藏
- 关注
原创 Java 定时任务-最简单的3种实现方法
本文介绍了Java中三种定时任务实现方式:1. Timer类简单易用但存在任务干扰问题;2. ScheduledExecutorService解决了Timer的问题但仅适用单机环境;3. SpringTask支持复杂调度规则,使用@Scheduled注解和cron表达式。针对分布式环境,提出了两种基于Redis的实现方案:ZSet方式通过轮询检查过期任务,键空间通知方式通过订阅过期事件触发任务。文章还提供了cron表达式在线生成工具,并分析了各方案的优缺点及适用场景。
2022-03-07 16:58:38
61714
10
原创 Android 超简洁的视频播放器推荐 ArtPlayer
深海最近做视频相关需求的时候, 在GitHub上找到的一个播放器:ArtPlayer 相对比其他三方的播放器来说,更加简洁和易扩展.支持内核替换ijkPlayer支持 ExoPlayer支持GitHub 地址:https://github.com/maiwenchang/ArtPlayer使用起来有多简单呢? 看代码:首先加入这些依赖 别问我为什么有3个 ...
2019-05-29 16:39:48
14011
44
原创 Android 判断App运行在模拟器还是真机上的最终解决方案
本文介绍了五种检测Android模拟器的方法,可有效防止福利活动被刷量。主要检测手段包括:1)检查蓝牙有效性;2)检测光线传感器是否存在;3)分析设备特征参数;4)检查CPU是否为电脑芯片;5)查找模拟器特有的管道文件。作者表示这些方法在2020年前有效,但不确定当前是否仍适用。文章最后附上了相关技术博客链接,并邀请读者留言交流。这些方法曾成功阻止模拟器突破检测,保护了企业营销活动的公平性。
2019-02-21 18:06:05
18478
21
原创 Android 极光IM简单的聊天界面全手动实现
说到实时通讯,很多人都想到融云,极光,环信,网易啊等等一系列,因为需求原因,我们最近的项目呢是用的极光.由于极光的界面Demo十分繁琐,很多功能我们用不到,所以我干脆自己写了会话列表和聊天界面这里面主要原理是 左右各放一个头像 , 根据用户是自己还是别人,来区分隐藏哪一边,中间竖向排列了文本textView,图片imageView和 提醒view("已读/未读")根据消息类型绝对显示隐藏哪一个。
2018-11-27 18:18:20
13661
75
原创 鸿蒙基础UI控件(Text相关-含项目创建流程)
摘要:本文介绍了鸿蒙应用开发的基本流程,重点演示了ArkUI框架下实现文本交互功能。开发者在DevEco Studio中创建项目后,通过Index.ets文件实现了以下功能:1)显示可变的文本内容;2)提供文本输入框,输入内容会实时同步到显示文本;3)点击特定文本可恢复默认文案。代码展示了@State状态管理、Text和TextArea组件使用,以及事件绑定(onClick/onChange)等核心功能,体现了鸿蒙应用响应式UI的开发特点。
2026-01-29 17:06:03
171
1
原创 Android WebView吊起软键盘遮挡输入框的问题解决
本文提供了Kotlin和Java两种语言实现的监听键盘弹出事件并动态调整WebView高度的代码方案。通过ViewTreeObserver监听全局布局变化,计算键盘高度与屏幕高度的比例(超过15%视为键盘显示),动态修改WebView的布局参数(MATCH_PARENT或减去键盘高度),从而避免WebView内容被键盘遮挡。文末推荐了Android相关技术文章,并邀请读者点赞或提出改进建议。
2026-01-08 14:50:15
334
原创 Android 编译速度优化:JVM堆内存扩充
本文介绍了Android编译速度与JVM内存的关系,指出默认JVM堆内存为物理内存的1/64,最大分配内存默认为1/4。为提高编译速度,建议在gradle.properties中配置-Xmx2048m。若JDK版本低于1.8会报错,需升级至JDK11+。文章还提供了相关技术博客链接,并邀请读者点赞或提出建议。
2025-10-11 10:46:18
546
原创 Android Flow的基本使用和最简要原理概述
本文介绍了Kotlin Flow的基本概念和使用。Flow是基于协程的响应式数据流,类似RxJava,包含冷流(按需执行)和热流(主动推送)两种模式。冷流适合网络请求等异步任务,热流适用于实时事件。文章阐述了Flow的原理(协程+观察者模式),并通过网络请求示例展示了常用操作符的使用场景,包括线程切换、状态管理、异常处理和缓存策略等。最后提供了完整的代码示例,演示了从请求开始到数据展示的全流程处理。
2025-09-29 14:14:34
1144
原创 Android 协程的基本使用和最简要原理概述
本文介绍了协程的核心概念与使用。协程是轻量级线程管理框架,具有挂起恢复(suspend)、非阻塞并发和结构化并发等特性。文章详细说明了协程的创建方式(launch/async)、线程调度(Dispatchers)、生命周期管理以及状态机实现原理。此外还提供了协程在Android开发中的扩展应用Flow相关文章链接。内容涵盖协程的基础使用到底层机制,适合开发者系统学习协程技术。
2025-09-28 14:52:51
1150
2
原创 算法探索_工作窃取算法
工作窃取算法是一种负载均衡技术,通过维护多个线程各自的双端队列来高效执行任务。主要特点是线程从自身队列头部执行任务,空闲时从其他线程队列尾部窃取任务。优点包括最大化线程利用率和降低竞争,缺点则涉及资源开销和任务分配不均问题。Java(ForkJoinPool)、C++(Taskflow)和Go(Goroutine)等语言均有实现。优化方向包括批量窃取和异步模式调整。该算法有效提升了多线程任务处理效率。
2025-09-25 16:06:59
397
转载 Android 16 开发者可以做什么
摘要:Android 16引入次要SDK版本机制,允许季度性API更新,加速功能迭代。新版本强化了UI视觉体验(Material 3 Expressive)、大屏/折叠屏适配及多语言支持,并升级相机API(夜间模式、UltraHDR等)。开发者需注意兼容性调整,如默认无边框模式和更严格的权限管理。建议采用响应式布局,关注Android Studio工具链更新,并在跨平台开发中权衡原生特性与一致性需求。(150字)
2025-09-25 11:45:41
118
1
原创 Android MarsCode AI插件
文章摘要:本文介绍了MarsCodeAI插件的安装与使用方法。2025年9月24日更新的内容显示,若搜索不到插件可参考指定方式获取。使用时,当出现AI代码提示浮窗,按Tab键即可采用建议代码段。文中还提及了旧版插件的相关信息。(99字)
2025-02-18 15:04:13
368
原创 Android 确保好使的网络状态监听
【摘要】本文提供了一个Android网络状态监听工具类,通过ConnectivityManager和NetworkCallback实现网络连接状态监测。代码支持Android 5.0及以上版本,包含网络连接/断开回调方法,并提醒注意UI线程切换。调用示例展示了在Activity销毁时注销监听器,避免内存泄漏。文章最后推荐了相关Android技术专栏,并邀请读者互动交流。
2025-01-26 22:57:52
310
原创 Android Google登录接入
在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式。新版 Google Sign-In API | Authentication | Google for Developers。如果您发现文章有任何错误或建议,请评论区留言或者私信!深海谢过各位的支持,一起加油!
2024-11-21 17:50:01
3016
3
原创 Android 从本地选择视频,用APP播放或进行其他处理
深海最近做视频相关需求的时候, 在GitHub上找到的一个播放器:ArtPlayer 相对比其他三方的播放器来说,更加简洁和易扩展.支持内核替换ijkPlayer支持ExoPlayer支持GitHub 地址:https://github.com/maiwenchang/ArtPlayer使用起来有多简单呢?子Activity可以通过继承此类来复用这些功能。点击视频列表中的某个视频,会返回APP并自动播放所选视频。
2024-11-21 15:22:12
1587
3
原创 Android 最新的AndroidStudio引入依赖失败如何解决?如:Failed to resolve:xxxx
当遇到Android项目出现大面积错误时,可以尝试通过重启Android Studio、清理和重建项目、检查环境配置、调整依赖库等步骤来解决问题。检查内容包括SDK和NDK配置、Gradle与JDK设置,以及使用阿里云镜像仓库解决网络限制。此外,注意Kotlin版本匹配和依赖关键字的正确使用,如implementation与api的区别。Android 项目编译报错或异常,有多少解决方案?如果您发现文章有任何错误或建议,请评论区留言或者私信!
2024-11-14 14:05:52
1488
1
原创 Android 用80行代码 封装最简单网络请求 HttpUtils
在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式
2024-11-12 14:34:30
803
2
原创 Android TextView自动换行文本显示不全解决
只需要设置TextView一个属性就可以解决,这个属性比较冷门:breakStrategy。意为换行策略,将breakStrategy设置为“balanced”成功解决问题。
2024-11-04 15:09:06
1639
3
原创 Android kotlin密封类-基本使用
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。表示 UI 的不同状态,如加载、成功和错误。
2024-10-09 16:38:20
1049
1
原创 Android Compose 控件基本属性
{Column { //竖向布局var newText by remember { mutableStateOf("默认") }NewText(NewTextField(fieldText, "随便输入点什么吧") {//输入监听事件Log.e(TAG, "输入内容:$it")NewButton("清空按钮") {//点击事件NewButton("跳转") {//点击事件Text(textAlign = TextAlign.Center, //文字居中。
2024-10-09 16:07:08
1051
原创 Android Compose的基本使用
Compose这个东西呢,好处我没发现,坏处就是学习成本和低版本兼容.不过,看在官方力推的份儿上,有空就学一下吧.当初的kotlin,很多人说鸡肋(包括我)!现在不也咔咔用纯kotlin做项目吗?哈哈哈哈.未来的事情,谁说得清呢?1.简单的View排列放置以及基础属性2.View的事件监听和事件传递(如点击事件,输入事件)3.View的数据动态赋值(直接改变数据,UI自动改变) (数据必须由remember代理)) {Column { //竖向布局。
2024-09-29 18:22:55
1046
1
原创 Android 已经过时的方法用什么新方法替代?
这个新方法,比原先从统一的onActivityResult()中拿结果要方便的多,且代码可读性更高。AppCompatActivity时显示过时。
2024-09-25 15:02:10
893
1
原创 从0新建一个微信小程序实现一个简单跳转
index.wxml 增加跳转按钮。index.wxss 增加按钮尺寸。新建一个文件夹 testUI 给他们放一起。
2024-09-24 15:44:08
792
原创 Android String资源文件中,空格、换行以及特殊字符如何表示
例:test test 例:test \n test 例:test \t test 前面加转义符号“ \ ”即可 例:
2024-09-20 16:35:36
1365
原创 Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
本文介绍了Android权限管理框架EasyPermissions的使用方法。作者指出该框架已停止维护多年,建议使用替代方案XXPermissions。文章详细说明了在BaseActivity中集成EasyPermissions的步骤,包括:1)处理权限请求回调onRequestPermissionsResult;2)实现PermissionCallbacks接口接收结果;3)定义权限请求码;4)简化回调的PermissionsCallBack接口。并以蓝牙权限为例,展示了如何检查权限、申请权限及处理回调。
2024-09-18 14:50:28
846
1
原创 Android 用线程池实现一个简单的任务队列(Kotlin)
摘要:相比递归+Handler实现延时任务,线程池在Android开发中更简洁高效。使用ScheduledExecutorService可轻松设置任务间隔时间,通过schedule()方法添加任务。示例代码展示了Kotlin/java中线程池的基本用法,包括初始化和关闭。线程池避免了递归的复杂性,使代码更易维护。最后提醒要及时关闭线程池资源。(99字)
2024-09-14 13:53:10
1210
原创 Android AlertDialog圆角背景不生效的问题
本文介绍了在Java中实现Kotlin安全调用操作符"window?."的写法,即使用AlertDialog.getWindow()方法。这是一个自定义对话框CustomDialog的实现,通过设置透明背景和圆角布局,提供标题、内容、编辑框及确定/取消按钮功能。对话框支持编辑模式切换,通过ClickCallBack接口处理确定按钮点击事件。布局文件使用LinearLayout和TextView等组件构建,并配合shape资源实现圆角背景效果。完整代码展示了自定义对话框的实现方式,包括初始
2024-09-13 16:24:26
1154
原创 Kotlin 代替Java接口回调,就这么简单
通常三步:1 定义接口和方法;2 使用接口中方法;3 继承接口并实现方法;1定义抽象方法 2 直接调用 3直接实现。使用Kotlin呢?
2024-09-11 17:22:48
502
原创 Android 语言国际化三步
【Android多语言配置与切换】通过locale-config文件配置支持中文、英文、俄语等语言,使用MMKV存储语言偏好。切换语言时更新缓存并调用getLanguage()方法实现即时切换,支持多国语言代码如es-es(西班牙语)、fr-ca(法语加拿大)等。具体语言代码可参考CSDN相关文章。
2024-09-10 16:32:54
993
3
原创 Android 蓝牙三方和动态权限三方
本文介绍了Android开发中两个实用框架:FastBle蓝牙库和EasyPermissions权限管理工具。FastBle是一个简化BLE开发的框架,提供扫描、连接、读写等操作的便捷API,支持多设备连接和MTU设置。EasyPermissions则简化了Android权限申请流程,通过hasPermissions()检查权限,requestPermissions()请求权限,并演示了获取录音和前台服务权限的代码实现。需要注意的是,EasyPermissions已停止维护,建议使用替代方案XXPermis
2024-09-10 16:13:37
802
1
原创 Android 使用JSON动画:Lottie框架基本使用
【摘要】Lottie是GitHub提供的跨平台动画解决方案框架。使用步骤:1)在gradle中添加依赖;2)在布局文件中配置LottieAnimationView控件;3)将json动画文件放入assets目录。常见错误"Unable to parse composition"通常由json文件名错误(未加后缀或含空格)导致。详细配置可参考相关技术文档。
2024-09-06 14:22:26
1431
1
原创 Android 在TextView前面添加多个任意View且不影响换行
*** CSDN深海呐 https://blog.csdn.net/qq_40945489/article/details/109399596*///必须重写所有的构造器,否则可能会出现无法inflate布局的错误!for (String item : dataList) {//将内容添加到content,用drawable替代这些内容所占的位置i++) {//R.layout.tag是每个标签的布局case 1:break;
2023-09-05 17:36:04
1004
原创 Android AAPT: error: resource color 异常原因处理
Android项目编译时出现资源链接失败错误,主要原因是系统引用的颜色资源被删除。报错提示缺少purple_500、teal_200等颜色值。解决方案是在color.xml文件中重新添加缺失的颜色资源定义,如示例代码所示。具体颜色值需根据实际报错信息进行调整。该问题属于常见的资源引用缺失导致的编译异常,补充对应资源即可解决。更多Android开发相关内容可参考提供的CSDN博客链接。
2023-09-05 17:00:57
4216
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅