January 04, 2017

YYWebImage 源码解析

YYWebImage 源码解析

项目地址:YYWebImage,分析的版本:b9f0a2a

1. 功能介绍

YYWebImage 是一个异步图片加载框架 (YYKit 组件之一).

其设计目的是试图替代 SDWebImage、PINRemoteImage、FLAnimatedImage 等开源框架,它支持这些开源框架的大部分功能,同时增加了大量新特性、并且有不小的性能提升。

它底层用 YYCache 实现了内存和磁盘缓存, 用 YYImage 实现了 WebP/APNG/GIF 动图的解码和播放。

2. 流程图

December 22, 2016

YYCache 源码解析

YYCache 源码解析

项目地址:YYCache,分析的版本:4e78fa8

1. 功能介绍

YYCache 是 ibireme 大神设计的一款缓存库。阅读本文之前推荐大家先看下原作者自己的设计思路文章。

2. 总体设计

2.1 总体设计图

总体设计请参考 4.1 类关系图。

2.2 YYCache 中的概念

简单介绍下一些相关名词。

Cost:理解为成本和开销都可以,比如,在内存缓存中对应的概念就是内存的开销,但并不是指所缓存对象的大小,这个开销的大小在调用方法的时候传入。

totalCost:总的开销。

Count:缓存对象的个数

totalCount:缓存对象......

September 26, 2016

Alamofire 源码解析

Alamofire 源码解析

项目地址:Alamofire,分析的版本:fc95610

1. 功能介绍

Alamofire 是基于 Swift 语言开发的网络操作库,是目前 Swift 里最常用的网络操作库,

2. 总体设计

2.1 总体设计图

总体设计请参考 4.1 类关系图。

2.2 Alamofire中的概念

本文默认读者已经了解 Swift 和 URLSession 等相关知识,不会具体做说明。

Alamofire:其实并没有 Alamofire 这么一个类,主要是起到一个链式调用的作用,这里起到了命名空间的作用。

Request:负责发送请求和接受响应内容,其......

September 01, 2016

QuartzCode 简单使用教程——一键生成 Object-c 和 Swift 代码

QuartzCode 官网中对自己的介绍是Fast, lightweight and powerful animation tool,一款快速、轻量和强大的动画工具。

这次我录制了一个视频来介绍 QuartzCode 的使用,用 QuartzCode 实现一个Dribbble上面的动画效果。

动画效果

这里就不做图文的讲解了,具体制作的过程请看我上传到b站的这个视频或者youtube的视频,相关代码可以......

December 15, 2015

树莓派2代搭建maven私服

我给树莓派刷的是ubuntu mate,然后使用nexus来安装maven私服。

1.烧录img至tf卡

先去http://ubuntu-mate.org/raspberry-pi/ 下载镜像文件,解压出来大概是3G大小的img文件,然后使用sdcard formatter格式化tf卡。

然后使用df -lh查看磁盘名字。

比如我的磁盘是/dev/disk2s1,接下来再卸载磁盘。

sudo diskutil umount /dev/disk2s1

再将img写入进去

sudo dd bs=1m if=ubuntu-mate-15.10-desktop-armhf-raspberry......

December 05, 2015

Android如何保护API

大众点评和美团两家采取了不同的方式来保护自己的API。

大众点评的话通过对返回的数据进行加密来做到保护自己的API,项目中有个DPObject,然后还有一个dpobj2json的so库,我的猜想也就是解密相关的方法放在这个so库里面,具体的解密操作由这个so库来实现。虽然大众点评没做混淆,不过想看懂具体的逻辑还是比较复杂的。

美团的话是接口调用的时候会带上几个用于校验的参数

__skck:e6c6v5576e6e6b3g95a20f797130689f

__skts:1449293593506

__skua:f75fa27d8494cfe1a1747a0299d893c8

__skno:5aa......

December 02, 2015

Android WebView上传图片问题的解决方案

其实这个问题很简单,在google上搜索webview input upload相关关键字就能搜到解决方案,比如stackoverflow上面这个回答就能够解决大多数的问题,比如在Android5.0上面就不能用openFileChooser这个方法了,应该用onShowFileChooser这个方法,在这个问题都有补充。那么目前能够做到的就是在4.1-4.3已经5.0以上都能解决图片上传这个问题。

但是4.4上有一些问题,这个回答则回答了有关4.4一系列上的报错原因,报错的原因是在于这个bug会把上传的文件都当做application/octet-stream类型来读取,我们最终的解决方案是......

November 26, 2015

Maven私服搭建结合Gradle使用

系统环境:OSX 10.11.1

使用Nexus来搭建,下载地址:http://www.sonatype.org/nexus/go

或者访问http://www.sonatype.org/nexus/archived/

我下载的是bundle版本。

解压开来如下所示:

接下来就是通过命令行来开启服务了,进入到bin目录下,然后输入./nexus star回车就OK了。

October 25, 2015

逆向ipa获取资源文件

逆向ipa获取资源文件

title: 逆向ipa获取资源文件(过时)

date: 2015-10-25 12:51:00

categories: iOS

1.先去iTunes下载acfun,如下图

2.去iTunes下面把ipad文件拿出来,所对应的路径是/Users/{username}/Music/iTunes/iTunes Media/Mobile Applications

September 15, 2015

三次贝塞尔曲线练习之弹性的圆

效果图

贝塞尔曲线知识讲解

效果图

开始本文之前先查看一下目标效果是如何的。

weibo

这个动画的来源是优秀网页设计的一个微博,看到这个效果感觉下面的圆的动画十分的赞,于是就打算模仿这个效果。

然后接下来看我所做的简单效果吧。

项目代码:https://github.com/DevinShine/MagicCircle