自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(211)
  • 收藏
  • 关注

原创 swift-oc和swift block和代理

1.1、swift 闭包表达式作为参数的形式。2.1、swift 代理表达式作为参数的形式。1.2、swift 闭包表达式作为属性。1.3、oc 闭包表达式作为参数的形式。2.2、swift 代理表达式作为属性。2.3、oc 代理表达式作为参数的形式。1.4、oc 闭包表达式作为属性。2.4、代理 闭包表达式作为属性。

2025-04-04 16:42:45 111

原创 flutter 专题 六十八 Flutter 多图片上传

如果要求不高,Flutter图库选择可以使用官方提供的image_picker,如果需要多选,那么可以使用multi_image_picker插件库。multi_image_picker库支持图库管理,多选,拍照,当然还可以自定义资源管理界面。multi_image_picker的使用也比较简单,首先,需要在pubspec.yaml配置文件中添加multi_image_picker库的依赖,如下所示。然后,我们做一个测试的按钮,代码如下。然后,我们编写逻辑代码,如下所示。

2025-04-04 10:48:07 45

原创 flutter 专题 六十九 -Flutter开发之Flare动画

Flutter的动画大体可以分为使用AnimationController 和Animation控制的基础动画、使用 Hero的转场动画和使用CustomPainter 的自定义动画三大类。除此之外,Flutter还支持矢量动画,是一种类似Android开发中的Lottie动画。Flare是一家可以快速制作矢量动画的网站,提供专门的Flutter组件来承载网站导出的动画文件,使用Flare创建的动画不仅可以有效减少安装包的体积,还能创建更加复杂绚丽的动画体验。

2025-04-04 10:47:54 600

原创 flutter 专题 七十三Flutter打包未签名的ipa

打包之前,需要先从第三方获取到iOS证书(.p12)和描述文件(.mobileprovision),然后然后导入iOS证书(.p12)到本地,一般双击即可。然后,我们使用Xcode打开Flutter的iOS工程,如下图所示。此处,我们选择 Export 导出,然后把文件里面的 Runner.ipa 进行签名即可。然后,我们导出ipa。然后,打开Xcode ,在导航栏中选择 Product > Archive 以生成构建档案,,等待完成后会自动弹出如下界面。,然后才能出现后面的 2,3,4。

2025-04-04 10:47:38 69

原创 flutter 专题 九十五 Flutter初体验

和。

2025-04-04 10:47:22 600

原创 flutter 专题 九十六 Flutter开发之常用Widgets

上一篇,我们介绍了,接下来,我们看一下Flutter开发中一些比较常见的Widget。Flutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改,类似于React/Vue中虚拟DOM的diff算法。

2025-04-04 10:47:05 308

原创 flutter 专题 九十七 Flutter开发之导航与路由管理

这和原生开发类似,无论是Android还是iOS,导航管理都是通过维护一个路由栈来实现的,路由入栈(push)操作对应打开一个新页面,路由出栈(pop)操作对应页面关闭操作。Navigator是Flutter应用开发中的一个路由管理的widget,它通过一个栈来管理一个路由widget集合。路由(Route),在移动开发中通常用来表示移动应用的页面(Page),具体来说,Route在Android中通常指一个Activity,在iOS中指一个ViewController。

2025-04-04 10:46:51 596

原创 flutter 专题 一百 Flutter技术全解析

自定义 Android 涉及 flutter.jar、libflutter.so(在 flutter.jar 中)、gen_snapshot、flutter.gradle 和 flutter_tools。在自定义 Flutter 时,需要注意以下事项:1. 将 Android 中的目标设置为 armeabi。这是构建过程的一部分,逻辑是在 flutter.gradle 中定义的。如果要应用程序通过 armeabi 支持 armv7/arm64,必须修改 Flutter 的默认逻辑。

2025-04-04 10:46:26 326

原创 逆向-ARM64汇编二

内存操作内存操作。

2025-03-31 14:07:19 1196

原创 逆向--ARM64汇编

二、

2025-03-30 17:12:17 355

