<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kaka]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jks456</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jks456]]></copyright><item><title><![CDATA[cocopods  自动化打包ipa]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/79892728</link><guid>https://blog.youkuaiyun.com/jks456/article/details/79892728</guid><author>jks456</author><pubDate>Wed, 11 Apr 2018 10:35:13 +0800</pubDate><description><![CDATA[关于CocoaPodsCocoaPods是一个用于管理iOS工程中所使用第三方开源库的工具，可以大大节省我们在工程中添加和配置第三方库所用的时间。关于CocoaPods的使用，推荐下面两篇博客。《使用CocoaPods来做iOS程序的包依赖管理》作者：唐巧 《CocoaPods进阶：本地包管理》作者：王轲自动打包脚本认识到CocoaPods优点后，我便开始在工程中使用了。但在使用了CocoaPod...]]></description><category></category></item><item><title><![CDATA[如何写一个crash收集sdk]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/79889285</link><guid>https://blog.youkuaiyun.com/jks456/article/details/79889285</guid><author>jks456</author><pubDate>Tue, 10 Apr 2018 22:42:17 +0800</pubDate><description><![CDATA[微博以前的crash策略是log批量上传。。。话不多说，上代码，iOS crash 主要分为linux信号异常中断与普通异常捕获。。。- (void)registerHandlerWithAppId:(NSString *)appId {  _appId = appId;  // 1 linux错误信号捕获  signal(SIGHUP, SignalHandler);  signal(SIGIN...]]></description><category></category></item><item><title><![CDATA[volatile 关键字防止指令重排]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/79857149</link><guid>https://blog.youkuaiyun.com/jks456/article/details/79857149</guid><author>jks456</author><pubDate>Sun, 08 Apr 2018 20:17:13 +0800</pubDate><description><![CDATA[前言不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能。首先来看看为什么会出现这个关键字。内存可见性由于 Java 内存模型(JMM)规定，所有的变量都存放在主内存中，而每个线程都有着自己的工作内存(高速缓存)。线程在工作时，需要将主内存中的数据拷贝到工作内存中。这样对数据的任何操作都是基于工作内存(效率提高)，并且不能直接操作主内存以及其他线程工作内存中的数据，之后再将更新之后...]]></description><category></category></item><item><title><![CDATA[iOS copy]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/79815985</link><guid>https://blog.youkuaiyun.com/jks456/article/details/79815985</guid><author>jks456</author><pubDate>Wed, 04 Apr 2018 13:08:48 +0800</pubDate><description><![CDATA[Copying 在 iOS 中有很多概念，例如浅拷贝与深拷贝、copy 与 mutableCopy、NSCopying 协议，一直想彻底搞明白这些概念，刨根问底不搞懂不罢休嘛。于是搜 Google 看了一些博客，又去翻了 Apple 相关的文档，发现网上许多博客都理解错了，下面说说自己的理解。浅拷贝与深拷贝对于浅拷贝（Swallow Copy）与深拷贝（Deep Copy），经常看到这样的说法：浅...]]></description><category></category></item><item><title><![CDATA[nlp 本体 语义计算]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/79735264</link><guid>https://blog.youkuaiyun.com/jks456/article/details/79735264</guid><author>jks456</author><pubDate>Wed, 28 Mar 2018 22:21:54 +0800</pubDate><description><![CDATA[研究生读的专业。需要补充。]]></description><category></category></item><item><title><![CDATA[蓝牙开发BLE协议流程(iOS为例)]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/79734777</link><guid>https://blog.youkuaiyun.com/jks456/article/details/79734777</guid><author>jks456</author><pubDate>Wed, 28 Mar 2018 22:00:51 +0800</pubDate><description><![CDATA[凭借大脑残留的记忆写的BLE的一些概念与接入流程。IOT领域与智能设备通信的方式除了zigbee wifi 就算蓝牙了，BLE(bluetooth low energy)看名字就是低功耗的一个东西，通俗来说ble很简单啊，因为无论是iOS还是android 提供的api 都屏蔽了嵌入式开发的东西，基本就是看看api，连接下蓝牙，与蓝牙通讯下。当然也有被坑的地方。perial 大概是这么拼的，分为中...]]></description><category></category></item><item><title><![CDATA[私有pod包含第三方静态库]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/78873731</link><guid>https://blog.youkuaiyun.com/jks456/article/details/78873731</guid><author>jks456</author><pubDate>Fri, 22 Dec 2017 15:25:46 +0800</pubDate><description><![CDATA[Pod::Spec.new do |s|
s.name = 'HaierUserCenter' s.version = '3.3.3.1'
 s.summary = 'try pod' s.homepage = 'https://github.com/niuxinghua'
 s.license = { :type => 'MIT', :file => 'LICENSE' } s.autho]]></description><category></category></item><item><title><![CDATA[https流程]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/78581483</link><guid>https://blog.youkuaiyun.com/jks456/article/details/78581483</guid><author>jks456</author><pubDate>Mon, 20 Nov 2017 13:42:07 +0800</pubDate><description><![CDATA[http是非常常见的应用层协议，是超文本传输协议的简称，其传输的内容都是明文的。在这个混乱的世界，明文传输信息想想就可怕，网络“小混混”的手段远比我们这些凡人高明得多，他们有一万种方式劫持，篡改我们的数据。对于一个网站或者服务，如果你给你的用户两个选择：

通讯数据明文传输，速度快；通讯数据加密传输，但是速度可能会稍微慢一点.

我想，只要脑袋没有长歪的用户都宁愿牺牲一点速度去换取数据传输]]></description><category></category></item><item><title><![CDATA[自旋锁与互斥锁]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/78082074</link><guid>https://blog.youkuaiyun.com/jks456/article/details/78082074</guid><author>jks456</author><pubDate>Mon, 25 Sep 2017 09:46:42 +0800</pubDate><description><![CDATA[为了解决对共享资源的互斥使用，出现了一些锁机制。比如，自旋锁和互斥锁。
自旋锁和互斥锁很类似，在任何时刻，最多只能有一个保持者，也就说，在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁，如果资源已经被占用，资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠，如果自旋锁已经被别的执行单元保持，调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁，”自旋”一]]></description><category></category></item><item><title><![CDATA[block copy字符修饰]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/78042352</link><guid>https://blog.youkuaiyun.com/jks456/article/details/78042352</guid><author>jks456</author><pubDate>Wed, 20 Sep 2017 16:26:32 +0800</pubDate><description><![CDATA[Objective-C 拾遗：从Heap and Stack到Block

Stack和Heap

heap和stack是内存管理的两个重要概念。在这里我们指的不是数据结构上面的堆与栈,在这里指的是内存的分配区域。


stack的空间由操作系统进行分配。
在现代操作系统中,一个线程会分配一个stack. 当一个函数被调用,一个stack frame(栈帧)就会被压到stack里。]]></description><category></category></item><item><title><![CDATA[cache policy]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77944112</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77944112</guid><author>jks456</author><pubDate>Tue, 12 Sep 2017 13:24:37 +0800</pubDate><description><![CDATA[cache policy
近期在做ceph cache-tier 相关的事情, 在cache-tier 里面cache有多种更新策略
其实更缓存相关的系统里面, 都存在这几种策略, 比如操作系统的page cache, 业务层使用memcache, redis 作为后端数据库的缓存的时候, 也都要考虑缓存和后端存储的数据一致性问题. 其实就是更新操作的时候, 什么时候去更新缓存, 什么时候去更]]></description><category></category></item><item><title><![CDATA[IO 概念]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77531412</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77531412</guid><author>jks456</author><pubDate>Thu, 24 Aug 2017 16:09:48 +0800</pubDate><description><![CDATA[在高性能的I/O设计中，有两个比较著名的模式Reactor和Proactor模式，
其中Reactor模式用于同步I/O，
而Proactor运用于异步I/O操作。

什么是同步和异步

同步和异步是针对应用程序和内核的交互而言的，
同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪，
而异步是指用户进程触发IO操作以后便开始做自己的事情，而当IO操作已经完成的时候会得到]]></description><category></category></item><item><title><![CDATA[IO多路复用]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77498600</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77498600</guid><author>jks456</author><pubDate>Wed, 23 Aug 2017 09:33:39 +0800</pubDate><description><![CDATA[摘要：本文属于原创，欢迎转载，转载请保留出处：https://github.com/jasonGeng88/blog


文章一：JAVA 中原生的 socket 通信机制

当前环境

jdk == 1.8

代码地址

git 地址：https://github.com/jasonGeng88/java-network-programming

知识点

nio ]]></description><category></category></item><item><title><![CDATA[IO]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77497515</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77497515</guid><author>jks456</author><pubDate>Wed, 23 Aug 2017 09:23:26 +0800</pubDate><description><![CDATA[摘要：本文属于原创，欢迎转载，转载请保留出处：https://github.com/jasonGeng88/blog


当前环境

jdk == 1.8

知识点

socket 的连接处理IO 输入、输出流的处理请求数据格式处理请求模型优化

场景

今天，和大家聊一下 JAVA 中的 socket 通信问题。这里采用最简单的一请求一响应模型为例，假设我们现在需要向 ]]></description><category></category></item><item><title><![CDATA[mmap在iOS系统上IO优化的体现]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77447577</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77447577</guid><author>jks456</author><pubDate>Mon, 21 Aug 2017 11:19:05 +0800</pubDate><description><![CDATA[图片的展示是前端开发中必不可少的功能。iOS中，想要在展示一张图片非常简单:












1

2

3

4





UIImage
 *image
=
[UIImage
imageNamed:fileName];  

UIImageView
 *imageView
=
[[UIImageView
alloc]]]></description><category></category></item><item><title><![CDATA[计算机系统体系]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77446432</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77446432</guid><author>jks456</author><pubDate>Mon, 21 Aug 2017 10:24:02 +0800</pubDate><description><![CDATA[要想让代码乖乖运行，自然代码要先经过编译，这篇文章就来聊聊编译体系。
代码的编译过程分为四个阶段，预处理、编译、汇编、链接。而编译阶段是整个过程中最复杂的阶段，编译阶段还可以分为词法分析、语法分析、语义分析。
在一头扎进这四个阶段之间，先聊一下语法、语义。人类之所以能在进化的历史长河中，成为动物中的佼佼者，进化出的复杂的沟通机制—语言功不可没。假如，我说出这句话：你个产品狗还在改需求！那么语法]]></description><category></category></item><item><title><![CDATA[滤波]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/77235018</link><guid>https://blog.youkuaiyun.com/jks456/article/details/77235018</guid><author>jks456</author><pubDate>Wed, 16 Aug 2017 11:28:33 +0800</pubDate><description><![CDATA[本文将不解释卡尔曼滤波具体的数学原理，不作为小白晋升高端玩家的台阶，只说卡尔曼滤波在简单场景下（处理温度、加速度计、RSSI等数据）怎样只用三行代码实现，及相关参数的设置。代码提供Matlab和Objective-C版本。

最近做的项目用到iPhone收集的蓝牙信号强度，即RSSI值。发现果然如文献中所说，即使手机保持静止，检测到的来自同一蓝牙信标的信号强度也会不停地上下波动，且数据（滤除粗]]></description><category></category></item><item><title><![CDATA[framework自动化合并]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/76383358</link><guid>https://blog.youkuaiyun.com/jks456/article/details/76383358</guid><author>jks456</author><pubDate>Sun, 30 Jul 2017 15:19:16 +0800</pubDate><description><![CDATA[编译与合并


合并则分为两种，一个手动，一个脚本

如果打包出去只需要真机或者模拟器中的一种，那么我们只需编译就可以得到，合并是为了同时满足模拟器和真机进行的操作。


1、在模拟器 和 真机 环境下分别编译我们的 framework


随便选择一个simulator和 Generic
 Device(代表真机) 分别编译 command + B


2、选中我们]]></description><category></category></item><item><title><![CDATA[synchronized]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/76369192</link><guid>https://blog.youkuaiyun.com/jks456/article/details/76369192</guid><author>jks456</author><pubDate>Sun, 30 Jul 2017 09:47:03 +0800</pubDate><description><![CDATA[在上篇多线程安全的文章中，我曾推荐过大家使用@synchronized来使得代码获得原子性，从而保证多线程安全。这篇文章向大家介绍一些@synchronized的知识点和应该避免的坑。

@synchronized原理

@synchronized是几种iOS多线程同步机制中最慢的一个，同时也是最方便的一个。

苹果建立@synchronized的初衷就是方便开发者快速的实现代码同步，]]></description><category></category></item><item><title><![CDATA[iOS 开发gitignore]]></title><link>https://blog.youkuaiyun.com/jks456/article/details/75212349</link><guid>https://blog.youkuaiyun.com/jks456/article/details/75212349</guid><author>jks456</author><pubDate>Sun, 16 Jul 2017 21:37:50 +0800</pubDate><description><![CDATA[为什么要配置.gitigore

在我们使用git的过程当中，不是任何文件都需要commit到本地或者远程仓库的，比如一些三方库文件。
那么作为一个git新手，很多人不知道如何配置.gitignore文件，本文只是提供一个便捷的例子。你可以直接使用本文提供的代码编辑到你的.gitigore文件中。



简便配置

直接复制下面的内容到你的.gitignore文件即可。注意，这个]]></description><category></category></item></channel></rss>