移动开发

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

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

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

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

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

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

UIStackView之一问一答

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

Android动画原理分析

简单描述为:将View的一次大的属性变化拆分为多次小的属性变化,在每次VSYNC信号到来时,根据当前时间和插值器来计算当前View属性的值,然后给该View设置该属性值,直到动画执行完毕。其中Choreographer将动画拆分成一次次小的属性变化,Choreographer是动画的指挥者。理想情况下,属性刷新次数(动画拆分为多次小的属性变化)=动画执行时间/16.7ms。 我们从以下4个问题来讲

Android Jetpack架构组件(十)— StartUp

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

iOS知识复习笔记(6)--- 自动释放池AutoreleasePool

原理 autoreleasePool 是OC中的内存自动回收机制,它可以延迟加入autoreleasepool中的变量release的时机,正常情况下,创建的变量会在超出作用域的时候release,但是如果变量加入autoreleasepool,那么release将会延迟执行。 释放时机 被autorelease修饰的对象,释放时机有两种: 如果通过代码添加一个autoreleasepool,在

iOS DispatchSourceTimer 定时器

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

2025最新版 Android Studio安装及组件配置(SDK、JDK、Gradle)

目录 原生 Android 简介 Android Studio必备组件 一、Android Studio安装 二、Android SDK 配置 三、JDK 配置(选做) 四、Gradle 配置 五、新项目测试 原生 Android 简介Android 是由 Google 开发的移动操作系统,而“原生 Android 开发”指的是直接使用