- 博客(537)
- 资源 (71)
- 收藏
- 关注
原创 Flutter 环境搭建 异常问题记录
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2) ✗ cmdline-tools component is missing Run `path/to/sdkmanager --install "cmdline-tools;latest"` See https://developer.android.com/studio/command-line for more d
2021-11-09 23:05:44
1712
原创 iOS异步绘制
#import <QuartzCore/QuartzCore.h>NS_ASSUME_NONNULL_BEGIN@interface CBAsyncDrawViewLayer : CALayer@property (nonatomic, assign, readonly) NSInteger drawsCount; // 绘制次数避免重复绘制使用- (void)increaseDrawCount;@endNS_ASSUME_NONNULL_END#import "CBA
2021-11-07 12:47:02
479
原创 iOS 14 IDFA获取
if (@available(iOS 14, *)) { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { if (status == ATTrackingManagerAuthorizationStatusAuthorized) { NSString
2021-11-05 16:23:39
519
原创 Xcode 没有提示
退出 Xcode重启电脑找到 这个 DerivedData 文件夹 删除 (路径: ~/Library/Developer/Xcode/DerivedData)删除这个 com.apple.dt.Xcode 文件 (路径: ~/Library/Caches/com.apple.dt.Xcode)运行 Xcode 看看效果,应该就好了.
2021-10-31 17:56:21
1904
原创 mysql 新用户创建的问题
解决这个错误。ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)Stop mysql:systemctl stop mysqldSet the mySQL environment optionsystemctl set-environment MYSQLD_OPTS="–skip-grant-tables"Start mysql usig the options you
2021-10-02 23:13:20
339
1
原创 Metrics 和 Diagnostics 提高性能
搜索性能指标的工具XCTest Metrics衡量性能的 measure blockMetricKit搜集电池和性能指标和诊断的框架Xcode Metrics Organizer在Xcode 中电池、性能和I/O的聚合指标能耗和性能API通过 APP Store Connect API 程序化获取指标和诊断信息开发阶段#mermaid-svg-oA6wvtQ6qWyVOyXD .label{font-family:'trebuchet ms', verdana, a
2021-04-16 22:16:58
410
原创 iOS 性能优化 相关面试题 卡顿产生的原因(2)
有时我们的app在使用起来会感觉不是很流畅,那么卡顿产生的原因是什么呢?这里就涉及两部分的操作CPUGPU在CPU和GPU共同努力下将数据加工好,等待下一帧Vsync信号的到来,就将内容显示在屏幕中,也就是说CPU、GPU使用的时间如果在16ms以内,就不会产生卡顿,如果超过了就会产生卡顿,因为其会显示上一帧的数据, 超时产生的数据会在下一帧Vsync信号到来的时候进行显示。卡顿解决的主要思路尽可能减少CPU、GPU资源消耗60FPS 刷新频率,CPU、GPU加工数据在 16.7ms 以内就
2021-04-10 17:39:47
288
原创 iOS 性能优化 相关面试题 CPU&GPU (1)
面试题你在项目中是怎么优化内存的有遇到过tableview卡顿情况吗? 会造成卡顿的原因大致有哪些?列表卡顿的原因可能有哪些?你平时是怎么优化的?优化从哪些方面着手我们先来了解一下CPU 和GPU在屏幕成像的过程中,CPU和GPU起着至关重要的作用CPU主要负责 对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)GPU 负责 纹理的渲染 纹理就是显示屏幕上的数据格式我们要把数据显示在屏幕上是需要CPU和GPU一起
2021-04-10 13:41:52
302
原创 Appium WebDriverAgent xcode12 编译
Falling back to building from the source*** Building scheme "RoutingHTTPServer" in RoutingHTTPServer.xcodeproj*** Building scheme "RoutingHTTPServer iOS" in RoutingHTTPServer.xcodeprojBuild Failed Task failed with exit code 1:This usually indic...
2021-01-15 10:34:58
583
原创 iOS Runtime基础知识2
iOS Runtime基础知识2method_t函数四要素名称返回值参数函数体name 名称const char*types;函数的返回值以及参数的组合 对应返回值和参数IMP imp 无类型的函数指针 对应的就是函数体method_tSEL nameconst char*typesIMP impmethod_t 这个结构体就是对函数4要素的封装和抽象Type Encodingsconst char* types;不可变的字符指针返回值第1位,参数可能有多个返回值只有一个
2020-05-26 17:12:19
415
原创 iOS - Runtime 基础知识1
Runtime 基础知识数据结构类对象与元类对象消息传递机制方法缓存消息转发Method-Swizzling动态添加方法动态方法解析基础数据结构objc_objectobjc_classisa指针method_tobjc_object我们在OC中使用的所有的对象都是id类型的。id类型的对象对应到runtime当中就是 id == objc_object,就是objc_object 这样的一个结构体objc_object 数据结构isa_t 共用体 。关于i
2020-05-26 14:49:00
362
原创 TCP、UDP 在音视频实时传输中的作用
UDP在实时通信的过程中首选要使用UDP劣势:连通率低于TCP。有些防火墙只开通TCP。TCP劣势:在极端网络情况下延迟高。不适合实时传输优势:连通率高于UDP。实时传输中的重要指标连通率 默认选用UDP,当UDP不通的情况下使用TCP,如果TCP还不通那就使用HTTP。 在延迟效果和连通率之间,首选要保证连通率。...
2020-05-24 22:21:03
2216
3
原创 RTP协议
RTP是上层协议可以跑在TCP上也可以跑在UDP上。大多是情况下都是跑在UDP上,因为主要上应用在实时传输上。如果你跑在TCP上在极端网络情况下,他就不是实时的了,所以它一般用在UDP上,不在底层协议上处理,在上层协议进行处理。其实就是模拟了TCP的一些功能。seq 和TCP的seq功能类似,但是RTP的seq是按照包来的,第一个包是1,第二个包是2.而不是按照字节来的。所以tcp是流式...
2020-04-19 21:18:48
628
原创 UDP 与 RTP 在音视频中的作用
UDP 源端口 目的端口 UDP长度(Header+Data) 校验合 数据 UDP的结构非常简单,包括源端口目的端口UDP的长度(头部长度以及数据长度)因为UDP的协议头是固定的,那么拿到总的长度就得到数据部分的长度。校验合...
2020-04-19 17:59:49
609
原创 TCP 的滑动窗口
滑动窗口在3次握手创建链接的时候,就是进行一个重要的工作就是窗口的确认。也就是发送端与接收端要确认发送数据的窗口有多大,或者说缓冲区有多大,实际窗口就是一个缓冲区对于发送端来说比如缓冲区大小是32k,接收端的是16k,这时就要统一成一样的缓存区大小。取两者之间最小的那个。...
2020-04-18 17:06:47
446
原创 TCP的ACK机制
我们先来回顾一下TCP的完整协议,通过上面两张图我们就能知道,首先是创建连接传送数据。三次握手 发起连接的是客户端接收连接的是服务端服务端处于监听状态,当有连接过来,状态就变为SYN_RCVD回复一个SYN、ACK消息,客户端收到消息后状态变为ESTABLISHED再回复一个ACK消息,服务端接收到消息后服务端也处于ESTABLISHED在这之后客户端与服务器直接就可以进行消息的收...
2020-04-18 09:17:08
1382
原创 TCP四次挥手
TCP4次挥手流程Initiator 发起端Receiver 接收端起始阶段两端都是ESTABLISHED发起端先发起close命令,在tcp协议的底层会发送一个FIN(tcp包,seq=x,ack=y),发送FIN包意味着发起端要与接收端断开链接。状态变为FIN_WAIT_1,处于等待的第一步。接收端接收到消息后,状态变为CLOSE_WAIT,同时回复ACK消息(seq = y,a...
2020-04-12 11:27:21
266
原创 TCP三次握手
TCP三次握手流程图发起端称为客户端接收端称为服务端客户端向服务端发起一起请求(1次)服务端进行一次回复 (2次)客户端再向服务端进行一起确认 (3次)在socket编程中的流程最开始双端的状态机都是close服务端要创建socket进行监听,随之状态机变为LISTEN客户端要发起链接,会调用connect()对服务端进行链接,SYN位置为1,状态变为SYN_SENT (...
2020-04-12 10:30:26
231
原创 TCP协议
TCP/IP 协议栈MAC HeaderIP HeaderTCP/UDP headerTCP/UDP DataMAC Header14byte20byte20 byte4 Byte组成结构最底层是1500 byte的以太网桢桢头 14byte桢尾 4 byte中间部分为以太网桢的数据部分在以太网桢的数据部分又分为IP协议头很IP协议数据部分...
2020-04-11 15:01:03
259
原创 IP协议详解
IP协议详解我们开始学习网络协议,我们要做实时音视频传输。最关键的就是网络传输,要学好网络传输,我们就要对整个网络协议有一个清晰的认知,在这个网络协议中,我们做实时音视频最主要的就是使用UDP。为什么要使用UDP?TCP的优势与劣势UDP的优势与劣势知道以上2点后,我们就能知道我们为什么要使用UDPIP协议头无论是TCP、UDP、ICMP都是在IP协议头之后的数据部分。IP...
2020-04-10 20:10:46
337
原创 FFMPEG RTP RTMP
推送本地mp4ffmpeg -re -i bunny.mp4 -vcodec copy -an -f rtp rtp://127.0.0.1:11111 -vn -acodec copy -f rtp rtp://127.0.0.1:11122>ffmpeg.sdp将RTP转发为RTMPffmpeg -protocol_whitelist file,udp,rtp -i ffmpeg...
2020-03-09 14:23:21
387
原创 flutter iOS 相关记录
1、Permitted background task scheduler identifiers 后台运行权限 内容输入包名
2020-03-03 10:42:52
482
原创 Ubuntu下mediasoup-demo搭建
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -sudo apt-get install -y nodejsapt install npm使用淘宝镜像临时使用npm --registry https://registry.npm.taobao.org持久使用npm config set reg...
2019-12-28 12:27:35
974
原创 ubuntu18.04 nginx https 搭建
sudo apt-get updateapt-get install build-essentialapt-get install libtoolsudo apt-get install libpcre3 libpcre3-devapt-get install zlib1g-devapt-get install opensslwget htt...
2019-11-25 11:06:59
1032
原创 Janus iOS 视频会议端目录结构
iOS端工程结构介绍Utils 文件夹sdp 对象封装类随机字符串生成Janus 文件夹JanusConnection PeerConnection类封装JanusHandle Janus句柄操作JanusTransaction Janus 事务ViewController 功能进入首页 目前仅提供视频会议入口VideoRoomVC 视频会议房间视图控制器Me...
2019-11-25 11:05:17
619
原创 Ubuntu coturn 环境搭建
sudo passwd rootapt-get update apt-get install libssl-dev libevent-dev libpq-dev mysql-client libmysqlclient-dev libhiredis-dev make -yapt-get install gdebi-core -yapt-get install sqlite libsqli...
2019-11-17 09:40:08
489
原创 xcode没有提示
退出 Xcode重启电脑清空里面的内容 ~/Library/Developer/Xcode/DerivedData删除 ~/Library/Caches/com.apple.dt.Xcode
2019-11-15 14:06:46
202
原创 FFMPEG 入门系列教程 移动平台编译
移动平台编译准备工作iOS端FFMPEG编译流程Android端FFMPEG编译流程准备工作FFMPEG版本4.1.3android-ndk-r17CiOS端FFMPEG编译流程4.1编译脚本传送门下载脚本后运行即可。Android端FFMPEG编译流程...
2019-07-28 17:31:03
220
原创 iOS 单例模式单独调用alloc 、 copy、mutableCopy依然为单例
原文地址:https://blog.csdn.net/qqMCY/article/details/88648000我们先写一个单例看看输出结果+ (instancetype)sharedInstance { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ ins...
2019-03-18 19:33:21
443
原创 一个指针实现双向链表
用一个指针实现双向链表这个东西除了在面试中能够用到,其他地方哪里会用到,这个我也不知道。希望知道的人能够在评论中说下。下面直接给出代码typedef struct _Q1LinkNode{ int data; unsigned long link;}Q1LinkNode;// 创建一个节点Q1LinkNode *createQ1LinkNode(int
2017-03-27 10:18:19
2126
1
原创 iOS 用个人证书shell打包上传蒲公英
用个人证书Shell打包发布蒲公英。下面记录下主要步骤1、shell脚本#!/bin/shfunction setup_dir {if [ -d "${BUILD_PATH}" ]; thenrm -rf "${BUILD_PATH}"fimkdir -p "${BUILD_PATH}"touch ${LOG_FILE}}function build_upload {
2016-12-29 16:18:22
2051
原创 iOS 键盘中使用[UIApplication sharedApplication].statusBarFrame
最近适配需要使用[UIApplicationsharedApplication].statusBarFrame不过在键盘中被禁用。这里写下解决办法:
2016-11-15 20:03:54
2432
原创 iOS 虚拟GPS 就是为了玩pokemon go 哈哈哈哈
pokemon go 这么火国内不能体验真是可惜啊。下面分享个方法可以玩 首先,需要国外的app store 账号,这个在网上搜下有不用绑信用卡就能创建的免费方法。我用的是美国区的账号。 其次就是vpn。上网买个吧一个月用不了多钱。还能多看看外面的世界。 最后就是虚拟GPS了。下面配图游戏效果图。
2016-07-15 11:00:43
6203
原创 PHP 连接mysql数据库
报错:Warning: mysqli::mysqli(): (HY000/2002): No such file or directorycd /var sudo mkdir mysqlsudo chmod 755 mysqlcd mysqlsudo ln -s /tmp/mysql.sock mysql.sock这样就ok了
2016-06-24 09:29:34
857
原创 C 指向指针的指针
这里留个例子查找字符串位置int find_char1( char **strings , char value){ while( *strings != NULL ){ while( **strings != '\0' ){ char tmp = *(*strings)++; NSLog(@"tmp = %c",tmp
2016-06-12 19:38:18
628
原创 gitlab环境配置
最近要配置一套gitlab环境,下面主要记录下配置过程中遇到的问题。参考资料:1、官网:https://about.gitlab.com/downloads/#centos62、下载列表:https://packages.gitlab.com/gitlab/gitlab-ce3、 https://blog.wu-boy.com/2014/12/easy-to-install-git
2016-06-03 10:21:31
1402
AsyncTaskTest
2014-10-08
iOS与Android通用AES加密
2014-09-22
cocos2d下ExpandedListView
2014-06-09
DJInfiniteScrollPicker
2014-05-28
2dx3.0可旋转的饼图类
2014-05-15
NSObject+RunTimeUtilit
2016-01-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人