- 博客(108)
- 资源 (2)
- 收藏
- 关注
原创 android 之简述屏幕分辨率、屏幕密度、屏幕最小宽度
dp是一个虚拟像素单位,它会根据屏幕密度自动调整,从而确保UI元素在不同密度的屏幕上保持一致的显示效果。屏幕密度越高,屏幕上显示的像素就越密集,图像也就越清晰。屏幕最小宽度(smallestWidth)是指设备屏幕的最短边的宽度,单位为dp(密度无关像素)。为了适配不同屏幕尺寸的设备,可以使用 smallestWidth 限定符来创建不同的资源文件夹,系统会根据设备的屏幕最小宽度自动选择对应的资源文件夹。为了确保应用在不同屏幕密度的设备上都能良好显示,需要为不同密度的屏幕提供不同分辨率的图片资源。
2025-04-03 17:21:15
553
原创 Android 中使用 ScreenMatch 实现屏幕适配的步骤
ScreenMatch 是由 Android 官方推出的一种屏幕适配方法,通过自动生成不同屏幕尺寸的 dimens.xml 文件来实现适配。
2025-04-03 15:30:53
468
原创 Android 中获取时间的几种方法
这是最简单的一种获取时间的方法,它返回从1970年1月1日00:00:00 GMT(格林威治时间)开始到现在的毫秒数。Calendar类提供了更灵活的时间操作功能,可以获取和设置日期和时间的各个组成部分。Date类代表一个特定的瞬间,精确到毫秒。
2025-04-03 10:06:25
133
原创 Android 中获取颜色资源
在 Android 开发中,资源(如字符串、颜色等)通常存储在 res 文件夹中,并通过资源 ID 进行访问。资源 ID 是一个整型值,用于唯一标识资源,若需要将资源转换为整型值,通常是指获取资源 ID 或从资源中提取整型数据。
2025-03-29 15:52:18
242
原创 Android 设备实现 adb connect 连接的步骤
确保安卓设备和电脑连接到同一个Wi-Fi网络,确认设备的 IP 地址是否正确。确保安卓设备已开启开发者模式,并启用了USB调试。使用USB线将安卓设备连接到电脑。
2025-03-28 17:11:59
476
原创 Android 中两个 APK 之间切换的几中方法
在 Android 中,两个 APK(应用程序)之间的切换通常是通过 Intent 来实现的。以下是一些常见的方法和注意事项,帮助你实现两个 APK 之间的切换。
2025-03-27 18:36:50
499
原创 Android 数据持久化之 SharedPreferences 存储
SharedPreferences 是 Android 提供的一种轻量级存储类,用于存储简单的键值对数据。它非常适合保存应用的配置信息、用户偏好设置等。SharedPreferences支持数据类型String、int、float、long、boolean、Set(字符串集合),它的数据以 XML 文件的形式存储在应用的私有目录中,文件名由开发者指定,因此数据具有较高的安全性。
2025-03-14 17:57:46
295
原创 Android 中临时文件存放路径选择
从 Android 10(API 29)开始,推荐使用应用的内部存储目录来存储临时文件。这些目录是应用私有的,其他应用无法访问。如果你的应用需要存储较大的临时文件,或者需要用户手动访问这些文件,可以使用外部存储的临时目录。这是 Android 系统提供的一个通用临时目录,适用于存储临时文件。获取一个应用专用的外部存储目录。这些目录不需要存储权限,且不会被用户清理。,所有应用都可以访问。如果需要存储敏感数据,建议使用应用的私有目录。从 Android 4.4(API 19)开始,应用可以使用。
2025-03-13 16:41:00
415
原创 Win10 下搭建免费的 FTP 服务器 FileZilla
服务器是一个免费的开源FTP和FTPS服务器,是根据GNU通用公共许可证条款免费发布的开源软件。FileZilla支持FTP、FTPS、SFTP等文件传输协议,相比其他FTP服务器,最大的优势是FileZilla自由(免费)。
2025-03-12 14:23:16
715
原创 Kotlin 中实现静态方法的几种方式
虽然 Kotlin 没有直接支持静态方法,但通过 object 单例、companion object 伴生对象、顶级函数、扩展函数和 @JvmStatic 注解,可以实现类似的功能。如果需要全局工具方法,可以使用 object 单例 或 顶级函数。如果需要类的一部分,可以使用 companion object。如果需要与 Java 互操作,可以使用 @JvmStatic。
2025-03-10 14:52:45
478
原创 Windows 环境下安装 Git 软件的步骤
是一款免费、开源的分布式版本控制系统,广泛应用于软件开发项目的代码管理。以下介绍在操作系统上安装 Git 的步骤。
2025-03-05 14:06:27
259
原创 Android 之 Activity 的启动模式(launchMode)
在实际项目中,应该根据项目的实际需要来为每个指定恰当的启动模式。启动模式一共有四种,分别是。可以在中通过给标签指定属性来选择启动模式。
2024-12-24 15:42:49
1170
原创 Android 之 List 简述
List 和 MutableList 是接口,MutabaleList 实现了 List 接口,List 实现了 Collection 接口。采用 listOf 和 mutableListOf 方式创建列表时,实际创建的是 ArrayList。
2024-12-24 10:48:03
695
原创 搭建一个简单的 Web 服务器(Apache2.4)
<app><id>1</id></app><app><id>2</id></app><app><id>3</id></app>
2024-12-20 19:45:32
605
转载 Java 设计模式 -- 单例模式
单例模式 是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。单例的构造函数通常是私有的,这样外部类就无法通过常规方式创建该类的多个实例。通过一个静态方法或者静态变量来获取这个唯一的实例。
2024-12-20 13:59:54
44
转载 Android 之 RxJava 简单介绍
RxJava 是一个在 Java 虚拟机(JVM)上使用的响应式编程扩展库。它基于观察者模式,用于处理异步和基于事件的程序。在实际应用中,RxJava 被广泛应用于安卓开发和后端服务器开发等领域。在安卓开发中,它可以很好地处理各种异步操作,像网络请求、文件读取、传感器数据获取等。在后端开发中,对于处理高并发的异步事件流,如消息队列的消息处理等场合也非常有用。
2024-12-19 14:58:48
73
原创 Android 之 RecyclerView 显示数据列表和网格
下面是一个典型的简单 Adapter 示例,该 Adapter 包含一个显示数据列表的嵌套 ViewHolder。在本例中,RecyclerView 显示了一个简单的文本元素列表。系统会向 Adapter 传递一个字符串数组,该数组包含了 ViewHolder 元素的文本。ViewHolder 是包含列表中各列表项的布局的 View 的封装容器。本例只是演示 RecyclerView 的用法,故只简单显示颜色列表,数据项中只需定义一个 TextView 来显示颜色即可。
2024-12-13 19:24:56
1088
原创 Android Studio编译报错:[databinding] {“msg“:“Only one layout element with 1 view child is allowed.
由于xml中布局layout下包含多个ViewGroup。
2024-11-14 20:03:50
303
原创 Android Studio编译报错:Adding a packaging block may help, please refer to ******/Packaging
Android Studio 报错排除
2024-11-14 11:29:14
318
原创 Android Stuido中编译信息出现乱码的解决方式
打开菜单File -> Settings,选择Editor -> File Encodings窗口,将编码设置为正确的字符集,保证 Global Encoding、Project Encoding 和 Default Encoding for properties files 都设置为 UTF-8。
2024-09-30 14:22:21
375
转载 Android Studio中android视图和project视图结构说明
默认情况下,Android Studio 会在 Android 视图中显示您的项目文件。相反,它按模块和文件类型进行整理,以简化项目的关键源文件之间的导航,并隐藏某些不常用的文件或目录。如需查看项目的实际文件结构(包括在 Android 视图中隐藏的所有文件),请从 Project 窗口顶部的菜单中选择 Project。在一个组(而非在每个资源限定符的单独文件夹)中显示所有备用资源文件。在模块级组中显示每个模块的所有清单文件(当您针对不同的产品变种和 build 类型使用不同的清单文件时)。
2024-09-17 14:09:09
916
原创 LiveData更新数据时报错:java.lang.IllegalStateException: Cannot invoke setValue on a background thread
LiveData更新数据时报错处理
2023-04-18 11:28:18
1066
转载 Kotlin学习笔记:内置函数let、also、with、run、apply可大大提高开发效率
kotlin内置函数let、also、with、run、apply
2023-02-14 14:32:28
295
HTTP1.1协议中文版-RFC2616.docx
2020-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人