原创 flutter 专题 七十 Flutter应用开发之webview_flutter插件

在移动应用开发中,经常会遇到加载网页的需求,打开网页通常有两种方式,即在应用内使用内置的组件打开和使用系统自带的浏览器打开。不过,在Flutter应用开发中,由于官方并没有提供类似Webview的网页加载组件,所以如果项目中涉及网页加载需要使用第三方插件库,如webview_flutter、flutter_webview_plugin等。

2025-03-29 22:58:37 552

原创 flutter 专题 七十二 Flutter 应用开发之Bloc模式

BLoC是Business Logic Component的英文缩写,中文译为业务逻辑组件,是一种使用响应式编程来构建应用的方式。BLoC最早由谷歌的Paolo Soares和Cong Hui设计并开发,设计的初衷是为了实现页面视图与业务逻辑的分离。如下图所示,是采用BLoC模式的应用程序的架构示意图。使用BLoC方式进行状态管理时,应用里的所有组件被看成是一个事件流,一部分组件可以订阅事件,另一部分组件则消费事件,BLoC的工程流程下图所示。

2025-03-29 22:58:18 594

原创 flutter 专题 七十一 Flutter 自定义单选控件

对于分段组件大家肯定不会陌生,主要是实现多个分段,实现单选功能,效果如下图。});}else {});使用的时候,只需要按照构造函数传入对应的参数即可。当然,开发中还可以遇到下面这种带圆角的按钮,效果如下。//只能支持两个按钮单选@override。

2025-03-29 22:58:02 457

原创 flutter 专题 七十六 Flutter 时间选择组件

在Flutter 应用开发过程中,或多或少的都会涉及到时间选择器相关的内容。Flutter默认提供了DatePicker日期选择器,如果对样式没有特殊的要求,那么可以使用它来进行时间的选择,默认的样式如下所示。可以发现,默认的样式并不是很友好。通常在移动应用开发中,App的涉及多是参考iOS的设计来的,所以这时候,多半需要进行自定义组件了。不管,为了快速的进行开发我们可以选择一些第三方的组件库,如。实际使用时候,使用showCupertinoModalPopup组件展示出来即可,如下所示。

2025-03-29 22:57:42 287

原创 flutter 专题 七十五 -Flutter开发之动态权限

众所周知,Android在6.0版本后将权限修改成了动态权限,而iOS则一直使用的是动态权限,所以在Flutter应用开发中如果涉及到一些危险权限,就需要进行动态申请,动态申请权限可以使用Flutter的。

2025-03-29 22:57:25 520

原创 flutter 专题 七十四 Flutter开发之动画

动画作为产品的重要组成部分,是提升用户体验的重要方式,一个恰当的动画不仅能够缓解用户因为等待而带来的情绪焦躁,还会增加应用的整体用户体验。因此,在应用中增加动画的相关功能,可以增强用户的粘性。

2025-03-29 22:57:07 751

原创 swift-7-汇编分析闭包本质

1.1 常规函数的分析 print(MemoryLayout.stride(ofValue: fn )) // 16 这个计算出来是16个字节但是 %rax 只能存8个字节,fun函数怎么返回16个的,进去看看1.2 fn1 占用多少字节 捕获变量的情况 28从下边可以看出alloc %rax 堆空间里面的地址都没有被修改 通过分析 在 fn1 里面的16 个字节 前八个存的是函数地址,后八个存的是堆地址,那么在这里函数调用就不会是 callq + 写死的地址 而是从上面的地址取出前8个函数地址来调

2025-03-29 19:58:34 416

原创 逆向- 动态调试 MonkeyDev Xcode 16 适配

一、问题描述。

2025-03-28 20:36:27 726

原创 AT&T 汇编常用指令

