首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Dev
订阅
xiaopei65698
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
算法基本知识
知识点难点要反复学,直到学会为止,稳扎稳打,切忌看一遍书、视频等完事。 看国际版高手代码,反复练。 尽可能多的思考解题思路,并列出时空复杂度。 切忌死磕,5分钟不会,立刻看题解。 第一遍,看题解,比较不同解法的优劣,背诵优秀题解。 一个点,一道题反复练习,过遍数。 高层次主干逻…
手写一个Flutter State Widget,来让你彻底理解State的来龙去脉
在上期,我们手写了一个Widget的实现,并接触到了Element,经过一系列的分析,我们对Widget和Element的认识更进一步,那么这期我们就来深入理解下State,相信大家在开发过程中,总会用到StatefulWidget,那么官方为什么设计一个含有State的Wid…
架构系列—基于状态管理的单向数据流架构
之前学习React期间接触到了Redux,第一次对基于状态管理的单向数据流架构有了一个认识,简单的公式即UI = f(state)。下面是Redux的一个架构图(看不懂,就继续往下看): 统一管理应用状态,包括统一的机制和唯一的状态容器,这让应用状态的改变更容易预测,也更容易调…
我是如何让微博绿洲的启动速度提升30%的
绿洲iOS研发工程师,绿洲ID:收纳箱KeepFit。 0. 序言 启动是App给用户的第一印象,对用户体验至关重要。试想一个App需要启动5s以上,你还想用它么? 最初的工程肯定是没有这些问题的,但随着业务需求不断丰富,代码越来越多。如果放任不管的话,启动时间会不断上涨,最后…
iOS App启动优化(一):检测启动时间
冷启动:指APP被后台kill后重新启动APP,这种启动方式叫做冷启动。 热启动:APP的状态由running切换为suspend,APP 没有被kill仍然在后台运行。再次把APP切换到前台,这种启动方式叫热启动。 Xcode 中提供了测量 pre-main 的时间 Edit…
iOS爱上底层-Block实现与原理
很多人在面试的时候都会被问到Block,那么Block分为哪几种类型呢? 其实Block共有6种类型,其中三种常用级别,分别是:_NSConcreteGlobalBlock _NSConcreteStackBlock _NSConcreteMallocBlock,三种系统级别 …
iOS探索 细数iOS中的那些锁
当一个线程访问数据的时候,其他的线程不能对其进行访问,直到该线程访问完毕。简单来讲就是在同一时刻,对同一个数据操作的线程只有一个。而线程不安全,则是在同一时刻可以有多个线程对该数据进行访问,从而得不到预期的结果 锁作为一种非强制的机制,被用来保证线程安全。每一个线程在访问数据或…
你可能不知道的15个有用的Github功能
我们平时的工作中,github是必不可少的代码托管平台,但是大多数同学也只是把它做为了托管代码的地方,并没有合理的去运用。 其实github里面有非常多好玩或者有趣的地方的。当然,这些技巧也能对你的工作效率有很大的提升。 可能很多人并没有听过Gist。它在github首页的子目…
iOS代码混淆实现
一些类似的项目会使用重复的代码,导致苹果机审期间被判断为马甲包,还没到人审就被苹果审核拒掉了。 为了能够使正常迭代出功能相似的项目过审,要对我们项目的代码进行深度混淆。 4、通过映射进行混淆操作。 ramdom可以添加一些项目前缀,比如CS等。 my_arr里面可以定义一些iO…
iOS App启动优化(三):二进制重排
我们可以看到图中项目的Page Fault 数量并不多,这是因为当前项目是一个demo,代码和文件都极少。当代码多起来的话,Page Fault的 数量和加载耗时都会随着代码增加而增加。 二进制重排 可以很好优化这个问题,其中心思想是重新排列 方法符号的顺序, 使启动的相关方法…