移动开发

跨平台Docker容器访问宿主机服务(Windows/Linux/Mac IP配置指南)

第一章:Docker容器宿主机IP访问概述在使用 Docker 容器化技术时,容器与宿主机之间的网络通信是一个关键环节。尤其当容器内应用需要访问宿主机上运行的服务(如数据库、API 服务或开发工具)时,正确获取并使用宿主机的 IP 地址至关重要。由于 Docker 默认采用桥接网络模式,容器拥有独立的网络命名空间&

iOS DispatchSourceTimer 定时器

1. 概述 说起计时器,很多开发人员第一时间就会想起Timer,但是随着使用的深入,慢慢就发现Timer其实不是很好用,比如说TableView滑动时候不执行,Timer循环引用。 2. DispatchSourceTimer DispatchSourceTimer,也就是大家通常叫的GCD Timer,是依赖于GCD的一种Timer,Runloop的底层代码中也用到这种Timer,可见GCD T

Android 13 Launcher 基础认识(一)

学习笔记: Android 10.0 launcher 启动流程 Android 13 Launcher 基础认识(一) Android 13 Launcher 数据加载分析(二) Android 13 Launcher3 数据库及Workspace 的数据加载与绑定(三) 一、Launcher 简介 Launcher 是 Android 系统不可缺少的部分,我们通常称之为 Android 系统

Android Jetpack架构组件(十)— StartUp

一、StartUp简介 应用程序启动库提供了一种在应用程序启动时初始化组件的简单、高效的方法。库开发人员和应用程序开发人员都可以使用StartUp来简化启动序列并显式设置初始化顺序。 StartUp允许您定义共享单个内容提供程序的组件初始化程序,而不是为每个需要初始化的组件定义单独的content provider。这可以显著缩短应用程序启动时间。 简单的说就是通过一个公共的content pro

UIStackView之一问一答

前言 此篇文章作为在使用UIStackView前的一些答疑,既是扫盲篇,也是实用篇。以下会讲述一些实用的案例,目的就是让更多的人拥抱UIStackView。同时欢迎小伙伴通过评论区讲讲使用StackView遇到的问题。 答疑 排列视图间距大小不一 问:排列视图间距大小不一,可以用UIStackView吗? 答:当然可以用,UIStackView虽然有space属性,但是适用于所有的排列视图,如果想

Android通知栏增加快捷开关的技术实现

我们通常可以在通知栏上看到“飞行模式”、“移动数据”、“屏幕录制”等开关按钮,这些按钮都属于通知栏上的快捷开关,点击快捷开关可以轻易调用某种系统能力或打开某个应用程序的特定页面。那是否可以在通知栏上自定义一个快捷开关呢?答案是可以的,具体是通过TileService的方案实现。 TileService继承自Service,所以它也是Android的四大组件之一,不过它是一个特殊的组件

android13 适配

这次安卓13主要更新的特性有: 1.安卓13强化了隐私,这点各家UI都已经有自己的隐私保护功能,不会跟进。 2.不同设备间的应用流转,这点在国产UI上叫跨屏协作。 3.锁屏扫描二维码,或许会跟进。 4.允许每个应用单独设置语言,这点国产UI很可能会应用进来。 5.剪切板悬浮显示,目前百度输入法已经支持这项功能。 适配 1.通知 对用户影响 在Android 13的机器上对用户来说应用程序均会有提示

Mac上SSH多终端对比, 谁才是你的菜

        做开发运维很多年了, 一直使用Windows, 今年买了1台mac, 耗费2个w, 以前在window上用的是mobaXterm,用的非常顺手, 但自从转到mac, 却发现Mobaxterm不支持, 无奈只能再找一款, 在网上搜索了很久, 得到了一下几款mac上的ssh客户端软件.termius | electerm | tabby | termcc | SecureCrt    

安卓最佳文件管理器:9个比内置更好的新选项

文件管理器是所有 Android 用户必备的工具,它能够浏览、整理和管理存储在设备以及任何连接存储设备上的文件和文件夹。虽然 Android 系统内置了基本的文件管理器解决方案,但第三方文件管理器生态系统提供了显著增强的功能、改进的界面和更强大的控制功能。如果您想找到最佳的 Android 文件管理器,千万不要错过本指南。第 1 部分:内置

方法重写以及里氏替换原则

一、方法重写(override) 在子类中将父类的方法再重新定义一遍称之为方法重写 什么时候需要方法重写: 如果父类继承的方法不能满足子类的需要,或者不适合子类的需要。此时子类可以从父类继承的方法重写定义为满足自己需要的方法。 在下例中,Cat类继承了Pet的sound方法,但是并不适用于cat,此时可以进行方法的重写。 public class Pet { private i