- 博客(269)
- 资源 (9)
- 收藏
- 关注

原创 安卓常见异常处理
1.crashDump:{java.lang.IllegalStateException: Can not perform this action after onSaveInstanceStateat android.support.v4.app.l.s(FragmentManager.java:1314)处理方法:FragmentTransaction ft = getSuppor
2015-07-29 13:40:46
6688

翻译 Instagram架构的发展
Instagram是一家基于iOS和Android的社交图片照片分享应用开发商。凭借着独特的运营理念,自2010年3月成立以来,短短一年的时间就吸引了1400万用户。而后随着手机相机改动、图像处理升级、与Facebook等社交灵活交互、支持Android等服务不断升级,用户量迅速冲击3000万,于2012年9月被Facebook以7.15亿美元收购。而截止到今年2月底,其活跃用户成功突破1亿。
2014-03-31 09:23:06
6389

翻译 常见性能问题
1.数据库:Working size exceeds available RAMLong & short running queriesWrite-write conflictsLarge joins taking up memory2.虚拟化:Sharing a HDD, disk seek deathNetwork I/O fluctuations in the clo
2014-03-31 09:19:16
1407
翻译 Instagram后端架构
在 Amazon EC2上跑 Ubuntu Linux 11.04 (Natty Narwhal)在 Amazon 的 ELB(Elastic Load Balancer) 上起了三个 Nginx 实例DNS 服务使用 Amazon Route53 服务使用 Django 做逻辑处理大部分数据存储在 PostgreSQLTB 级别的海量图片存储在 Amazon S3 上CD
2014-03-27 11:34:17
2901
原创 互联网接口设计常见方法
1.通过服务器控制客户端接口缓存方式和时间;2.通过服务器控制客户端图片缓存时间;3.服务器和客户端接口鉴权安全;4.服务器和客户端接口通信安全;5.服务器控制客户端页面跳转方式;6.服务器控制客户端交互方式;
2014-02-28 17:06:39
1656
原创 android常用库
Source from github、google code and bitbucket:* “Rocket” by Zhao Xiaogang and Yang Hao* “Done and Discard” by Roman Nurik* “ActionBarSherlock” by Jake Wharton* “ListViewAnimations” by nhaar
2013-12-28 14:22:16
3484
原创 解决The current branch is not configured for pull No value for key branch.master.merge found in config
1.在本地工程目录找到config文件(我的是在E:\rocket\rocket\.git);2.修改config文件内容为:[core] repositoryformatversion = 0 filemode = false logallrefupdates = true [branch "master"] remot
2013-11-21 12:37:37
31131
2
原创 popup window点击窗口外区域不消失的解决方法
方法其实so easy:popupWindow.setTouchable(true);popupWindow.setFocusable(true);popupWindow.setBackgroundDrawable(new BitmapDrawable());popupWindow.setOutsideTouchable(true);不行还可以加上:popupWindow.set
2013-09-11 14:59:13
21560
原创 android证书制作
1. 制作Andriod程序的数字签名需要使用JDK,先确认本机是否安装了JDK,在JDK目录下有一个KEYTOOL工具,这个就是制作数字签名使用到的工具;2.打开KEYTOOL,在运行中输入cmd,使用cd命令将路径切换至keytool所在目录,然后做如下操作:输入命令:keytool -genkey -v -keystore kzoncj.keystor
2013-09-03 12:00:20
9680
原创 使用大量checkbox的时候可能出现的小问题
问题现象:当有几排chechebox的时候,你总会发现:在点击一个checkbox的时候其它的checkbox状态在发生改变,问题的本质是焦点所致。解决方法:<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
2013-07-28 14:25:05
1817
原创 android中解决“Dex Loader] Unable to execute dex: Multiple dex files define LXXX”错误
让人心烦的问题,其实是个小问题。
2013-07-24 00:20:56
1362
原创 Rich Media(富媒体)媒体的定义
Rich Media并不是一种具体的互联网媒体形式,而是指具有动画、声音、视频和/或交互性的信息传播方法;包含下列常见的形式之一或者几种的组合:流媒体、声音、Flash、以及Java、Javascript、DHTML等程序设计语言;富媒体可应用于各种网络服务中,如网站设计、电子邮件、BANNER、BUTTON、弹出式广告、插播式广告等。
2013-06-26 11:23:13
2374
翻译 增强Android应用视觉效果的10个UI设计技巧
在Android应用开发中,风格和设计或许不是最关键的要素,但它们在决定Android应用成功与否上确实扮演重要的角色。以下是10个Android应用的UI设计技巧,还有个附加技巧,能够提供你的Android应用的视觉吸引力。1.使用大小适当的图像在图像方面,许多Android应用开发者采用的是大小单一的做法。尽管这会使资源管理变得更为简单,但就应用的视觉吸引力而言,这是个错误的做
2013-06-23 12:02:13
1724
原创 java常用集合性能比拼
Hash 集合的性能比任何 List 的性能都要高,但每条目的成本也要更高。由于访问性能方面的原因,如果您正在创建大集合(例如,用于实现缓存),那么最好使用基于 Hash 的集合,而不必考虑额外的开销。对于并不那么注重访问性能的较小集合而言,List 则是合理的选择。ArrayList 和 LinkedList 集合的性能大体相同,但其内存占用完全不同:ArrayList 的每条目大小要比 Lin
2013-06-18 15:45:55
2100
原创 引入并发的原因
在这里我不想去谈论操作系统的发展史,而是想说一下操作系统发展过程中迫切引入并发的原因:1.资源利用率在有些时候,程序在工作的时候,必须要等待外部的某个操作结束才能进行下一步,比如在等待输入和输出的时候,而程序在等待的过程之中,是无法进行任何其它的工作的。故此,如果程序在等待的同时去执行另外的一个程序,无疑会提高程序执行的效率。小学时,华罗庚的统筹方法里面也谈到了利用率的问题,给我有相同的启
2013-06-14 09:30:06
1452
原创 Netty中文用户手册(二)
如果你运行了TimeClient,你肯定可以注意到,这个应用并没有自动退出而只是在那里保持着无意义的运行。跟踪堆栈记录你可以发现,这里有一些运行状态的I/O线程。为了关闭这些I/O线程并让应用优雅的退出,你需要释放这些由ChannelFactory分配的资源。一个典型的网络应用的关闭过程由以下三步组成:关闭负责接收所有请求的server socket。关闭所有客户端socket或服
2013-06-10 12:19:30
4939
原创 Netty中文用户手册(二)
1.8. 使用POJO代替ChannelBuffer目前为止所有的实例程序都是使用ChannelBuffer做为协议消息的原始数据结构。在这一节,我们将改进时间协议服务的客户/服务端实现,使用POJO 而不是ChannelBuffer做为协议消息的原始数据结构。在你的ChannelHandler实现中使用POJO的优势是很明显的;从你的ChannelHandler实现中分离从C
2013-06-10 12:17:15
1639
原创 Netty中文用户手册(二)
1.7. 流数据的传输处理 1.7.1. Socket Buffer的缺陷对于例如TCP/IP这种基于流的传输协议实现,接收到的数据会被存储在socket的接受缓冲区内。不幸的是,这种基于流的传输缓冲区并不是一个包队列,而是一个字节队列。这意味着,即使你以两个数据包的形式发送了两条消息,操作系统却不会把它们看成是两条消息,而仅仅是一个批次的字节序列。因此,在这种情况下我
2013-06-10 12:14:36
1444
原创 Netty中文用户手册(二)
1.4. 响应协议服务目前,我们虽然使用了数据,但最终却未作任何回应。然而一般情况下,一个服务都需要回应一个请求。让我们实现ECHO协议 来学习如何完成一个客户请求的回应消息,ECHO协议规定要返回任何接收到的数据。与我们上一节实现的抛弃协议服务唯一不同的地方是,这里需要返回所有的接收数据而不是仅仅打印在控制台之上。因此我们再次修改messageReceived方法就足够了。@
2013-06-10 11:54:56
2955
原创 Netty中文用户手册(三)
第二章. 架构概述2.1. 丰富的缓冲实现Netty使用自建的buffer API,而不是使用NIO的ByteBuffer来代表一个连续的字节序列。与ByteBuffer相比这种方式拥有明显的优势。Netty使用新的buffer类型ChannelBuffer,ChannelBuffer被设计为一个可从底层解决ByteBuffer问题,并可满足日常网络应用开发需要的缓冲类型。这些
2013-06-10 09:48:21
2592
原创 Netty中文用户手册(二)
第一章. 开始这一章节将围绕Netty的核心结构展开,同时通过一些简单的例子可以让你更快的了解Netty的使用。当你读完本章,你将有能力使用Netty完成客户端和服务端的开发。如果你更喜欢自上而下式的学习方式,你可以首先完成 第二章:架构总览 的学习,然后再回到这里。1.1. 开始之前运行本章示例程序的两个最低要求是:最新版本的Netty程序以及JDK 1.5或
2013-06-10 09:42:21
7226
2
原创 Netty 中文用户手册(一)
序言本指南对Netty 进行了介绍并指出其意义所在。1. 问题现在,我们使用适合一般用途的应用或组件来和彼此通信。例如,我们常常使用一个HTTP客户端从远程服务器获取信息或者通过web services进行远程方法的调用。然而,一个适合普通目的的协议或其实现并不具备其规模上的扩展性。例如,我们无法使用一个普通的HTTP服务器进行大型文件,电邮信息的交互,
2013-06-10 09:17:06
2487
原创 Runtime.getRuntime().addShutdownHook介绍
介绍从函数的字面意思上我们很很好理解就是JVM在关闭的时候会逐渐关闭钩子里面添加的函数,见详细例子:‘例子public class Test { static class ThreadOne extends Thread { public void run() { int i = 0; while (i < 3) { try { Thread.sle
2013-06-01 12:09:13
2698
原创 ThreadFactory的常见使用方法
概述ThreadFactory是一种在软件开发过程中封装对象创建过程的面向对象的设计模式。常见的有如下两种使用场景:异常捕获ExecutorService executor = Executors.newSingleThreadExecutor(new LoggerThreadFactory ()); executor.submit(new Runnable() { @Ove
2013-05-29 20:50:34
26252
1
原创 网站的架构演进过程
单一应用架构 当网站业务流量或者流量很小时,只需一个单一的应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 分布式
2013-05-28 08:21:13
1084
原创 关于Pojo
POJO --"Plain Ordinary Java Object",是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。POJO不担当任何特殊的角色,也不实现任何特殊的Java框架的接口如,EJB,JDBC等等。POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但
2013-05-27 13:54:54
1298
原创 web service和rpc的区别
1.rpc RPC的全称叫远程过程调用,在过去一般传输的数据是二进制的,数据的传输形式相对轻量和简单,传输过程相对来说也要高效一些。直到后面XML-RPC的出现,RPC的传输形式相对来说要丰富一些,数据结构的传输也可以传输较为复杂的情况。 RPC不要求可以通过web的方式进行查看。2.web service web service的出现,可以说是在rpc发展的基础
2013-05-21 14:59:15
7546
原创 android上的缓存、缓存算法和缓存框架
1.使用缓存的目的缓存是存取数据的临时地,因为取原始数据代价太大了,加了缓存,可以取得快些。缓存可以认为是原始数据的子集,它是从原始数据里复制出来的,并且为了能被取回,被加上了标志。在android开发中,经常要访问网络数据比如大量网络图片,如果每次需要同一张图片都去网络获取,这代价显然太大了。可以考虑设置本地文件缓存和内存缓存,存储从网络取得的数据;本地文件缓存空间并非是无限大的,容
2013-05-21 14:10:46
13422
原创 谨慎去获取控件的高和宽,以防带来不必要的性能问题
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); ssidtext.measure(w, h); int
2013-05-16 14:56:32
1547
原创 base64和bitmap互相转换
public class Base64 { /** * Default values for encoder/decoder flags. */ public static final int DEFAULT = 0; /** * Encoder flag bit to omit the padding '=' characters at t
2013-05-10 15:26:17
5513
原创 提高OCR识别率的一些菜鸟方法
原稿的质量直接影响到最后OCR的正确率,因此先要适当调整原稿。对于低质量稿件,可考虑在扫描前用复印机先行复印并适当调节对比度和亮度,使背景变成白色,而文字色泽保持黑色即可。经过复印以后的报纸,OCR的识别率有明显的提高。扫描过程中一定要将原稿摆正,否则OCR软件将无法正确识别。如果无法将原稿摆正,可使用 “自动倾斜校正”或者“手动纠斜”功能纠正字体的倾斜。选择适当的扫描参数也很重要,一般OCR是原
2013-05-05 19:54:29
16764
原创 到2013年5月份的android不同版本市场占有率
谷歌在Android官方网站上公布了当前各版本Android的市场份额,其中Android 2.3市场份额仍最高,但已经跌破40%。 谷歌数据显示,截至本周三,Android 2.3(Gingerbread)市场份额仍最高,但已经降至38.5%。与此同时,Android 4.0(Ice Cream Sandwich)、4.1和4.2(Jelly Bean)市场份额继续增长。 其
2013-05-03 16:51:11
4346
原创 android中获得相对高的权限方法
openFileOutput方法:FileOutputStream fos;fos = openFileOutput("filename", MODE_WORLD_READABLE);FileOutputStream fos;fos = openFileOutput("filename", MODE_WORLD_READABLE);可用的mode 参数如下:/**
2013-05-02 17:40:21
1395
原创 图片合成
private Bitmap onCompositeImages(){ Bitmap bmp = null; bmp = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig()); final
2013-05-02 17:32:27
3694
原创 图片上动态添加文字
android上在图片上动态添加文字的方法:public Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) { Resources resources = gContext.getResources(); float scale = resources.getDisplayMetrics(
2013-05-02 17:28:59
11175
原创 生活和项目中常见图片格式
位图常用的位图格式文件扩展名MIME 类型固有名称描述.bmpimage/bmpWindows位图最常被MicrosoftWindows 程序以及其本身使用的格式。可以使用无损的数据压缩,但是一些程序只能使用未经压缩的文件。.iff .ilbm ?互换档案格式(Interchange fil
2013-05-02 00:20:15
1695
button在底部的多个view切换优化之<实例二3D切换>
2011-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人