移动开发

[ANR] 优化SharedPreference apply引起的ANR问题

前一篇文章[ANR]为什么SharedPreference会引起ANR,我们知道, SharedPreference的apply方法虽然是异步写入文件的,但是会在Activity和Service生命周期方法调用的时候,等待所有的写入完成,可能引起卡顿和ANR。 解决方法 为了快速解决这个问题,我们可以通过代理系统SharedPreference的所有apply方法,改为直接在子线程调用commit

Runloop原理(一)

此文章的意图:当你完全细心阅读之后,对runloop认知,会成为你作为一名ios开发人员潜意识里的一部分 一、官方一张图开始 image.png 官方文档开宗介绍 Run loops are part of the fundamental infrastructure associated with threads. runloop是与线程相关的基础架构的一部分,说白了runloop

最完整Docker-Android使用指南:从环境搭建到高级配置全解析

最完整Docker-Android使用指南:从环境搭建到高级配置全解析 【免费下载链接】docker-android budtmo/docker-android: 是一个用于在 Docker 中构建 Android 镜像的项目,可以帮助开发者快速搭建 Android 开发环境。特点包括易于使用、支持多种 Android 版本、支持自定义配置等。 项目地址: ht

老项目迁移至AndroidX记录

Android Studio操作步骤: Refactor > Migrate to AndroidX 官网链接:?hl=zh-cn 对于老项目,直接迁移显然不可能一步到位。可以通过命令查看哪些依赖还是用的support包,然后手动修改。 查看项目依赖树命令: grad

Android 13(T) 适配

最近在做Android13(T) 的Target适配,整理了适配过程中遇到的问题 分以下三部分影响所有应用的变更(包含target33), 只影响TargetSdkVersion = 33的变更 ,其他更改(新增或者改善的功能). 1.影响所有应用的变更 1.1 必须要适配此项 1.1.1 通知的运行时权限 Android 13 中引入了一种新的运行时通知权限:POST_NOTIFICATIONS

Flutter-FlutterBloc的使用

BLOC说明 bloc 是一个可预测的状态管理库,有助于实现 BLoC 设计模式。简单和轻便,高度可测试,适用于 Dart、Flutter 和 AngularDart。 简单使用 声明自定义bloc类,继承于Bloc, 然后添加相应的事件对象和状态的处理(通过emit把新的状态反馈出去),如下: /// APP全局Bloc类 class AppGlobalBloc extends Bl

Glide适配Androidx

项目地址:glide 1. Android Studio中使用Glide Glide从4.9.0版本之后支持Androidx(最新已经到glide.4.13.1),在使用As时可以按照该项目的介绍,直接在Gradle中进行如下配置: repositories { google() mavenCentral() } dependencies { implementation '

推荐一下我的 Flutter 学习资源

我接触 Flutter 才半年,但进步却很大,这主要是我找到了好的学习资源,今天就把这些资源推荐给大家。 掘金的 Flutter 专区 网址是: Flutter 相关的文章,建议每天关注这里的新文章。并把过去的最热文章翻看一些。 推荐关注郭树煜的掘金博客 @恋猫de小郭,或他的公众号 @GSYTech。 Flutter