- 博客(422)
- 资源 (77)
- 收藏
- 关注
原创 android测试依赖
依赖库作用测试 LiveData 和其他架构组件的异步行为。核心单元测试框架,用于编写和运行本地测试。扩展 JUnit,提供 Android 特有的测试工具(如 ActivityScenario)。用于 UI 测试,模拟用户交互并验证 UI 行为。用于创建 Mock 对象,模拟依赖项的行为,简化复杂场景的测试。这些依赖共同构成了一个完整的测试环境,涵盖了从单元测试到 UI 测试的各种需求。根据测试目标选择合适的依赖即可!
2025-04-19 20:00:51
596
原创 android TabLayout用法
- res/layout/custom_tab.xml --> < LinearLayout ... > < ImageView ... /> < TextView android: text = " 首页 " /> </ LinearLayout >-- res/layout/custom_tab.xml --> < LinearLayout ... > < ImageView ... /> < TextView android: text = " 首页 " /> </ LinearLayout >
2025-04-17 09:12:09
287
原创 Android: gradient 使用
在 Android 中使用 gradient(渐变) 通常是通过 文件来设置背景。下面是可以直接用的几种用法汇总,包括线性渐变、径向渐变、扫描渐变(sweep)等:🔹 取值范围:0~360,表示渐变方向(0 为从上往下,90 为从左往右)。🔹 : 百分比(0.5 表示中心)🔹 : 渐变半径,单位为 px✅ 4. 多色渐变✅ 5. 设置背景到 View✅ 6. 代码中创建 GradientDrawable✅ 7. 圆角 + 渐变(常用)android:angle 方
2025-04-16 14:22:00
555
原创 背景模糊(Blur)效果
在 Android 中实现 背景模糊(Blur)效果 有多种方式,取决于你是:Android 12(API 31)开始,官方支持了 ,性能好、效果自然。✅ 方案二:使用 第三方库(支持 Android 6.0+)BlurView 是一个高性能开源库,适配性强,支持动态模糊、透明背景模糊等效果,适合做磨砂毛玻璃卡片背景等。最新版请参考 GitHub。✅ 初始化:✅ 方案三:使用自定义 View + (兼容性更强)RenderScript 适用于 Android 5.0-12,但 Andr
2025-04-14 16:07:17
326
原创 android中dp和px的关系
关于android的dp和px的关系是我刚开始学习android的第一个知识点,不知不觉学安卓也有一年了,但是偶然间我发现我理解的dp和px的关系一直是错的,真的是有一点搞笑,今天特意写一篇博客纪念一下这个我理解错一年的知识点。
2025-04-12 20:37:20
1042
原创 kotlin扩展函数
扩展函数是 Kotlin 提供的一种给已有类添加新函数的机制,不需要继承该类或者修改它的源码。fun <接收者类型>.<函数名>(参数列表): 返回类型 {// this 表示接收者对象使用时就像是这个函数是该类本身的方法一样调用。项目Kotlin 扩展函数定义方式使用方式编译原理被编译成静态方法,第一个参数是接收者对象本质语法糖 + 编译器重写调用方式是否是静态方法在 JVM 层面上是多态支持不支持(不能被子类重写)
2025-04-09 08:59:02
564
原创 国外的AI工具
特性GPT-4oo1含义全功能旗舰模型精简版模型内部代号输入/输出文字 + 图像 + 音频文字(或多模态)GPT-4o 的代号强度⭐⭐⭐⭐⭐⭐~⭐⭐⭐成本较低(比 GPT-4-turbo 便宜)极低(适合大规模部署)用途专业 AI 应用实时响应、边缘设备研发/版本标识如果是做智能座舱、车载交互、语音控制系统相关开发的,GPT-4o-mini 这类模型就非常适合部署在终端设备中,响应快又省资源;而 GPT-4o 适合在云端进行更复杂的语义分析、多模态交互。
2025-04-08 18:02:03
485
原创 andorid 查找没有使用的资源
在菜单栏打开:File → Settings → Editor → Inspections搜索 “Unused resources”确保它被勾选 ✅然后再运行 “Inspect Code”,就能看到这类资源的提示了。
2025-04-08 09:58:00
965
原创 Android Studio Logcat V2 使用指南(适配 2024 年版本)
Logcat V2 是 Android Studio Giraffe(海豚)版本后的新日志系统,使用统一的搜索框进行日志过滤,支持灵活的语法组合和正则表达式。这个过滤器可以帮助你专注于自己项目的日志,而不被系统底层输出干扰。package:包名。
2025-04-07 11:13:08
437
原创 Android studio xml布局预览中 Automotive和Autotive Distant Display的区别
指的是主车载中控屏,用于车辆的主要交互界面,如导航、媒体播放、空调控制等。:指的是辅助的远程显示屏,通常用于显示附加信息,或者为车主提供额外的交互方式,如后座娱乐显示、车内信息显示等。这两种设备类型主要的区别在于交互性和功能角色:前者是直接与车主交互的主要控制界面,而后者则是辅助的、非核心的显示设备,通常不会直接参与车载系统的核心操作。
2025-04-05 12:15:03
906
原创 Android Hilt 学习指南-代码部分
✅简化代码:与 Dagger 相比,需要的样板代码更少。✅易于学习和使用:依赖注入通过注解完成。✅自动生命周期管理:减少了手动管理实例的需求。✅官方支持:推荐用于 Android 开发。通过遵循本指南,已经学习了如何在ActivityViewModel和普通类中使用 Hilt 进行依赖注入。
2025-04-05 10:45:04
710
原创 android如何使用矢量图(svg)资源
最简单的方式是将 SVG 文件转换为,然后通过ImageView进行显示。如果不想手动转换,可以使用第三方库Glide或Picasso来直接加载并显示 SVG 文件。如果需要更多控制或者直接渲染 SVG 文件,可以使用AndroidSVG库。其中,使用是官方推荐的方式,尤其在 Android 5.0 以上版本,它提供了很好的性能和可扩展性。
2025-04-05 10:25:11
825
原创 kotlin中主构造函数是什么
主构造函数(Primary Constructor)是 Kotlin 类声明的一部分,用于在 创建对象时初始化类的属性。它不像 Java 那样是一个函数体,而是紧跟在类名后面。上面这段代码中:等价于 Java 代码:如何初始化主构造函数中的类属性?在主构造函数中,类的属性可以通过以下几种方式初始化:这样 和 直接成为 类的属性,无需额外赋值。如果初始化逻辑较复杂,可以在 代码块中进行操作: 代码块会在 对象创建时 立即执行,并且按代码顺序先于次构造函数执行。Kotlin 允许给主构造函数
2025-04-04 21:45:34
1058
1
原创 kotlin中const 和val的区别
如果你需要声明常量并希望在编译时就确定其值,可以使用const。如果你只是需要声明不可变的变量,可以使用val。val: 相当于java中的final ,运行时确定变量的值,值固定const val 相当于java中 staic final,它的值在整个应用程序的生命周期内是固定的。
2025-04-04 21:04:53
465
原创 Android Hilt 教程
基于 Dagger 开发,能够大大简化依赖注入的使用。在 build.gradle (Project)Hilt 是 Android 官方推荐的。让 Hilt 进行全局依赖注入的初始化。:比 Dagger 需要更少的模板代码。在 app/build.gradle。(例如:构造函数需要参数),需要在。:推荐用于 Android 开发。中使用 Hilt 进行依赖注入。的实例,并在需要的地方注入。:通过注解即可完成依赖注入。按照本教程,已经学会如何在。:减少手动管理实例的工作。Hilt 会自动创建。
2025-04-04 12:51:32
666
原创 LiveData 和 MutableLiveData 的区别
但它们的工作原理基本相同。下面我们深入对比它们的行为、特性,以及它们在。主要用作 ViewModel。
2025-04-03 11:24:42
1006
原创 kotlin函数类型
函数类型就是 (Int, Int) -> Int函数类型其实就是将函数的 “参数类型” 和 “返回值类型” 抽象出来(Int, Int) -> Int 表示接收两个 Int 参数并返回 Int 的函数类型;(String) -> Unit 表示接收 String 参数且无返回值的函数类型空 。基本形式:特殊情况:函数类型的变量:二 Lambda 表达式1 语法结构{ 参数列表 -> 函数体 }示例:{ x: Int, y: Int -> x + y }{a1:Int,b1:Int->a1+b
2025-04-03 10:38:02
694
原创 AES 加密介绍
(如 CAN 总线传输的空调控制指令)。如果这些数据被恶意软件截取或篡改,可能会影响用户体验,甚至存在安全隐患。因此,我们可以使用 AES 加密存储。AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,具有。,可以使用 AES 加密敏感数据,确保通信安全。(如用户的空调温度设定、座椅加热偏好等),以及。已经自带 AES 支持,无需额外依赖。在 Android 开发中,可以使用。在车载座舱空调软件中,可能涉及。在车载空调软件中,我们可以将。
2025-04-02 09:46:30
244
原创 android 设置状态栏背景
要让Activity使用和来使状态栏透明,让Activity的背景可以扩展到状态栏区域。然后在Activity的根布局(通常是或)的background设置颜色,使其填充整个界面,包括状态栏。可以在和定义不同模式下的颜色。</</然后在Activity或者直接使用theme属性:</这样,Activity的背景和状态栏颜色在深色模式和浅色模式下都会自动切换。
2025-04-01 18:59:23
951
原创 android databinding使用教程
减少的使用,提高代码可读性。支持数据绑定,可以直接在 XML 中绑定对象属性。支持事件绑定,可在 XML 绑定点击事件等逻辑。支持双向绑定,简化表单输入处理。支持,可以扩展自定义属性。你可以试着把 DataBinding 和 ViewBinding 结合使用,在你的车载空调控制界面中优化 UI 交互逻辑!如果有具体的问题,比如如何在 Fragment 里使用,或者如何结合LiveData,可以继续问我。
2025-04-01 11:30:28
1024
原创 android Fragment使用
在中,导入id)并给控件赋值的逻辑通常应该写在 onViewCreated()方法中,而不是。ViewidActivityonCreate()ViewViewidViewFragmentActivityidLiveDataActivityonAttach()如果你的Fragment只是绑定id并设置 UI,。
2025-04-01 10:30:48
428
原创 android 加载本地.svg资源的几种引入方式
资源,但需要先转换为 Android 可识别的格式。在 Android 中,可以在 XML 布局文件中引入本地。如果你的项目使用 Jetpack Compose,可以使用。如果 SVG 是静态资源,建议转换为。Android 不支持直接加载。,然后在 XML 中使用。
2025-04-01 10:06:43
384
原创 在 ImageButton 或 ImageView 中,background 和 src 的作用
【代码】在 ImageButton 或 ImageView 中,background 和 src 的作用。
2025-04-01 10:05:28
174
原创 android 图形开发的技能学习路线
掌握此类代码需要系统性跨越多个技术领域,建议通过「数学基础 → OpenGL ES → 引擎框架 → 综合项目」的路径逐步突破。持续投入1-2年高强度学习与实践,可独立开发复杂图形应用。
2025-03-25 14:41:46
866
原创 OpenGL ES 2.0与OpenGL ES 3.1的区别
• 若车载平台计划升级至 Vulkan(下一代图形 API),可优先基于 OpenGL ES 3.1 开发,因其特性更接近 Vulkan 的设计理念。(如 3D 可视化气流、金属质感旋钮):使用 OpenGL ES 3.1 实现高级特效。:通过计算着色器实现流体模拟(如气流可视化)、动态光照(如金属材质反光)。• 实例化渲染(Instancing)高效绘制重复元素(如温度刻度)。• 多渲染目标(MRT)实现动态模糊(如快速调节时的过渡效果)。:多渲染目标(MRT)可加速后处理(如模糊、色调映射)。
2025-03-25 09:23:39
644
原创 kotlin init执行顺序
根据Kotlin的文档,当创建一个类的实例时,初始化顺序是这样的:首先,主构造函数中的参数被处理;接着,类体中声明的属性按照它们在代码中的顺序进行初始化;然后,init块按照它们在类体中的出现顺序执行。如果有多个init块,它们会按照顺序依次执行。最后,次构造函数中的代码执行。
2025-03-24 15:40:18
393
原创 openGl片段着色器的含义
片段着色器(Fragment Shader)是OpenGL着色器管线中的关键组件,主要用于计算屏幕空间中每个片段(对应像素)的最终颜色。它是图形渲染流程的最后阶段之一,决定了像素的视觉效果。以用户提供的或中的片段着色器为例:功能:将传入的统一变量直接赋值给,使整个图形的颜色统一为指定的颜色(如中的青色或中的浅绿色)。关键点::指定浮点数精度为中等精度。:从应用程序传入的颜色值(如数组)。:必须输出的最终颜色变量。4. 代码中的调用流程在方法中:通过将颜色值传递给片段着色器的变量,最
2025-03-24 14:20:29
352
原创 AGSL和GLSL的区别
回顾一下AGSL和GLSL的基本概念。AGSL是Android Graphics Shader Language,是Android 12引入的,基于GLSL但专门为Android设计,与RenderEffect和RuntimeShader集成。GLSL是OpenGL Shading Language,用于OpenGL/OpenGL ES的着色器编程,跨平台使用。AGSL(Android Graphics Shader Language) 和 GLSL(OpenGL Shading Language) 都是用
2025-03-24 11:16:28
752
原创 android Hilt注解
Module@InstallIn(SingletonComponent::class) // 作用域为整个应用@Provides@Singleton // 单例作用@Module标记为 Hilt 模块,提供无法@Inject的依赖。@Provides提供具体对象。@Singleton确保全局唯一实例。// 依赖的 Repository。
2025-03-23 21:11:49
488
原创 AI-编程指令语言
classPaths = [“ThemeUtil.kt”, “SettingsViewModel.kt”] // 相关类。libs = [“Material3”, “DataBinding”] // 必须使用的库。avoid = [“AsyncTask”, “弃用API”] // 禁止使用的技术。layout = “activity_settings.xml” // 关联的布局文件。// 1. 场景描述:明确功能归属的模块/场景。// 3. 上下文注入:关联的代码文件/类。
2025-03-22 11:21:00
325
原创 companion object和object 从kotlin转java分析
companion object 中companion类中的方法是普通的方法在外部类中生成静态变量,静态companion 对象object MyClass2 中类中方法是普通方法在MyClass2中生成静态变量,静态MyClass2对象,
2025-03-20 15:04:05
238
原创 Cursor AI是什么
根据知识库中的信息,,而非 IntelliJ IDEA 或其他 IDE 的插件。根据知识库[1]和[2]的明确描述,Cursor 是一个,而非插件。它内置了 AI 功能(如代码生成、调试、重构等),并支持,但本身是一个独立的软件,需要单独安装(如从官网下载)。Cursor 支持系统(知识库[1]),但存在。.java.kt。
2025-03-19 17:29:45
631
原创 关闭代理访问github原因分析
完成以上操作后,您的网络访问行为应恢复正常逻辑(国内直连/国外代理)。若问题反复出现,建议使用网络监控工具(如。:代理服务可能强制将GitHub域名解析到境外IP(如通过DoH/DoT):对比两次结果是否一致(若一致说明无DNS劫持)◦ 本地网络支持直接访问(如企业网络解除封锁)运行未知代理软件,防止系统设置被污染。:未经过代理服务器IP(如天路云节点)(仅代理被墙网站),避免全局代理影响。部分是否勾选(若勾选则记录地址)◦ 天路云残留DNS配置被清除。3. 删除安装目录(通常位于。(系统代理设置被重置)
2025-03-19 11:18:32
240
原创 适合安卓开发工程师在 Android Studio 上使用的 AI 产品
华为 CodeGenie:是华为推出的基于生成式 AI 的代码编程助手,在 DevEco Studio 中安装插件后可使用,能提供智能知识问答、代码生成补全和万能卡片内容生成等功能,对鸿蒙开发有很好的支持,安卓开发也可借鉴相关功能。Fitten Code:由非十大模型驱动,免费且支持 80 多种语言,包括 Java 等安卓开发常用语言,可在 Android Studio 等多种编辑器中使用,具有自动生成代码、智能查找 Bug、生成单元测试等功能。如果还有其他的,好的工具欢迎大家留言补充。
2025-03-19 08:55:04
398
原创 kotlin 线程池封装
IO密集型任务配置(适合网络请求)支持任务调度、暂停、取消等操作。// region 配置参数。// region 核心组件。// region 预设模板。// region 任务管理。// region 内部实现。// region 协程扩展。
2025-03-18 16:47:43
874
android fragment生命周期测试
2018-04-24
自定义view-google文档代码整理
2018-04-01
自定义view学习一
2018-03-31
Android MVPDemo
2018-02-27
rxjava学习代码
2018-02-13
Office2010安装需要的MSXML文件
2018-02-10
Android photoWallDemo
2018-02-05
Android大屏幕适配demo
2018-02-02
VolleyDemo
2018-01-19
Android drawerLayout
2018-01-19
volley.jar文件
2018-01-11
RNRedux.zip
2020-07-23
AwesomeProject.zip
2020-02-15
app-debug.apk
2020-01-15
ContactBackupStudy.zip
2019-11-13
android-sdk_r24.4.1-windows
2018-11-06
sourceInsight4
2018-10-16
source_insight4.0破解版
2018-07-09
MarkdownPad2.5安装文件和注册码
2018-06-04
google浏览器字节码转换扩展程序
2018-05-26
gradle-4.7-all和gradle-4.7-bin
2018-05-09
gradle-3.4-all和gradle3.5-all
2018-05-09
跑马灯效果
2018-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人