​ 当在函数P中调用函数Q的时候,就需要用到转移控制指令CALL,CALL指令将控制从函数P转移到函数Q时,把程序计数器设置为Q的代码的起始位置,同时记录稍后要继续P的执行代码的位置,既然有控制转移,那就有返回,一般与CALL指令配合使用的返回指令为ret。关注第四行~第六行,第四行xp指向的内容被mov给rax寄存器,第五行y被mov给rdi寄存器储存的地址的内存,第六行ret,将%rax储存的内容返回,也就是xp指向的内容。该MOV类指令,在转移数据的时候,会把源值做零扩展后再转移到目的。

2025-03-21 09:25:28 1142

原创 flutter 专题 一百零三

前不久,谷歌官方正式发布了Flutter的首个发布预览版(Release Preview 1),这标志着谷歌进入了Flutter正式版(1.0)发布前的最后阶段,同时作为Google的重量级跨平台开发方案,此次更新也吸引了多数的移动开发者的关注。使用 Flutter从头开始写一个 App是一件非常轻松惬意的事情,但在原生APP中接入 Flutter会是什么效果呢,似乎并不是一件容易的事情,下面就讲解在iOS原生应用中如何接入Flutter。

2025-03-18 17:23:07 618

原创 flutter 专题 九十八 Flutter 1.7正式版发布

此次发布的版本是继上次 I/O大会众多重要功能发布以来的一次小更新。Flutter 1.7 包含了对 AndroidX 的支持,满足了 Play 商店近期对应用提出的要求,包含了一些新的和增强过的组件,修复了开发者们提出的 bug 等。如果你已经安装并使用默认稳定构建渠道 (stable channel) 的 Flutter,只需要运行 flutter upgrade 命令即可升级到 1.7 版本。同时,如果你还没有安装Flutter,你还可以在查看如何新安装 Flutter。

2025-03-18 17:22:35 1150

原创 flutter 专题 七十七 Flutter 数字增加动画

在移动应用开发中,流畅的动画不仅可以给人留下美好的印象,还可以提高用户体验。在Flutter开发中,官方提供了简洁且强大的动画API,比较核心的有AnimationController和Animation。下面是使用AnimationController和Animation实现一个简单的数字增长动画,效果如下图所示。使用时,只需要按照构造函数的要求传递对应的参数即可。

2025-03-18 17:21:57 306

原创 flutter 专题 七十八 Flutter 应用热更新

所谓热更新,指的是当应用代码出现缺陷问题时,不需要重新打包提交App Store即可完成缺陷的修复。众所周知,使用原生技术开发的应用体验虽然好,但开发、上线周期长也常常被诟病,特别是当应用出现线上问题时,不得不重新打包发布,大大的影响了用户体验,而热更新技术就是为有效解决线上缺陷而提出的。不过,热更新虽然具有很大的优点,但是滥用热修复也会给应用带来不好的体验,并且苹果对于热更新和修复是明令禁止的,所以热更新主要针对的是国内Android市场。

2025-03-18 17:21:37 778

原创 flutter 专题 九十 三 Flutter开发之基础Widgets

众所周知,Material是Android应用默认的视觉风格,Cupertino则是iOS应用的默认视觉风格,为了实现两种不同的视觉风格,Flutter 在基础组件库之上Flutter又提供了一套Material风格和一套Cupertino风格的组件库,以满足两种不同设计风格的开发需要。:在创建StatefulWidget后,initState是第一个被调用的方法,同createState一样只被调用一次,此时widget的被添加至渲染树,mount的值会变为true,但并没有渲染。

2025-03-18 17:21:17 669

原创 flutter 专题 九十 四 Flutter开发之基础知识

作为时下最留下的大前端跨平台开发框架,很多的公司和同学都开始了Flutter学习和应用,关于Flutter的基础知识,可以参考下面的两篇文章。接下来,我们将介绍一些Flutter应用开发中一些基本的知识。

2025-03-18 17:20:57 921

原创 flutter 专题 一百零一React Native 图表组件Echarts

