自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

农场老马的专栏

老码农一枚!

  • 博客(203)
  • 资源 (10)
  • 收藏
  • 关注

原创 野鸟装备2.2版本开发问题

林子的达人列表中,最近发表的3条UGC内容图片是个Button,开始时怎么都不显示图片,图片加载成功后被填充了蓝块,后来发现需要在xib中把Button的type设置为Custom才行。贴纸合成问题:野鸟装备2.2新增了贴纸功能,但在贴纸完成后输出图片时发现输出的图片非常模糊。原来是使用UIView截屏的原因。使用下面的办法就可以了。1、直接新起一张画面,把背景图和贴纸的UIImage依次渲染上去

2015-12-31 18:09:16 1832 1

原创 野鸟装备2.1开发问题

1、转场动画、淡入淡出效果。野鸟装备2.1版本开始在个人主页上方支持动态Cover,用户可以上传8张大图,在个人主页上方轮翻播放。播放过程中有一个淡入淡出的效果。实现方式很简单:在动画播放之前,fromView挂在superView其上,toView没有superView。动画完成后,toView挂在原来fromView的superView上,而fromView则没有了superView+ (vo

2015-12-11 21:18:24 2078 1

原创 考上好大学,然后进入IT行业是穷人孩子晋级中产的唯一出路?

这个问题来自于我在知乎上参与的一个热贴讨论,作为一个10年的老码农,创业公司呆过,二、三流的互联网公司混过,BAT也遛了一趟,如今再次回归创业,经历算得上狗血了,看见这个题目就忍不住就想多喷几句。在我看来,这条路确实不错。首先来说考上好大学这件事,那肯定是学校越牛越好。单就互联网圈内来说,以BAT为代表的互联网巨头的崛起,意味着互联网正式进入拼爹时代。没有名校出身的加持,应届生已经很难进入BAT这

2015-12-05 13:38:18 10883 21

原创 野鸟装备2.0版本审核被拒2次的原因及解决方案

这次真悲催,连续被找了两次。第一次:10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your

2015-12-04 11:07:06 6558 3

原创 野鸟装备2.0问题一览

2.0发布了(点这里下载)。这个大版增加了UGC功能和任务体系,开了发近两个月,碰到的问题也是最多的。下拉刷新失效。当UITableView、UICollectionView不够一页的时候,下拉的时候都不会触发UIScrollVIew的scrollViewDidScroll代理方法。由于下拉刷新控件基于scrollViewDidScroll代理方法来实现。所以在创建UITableView、UICo

2015-11-19 11:04:19 2569 1

原创 野鸟装备如何支持表情的

目前野鸟装备App支持表情的地方有两个,一个是评论的输入和展示。一个是UGC时,装备描述的输入和展示。对表情输入这块儿,没有做什么扩展,用户只能输入手机上的输入法所支持的表情,只要野鸟装备对用户输入的文本做编码,然后传到后台就可以了。对展示这块儿,无论是系统字体,还是野鸟装备使用的思源字体,都是支持表情展示的,所以只要把编码后的文本做解码,然后显示就可以了。So,只要解决编解码问题就可以了。如参考

2015-11-18 21:14:21 1928 2

原创 野鸟装备iOS版开发笔记(1.5.0)

每次发版,如果不出点儿问题,反而不正常了。1、打包时提示调用了私有API:The app references non-public symbols in yeniao: _UICreateCGImageFromIOSurface网络上搜索,发现是Reveal.framework的问题,果然去掉,验证通过。另外,第一次上传时,使用的1.5.0(3),解决掉上面的问题之后,第二次上传时必须把版号和b

2015-09-28 15:39:35 2463 3

原创 iOS9适配Tip

手机只有先升级到8.4.1才会接收到iOS9的升级推送。XCode7.0需要去AppStore手动下载并安装。这篇文章对适配的技术点讲的很详细,不再啰嗦: https://github.com/ChenYilong/iOS9AdaptationTips具体到我这里,做了这几方面的工作:1、bitcode需要关闭。否则无法编辑通过。2、http设置

2015-09-18 22:10:06 3688 1

原创 野鸟装备IOS版开发笔记(1.0版本)

欢迎关注老码农的微信公共账号,与CSDN博客同步 野鸟装备终于要上线了,总结一下遇到的坑,供大家品尝。调用弱引用的block属性崩溃遇到的第一个技术性崩溃,是因为调用弱引用的block属性造成的。通常,在block回调中,如果weakSelf已经被释放,那么调用weakSelf的方法(如:[weakSelf method])会没有任何效果。但如果是调用weakSelf的

2015-09-02 21:06:12 1854 4

原创 创业公司十分钟简单搭建GIT私有库

一、背景小公司,协同开发的人不多,建gitlab比较麻烦,只需要在Server端建立一个简单的git共享库就OK。二、建立仓库Server端:1、在Server端建立项目目录。mkdir sample2、在sample中执行git —bare init,生成sample.git目录,这个目录是个共享库,所有代码在该目录下。本地端:1、clon

2015-07-24 11:43:26 5963 1

原创 ICONFONT在APP中的使用

阿里IconFont平台http://www.iconfont.cn/这里是阿里巴巴UED部门开发的IconFont平台,目前阿里系的重量级产品都在使用,里面有很多资源可供使用。这里说说如何在客户端内使用。IconFont虽然看起来是图标,实际原理跟字体的实现方式是一样的,所以我们把每个Icon当作一个特殊的文字来理解和处理。IconFont使用1、首先登录

2015-06-11 11:57:07 8155

原创 HLS直播技术方案及踩过的坑

一、为什么是IJKPlayer在基础技术方面,后端有比较成熟的系统,就不再说了,这里说说客户端方面。有直播就会有弹幕,基本上是标配了。字幕方面bilibili开源了一个Android的项目,不过IOS却没有,这个只能自己写了,不过本身这个东西技术方案没有什

2015-06-04 09:49:46 28643 5

原创 git命令常用操作

显示系统的隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏系统的隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool false一、撤销未提交的修改:恢复某个已修改的文件:git checkout src/com/

2015-05-29 16:40:33 1393

原创 苹果证书安装和删除

删除旧证书:把KeyChain中的证书、密钥两个Tab下的内容都删除,还有~/Library/MobileDevice/Provisioning Profiles目录下的Xcode针对证书的缓存。安装证书:安装P12文件,安装完成后会在KeyChain中看到证书及密钥。安装MobileProvisioning Profile文件。安装完成后KeyChain中看不到东西,但在

2015-05-29 16:39:38 13852

原创 一个移动开发老码农的书单

老码农是个比较宅的人,不爱玩游戏,只爱看书。过去10年来读的书中,还能记得的书大部都是很不错的,列出来推荐给大家。会持续更新。一、开发技术1、Effective Objective C 2.0适合代码量在5000行以后阅读,对细节

2015-05-29 14:35:54 8732 4

原创 Xib、AutoLayout等使用心得

欢迎关注微信公共账号“Android老码农”,与老码农交流。本文同时发表在老码农的个人独立网站:http://www.koulianbing.com/?p=83在新项目中使用Xib有一段时间了,遇到了不少的问题,也收获了很多的奇迹,最让我惊叹的就是使用熟练之后的界面开发速度,完胜Android那种XML方式的半吊子可视化界面开发工具。这里把使用心得汇总一下,希望能帮到大家。

2015-05-22 14:29:45 11284

原创 IOS相册使用的适配问题

这两天头一次使用uiimagepickercontroller,遇到了一个很屌的问题。调用相册进行拍照后,下方的左菜单显示“retake”,右菜单显示"Use Photo"。然后两个菜单都点不动,卡死了。另外,在点击拍照按钮的时候,Console里面打印了这样的Log:[PLLogging] ***** Error: logging directory does not exist /va

2015-05-22 11:23:08 2366

原创 好客户端是怎样炼成的

本文主要从开发的角度讲一下一个客户端的开发主要涉及的方方面面,让想了解App开发的同学做个快速入门。一、开发前准备这个主要是产品的设计阶段。1、确定产品的功能List,主要操作逻辑,产品满足的需求目标,以及过程。输出以PRD、原型图、流程图等为主。2、画视觉稿,如,概念稿、效果图等。把产品经理的输出以二维、Flash等方式表达出来

2015-05-06 17:15:14 3993 2

原创 移动APP中的多级CACHE策略

App运行过程中会产生很多随机、零碎、无固定结构的数据,这些数据重要性、数据量多变,是数据管理的一个难点。这里分享一下笔者这几年常用到的一些多级Cache策略。面前上面提到的这些问题,梳理一下我们要达到的目标:随机存取,数据非结构化,数据按重要性分级。1、为实现随

2015-04-23 21:09:04 3358

原创 论PAGELINK的必要性

通常来说,App内的PageLink机制有几个显著的优点值得我们去做:如,增加运营灵活性,页面开放性,利于效果追踪,反推模块间解耦,降低子工程间的依赖等。客户端总有那么几个核心业务承接页面,是给用户展示信息的主场,也是运营活动、消息推送时的用户承接页。如微博的个人主页,手淘的

2015-04-23 16:36:14 1777

翻译 IOS中AutoLayout布局与Transform的冲突问题

下来讨论的是在AutoLayout布局下,View的Transform被改变时,会触发layout从而引起布局混乱的问题。这些适配问题在IOS8中可能已经不存在,或者至少被弱化了。问题:AutoLayout中的transform确实存在一些兼容性问题,从而导致动画异常。至于其原因,我的理解是,一旦使用了AutoLayout,那么它的frame就应该交给AutoLayout来处理,就

2015-02-06 15:47:22 11669 2

原创 移动App开发中的View解耦问题

这几天在做给IOS代码降耦的事情,顺便唠叨几句开发中的View解耦问题。首先,我们先定位一下View的角色:View应该只操心前/后景色,字体属性,布局特性,x/y/width/height等纯视觉属性。不应该操心数据加载、修改,事件响应等Model和Controller关心的事。当然,也包括自定义的View。接下来讨论针对这个角色在实际开发中如何降低View部分耦合对整体架构的冲

2015-01-06 12:20:37 5229

原创 聊一下移动开发时MVC中的控制器

控制器,是MVC中的一环,也是手机软件开发中最需要注意的地方,对它的认识不清晰会导致业务层代码的结构混乱,耦合性高。经常见一些进行了几年的老项目代码,如果不是经常的迭代重构,维护起来会非常痛苦。今天重点说一下怎么化解这个问题。其实,每个平台都对Controller有很清晰的描述和定义,只不过我们在使用中容易自己乱了阵脚,而最终导致自己难受罢了。像Android中的Activity、Fragme

2014-12-25 11:02:36 2006

原创 在Android App开发中实现任意Java方法的拦截

在Android的App开发过程中,经常会有一些导致App进程崩溃的Framework层Bug,比如这里讲的Cookie同步引起的崩溃等问题。这种情况下,我们如果能拦截到Framework层的Api调用,对它做个包装把异常捕捉住,就可以避免这个问题了。当时,纯Java层是做不到的,而Java中的Proxy机制也只能针对自己定义的类,系统Framework层的类就不管用了。这里面说一种通过借鉴J

2014-11-27 09:10:46 7932 2

原创 Android进程注入

所有代码在这里下载:http://download.csdn.net/detail/a345017062/8133239里面有两个exe,inj是一个C层进程注入的例子。inj_dalvik是我写的Java注入。C层的进程注入借直接拉的洗大师的开源项目(https://code.google.com/p/libandroidinjector/)Android的基础服务大部分都是

2014-11-07 18:28:45 11900 6

原创 DNS优化之IP直连

移动互联网中,DNS解析的失败率是联网失败中占比很大的一种。为了优化这个问题,我们使用了IP直连。即,从服务器拉取一个配置文件,里面包含域名到IP映射。客户端每次联网时根据域名在配置文件中查找到对应IP,直接使用IP进行请求。这里有几个地方需要注意:1、配置文件拉取。使用Get请求,尽量使用请求Url简单,减少出错概率。并且这个时候不能使用IP直连,避免IP改变时拉取失败。2、

2014-07-22 18:55:21 10349 9

原创 Android 开发Tips

1、模块间有消息需要传递时,使用LocalBroadcastManager替代Listener进行模块解耦。除了解耦,这样发送消息和执行消息差一个线程循环,可以减小方法的调用链,我这就碰到一次方法调用链太长导致StackOverflow的问题。2、静态变量不要直接或者间接引用Activity、Service等。这会使用Activity以及它所引用的所有对象无法释放,然后,用户操作时间一

2013-12-24 20:41:57 3382

原创 android中的messenger会导致内存泄漏

如下这个文章所述messenger的使用方式,会导致内存泄漏。 http://blog.csdn.net/huaciom/article/details/7232302 原因是一个进程A中的callbackA会被另一个进程B持有。callbackA中如果包含context,泄漏就很大了。所以,需要确保callbackA在B中被及时释放。我们需要注意的是,即使在B中把callbackA的引用置为nu

2013-11-25 11:58:11 3234 2

原创 Hybrid中的页面加载优化

流行的AJAX架构都是由Browser下载一个模板,然后发起AJAX请求JSON数据,数据回来后填充模板并展现给用户。可以有这么几种优化方式1、把AJAX请求完全放在后端完成,Browser直接加载一个静态页面。虽然很极端、很暴力,但在2G/3G环境下用户的体验可以得到很大提升。2、合并AJAX请求。通常一个页面不同部分的数据可能来源于不同的接口,如果把这些接口的请求进行合并,既节省了流量

2013-05-18 15:42:26 3374

翻译 进一步优化Bitmap Cache策略

上一篇文章中(http://blog.csdn.net/a345017062/article/details/8753649)提到了两种bitmap cache,这篇文章讲一下具体如何确定具体的Bitmap Cache策略。一、为了更快的理解我们的策略,需要先说一下不同版本的Android系统中,对Bitmap的处理有何不同。1、Android 2.2 (API level 8),

2013-04-03 14:06:36 7404 2

翻译 图片缓存实现策略分析

从网络上加载一张图,然后把它显示到UI上是个很简单的事情。当图片变多时,处理起来就有些麻烦了,很典型的应用场景,如ListView,GridView或者ViePager等。我们既需要保证用户看到更多的图片,以免屏幕出现大面积的空白,又要保证内存能Hold住。GC会自动释放一个没有强引用的图片或者View,这本来是个好事情,但为了让用户来回滚动时还能快速加载老图片,通常会使用图片缓存。这篇文章就

2013-04-02 22:27:15 6212

原创 手机客户端开发中的“恶意代理”攻击分析

设计HTTP安全的时候,恶意代理是需要考虑到的很重要的一环,尤其在这个“Wifi横行”的年代。一个酒店、商厦中不怀好意的免费Wifi节点,可能就会让用户在使用客户端的过程中,泄漏密码、资金等重要信息。本文从常见恶意代理的几种攻击方式出发,谈一谈如何在安全设计上避免被恶心代理攻击。一、报文纂改这个是攻击力比较小的方式,只要稍有一些安全意识,就容易防范。典型的攻击方式是通过恶意代理截取到一

2013-03-30 11:46:07 2720

原创 Hybrid优化策略分析

Hybrid越来越成为开发的一种常见的开发方式,但说到Hybrid,除了开发上的高效和更新上的快捷之外,速度是被提到最多的,我们就从这里开始着手。这里跟大家分享一些这方面的经验,希望能对大家有所帮助。我们把一个Html页面的加载过程分为三段:加载、渲染、Ajax请求。然后从这三个阶段分别谈一下优化的策略。1、加载。首先,要充分利用浏览器的缓存策略来实现快速加载。这样就能保证只要不升

2013-03-28 21:12:46 6334

原创 Android WebView缓存分析

WebView的缓存可以分为页面缓存和数据缓存。页面缓存是指加载一个网页时的html、JS、CSS等页面或者资源数据。这些缓存资源是由于浏览器的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。他们的索引存放在/data/data/package_name/databases下。他们的文件存放在/data/data/package_name/cach

2013-03-21 21:06:43 38780 3

原创 WebView适配问题集锦

Android 4.0以上的系统设置中的开发人员设置中有一项是“强制使用GPU渲染”。当这个开启时,可能会引起WebView的稳定,如页面加载后一闪而过又变成空白等。好在这一项默认是关闭的。不过硬件加速确实会造成WebView容易出现问题,原来碰到过不少。但硬件加速确实有不少好处,可以大大加快客户端的速度,尤其是在播放动画的时候。最实惠的做法是整体打开硬件加速,然后根据实际场景使用setLay

2013-03-07 20:13:01 27782 3

原创 从安全和体验上解析移动App的登录

App登录需要解决的问题有两个:安全、体验。它们分别对应着登录过程的用户认证,以及用户登录过程操作复杂度两个问题。一、登录过程的用户认证,常见的手段有密码加密传输、动态密码、验证码等。1、密码加密。目前互联网行业的移动APP有不少在使用最简单的做法:根据密码生成一个散列值,把散列值发送给服务器。服务器计算库中用户密码的散列值,然后和客户端传来的散列值比较,一致的话,登录

2013-03-03 14:36:44 37583 6

原创 Android WebView缓存策略详解

WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache)。一、网页缓存1、缓存构成/data/data/package_name/cache//data/data/package_name/database/webview.db/data/data/package_name/database/webviewCache.db

2013-02-06 12:03:09 61656 9

原创 App内存泄漏问题

一、Java内存泄漏1、主要原因Activity(静态引用)、Dialog在onDestroy时没有被dismiss等。2、分析工具:MAT产生的hrof文件查看引用链,断掉就OK。AOP在onCreate、onDestroy、finalize埋点。在onDestory被调用后,运行GC,然后,如果finalize很长时间没有被调用就有内在泄漏了。3、解决方案:Contex

2013-01-18 20:46:15 6817

原创 Notification icon问题

Notification图标设置问题只设置Notification.icon的话,状态栏和拉开状态栏后的显示区域都使用这个值。只设置contentView,不设置Notification.icon或者Notification.ticker的话,状态栏不显示一开始的滚动信息既设置Notification.icon又设置contentView的话,状态栏显示Notification.ico

2012-12-25 20:39:48 17847 1

原创 Activity、Fragment对象内存泄漏的解决思路

先转载一篇文章:activity contex and memery leak(http://blog.csdn.net/prog_dong/article/details/5618995)通过这篇文章,可以理出这样一个思路来,即这Activity、Fragment对象本身的内存泄漏,其实都是来源于循环引用。比如,Activity/Fragment内部引用了对象(如:View),如果把这些对象

2012-12-16 13:12:45 16711

Android 进程注入

Android 进程注入代码。跑通了整个流程,希望对大家有帮助,顺便赚点资源分。没办法,穷啊。

2014-11-07

Android NDK编写之JNI规范升级版

事隔3年,把JNI的规范重新整理了一下。希望能给大家带来帮助

2013-12-02

改进的开源项目3D的罗盘(marine compass)

网上有一个3D的罗盘(英文名叫marine compass),利用orientation sensor做出来的,down下来,改进了一下,让它也可以不使用orientation sensor,而是由gsensor和msensor算出来.可以通过它的设置在这两种方式之间进行选择。

2011-07-15

EventHub演示程序及源码

这个资源里面的源码及可执行文件是用于这里这篇文档的: http://blog.csdn.net/a345017062/archive/2011/05/13/6417929.aspx 文档中对Android EventHub是基于这里面的源码和可执行程序的。

2011-05-13

Android2.3 系统的兼容性标准规范

Android2.3 系统的兼容性标准规范,我在博客上贴出来的翻译当中有的部分细节没有翻译可以参考一下这篇源文档。

2011-05-11

SurfaceFlinger使用演示程序及源代码

这个资源是专门为我的这篇文章上传的,具体使用方法和原理可以参考一下这里 http://blog.csdn.net/a345017062/archive/2011/05/09/6406282.aspx

2011-05-09

Stev Guo系统文章翻译

网上整理的Stev Guo系列的文章,讲的是Android系统底层的东西,挺深入的,就一边看一边翻译了下来。

2010-12-17

JNI编程指南和规范的中文翻译(The JavaTM Native Interface Programmer's Guide and Specification)

做Android开发时用到了NDK,发现JNI是个很大的块儿空白。从官网上下了个文档开始学习,读取两遍,理解的差不多了。就花了两星期的时间,把主要部分翻译了。多多捧场。

2010-09-06

MP3文件格式分析资料及帧解析源代码(java)

收集了几个对MP3文件格式说明比较详细的网页,并附带上JAVA版本的源代码.可实现每次读取一帧数据.

2009-10-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除