移动开发

[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

老项目迁移至AndroidX记录

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

推荐一下我的 Flutter 学习资源

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

Android Studio 中文字大小的单位详解

文章目录 一、Android 中的尺寸单位 1. dp (Density-independent Pixels - 密度无关像素) 2. sp (Scale-independent Pixels - 可缩放像素) 3. px (Pixels - 像素) 4. pt (Points - 磅) 5. mm (Millimeters - 毫米) 和 in (Inches - 英寸)

burp suite安装及汉化过程

一、下载安装1、访问官网下载社区版本Burpsuite:Burp Suite Release Notes#community2、安装并打开二、证书&代理配置1、配置本地证书,并通过Chrome浏览器访问进行抓包Chrome设置代理 127.0.0.1:8080,与BP里面的一

ES6学习(17)async和await

async用来声明一个异步函数,返回值是一个promise对象,结合await使用,使异步代码看起来像同步代码。 async可以单独使用 如果没有返回值,则返回的状态是resolved,值是undefined 如果返回值是一个非promise类型,则返回的状态是resolved,值就是返回的这个值。 如果 抛出错误,则返回的状态就是rejected 如果返回的值是一个promise,则asyn

项目组件二进制化

组件二进制化 优点: 加快编译速度 将固定的业务模块化,方便管理 共享业务功能又保密实现逻辑 开发第三方SDK 目录: 二进制化的优点 命令扩展 分类 静态库动态库制作方法 项目组件二进制化实操 命令扩展 查看库版本信息 终端cd到库所在的父目录,使用命令 $ lipo -info xxx.a 查看framework的信息 终端cd到framework所在的父目录,使用命令 $ f

adb故障排除:更新adb工具以解决连接问题

本文还有配套的精品资源,点击获取 简介:Android Debug Bridge (adb) 是一个关键的命令行工具,用于控制和调试Android设备。当在Android Studio中遇到无法识别设备的情况时,可能是adb出现了端口异常或其他故障。解决此问题通常需要替换或更新现有的adb工具。本文提供了详细的步骤来下载、备份、定位