近年来,随着移动端对数据可视化的要求越来越高,类似这样的传统图表库已经不能满足产品经理日益变态的需求。前端领域数据可视化的发展相对繁荣一些,通过 WebView 在移动端使用这样功能强大的前端数据可视化库,是解决问题的好办法。React Native 开发中,由于使用的是与前端相同的 JavaScript 语言,衔接 Echarts 的工作相对顺畅些,不过一些必要的组件封装还是能够大大提高开发效率的。(注:它对应的 nmp package 名字为。

2025-03-18 17:20:36 929

原创 flutter 专题 九十 二 Flutter开发之JSON解析

摘要由优快云通过智能技术生成对于JSON格式的数据交互,想必大家不会陌生。JSON(全称JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,JSON因为具有易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率等特性,通常被用在客户端与服务端的数据交互中。对于JSON的基本知识,本文不做详细介绍,读者可以自行搜索资料进行学习。

2025-03-14 19:45:46 1200

原创 flutter 专题 七十九 Flutter使用JsBridge方式处理Webview与H5通信

目前,移动跨平台开发作为移动开发的重要组成部分,是移动开发者必须掌握的技能,也是自我提升的重要手段。作为Google推出的跨平台技术方案,Flutter具有诸多的优势,已经或正在被广大开发者应用在移动应用开发中。在过去的2019年,我看到越来越多的公司和个人开始使用Flutter来开发跨平台应用,对于移动应用开发来说,Flutter能够满足几乎所有的业务开发需求,所以,学习Flutter正当时。

2025-03-14 19:45:14 923

原创 flutter 专题 八十八 Flutter原生混合开发

在原生工程中集成Flutter是现阶段最常见的方式。通过分离 Android、iOS 和 Flutter 三端工程,抽离 Flutter 库和引擎及工程代码为组件库,以 Android 和 iOS 平台最常见的 aar 和 pod 形式接入原生工程,从而将不同平台的构建产物依照标准组件化的形式进行管理。如果每次通过构建 Flutter 模块工程,都是手动搬运 Flutter 编译产物,那很容易就会因为工程管理混乱导致 Flutter 组件库被覆盖,从而引发难以排查的 Bug。

2025-03-14 19:44:53 1021 3

原创 flutter 专题 八十九 Flutter的Hot Reload是如何做到的

Flutter 的热重载是基于 JIT 编译模式的代码增量同步。由于 JIT 属于动态编译,能够将 Dart 代码编译成生成中间代码,让 Dart VM 在运行时解释执行,因此可以通过动态更新中间代码实现增量同步。热重载的流程可以分为 5 步,包括:扫描工程改动、增量编译、推送更新、代码合并、Widget 重建。Flutter 在接收到代码变更后,并不会让 App 重新启动执行,而只会触发 Widget 树的重新绘制,因此可以保持改动前的状态,大大缩短了从代码修改到看到修改产生的变化之间所需要的时间。

2025-03-14 19:44:31 1001

原创 flutter 专题 九十 Flutter For Web入门

Google在今年5月的Google大会上发布了Flutter1.5.4版本,同时也推出了Flutter for Web的预览版,并开启了Flutter的全栈框架之路。同时,今年9月举行的谷歌开发者大会上,Google宣布flutter1.9正式发布,并且flutter_web已经被合到master分支,说明flutter_web越来越受到Google的重视。需要说明的是,如果没有用flutter自带的dart-sdk而是单独安装,这里可能会因为dart版本与flutter版本不匹配而出现如下提示。

2025-03-14 19:44:13 338

原创 flutter 专题 九十 一 闲鱼又一企业级巨著《Flutter in action》开放下载

目前,跨平台、高性能的渲染引擎逐渐成为大前端领域的一个热点。作为其中的明星产品, 自带光环的Flutter有很大的机会成为下一代主流的跨端解决方案。闲鱼是国内最早使用Flutter的团队,也是Flutter业务线渗入最深的团队之一,闲鱼在Flutter商业演进的过程中踩了很多的坑,也积累了很多的经验,基于对开源事业的热爱,现在闲鱼的Flutter技术团队有意将开发中遇到的坑和经验奉献出来,并整理成册。

2025-03-14 19:43:49 344

原创 开发提效- Cwebp 一键将图片转化为webp格式

在 VP8 格式中,所谓的控制分区上限为 512k,用于存储以下信息:是否跳过宏块、它属于哪个分块、它是编码为内部 4x4 模式还是内部 16x16 模式,以及最后要为每个子块使用的预测模式。跳过、分段和模式信息可能会占用这 4 位中的几乎所有位(尽管这种情况不太可能),这对于非常大的图片来说会造成问题。空间噪声形状调整 (简称 sns)是指内置算法的常规集合 用于确定图片的哪个区域应该使用相对较少的位, 以及在哪里能更好地传输这些位可能的范围为。与速度较慢的模式相比,快速模式生成的文件大小更大。

2025-03-12 09:47:39 1075

原创 开发提效-几款免费的图像压缩优化工具和脚本

对于我们这些博客爱好者,就应该有永无止境的追求,创造出尽可能轻量化的网站,而图片的优化起着非常重要的作用。没经过优化的图像不仅增加了加载时间,而且占用了用户和网络的带宽。对于拥有大量图片和流量的较大型网站影响更为严重。下面整理的几个用于优化图片体积的小工具,而且这些小工具在压缩图片体积的同时,不影响图片质量。是一个基于Web的图像优化器,支持以最小质量损失批量压缩 PNG 和 JPG 图像。该工具尤其擅长大幅降低复杂透明PNG文件的大小。

2025-03-11 19:43:50 530

原创 swift-6-汇编分析闭包表达式和闭包本质

方法占用对象的内存么?不占用方法的本质就是函数方法、函数都存放在代码段,因为方法都是公共的,不管 对象一还是对对象二调用都是一样的,所以放在代码段,但是每个对象的成员不一样所以放在每个对象的内存里面。

2025-03-09 10:45:11 396

原创 swift -(5) 汇编分析结构体、类的内存布局

在 Swift 标准库中,绝大多数的公开类型都是结构体,而枚举和类只占很小一部分比如BoolIntDoubleStringArrayDictionary等常见类型都是结构体所有的结构体都有一个编译器自动生成的初始化器( initializer ,初始化方法、构造器、构造方法)在第⑥行调用的,可以传入所有成员值,用以初始化所有成员(存储属性,StoredProperty。

2025-03-08 16:01:32 470

原创 swift4-汇编分析枚举内存布局

综上 存储成员值的情况前提是有多个case,如果只有一个case的情况就没必要再花一个字节的内存去存成员值。1.5 一个case的关联值。

2025-03-02 22:38:17 186

原创 Cursor AI编程-详细教程

Cursor官网:https://www.cursor.com/jaCursor文档:Cursor – Welcome to CursorCursor论坛:Weekly - Cursor - Community Forum。

2025-02-28 20:09:10 1028

原创 flutter 专题 八十 Flutter 应用性能检测与优化

软件项目的交付是一个复杂且漫长的过程,任何细小的失误都有可能导致交付过程失败。在软件开发过程中,除了代码逻辑的 Bug 和视觉异常这些功能层面的问题之外,移动应用另一类常见的问题是性能问题,比如滑动操作不流畅、页面出现卡顿丢帧现象等。这些问题虽然不至于让移动应用完全不可用,但也很容易引起用户反感,从而对应用质量产生质疑,甚至失去耐心。那么,对于应用渲染并不流畅,出现了性能问题,我们该如何检测,又该从哪里着手处理呢?

2025-02-26 21:01:02 1224 2

原创 flutter 专题 八十一 Flutter混合开发

使用Flutter从零开始开发App是一件轻松惬意的事情,但对于一些成熟的产品来说,完全摒弃原有App的历史沉淀,全面转向Flutter是不现实的。因此使用Flutter去统一Android、iOS技术栈,把它作为已有原生App的扩展能力,通过有序推进来提升移动终端的开发效率。目前,想要在已有的原生App里嵌入一些Flutter页面主要有两种方案。一种是将原生工程作为Flutter工程的子工程,由Flutter进行统一管理,这种模式称为统一管理模式。

2025-02-26 20:59:53 614

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除