移动开发

Android-推荐一个TextView效果开源库( SuperTextView)

图片来源网络,入侵必删 我最近发现一个能够实现多种效果的TextView开源库,这篇博客分享给看文章的小伙伴,希望能帮你们提高开发效率以及提升自己App的用户体验感。 SuperTextView SuperTextView一个简单的控件元素,但却不仅仅是一个控件。它生而灵动多变,强大的内嵌逻辑,为你持续提供丰富多彩却异常简单的开发支持。他的特性: 为 View 设置圆角 支持单独控制

Mac桌面幻灯片,Google文档,google硬盘和google等图标如何移除

最近桌面莫名多了一堆google系列的图标,还无法直接拖到废纸篓删除,尝试了几次,发现这个方法最简单。首先,打开「访达」--「用户名」--「Applications」,可以看到「Chrome应用」,这些多余的图标大概率就是不知情的情况下Chrome默认安装的。进入之后选择全部删除,重新查看桌面&#xf

Android Framework利用OpenGL修改开机动画

目录 效果展示 实现步骤 1.修改BootAnimation 这里我们需要修改BootAnimation.h和BootAnimation.cpp 首先由于我们是多绘制了一个图片,因此我们需要多增加一个纹理,所以需要先修改BootAnimation.h,把mAndroid这个Texture数组改为3(之前为2) 然后在BootAnima

Kotlin Multiplatform 深度指南:从原理到实践

文章目录 概述 核心特性 一、KMP 工作原理深度解析 1.1 架构全景 1.2 编译流程详解 1.3 Source Set 依赖层级 二、快速上手实战 2.1 项目结构模板 2.2 Gradle 配置详解 2.3 expect/actual 机制深入 三、架构设计与最佳实践 3.1 推荐分层架构 3.2 依赖注入配置 3.3 跨平台数据流设计

自定义Chronometer实现定时器

前言 在Android开发过程中,计时控件是经常回使用到的,在Android控件库中有一个能快捷实现计时功能的控件,它就是Chronometer,今天我们基于它自定义实现一个方便调用的计时控件TimeChronometer。 今天涉及知识有: Chronometer常用方法 TimeChronometer在Activity中使用 效果图和项目结构图 TimeChronometer源码 一

小程序信息收集(小迪网络安全笔记~

免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 四、小程序信息收集 引子:本章对常见的小程序信

DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人目录DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人前  言1 环境准备1.1 华为云开发环境1.2 ModelArts 代金券与模型服务1.3 启动 OpenClaw 网关2 飞书开放平台配置2.1 创建企业自建应用2.2 添加机器人能力2.3 配置应用权限2.4 发布应用版本

深入理解Glide源码:三条主线分析 Glide 执行流程

Glide流程分析 说到图片加载框架,大家最熟悉的莫过于Glide了,但我却不推荐简历上写熟悉Glide, 除非你熟读它的源码,或者参与Glide的开发和维护。然而很多小伙伴对于Glide的流程及其源码解读总是无从下手,本篇就从三条主线来分析一下Glide流程及源码! 第一条主线 加入队列流程: RequestManager with = Glide.with(this); RequestBuil

Flutter动态化方案

背景 随着业务功能越来越复杂,Flutter应用需要持续更新添加新功能,而且也会遇到线上bug需要及时修复,目前常见的升级方式采用整体更新升级,无论是安卓还是IOS,都需提交对应的应用市场更新,审核周期长也经常有遇到被拒的情况,即使上线了也无法达到全部用户升级,存在兼容问题,费时费力,而且用户对app动辄几十兆几百兆的应用更新是比较抗拒的。 面对这些问题,如果能实现app增量、无感知更新,实现功能

dispatch_group_leave崩溃

崩溃描述 image.png 近日排查线上崩溃时,发现一个描述信息很少的崩溃,如上。由dispatch_group_leave.cold.1可知,属于dispatch_group异常 dispatch_group使用 dispatch_group使用场景:A任务依赖B/C/D子任务全部执行完成,才进行触发执行。 如何添加子任务,通常有两种方式: block dispatch_gr