Android
文章平均质量分 83
赵星海(深海呐)
山西人,目前在北京。
关注领域:移动开发,Java后端,Web前端,软件测试等
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android WebView吊起软键盘遮挡输入框的问题解决
本文提供了Kotlin和Java两种语言实现的监听键盘弹出事件并动态调整WebView高度的代码方案。通过ViewTreeObserver监听全局布局变化,计算键盘高度与屏幕高度的比例(超过15%视为键盘显示),动态修改WebView的布局参数(MATCH_PARENT或减去键盘高度),从而避免WebView内容被键盘遮挡。文末推荐了Android相关技术文章,并邀请读者点赞或提出改进建议。原创 2026-01-08 14:50:15 · 383 阅读 · 0 评论 -
Android 编译速度优化:JVM堆内存扩充
本文介绍了Android编译速度与JVM内存的关系,指出默认JVM堆内存为物理内存的1/64,最大分配内存默认为1/4。为提高编译速度,建议在gradle.properties中配置-Xmx2048m。若JDK版本低于1.8会报错,需升级至JDK11+。文章还提供了相关技术博客链接,并邀请读者点赞或提出建议。原创 2025-10-11 10:46:18 · 575 阅读 · 0 评论 -
Android Flow的基本使用和最简要原理概述
本文介绍了Kotlin Flow的基本概念和使用。Flow是基于协程的响应式数据流,类似RxJava,包含冷流(按需执行)和热流(主动推送)两种模式。冷流适合网络请求等异步任务,热流适用于实时事件。文章阐述了Flow的原理(协程+观察者模式),并通过网络请求示例展示了常用操作符的使用场景,包括线程切换、状态管理、异常处理和缓存策略等。最后提供了完整的代码示例,演示了从请求开始到数据展示的全流程处理。原创 2025-09-29 14:14:34 · 1186 阅读 · 0 评论 -
Android 协程的基本使用和最简要原理概述
本文介绍了协程的核心概念与使用。协程是轻量级线程管理框架,具有挂起恢复(suspend)、非阻塞并发和结构化并发等特性。文章详细说明了协程的创建方式(launch/async)、线程调度(Dispatchers)、生命周期管理以及状态机实现原理。此外还提供了协程在Android开发中的扩展应用Flow相关文章链接。内容涵盖协程的基础使用到底层机制,适合开发者系统学习协程技术。原创 2025-09-28 14:52:51 · 1193 阅读 · 1 评论 -
Kotlin 百度离线人脸采集SDK
本文介绍了百度离线人脸采集SDK的集成步骤:1)下载SDK和认证文件并放置到assets目录;2)在settings.gradle中添加相关模块;3)在app/build.gradle中引入依赖;4)在MainActivity初始化FaceSDKManager。相比百度实名认证,该过程较为复杂,需要配置多个文件并初始化SDK。文章还提供了Android开发相关文章的CSDN链接。原创 2020-12-30 17:41:57 · 1759 阅读 · 5 评论 -
Android 16 开发者可以做什么
摘要:Android 16引入次要SDK版本机制,允许季度性API更新,加速功能迭代。新版本强化了UI视觉体验(Material 3 Expressive)、大屏/折叠屏适配及多语言支持,并升级相机API(夜间模式、UltraHDR等)。开发者需注意兼容性调整,如默认无边框模式和更严格的权限管理。建议采用响应式布局,关注Android Studio工具链更新,并在跨平台开发中权衡原生特性与一致性需求。(150字)转载 2025-09-25 11:45:41 · 149 阅读 · 0 评论 -
Android 确保好使的网络状态监听
【摘要】本文提供了一个Android网络状态监听工具类,通过ConnectivityManager和NetworkCallback实现网络连接状态监测。代码支持Android 5.0及以上版本,包含网络连接/断开回调方法,并提醒注意UI线程切换。调用示例展示了在Activity销毁时注销监听器,避免内存泄漏。文章最后推荐了相关Android技术专栏,并邀请读者互动交流。原创 2025-01-26 22:57:52 · 332 阅读 · 0 评论 -
Android gradle修改下载地址
干这么久 每次都是手动下载导入,最近换新电脑发现这东西,方便。原创 2025-01-26 10:31:23 · 288 阅读 · 0 评论 -
Android 分词的两种方式
本文分别介绍了原生分词和三方(Jieba分词)两种分词方式的使用和注意事项。原创 2024-12-04 18:29:24 · 1441 阅读 · 0 评论 -
Kotlin 位运算符
Kotlin中的位运算通过infix函数实现,包括and(位与)、or(位或)、inv(位非)、xor(位异或)、shl(左移)、shr(右移)和ushr(无符号右移),其功能与Java中的相应运算符一致。需要注意的是,Kotlin的位运算仅支持Int和Long两种数据类型。实际使用时可通过类似val x:Int = (y.toInt() and 0xff)的语法实现位操作。原创 2020-08-04 17:29:21 · 6863 阅读 · 1 评论 -
Kotlin 静态变量与静态方法详解
一. 伪静态(伴生对象)关键字:companion object 1.将变量和方法写在这个伴生对象中,外部就直接可以类名+点 调用。 2.但实际上在运行时,这些成员仍然是真实对象的实例的成员。属性修饰符解释: 1. const val :公共常量 ,且 const只能修饰 val 2. val :私有常量class Constant { companion object { const val NAME...原创 2020-09-03 13:56:38 · 1665 阅读 · 0 评论 -
Android 关于Handler机制的十个问题
1.Handler是什么?Handler机制主要为线程间通信而生,是Android中定义的一套消息传递机制。主要是为了解决子线程执行完耗时操作后,怎么回调到主(UI)线程的问题。2.Handler 的其他问题,待整理...原创 2020-08-12 15:52:34 · 713 阅读 · 1 评论 -
kotlin gson 转集合
val listType : Type = object : TypeToken<ArrayList<Bean_meal_all>>() {}.typeimport java.lang.reflect.Type原创 2020-09-27 18:41:18 · 1366 阅读 · 3 评论 -
Kotlin MutableList的多种创建方式
Kotlin创建可变列表的四种方式:1)使用mutableListOf()创建空列表或带初始元素的列表;2)使用arrayListOf()创建ArrayList实例;3)使用listOf()创建不可变列表;4)直接调用ArrayList构造函数,可指定初始容量。每种方式都支持泛型类型声明和元素初始化。更多Kotlin教程可参考相关技术博客。原创 2020-10-20 09:33:26 · 10733 阅读 · 2 评论 -
Kotlin BigDecimal进位取整/现金收银推荐金额
本文介绍了点餐机项目中实现快捷收银金额推荐功能的开发过程。通过4个TextView显示向上取整的推荐现金金额,使用BigDecimal进行精确计算,支持不同位数的取整规则(个位、十位、百位等)。代码展示了视图初始化和金额取整算法的实现,当金额为0时隐藏对应视图。该功能优化了收银流程,提高用户体验。原创 2020-11-25 14:11:56 · 1202 阅读 · 3 评论 -
Kotlin 内联函数 let、with、run、apply、also 区别和用法
let 结构:fun <T, R> T.let(block: (T) -> R): R = block(this)返回值:闭包形式返回是否为扩展函数:是当前对象指代:it应用场景:一般用于判空with结构:fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()返回值:闭包形式返回是否为扩展函数:否当前对象指代:this或省略应用场景:重复调用...原创 2021-08-11 18:22:51 · 821 阅读 · 1 评论 -
Android PopupWindow 覆盖状态栏的方法
简单记录一下哈!this.setClippingEnabled(false);原创 2020-06-05 17:01:49 · 3265 阅读 · 8 评论 -
Android 阿里云推送,针对安卓8.0、9.0以上系统收不到推送 的补丁文档
官方的文档地址:Android 8.0以上:https://help.aliyun.com/knowledge_detail/67398.htmlAndroid 9.0以上:https://help.aliyun.com/knowledge_detail/141757.html原创 2019-11-06 17:52:53 · 1509 阅读 · 3 评论 -
Android Google登录接入
在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式。新版 Google Sign-In API | Authentication | Google for Developers。如果您发现文章有任何错误或建议,请评论区留言或者私信!深海谢过各位的支持,一起加油!原创 2024-11-21 17:50:01 · 3072 阅读 · 2 评论 -
Android AAPT: error: resource color 异常原因处理
Android项目编译时出现资源链接失败错误,主要原因是系统引用的颜色资源被删除。报错提示缺少purple_500、teal_200等颜色值。解决方案是在color.xml文件中重新添加缺失的颜色资源定义,如示例代码所示。具体颜色值需根据实际报错信息进行调整。该问题属于常见的资源引用缺失导致的编译异常,补充对应资源即可解决。更多Android开发相关内容可参考提供的CSDN博客链接。原创 2023-09-05 17:00:57 · 4261 阅读 · 0 评论 -
Android 最新的AndroidStudio引入依赖失败如何解决?如:Failed to resolve:xxxx
当遇到Android项目出现大面积错误时,可以尝试通过重启Android Studio、清理和重建项目、检查环境配置、调整依赖库等步骤来解决问题。检查内容包括SDK和NDK配置、Gradle与JDK设置,以及使用阿里云镜像仓库解决网络限制。此外,注意Kotlin版本匹配和依赖关键字的正确使用,如implementation与api的区别。Android 项目编译报错或异常,有多少解决方案?如果您发现文章有任何错误或建议,请评论区留言或者私信!原创 2024-11-14 14:05:52 · 1535 阅读 · 0 评论 -
Android 用80行代码 封装最简单网络请求 HttpUtils
在小型项目中,实现最简单最高效的网络请求封装 轻量化,不借助除okhttp以外的三方框架 单个类实现,且可读性高,扩展性高 最少的代码行数,最简单的调用方式原创 2024-11-12 14:34:30 · 842 阅读 · 1 评论 -
Android TextView自动换行文本显示不全解决
只需要设置TextView一个属性就可以解决,这个属性比较冷门:breakStrategy。意为换行策略,将breakStrategy设置为“balanced”成功解决问题。原创 2024-11-04 15:09:06 · 1720 阅读 · 3 评论 -
Android kotlin密封类-基本使用
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。表示 UI 的不同状态,如加载、成功和错误。原创 2024-10-09 16:38:20 · 1074 阅读 · 0 评论 -
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 · 1066 阅读 · 0 评论 -
Android Compose的基本使用
Compose这个东西呢,好处我没发现,坏处就是学习成本和低版本兼容.不过,看在官方力推的份儿上,有空就学一下吧.当初的kotlin,很多人说鸡肋(包括我)!现在不也咔咔用纯kotlin做项目吗?哈哈哈哈.未来的事情,谁说得清呢?1.简单的View排列放置以及基础属性2.View的事件监听和事件传递(如点击事件,输入事件)3.View的数据动态赋值(直接改变数据,UI自动改变) (数据必须由remember代理)) {Column { //竖向布局。原创 2024-09-29 18:22:55 · 1075 阅读 · 0 评论 -
Android 已经过时的方法用什么新方法替代?
这个新方法,比原先从统一的onActivityResult()中拿结果要方便的多,且代码可读性更高。AppCompatActivity时显示过时。原创 2024-09-25 15:02:10 · 932 阅读 · 0 评论 -
Android String资源文件中,空格、换行以及特殊字符如何表示
例:test test 例:test \n test 例:test \t test 前面加转义符号“ \ ”即可 例:原创 2024-09-20 16:35:36 · 1411 阅读 · 0 评论 -
Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
本文介绍了Android权限管理框架EasyPermissions的使用方法。作者指出该框架已停止维护多年,建议使用替代方案XXPermissions。文章详细说明了在BaseActivity中集成EasyPermissions的步骤,包括:1)处理权限请求回调onRequestPermissionsResult;2)实现PermissionCallbacks接口接收结果;3)定义权限请求码;4)简化回调的PermissionsCallBack接口。并以蓝牙权限为例,展示了如何检查权限、申请权限及处理回调。原创 2024-09-18 14:50:28 · 868 阅读 · 0 评论 -
Android 用线程池实现一个简单的任务队列(Kotlin)
摘要:相比递归+Handler实现延时任务,线程池在Android开发中更简洁高效。使用ScheduledExecutorService可轻松设置任务间隔时间,通过schedule()方法添加任务。示例代码展示了Kotlin/java中线程池的基本用法,包括初始化和关闭。线程池避免了递归的复杂性,使代码更易维护。最后提醒要及时关闭线程池资源。(99字)原创 2024-09-14 13:53:10 · 1227 阅读 · 0 评论 -
Android AlertDialog圆角背景不生效的问题
本文介绍了在Java中实现Kotlin安全调用操作符"window?."的写法,即使用AlertDialog.getWindow()方法。这是一个自定义对话框CustomDialog的实现,通过设置透明背景和圆角布局,提供标题、内容、编辑框及确定/取消按钮功能。对话框支持编辑模式切换,通过ClickCallBack接口处理确定按钮点击事件。布局文件使用LinearLayout和TextView等组件构建,并配合shape资源实现圆角背景效果。完整代码展示了自定义对话框的实现方式,包括初始原创 2024-09-13 16:24:26 · 1177 阅读 · 0 评论 -
Kotlin 代替Java接口回调,就这么简单
通常三步:1 定义接口和方法;2 使用接口中方法;3 继承接口并实现方法;1定义抽象方法 2 直接调用 3直接实现。使用Kotlin呢?原创 2024-09-11 17:22:48 · 519 阅读 · 0 评论 -
Android 语言国际化三步
【Android多语言配置与切换】通过locale-config文件配置支持中文、英文、俄语等语言,使用MMKV存储语言偏好。切换语言时更新缓存并调用getLanguage()方法实现即时切换,支持多国语言代码如es-es(西班牙语)、fr-ca(法语加拿大)等。具体语言代码可参考CSDN相关文章。原创 2024-09-10 16:32:54 · 1011 阅读 · 3 评论 -
Android 蓝牙三方和动态权限三方
本文介绍了Android开发中两个实用框架:FastBle蓝牙库和EasyPermissions权限管理工具。FastBle是一个简化BLE开发的框架,提供扫描、连接、读写等操作的便捷API,支持多设备连接和MTU设置。EasyPermissions则简化了Android权限申请流程,通过hasPermissions()检查权限,requestPermissions()请求权限,并演示了获取录音和前台服务权限的代码实现。需要注意的是,EasyPermissions已停止维护,建议使用替代方案XXPermis原创 2024-09-10 16:13:37 · 815 阅读 · 0 评论 -
Android 使用JSON动画:Lottie框架基本使用
【摘要】Lottie是GitHub提供的跨平台动画解决方案框架。使用步骤:1)在gradle中添加依赖;2)在布局文件中配置LottieAnimationView控件;3)将json动画文件放入assets目录。常见错误"Unable to parse composition"通常由json文件名错误(未加后缀或含空格)导致。详细配置可参考相关技术文档。原创 2024-09-06 14:22:26 · 1498 阅读 · 0 评论 -
App上架应用市场操作流程
言简意赅,介绍产品的核心功能。描述你的app是什么类型,是游戏,工具还是社交等,要遵守广告法、新闻语等规则,两三句话描述app的核心特色,用几个短段落来阐述app的功能特色,最好写上联系方式,微博微信网站等。原创 2022-11-11 17:11:51 · 1959 阅读 · 2 评论 -
Android Gradle 插件版本对应图
C:\Users\当前用户\.gradle\wrapper\dists 目录下新生成的目录(在线下载新生成的目录)中;原创 2022-08-01 16:24:02 · 638 阅读 · 0 评论 -
Flutter 环境变量配置和flutter doctor中的错误解决
运行命令flutterdoctor--android-licenses然后根据提示一直回复“y”表示同意授权,直到结束。这边尽量下载最新的,或者和我这边一样也可以,默认视图可能和截图不一致,勾选右下角的对勾即可切换成图中的视图样式。如果您不开发windowsphoneapp,直接忽略这个错误即可。要是能够得到您的关注,深海会更加荣幸,感谢各位的支持!如果您感觉深海写的不错的话,请给文章点个赞吧~右键点击我的电脑-属性然后找到环境变量。2.运行命令flutterdoctor。...原创 2022-07-29 15:30:23 · 5155 阅读 · 1 评论 -
Android 在原生项目中新建一个Flutter的Module
这个地址的两个xxx,第一个改成你的旧项目名,第二个改成刚刚建的Flutter项目名,这里的结构以您的实际情况为准。插件安装完后会提示重启AndroidStudio,重启完毕后进行第三步;要是能够得到您的关注,深海会更加荣幸,感谢各位的支持!Dart插件的作用是Dart语法的提示和补全等功能。创建完成后,将这个Flutter项目拷贝到旧项目下。等同步完成后,你会发现项目中多了一个这个文件夹。如果您感觉深海写的不错的话,请给文章点个赞吧。如果您有不同的见解或疑问,欢迎到评论区留言。至此结束,目的达成。....原创 2022-07-25 17:54:43 · 2237 阅读 · 1 评论 -
Android ScrollView嵌套RecyclerView要做的三件事儿
这样做为什么?解决RecyclerView展示不全的问题。二、禁止RecyclerView的纵向滑动(横向同理): 这样做为什么?解决RecyclerView滑动无惯性问题,解决滑动显示头尾阻尼问题。 三、禁止RecyclerView的默认聚焦: 这样做为什么?解决RelativeLayout处于非顶部,却在加载后处于页面顶部的问题kotlin版的两项配置:文章到这里就结束了。如果您有不同的见解,或者疑问的话,欢迎到评论区留言。如果您感觉原创 2022-06-21 15:27:42 · 4953 阅读 · 6 评论
分享