上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页

2020年12月4日

01*:Flutte之Linux、Flutter常见命令、Flutter环境搭建

摘要: 问题 目录 1:Linux 2:Flutter常见命令 3:Flutter环境搭建 预备 正文 1:Linux补充 1:多用户系统 Ubuntu的主要目录 /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始 /bin、/usr/bin:可执行二进制文件 阅读全文

posted @ 2020-12-04 20:38 风zk 阅读(658) 评论(0) 推荐(0) 编辑

02*:Flutter之介绍和dart介绍和创建flutter项目 :(var int double String)( num、list、map)(?、as、 is、??、.. 函数 )

摘要: 问题 目录 1:Flutter介绍 2:什么是Dart 3:Flutter、React-Native、Android原生比较 4:Flutter项目创建 预备 正文 一:Flutter介绍 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutte 阅读全文

posted @ 2020-12-04 20:37 风zk 阅读(193) 评论(0) 推荐(0) 编辑

03*:Flutter 初探:(StatelessWidget、StatefulWidget)(【runApp()-->>MaterialApp()-->> Scaffold()】启动-风格-容器)

摘要: 问题 目录 1:runApp()函数启动项目 2:MaterialApp() [məˈtɪəriəl] 材料,素材 3:Scaffold()[ˈskæfəʊld] 预备 正文 由上面的架构图可以看出来,flutter最上层是google 的纸墨设计Material Design(MaterialAp 阅读全文

posted @ 2020-12-04 20:36 风zk 阅读(193) 评论(0) 推荐(0) 编辑

032*:MVP、MVVM+RAC、MVC

摘要: 问题 MVVM和MVP的最大区别是采用了双向绑定机制,View的变动,自动反映在ViewModel上。 1: MVP: 在数据模型M中发起请求,在Presenter组织好数据,通过协议,哪个view遵守了Presenter的协议,数据返回给指定的view; 2: MVVM: 1:一个View对应一个 阅读全文

posted @ 2020-12-04 20:32 风zk 阅读(220) 评论(0) 推荐(0) 编辑

031*:组件化(url-block 、target-action、protocol-class)

摘要: 问题 简单来说:一个模块对应一个 Mediator的分类 ,一个分类对应一个target,一个target可以包含多个action,每个action都是进行界面跳转。 1、url-block 路由:路由 2、target-action:runtime+分类。 3、protocol-class匹配:通 阅读全文

posted @ 2020-12-04 20:30 风zk 阅读(427) 评论(0) 推荐(0) 编辑

030*:界面优化(CoreImage、CoreGraphics、OpenGL ES、metal、CoreAnimation【CALayer】)(预排版,异步渲染,按需加载,动态添加控件,避免使用透明度和圆角,离屏渲染,异步渲染合成一张图片)

摘要: 问题 (CoreImage、CoreGraphics、OpenGL ES、metal、CoreAnimation【CALayer】) 1: 目录 1:卡顿的原理 2:卡顿监控 3:卡顿的优化 预备 正文 一:卡顿的原理 1:界面卡顿 通常来说,计算机中的显示过程是下面这样的,通过CPU、GPU、显示 阅读全文

posted @ 2020-12-04 20:20 风zk 阅读(338) 评论(0) 推荐(0) 编辑

029*:runloop:获取(CFRunLoopGetMain、CFRunLoopGetCurrent)创建(__CFRunLoopCreate __CFRunLoop结构体 )(CFRunloop、CFRunLoopMode、CFRunloopItem)(CFRunLoopRun -> CFRunLoopRunSpecific -> __CFRunLoopRun)

摘要: 问题 0:Runloop生命周期 kCFRunLoopEntry -- 进入runloop循环 kCFRunLoopBeforeTimers -- 处理定时调用前回调 kCFRunLoopBeforeSources -- 处理input sources的事件 kCFRunLoopBeforeWait 阅读全文

posted @ 2020-12-04 20:19 风zk 阅读(249) 评论(0) 推荐(0) 编辑

028*:NSAutoReleasePool(objc_autoreleasePoolPush、objc_autoreleasePoolPop)AutoreleasePoolPageData(56) 哨兵元素 autoreleaseFast(autoreleaseNoPage、autoreleaseNewPage、autoreleaseFullPage)

摘要: 问题 1:每个线程创建的时候就会创建一个autorelease pool,并且在线程退出的时候,清空autorelease pool。所以子线程的autorelease对象,要么在子线程中设置runloop清楚 2:AutoreleasePoolPage 面试题1:临时变量什么时候释放?面试题2:简 阅读全文

posted @ 2020-12-04 20:18 风zk 阅读(139) 评论(0) 推荐(0) 编辑

027*:内存管理 retainCount(TaggedPointer、retain、release、dealloc)(strong & weak )__main_block_impl_0(id类型-__block-->> __Block_byref_a_0-->>forwarding指针指向copy后的地址)SideTables 、extra_rc(引用计数)

摘要: 问题 retainCount (TaggedPointer、retain、release、dealloc) (strong & weak ) __main_block_impl_0(id类型-__block-->> __Block_byref_a_0-->>forwarding指针指向copy后的地 阅读全文

posted @ 2020-12-04 20:16 风zk 阅读(149) 评论(0) 推荐(0) 编辑

2020年12月3日

026*:冷热启动优化、二进制重排、clang插桩(Header、Load Commands 、segment)(main函数前、main函数后)重签名 、ASLR、(PageFault 、System Trace、order文件)-fsanitize-coverage=func,trace-pc-guard Dl_info

摘要: 问题 1:(虚拟内存、ASLR)(PE、ELF、Mach-O) 2:(Header、Load Commands 、segment) 3:Header(cputype、filetype) 4:Load Commands(动态链接器的位置、程序的入口、依赖库的信息、代码的位置、符号表的位置) 5:(ma 阅读全文

posted @ 2020-12-03 16:18 风zk 阅读(1024) 评论(0) 推荐(0) 编辑

025*:LLVM和clang插件开发(预处理编译阶段--编译阶段(词法、语法等的分析、生成中间代码IR【 .ll文件、IR优化、bitCode优化.bc】)--汇编代码 .s文件--生成目标文件 .o文件 --链接【产生的.o文件和.dylib、.a文件链接】--mach-o可执行文件)

摘要: 问题 (预处理编译阶段--编译阶段(词法、语法等的分析、生成中间代码IR【 .ll文件、IR优化、bitCode优化.bc】) --汇编代码 .s文件 --生成目标文件 .o文件 --链接【产生的.o文件和.dylib、.a文件链接】--mach-o可执行文件) 目录 1:概念 2:编译流程 3:自 阅读全文

posted @ 2020-12-03 11:29 风zk 阅读(462) 评论(0) 推荐(0) 编辑

024*:Block的原理 (Block_layout、__main_block_impl_0、__Block_byref_a_0)(_Block_copy、_block_invoke)(_Block_copy、_Block_byref_copy、_Block_object_assign、_Block_object_dispose)

摘要: 问题 1:block的本质是对象、函数、结构体,由于block函数没有名称,也被称为匿名函数 2: __weak __strong __block 3:(NSGlobalBlock NSMallocBlock NSStackBlock) 4:(_Block_copy、_block_invoke) 5 阅读全文

posted @ 2020-12-03 11:27 风zk 阅读(244) 评论(0) 推荐(0) 编辑

023*:定时器和锁原理 ( Dispatch_source_t NSTimer CADisplayLink) @synchronized(SyncList SyncData threadCount lockCount )(NSLock当前线程一把锁)(NSRecursiveLock当前线程递归锁相当多把锁)(NSCondition线程+锁)(NSConditionLock线程、条件和锁)

摘要: 自旋锁和互斥锁:区别 1:而Spin lock(自旋锁)则不然,它属于busy-waiting类型的锁,如果线程A是使用pthread_spin_lock操作去请求锁,那么线程A就会一直在Core0上进行忙等待并不停的进行锁请求,直到得到这个锁为止。 自旋锁(Spin lock) 自旋锁与互斥锁有点 阅读全文

posted @ 2020-12-03 11:26 风zk 阅读(153) 评论(0) 推荐(0) 编辑

022*:GCD源码底层探索 (dispatch_group_async dispatch_group_enter dispatch_group_leave) _dispatch_call_block_and_release (dx_push pthread_creat dx_invoke)dispatch_semaphore_signal wait create

摘要: 问题 _dispatch_call_block_and_release 执行任务 同步回调,block执行 block回调:底层通过dx_push递归,会重定向到根队列,然后通过pthread_creat创建线程,最后通过dx_invoke执行block回调(注意dx_push和 dx_invoke 阅读全文

posted @ 2020-12-03 11:25 风zk 阅读(575) 评论(0) 推荐(0) 编辑

021*:GCD 【dispatch_async dispatch_queue_t】 dispatch_group_t、dispatch_barrier_async 、dispatch_semaphore_t、dispatch_once_t、dispatch_apply、dispatch_after、dispatch_source_t 、pthread 、NSThread、NSOperation

摘要: 问题 dispatch_sync将任务 block通过 push到队列中,然后按照 FIFO去执行。 dispatch_sync造成死锁的主要原因是堵塞的tid和现在运行的tid为同一个 dispatch_async会把任务包装并保存,之后就会开辟相应线程去执行已保存的任务。 semaphore主要 阅读全文

posted @ 2020-12-03 11:20 风zk 阅读(145) 评论(0) 推荐(0) 编辑

020*:多线程基础知识:(进程、线程、线程池)(线程生命周期【新建、就绪、运行、阻塞、销毁】)(锁【自旋锁 原子锁、互斥锁】)(线程、runloop、NSPort)(线程通讯)

摘要: 问题 (进程、线程、线程池) (线程生命周期【新建、就绪、运行、阻塞、销毁】) (锁【自旋锁 原子锁、互斥锁】) (线程、runloop、NSPort) (线程通讯) 目录 1:进程与线程 2: 多线程的优缺点 3:多线程的内存消耗 4:多线程处理方案 5:线程生命周期 6:线程池的原理 7:线程优 阅读全文

posted @ 2020-12-03 10:17 风zk 阅读(121) 评论(0) 推荐(0) 编辑

019*:内存五大区:(栈、堆、全局静态区、常量区、代码区)(线程、函数栈、栈帧)

摘要: 问题 目录 1:内存基础概念 2:内存五大区 3:函数栈 预备 正文 一、内存基础概念 1.1 物理内存 & 虚拟内存 物理内存(Physical Memory):指通过物理内存条而获得的内存空间,和虚拟内存对应;主要作用是:设备运行时为操作系统和各种程序提供临时储存空间;iPhone 6 和 6 阅读全文

posted @ 2020-12-03 10:16 风zk 阅读(439) 评论(0) 推荐(1) 编辑

2020年12月2日

018*:kvo:(context、kvo合规【kvc基础上】)(isa-swizzling kvo派生类 NSKVONotifying_本类名)(重写setter、class、dealloc、_isKVOA)(重写set【手动开启通知、修改isa】、class、malloc【修改isa】)

摘要: 问题 目录 预备 1:测试代码:(监听person对象的name属性的新值) // HTPerson @interface HTPerson : NSObject @property (nonatomic, copy) NSString *name; @end @implementation HTP 阅读全文

posted @ 2020-12-02 23:55 风zk 阅读(168) 评论(0) 推荐(0) 编辑

017*:kvc原理 :(赋值和取值【_key,_iskey,key,iskey】(【路由、模型转换、私有变量】)

摘要: 问题 目录 1、定义 2、KVC 相关方法 3、赋值的策略 预备 1: 定义基本的方法 @interface LPPerson : NSObject{ @public NSString *_isName; NSString *name; NSString *isName; NSString *_na 阅读全文

posted @ 2020-12-02 23:52 风zk 阅读(299) 评论(0) 推荐(0) 编辑

016*:方法交换Method-Swizzling?(1:一次性问题:load或者initialize 2: 子类不和父类方法。)

摘要: 问题 1:一次性问题:load或者initialize 2: 子类不和父类方法。 目录 1:method-swizzling 是什么? 2:注意: 3:method-swizzling - 类方法 4:method-swizzling的应用 预备 测试代码:HTRuntimeTool类:负责方法交换 阅读全文

posted @ 2020-12-02 23:50 风zk 阅读(193) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页

导航