ViewPager实现Recycle机制和响应notifyDataSetChanged

1.目标主界面要求水平移动翻页效果,每次只能翻一页,可以翻无数页。2.实现思路针对“每次只能翻一页”这个要求,简单使用SDK的话只有用ViewPager。ViewPager的PageAdapter是没有实现RecyclerView的ViewHolder.itemView回收机制的。即使是子类FragmentStatePagerAdapter,也只是保存状态后销毁Fragment,Fragment本身...
阅读(399) 评论(0)

Web开发须知的浏览器内幕 缓存与存储篇(2)

本文禁止转载,由UC浏览器内部出品。3. HTTP Cache综述HTTP Cache是完全按照IETF规范实现的,最新的RFC规范地址是 https://tools.ietf.org/html/rfc7234。它的作用就是保存可缓存的响应以备重新使用,在下次请求时可减少响应时间和网络带宽。只有GET和HEAD method会缓存。浏览器的优化浏览器是过滤了部分没有意义进行缓存的响应头才保存到磁盘...
阅读(2047) 评论(0)

Web开发须知的浏览器内幕 缓存与存储篇(1)

本文禁止转载,由UC浏览器内部出品。0.前言大纲浏览器缓存和存储相关的功能分为四类: 加载流程 Memory Cache Application Cache(简称AppCache) HTTP Cache Cookie Storage Javascript API Web Storage Indexed Database File API Cache Storage(Service Worker的...
阅读(2293) 评论(0)

客户端开发设计总结

1 基础设施程序最基本的处理就是数据IO以及为了并行计算所做的操作,它们通常会作为程序的底层框架,供上层使用。2 交互从PC到现在的移动设备还有VR,人机交互中的输入设备在不断自然化,可是展示界面的元素仍然还是这几种:静态文本、按钮、列表、输入框、选择菜单、进度提示、滚动条、标签页。每种UI框架都提供这些基本组件,可以说掌握它们就等于对这个框架入门了。高级的交互会跨越窗口、跨越程序,并能更智能化地响...
阅读(2432) 评论(0)

《Linux命令行与Shell脚本编程大全第2版》读书笔记

第1章可以cat /proc/meminfo文件来观察Linux系统上虚拟内存的当前状态ipcs命令专门用来查看系统上的当前共享内存页面Ubuntu使用一个表来管理在系统开机时要自动启动的进程,在/etc/init.d目录,可将开机时启动或停止某个应用的脚本放在这个目录下。这些脚本通过/etc/rcX.d目录下的入口启动,这里X代表运行级(run level)Linux才做系统有5个启动运行级。运...
阅读(1106) 评论(0)

HTTP(S)网络框架的设计

0.烦恼 操作系统提供的网络接口都相对接近底层,使用时有诸多不便。但是我们不能期望系统API做得很高级,因为没有绝对合适的网络库,必须定制化从而达到适合某业务下的最佳性能。 1.需求 移动app使用网络库的场景不外乎三个: 和自家(CS架构的)服务器通信 下载文件 Web浏览 从方便和可扩展性出发,不少app会选择通信协议为HTTP(S),数据协议则为自定义。为了保护隐私,如果不使用HTTPS,数据都该自...
阅读(2242) 评论(1)

如何优化程序员的内部培训

本文的主旨是列内部培训的提纲,特别对培训他人和写作技巧写得细一些,让大家明白很多东西可以培训和怎么传播知识。 虽然题为培训,但我还是想说一句:程序员其实不需要培训,只需要指点。原因有三: 1. 程序员的工作都必须去实践,几乎没有纯理论的领域。 2. 由于互联网的开放性,程序员能找到大量的资源自学。 3. 随着实践深入,会自然地遇到一些问题。解决这些问题除了靠智力外,大部分只需要知道答案的大致方位就能用时间来消...
阅读(6711) 评论(11)

跨平台客户端开发经验总结

1 前言因为《猫科动物和企鹅在窗口外看机器人吃苹果》这出戏太美,很多公司都希望能全平台同时发布新版本app,还要能复用代码以降低开发成本。这迫使一部分已熟悉某个平台的先锋们转岗到另一个平台边学习边开发。最终有少部分人在每个战场都打拼过,从而能全盘考虑以设计出良好的可复用架构。 革命总会出新知,今天已有一些开源框架能应对同时在5大平台Mac OS X、Linux、Windows、Android、iO...
阅读(4730) 评论(7)

boost::asio的http client应用笔记

1 踩过的坑1.1 io_serviceboost::asio::io_service::run()会一直运行到没有任务为止,如果中途调用stop(),则所有等待中的任务会立刻执行。解决方案是用run_one(),即while (keep_running) io_service_.run_one();keep_running是个bool值,要stop io_service的时候直接置fals...
阅读(6594) 评论(5)

boost全平台编译方法

0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和windows下的bjam。bootstrap脚本可以传入参数,以在编译bjam过程中生成特定的编译boost的配置。编译bjam过程中生成的project-config.jam就是默认的配置,但还可以在运...
阅读(25186) 评论(21)

libevent2笔记(Timer和Http Client的应用和注意点)

1.初始化Windows上需要自己初始化系统网络库,即调用WSADATA WSAData; WSAStartup(0x201, &WSAData);结束使用时再WSACleanup();另外还需要初始化线程设置 windows上 evthread_use_windows_threads linux上 evthread_use_pthreads综上,使用其它libevent的函数前需要这样:#...
阅读(3419) 评论(0)

shell终端多目录间快速cd工具

1.解决的问题当需要在多个目录间cd的时候,需要输入一大串的路径。例如在不同的项目、不同的分支代码目录跳转,在桌面和文档目录跳转cd ~/Desktop/project_trunkcd ~/Download/cang_lao_shicd ~/code/branch-1.11/cd ~/code/branch-3.1/project/android 这个工具就能令这些cd简化成几个字符:g2tg2c...
阅读(2557) 评论(1)

脚本式快捷键:一个简化shell终端命令输入的工具

1.解决的问题当你需要一次输入很多个命令的时候,例如一次去几个目录删除文件cd dir1rm file1.tempcd ../../dir2rm -rf dir3当你懒得输入一个好长的命令或者直接就记不住那么长的命令的时候,例如生成ctagsctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --ex...
阅读(2728) 评论(0)

libevent2笔记(linux、windows、android的编译)

0. 前言我使用的版本是libevent-2.0.21-stable。高级的应用还是得看官网文档http://www.wangafu.net/~nickm/libevent-2.0/doxygen/html/1. 编译1.1 Linux版编译在目录下./configure && make即可在./.lib/下得到5个.a静态库。 sdfsdfdsf...
阅读(4872) 评论(2)

韩国水原市出差见闻

1 出发本地出差的地方是京畿道(Gyeonggi-do)水原市(Suwon-si)。“京畿道”:京是首都,畿指靠近国都的地方,道相当于省。京畿道是包围着首都首尔和仁川的省(就像河北包围北京和天津),省会设在水原市。办理韩国的旅游签证需要7个工作日左右,允许停留时间是30天。我停留了满满的一个月。入境是限制携带水果的,也许是防止外物种入侵。再次访问的话,不妨带点猪肉干、牛肉干送给他们,他们估计会很感...
阅读(6101) 评论(1)

Windows SublimeText内使用NDK编译Android so(不用cygwin)

测试环境:sublime text version 2.0.2, build 2221 和 sublime text stable channel, build 3065 (version3)Win7 64位android-ndk-r10c windows x86_64步骤:1.设置好ndk环境变量假如把ndk压缩包解压到D:\android-ndk-r10c,则控制面板 -> 系统 -> 高级系...
阅读(3417) 评论(1)

结果导向和自管理的联系

“只要把任务做完做好就行,为什么我还要考虑自管理这个琐事?” ——这估计是很多管理者在推行“自组织自管理”时被提问的问题。幸好会有人提,憋在心里那就永远解决不了问题。实际上,“把任务做好”这种结果导向的口号,和自管理的推行并没有冲突。我们用实际的例子来释疑。老大给了菜鸟一个任务,原话是:你写些东西向新人介绍svn这个工具。于是菜鸟写了这么一句话:svn是subversion的缩写,它是一个版本控制...
阅读(2211) 评论(1)

Chromium项目文化(续)

文化 文化一词,涵盖的是设计思想/理念、工作原则等精神领域的追求,也可以说是技术情怀,它是如此大型的Chromium项目能良好运作的基石,所以单独做一个总结。 1.竖立宗旨 把开源项目也运作得一家公司,对应于企业文化,Chromium提出了自己的宗旨:为用户创造更安全、更快速和更稳定的上网体验。阅读后面的章节你会发现...
阅读(2921) 评论(1)

网页浏览器发展方向总结

经过国内厂商的几轮营销轰炸,不少人都知道了浏览器有内核的概念,那么相对地,就有外壳/应用层(Shell)。十年前,用户就只对外壳有认知,直到今天这几个东西仍是标配:在HTML5/CSS3的时代,内核向Web OS发展,用户感受到在浏览器里能体验的东西越来越多。W3C被开源项目推进而制定出了很多新标准,浏览器渐渐演绎成操作系统虚拟机,模拟系统SDK提供各种API给Javascript访问系统设备。开...
阅读(4694) 评论(3)

iOS社交app技术合伙人笔试题

理想状况当然是找到有管理能力且还在写代码的架构师了,然而如果有这样的人,他自己能发起项目了,你要拉上他还真难。满足一定条件就行了,别追求完美。还有比这更完美的吗?请生产这样的机器人:性格开朗(开朗≠外向),平易近人表达能力好,易于沟通交流有设计能力,有攻关能力知识范围广,跨职能团队合作顺畅在业界有一定视野或影响力,有好的人脉资源有管理能力(经验≠能力),中后期能管好团队,顺利成长为管理者没身体和家...
阅读(3532) 评论(0)
124条 共7页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:915043次
    • 积分:9027
    • 等级:
    • 排名:第1927名
    • 原创:123篇
    • 转载:0篇
    • 译文:0篇
    • 评论:406条
    联系方式
    博客专栏
    最新评论