移动开发
hard_man
这个作者很懒,什么都没留下…
展开
-
仅需6步,教你轻易撕掉app开发框架的神秘面纱(1):确定框架方案
做游戏的用cocos2dx+lua,游戏开发自有它的一套框架机制。而现在公司主要项目要做android和iOS应用。本文主要介绍如何搭建简单易用的app应用框架原创 2016-02-15 15:49:26 · 1541 阅读 · 0 评论 -
1小时学会:最简单的iOS直播推流(六)h264、aac、flv介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive 群:552660248前面介绍了如何捕获音视频原始数据,介绍了yuv和pcm。下面来介绍一下我们的想要转换原创 2016-11-24 22:43:38 · 4505 阅读 · 1 评论 -
1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive 群:552660248前面介绍了如何通过相机实时获取音视频数据。我们接下来就需要了解获取到的数据到底是什么原创 2016-11-16 23:17:40 · 11407 阅读 · 12 评论 -
1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive 群:552660248上一篇文章介绍了如何使用系统方法捕获视频数据,但是更多的时候,为了使用美颜滤镜,我们原创 2016-11-16 00:03:54 · 10743 阅读 · 4 评论 -
1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!!源代码:https://github.com/hardman/AWLive群:552660248通过系统相机录制视频获取音视频数据,是推流的第一步。 源码中提供2种获取音视频数据的方法:一是使用系统自带接原创 2016-11-14 11:34:25 · 6290 阅读 · 6 评论 -
1小时学会:最简单的iOS直播推流(二)代码架构概述
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!!源代码:https://github.com/hardman/AWLive群:552660248推流流程使用rtmp协议(其他协议也类似)推流的大体流程如下: 1. 通过系统相机捕获视频及声音,该美颜的美原创 2016-11-10 23:33:21 · 4876 阅读 · 0 评论 -
1小时学会:最简单的iOS直播推流(一)介绍
最近在做iOS直播,研究了相关直播技术,主要包含两方面:推流,播放。所以这次主要研究推流技术。并将代码开源,然后在blog里做一些简单的代码解析。源代码:https://github.com/hardman/AWLive群:552660248原创 2016-11-07 00:13:19 · 11145 阅读 · 5 评论 -
仿斗鱼聊天:基于CoreText的面向对象图文排版工具AWRichText
AWRichText 基于CoreText,面向对象,极简,易用,高效,支持精确点击,UIView混排,GIF动图,并不仅仅局限于图文混排的富文本排版神器。 代码地址:https://github.com/hardman/AWRichText – 喜欢的同学可以star。 接下来会在blog中更新一些具体实现细节。简述很多app中都有聊天功能,图文混排也原创 2018-01-07 23:30:26 · 520 阅读 · 0 评论 -
关于@2x,@3x的区别及图片的绘制
为什么会有2倍,3倍图网络上会有很多的解释,这些解释都是对的。通俗点说,出现这种区别是因为,屏幕尺寸没有屏幕分辨率增长的快(所以更高清了)。所以,对于iPhone6来说,1pt(代码中的尺寸值单位,也可理解为屏幕物理尺寸的换算单位)代表2px。对于iPhone6P来说,1pt代表3px。所以对于iPhone6P和iPhone6来说,我们如果都想在屏幕上显示一个100ptx100pt的图片。iPho...原创 2018-06-08 19:45:05 · 14859 阅读 · 0 评论 -
iOS的KVO实现剖析
KVO原理对于KVO的原理,很多人都比较清楚了。大概是这样子的:假定我们自己的类是Object和它的对象 obj, 当obj发送addObserverForKeypath:keypath消息后,系统会做3件事情:动态创建一个Object的子类,名字可自定义假设叫做 Object_KVONotify。 同时,子类动态增加方法 setKeypath:,动态添加的方法会绑定到一个c语言的函...原创 2018-07-17 15:30:30 · 216 阅读 · 0 评论 -
iOS中你可能没有完全弄清楚的(一)synthesize
1. 什么是synthesizesynthesize中文意思是合成,代码中我们经常这样用。@interface Test: NSObject@property (nonatomic, unsafe_unretained) int i;@end@implementation Test@synthesize i;@end复制代码使用synthesize的2个...原创 2018-08-03 11:32:04 · 1285 阅读 · 0 评论 -
iOS中你可能没有完全弄清楚的(二)自己实现一个KVO源码及解析
前几天写了一篇blog(点这里),分析了系统KVO可能的实现方式。并添加了简单代码验证。既然系统KVO不好用,我们完全可以根据之前的思路,再造一个可以在项目中使用的KVO的轮子。代码已经上传到github: https://github.com/hardman/AWSimpleKVO。看了觉得有帮助的同学,可以点一下github的star。1. 功能介绍支持如下功能:...原创 2018-08-16 10:52:40 · 319 阅读 · 0 评论 -
详解AFNetworking的HTTPS模块
0.0 简述文章内容包括:AFNetworking简介ATS和HTTPS介绍AF中的证书验证介绍如何创建服务端和客户端自签名证书如何创建简单的https服务器对CA正式证书和自签名证书的各种情况进行代码验证文中所涉及的文件和脚本代码请看这里。1.0 AFNetworking简介AFNetworking(下面简称AF)是一个优秀的网络框架,从事iOS开发工作的同学几乎都用过它...原创 2018-11-25 13:50:23 · 645 阅读 · 0 评论 -
iOS应用模块化的思考及落地方案(一)模块的划分及模块化工作流程
1.0 什么是模块化很多关于重构及设计模式的介绍中,经常提到的几个词语是复用及解耦。模块化之所以被提出,也更多是为了解决这几个问题。复用可以减少重复造轮子的情况,很容易理解的是,我们经常使用的github上的第三方框架,比如,AFNetworking等,有了这些组件,我们就不需要再写一遍了。解耦可以减少类或文件之间的关联,如果一个类引用了其他10个类,那么当我们看到这个类或修改这个类的时候...原创 2019-04-28 23:53:00 · 328 阅读 · 0 评论 -
1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive 群:552660248前面已经介绍了如何从硬件设备获取到音视频数据(pcm,NV12)。但是我们需要的视频原创 2016-12-07 22:02:59 · 8006 阅读 · 10 评论 -
1小时学会:最简单的iOS直播推流(八)h264/aac 软编码
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive软编码包含3部分内容: 1. 将pcm/yuv数据编码成aac/h264格式 2. 将aac/h264数据封装成f原创 2017-11-23 12:19:04 · 1617 阅读 · 0 评论 -
仅需6步,教你轻易撕掉app开发框架的神秘面纱(2):MVP比MVC更好吗
由于android天然的MVC,本来不需要另外设计直接使用即可。但是个人对于MVP模式更加欣赏,其将ui完全与业务逻辑分离的思路很不错。 那么什么是业务逻辑?个人认为,对数据(即MVC中的M)的处理即为业务逻辑,数据主要有3个来源: 1. 服务端返回的数据 2. 从其它途径传入的数据, 3. 自己定义的数据(需要传递时)。原创 2016-02-15 16:07:30 · 906 阅读 · 0 评论 -
仅需6步,教你轻易撕掉app开发框架的神秘面纱(3):构造具有个人特色的MVP模式
之前我们说过MVP模式最大的问题在于:每写一个Activity/Fragment需要写4个对应的文件,对于一个简易的app框架来说太麻烦了。所以我们需要对MVP进行一定的简化。 关于MVP模式介绍,可以参照:[1] MVP模式最大的特点是:业务逻辑和页面元素的分离,以适应业务逻辑和页面各自可能发生的变化和多样性。原创 2016-02-17 17:24:19 · 1319 阅读 · 0 评论 -
仅需6步,教你轻易撕掉app开发框架的神秘面纱(4):网络模块的封装
程序框架确定了,还需要封装网络模块。一个丰富多彩的APP少不了网络资源的支持,毕竟用户数据要存储,用户之间也要交互,用户行为要统计等等。android网络模块核心功能使用xUtils3开源框架来完成。而iOS则使用AFNetWorking原创 2016-02-19 17:15:07 · 3088 阅读 · 0 评论 -
仅需6步,教你轻易撕掉app开发框架的神秘面纱(5):数据持久化
遇到的问题有的时候程序中需要全局皆可访问的变量,比如:用户是否登录,用户个人信息(用户名,地区,生日),或者一些其他信息如:是否是首次登录,是否需要显示新手引导等等。其中有些数据需要持久化到本地硬盘中,比如:大多数应用,当用户第一次启动应用的时候,需要显示应用介绍和新手引导的页面。而应用介绍只在第一次启动时显示。所以我们需要记录一个值表示当前是否已经显示过了应用介绍。并且每次在应用开启的时候检查这原创 2016-03-04 14:49:14 · 1062 阅读 · 0 评论 -
仅需6步,教你轻易撕掉app开发框架的神秘面纱(6):各种公共方法及工具类的封装
封装统一公共方法为什么要封装公共方法封装公共方法有2方面的原因: 一是功能方面的原因:有些方法很多地方都会用,而且它输入输出明确,并且跟业务逻辑无关。比如检查用户是否登录,检查某串数字是否为合法的手机号。像这种方法就应该封装起来,供各个模块调用,避免重复造轮子。二是防止出错:每一个合格的程序员就是从一个个错误中走出来的,任何一个架构包括android/iOS都有一些容易犯的错,我们可以把这些容易犯原创 2016-03-04 22:02:15 · 4683 阅读 · 0 评论 -
终极方案!解决正确设置LaunchImage后仍然不显示的问题
对于如何设置LaunchImage,网络上有各种各样的教程。主要分2点:1. 正确设置图片尺寸2. 取消LaunchScreen.xib但是经过上述步骤之后,你觉得完全没有问题了,但是仍然无法显示LaunchImage。或者,你在多个模拟器上运行该程序,有的模拟器能够显示,有的模拟器不能显示。这时候你可能会有2个选择:1. 菜单-product-Clean-rebuild,也就是重新build程序。2. 菜单-Xcode-prefer原创 2016-03-15 16:18:50 · 14247 阅读 · 1 评论 -
只有20%的iOS程序员能看懂:详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance
在了解intrinsicContentSize之前,我们需要先了解2个概念:AutoLayout在做什么约束优先级是什么意思。如果不了解这两个概念,看intinsic content size没有任何意义。 注:由于上面这几个概念都是针对UIView或其子类(UILabel,UIImageView等等)来说的。所以下文中都用UIView指代。AutoLayout在做什么一个UIView想要显原创 2016-03-14 17:38:59 · 33521 阅读 · 11 评论 -
Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(一)
一. 项目介绍—软件名称:[FlashAnimationToMobile]这是一个把flash中的关键帧动画(不是序列帧)导出,然后在iOS/Android原生应用中解析并播放的一个插件。除了原生App,它也能够支持Cocos2dx(3.x)。这个库能够满足游戏,App开发中90%的2D原创 2016-04-22 18:36:44 · 6977 阅读 · 3 评论 -
Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(二)
首先确保系统中安装了flash,并且flash版本应该在cs3或者以上。然后把"源码根目录/tools/flashScript"目录内的所有文件和文件夹copy到如下目录:- Mac:~/Library/Application Support/Adobe/[Flash CS+版本号]/[en_US或者zh_CN]/Configuration/Commands- Windows:C:\Users\[用户名]\A原创 2016-04-22 19:40:15 · 6527 阅读 · 23 评论 -
1小时学会:最简单的iOS直播推流(番外)运行不起AWLive的demo的同学请看这里
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive我收到了很多反馈和评论,问我为什么AWLive运行不起来。 大概是说报这样一个错误: 我实在没想到会有人问这个原创 2017-01-25 10:49:01 · 1673 阅读 · 5 评论 -
1小时学会:最简单的iOS直播推流(十一)sps&pps和AudioSpecificConfig介绍(完结)
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive简述sps/pps/AudioSpecificConfig前文中已经多次提到过sps&pps/AudioSpecifi原创 2017-11-23 12:22:25 · 3058 阅读 · 0 评论 -
1小时学会:最简单的iOS直播推流(十)librtmp使用介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLivertmp(一般大写,小写会被认为英文不好或不专业,iOS开发者对这一点更为敏感)协议是Adobe公司为Flash视频的原创 2017-11-23 12:21:27 · 2841 阅读 · 0 评论 -
1小时学会:最简单的iOS直播推流(九)flv 编码与音视频时间戳同步
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive前文介绍了如何获取音视频的aac/h264数据,那么如何将数据写入rtmp流中呢? rtmp最初是Adobe Fla原创 2017-11-23 12:20:18 · 4798 阅读 · 4 评论 -
iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用
1.0 iOS模块化中的问题前文已经介绍了模块化的流程及一些常见的问题,我们在这里再次总结一下。在工作中,当我们开始一个新项目的时候,最先考虑的就是模块化工作。模块化工作的想法是很美好的,可是执行过程中会遇到很多的问题,而这些问题可能会让我们在工作中举步维艰。工具使用问题。iOS的模块化一般会使用cocoapods工具,这个工具很强大,内容也很丰富,我们想要完成模块化工作,需要建立私有...原创 2019-04-28 23:54:09 · 288 阅读 · 0 评论