移动开发

iOS 中为什么更新UI都要放在主线程

分析:首先在子线程中是不能进行UI 更新的,而可以更新的结果只是一个幻像:因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈,这中间的时间非常的短,就让大家误以为分线程可以更新UI。如果子线程一直在运行,则子线程中的UI更新的函数栈 主线程无法获知,即无法更新。 其次因为开辟线程时会获取当前环境,如点击某个按钮,这个按钮响应的方法是开辟一个子线程,在子线程中对该按钮进

Android卡顿监控

实现思路 卡顿监控主要监控:慢方法的监控、ANR的监控、掉帧的监控。其实现方案主要有三种: Looper的Printer在消息执行前后的打印,计算出消息执行时间。 利用Choreographer向其注册CALL_BACK, 监听Vsync的开始从而得到上一帧的执行时间。 利用插桩的方法计算每个方法的执行时间。 比如对慢方法、ANR的监控,则是对主线程的Looper的消息的监听,对掉

Xcode14.3打包的APP在iOS13.x上启动崩溃闪退

Xcode14.3 ,iOS13.6.1, iOS13.6, iOS13.3, iOS13.x 今天用Xcode 14.3打包安装在iOS 13.x的手机启动崩溃,但是连着Xcode调试时没有问题,不连着Xcode14.3时启动APP就闪退。 从苹果官网看到也有不少人遇到,但是没有具体的解决方案。 目前从以下几点处理这个问题: 1.降级Xcode到14.2打包可解决该问题 2.app 最低目标版

iOS关联对象objc_setAssociatedObject探讨

主要函数为: //为给定的对象设置一个关联值 public func objc_setAssociatedObject(_ object: Any, _ key: UnsafeRawPointer, _ value: Any?, _ policy: objc_AssociationPolicy) //返回与给定键的给定对象关联的值 public func objc_getAssociatedObj

Flutter-指针事件知识

配图来自网络,如侵必删 在Flutter开发当中,我们可能会遇到下面的需求: 定位用户手指当前处于的位置,以及点击了多少次。 遇到这种需求,我们就需要使用指针事件来帮我们实现。这篇博客分享指针事件的知识,希望对看文章的小伙伴有所帮助。 指针事件 怎么获取指针事件?这是一个很关键的问题,大概的实现思路是: Flutter应用中每个显示在屏幕中的页面都会被Listener组件包

adb shell input text不能输入中文的解决方案

原因 adb默认是不支持Unicode编码的,无法通过adb shell input text 命令输入中文到手机或者模拟器。 解决步骤 1、安装ADBKeyBoard.apk文件(直接搜索就能找到) 打开手机或模拟器,adb install ADBKeyBoard.apk安装该输入法 在手机上直接安装也可 2、设置默认输入法 打开手机设置 -> 点击语法与输入法 -> 点击输入法管

NestedScrollView RecycleView 嵌套 滑动冲突

NestedScrollView RecycleView 嵌套 滑动冲突 场景描述 效果演示 实现思路 问题和优化 优化 参考文档 场景描述 使用NestedScrollView 内嵌RecycleView时,当用户上滑时,NestedScrollView需要首先响应上滑事件,直到ScrollView无法滑动,再由RecycleView进行响应滑动事件 效果演示 image.png 实

Android Studio更改项目使用的JDK

一、吐槽过去,在安卓项目中配置JDK和Gradle的过程非常直观,只需要进入Android Studio的File菜单中的Project Structure即可进行设置,十分方便。原本可以在这修改JDK: 但大家都知道,Android Studio的狗屎性能,再加上它对用户的“摆烂”态度,真是让人心累。每次更新似