自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵星海

假如你只敢做能力之内的事,那么你将永远无法进步。

  • 博客(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控件(Checkbox相关-含单选、多选、Switch开关)

项目创建传送门:鸿蒙基础UI控件(Text相关-含项目创建流程)

2026-02-02 15:27:33 356

原创 鸿蒙基础UI控件(List相关-含Grid)

鸿蒙基本UI控件(List相关-含Grid)

2026-01-30 16:21:56 91 1

原创 鸿蒙基础UI控件(Image相关-含权限配置流程)

鸿蒙基本UI控件(Image相关)

2026-01-30 10:45:25 116

原创 鸿蒙基础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 gradle修改下载地址

干这么久 每次都是手动下载导入,最近换新电脑发现这东西,方便。

2025-01-26 10:31:23 281

原创 Android 分词的两种方式

本文分别介绍了原生分词和三方(Jieba分词)两种分词方式的使用和注意事项。

2024-12-04 18:29:24 1413 1

原创 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

原创 微信小程序-数据模型与动态赋值

首先新建一个小程序项目.

2024-09-29 11:17:04 1345 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 郭霖开发的Glance数据库查看和修改框架

依赖如下: 添加到app/build.gradle中。

2024-09-23 18:24:01 405

原创 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

简单的接口自动化测试Demo

使用IDEA开发工具 使用JAVA语言编写

2022-07-18

SpringBoot无数据库模拟项目

SpringBoot无数据库模拟项目

2022-02-22

度秘语音引擎3.0-BaiduSpeechService.zip

见资源名称

2021-02-04

空空如也

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

TA关注的人

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