- 博客(82)
- 资源 (10)
- 收藏
- 关注
原创 Android Native Crash Capture SDK
Android Native Crash Capturehttps://github.com/MiechalZhao/CrashCapture
2015-10-24 00:42:36
3568
原创 chromium gpu 硬件加速 compositing
转载请注明出处 http://blog.csdn.net/typename powered by miechalzhao@gmail.com前言:
2014-11-18 17:44:19
5231
原创 Android Chromium for WebView代码结构
分享Android Chromium for WebView代码结构及各目录代码作用。
2014-11-07 18:40:43
16603
原创 Android 各个版本WebView
介绍Android 4.0及其以上版本的WebView内部结构实现以及WebView的渲染方式,WebKit for WebView VS Chromium for WebView。各个Android Webview版本的变化。
2014-10-27 16:02:57
113486
8
原创 Android WebView 开发详解(三)
介绍Android WebView 开发的WebSetting,详解settings当中困惑的地方以及对开发的提醒。并且分析Android 4.0以上版本针对WebSettings这一部分的具体实现。
2014-10-21 13:34:26
26489
原创 Android WebView 开发详解(二)
分享Android WebView 开发实战经验,WebView的各种主要的回调说明,详解回调的含义和用途,以及应用程序需要如何响应这些操作。
2014-10-17 18:02:43
75183
6
原创 Android WebView 开发详解(一)
详细介绍Android WebView开发,介绍WebView开发各个注意事项及其解决方法。
2014-09-07 01:17:28
131909
2
原创 网页加速之Prefetching VS Prerendering
对比prefetching 和 prerendering差异,以及目前浏览器厂商支持列表
2014-08-20 10:50:57
3744
原创 网页加速之Chromium 预加载 Prerendering
介绍chrome prerendering 背景,原理,性能测试及在chromium当中的实现
2014-08-19 18:01:24
10458
1
原创 Android WebView findAll API Bug
Android系统开发过的大家不管是framework以上还是native,大家都会遇到过不同Android版本差异带来的问题,Deprecate这个词framework层接触比较多童鞋会见得相当多,甚至一些api还会有一些bug. 本人总结Android开发针对版本不同问题的个人心得:1.首先查看官方文档和framework源码,这里推荐一个网址在线查看android各个系统版本的源
2014-06-25 21:59:56
5845
原创 Android 分析应用程序占用native内存
Android 应用开发大家都知道可以通过DDMS来查看应用程序进程占用的内存大小;然而Native 内存并不能在虚拟堆上看到;Android系统基于Linux,这样的话其具备Linux的大多数特性;在Linux当中有不少方法可以查看进程占用的内存,可以采用图形界面工具,也可以采用命令,具体如何查看这边就不介绍了。 Android Native 内存查看:1.首先需要确保你的PC上
2013-10-27 19:14:00
14565
1
翻译 Webkit RefPtr and PassRefPtr Basic
RefPtr and PassRefPtr Basics历史:在webkit当中很多对象是使用引用计数方式。这种方式的实现是通过每个类当中拥有ref和deref成员函数用来递增和减小引用计数。每一个ref方法调用和deref相对应。当引用计数变为0时,这个对象就会被delete。在webkit当中的很多类实现这种模式的方法是继承RefCounted类模板。回到2005年,我们发现有
2013-08-07 23:05:22
2685
原创 Redhat配置git 服务器
一、安装git-core 下载git-core wget http://git-core.googlecode.com/files/git-1.7.9.tar.gz tar –xlvf git-1.7.9 cd git-1.7.9 ./configure –prefix=/usr/local/ /*指定安装目录*/ make
2013-05-19 19:57:26
12644
原创 设计模式之工厂方法(factory method)
Factory Method 模式的核心用意:使得一个类的实例化延迟到子类,让子类决定实例化哪个具体的类。工厂是制造产品的,那这个工厂具体制造什么样的产品则根据各个产业领域不同而不同。但是工厂对外的只是产品,具体产品如何生产对用户来说是透明的。下面列出一副图来描述工厂方法的结构:上述图中Product是接口部分.ConcreteProduct是具体的产品接口实现
2012-12-20 22:29:37
2477
原创 一道有趣的GOOGLE算法题
问题描述:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。如果没有时间,空间的要求,那解法会相当的多,hash table,STL当中的set等都可以很方便的解决。网上大多的解法是基于基数排序,还有标记法。本人由于兴趣,采用交换标记法,代码如下:#include#includebool Rep
2012-12-01 23:01:28
2851
原创 全排列算法c++实现
问题:Given a collection of numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].Solution:#incl
2012-11-21 18:45:39
2099
原创 动态数组对比STL vector及其实现(c/c++)
c/c++动态数组动态数组 顾名思义能 动态增加内存的数组。 STL标准库中的vector具有类似的功能,c标准库的realloc也具有类似的功能,那为何还需要自己实现动态内存方式呢?对于追求效率,和有重要性能需求的我们来说,实现动态数组能让我们的程序运行的更有效率,下面分别谈一下vector 和realloc.1.vector再STL标准库的实现当中,vector内存不够时,会动态的
2012-11-20 11:29:03
7614
翻译 15个常用的gcc 命令选项
GCC编译器非常强大 ,在各个发行的linux系统中都非常流行,本文介绍的是一些常用的gcc编译选项下面这段代码将回围绕整个文章:编辑main.c如下.#includeint main(void){ printf("\n The Geek Stuff\n"); return 0;}GCC编译选项1.指定输出可执行文件的名字使用最基本的gcc编译格
2012-11-18 22:41:34
31498
3
原创 terminate called throwing an exception" SIGABRT UIApplicationMain
问题:启动程序直接挂在UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));并且控制台和堆栈只显示main和UIApplicationMain.解决方法:1.首先排除由于iOS SDK最新版的兼容问题,如果是SDK问题,那直接修改SDK版本。2.针对这种情况,没有多余的有用信息,
2012-11-15 18:00:40
3334
原创 C语言不同增值语句区别
i++;++i;i +=1;i =i +1;在C语言代码中我们经常看到这样的增值语句,那么到底哪个语句效率最高呢?‘i++’表示取i的地址,把他装入寄存器当中然后增加内存中i的值。'++i'表示增加i的内容把它的值放入寄存器中。i +=1,i=i+1都是赋值操作。在早期编译器当中其被翻译成两条指令,因此大家会认为这样的效率底下。但在现代编译器中gcc,vc等区别已然
2012-10-03 10:53:45
2447
原创 android ndk not support pthread_cancel
转载请注明: http://blog.csdn.net/typename/article/details/7794958下面是google关于这个问题的说法:Try changing your code so that your threads don't get stuck waitingindefinitely for i/o. For example used condit
2012-08-05 02:38:17
8649
1
原创 iphone gamecenter GKErrorDomain code =17
使用gamecenter 下载数据 或者上传数据时,遇到这个问题,说明gamecenter 没有这个ID,解决方法:需要检查程序bundle id中设定的category,是否与itunes connection 上gamecenter配置一致。若刚注册 gamecenter id, 此时下载数据并不会立马生效,需要过一阵子,大概几小时的样子,才能生效。测试的时候需要在沙箱
2012-05-28 17:22:52
2981
原创 c/c++ undefined reference to ‘funtion name'
undefined reference to `function name' 意思已经表达很清楚了,程序在链接的时候找不到这个函数的定义,如果这个函数是第三方的库的话, 需要检查是否在程序中导入了这个库的静态库,或者动态库, windows .lib,.dll, linux .a .sowindows上需要在工程设置上加上 库的搜索路径==linux 如果是 ./configure
2012-05-16 13:00:15
2982
原创 ubuntu 11.10 nginx压力测试
最近app需要搭建后台,故此研究一下,靠谱的后台服务器..网传nginx 能达到的并发数量比apache 高. LAMP or LNMP ? 根据需求测试结果来进行选择。首先是安装LNMP测试完后 再测试 LAMP,网上很多,我这里就介绍一下自己在ubuntu 安装webbench(压力测试工具)http://home.tiscali.cz/~cz210552/webbench.html1
2012-04-26 16:58:49
5288
1
原创 gamecenter peer - to -peer
iOS GameCenter P2P要想使用GameCenterP2P对战功能,需要了解GKSession详见https://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKSession_Class/Reference/Reference.htmlGKSession可以创建和管理移动网络蓝牙或者本地
2012-04-16 22:23:43
3358
原创 objective-c NSMutableDictionary 使用
NSMutableDictionary *tris = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];NSEnumerator *enumerator =[tris keyEnumerator]; NSString* key; while ((key =
2012-03-15 22:06:15
1983
原创 android onResume is called before you unlock the phone
最近遇到一个问题,android上运行app当锁定屏幕,然后解锁.android 解锁屏幕之前会先调用onResume方法,有时候这并不是开发者想要的结果...比如声音在没解锁之前就播放 用户体验效果就有点差了...解决这个问题有两个方法,直接上代码了...1.@Override public void onWindowFocusChanged(boolean has
2012-03-12 21:06:14
3397
1
原创 memcpy的威力
有时候采用memcpy可以使程序的效率提高很多,有时候也会拖延程序的运行时间。对于c/c++内置类型建议不宜采用memcpy作为拷贝方式,可以直接操作其地址来达到赋值效果。比如将int 类型的数值拷贝到一段buffer当中,可以直接采用赋值方式example:uint8_t *buffer=new uint8_t[1024];int sendLength=100;*(int*)buff
2012-01-28 21:27:12
7901
原创 java 启动线程三种方式
1.继承Threadpublic class java_thread extends Thread{ public static void main(String args[]) { (new java_thread()).run(); System.out.println("main thread run "); } public synchronized void run
2012-01-20 16:32:01
106148
原创 bat + cmakelist搭建windows开发环境
更方便搭建windows开发环境,采用bat + cmakelist是个不错的idea。windows bat文件的使用在此就不多介绍。为了达到bat文件执行向cmake传递参数,有个不错的方法就是通过设置系统环境变量,等运行完bat 将这个环境变量删除。1.编写bat文件 需求是bat文件支持用户输入命令,读取用户输入命令,向cmakelist传递参数。 @echo off
2012-01-20 16:06:14
4367
原创 c++ class does not name a type
declare class does not name a type出现这个编译错误主要有四个可能原因,现总结如下:1.引用的类命名空间未包含2.引用的类头文件未包含3.包含了头文件,或者已经前置声明了,则说明所引用的类名写错。4.循环引用头文件前置声明要素:1.前置声明需要注意以上提到的四点2.尽可能的采用前置声明(做到只有包含继承类的头文件)3.使用前置声明
2012-01-03 21:26:34
129521
2
原创 Amf3协议分析与实现
前沿: AMF(Action Message Format)是一种 二进制格式数据型态,AMF协议基于HTTP,将flash客户端数据编码后传回server,server端的remoting adaptor接收到数据后则会解码回正确的native对象,交给正确的程序处理,并以同样的数据组织方式响应客户端。AMF3相比较AMF0编码时经过高度压缩,因此非常适合用来传递大量的数据,根据fl
2011-12-10 14:28:21
22758
3
翻译 C 检测内存泄露
介绍:当程序员在堆上分配内存,忘了释放或者释放失败所申请的内存,内存泄露就随之出现,其一直是C代码 bug 的一部分。大多数程序员使用第三方库来检测自己的代码,其实可以在我们自己的程序上编写简单的代码来检测内存泄露,这样可以使得程序减少库的依赖。在C语言中申请内存通常使用malloc()和calloc(),释放的时候使用free()。有时候我们会忘记释放内存。下面介绍一下一个简单的方法检测程序
2011-12-09 22:50:22
7019
1
原创 forward declarations in c++
c++中的前置声明,只对该类的指针,SmartPtr)有效。如果要继承这个一个雷类,则必须包含这个类的定义部分。否则编译就会报错forward declarations of "XXXX".例子:example1:class A :pubilc B{};这时候需要include 类B的定义。example2:class B;//前置声明SMART_PTR(B);
2011-11-18 15:36:39
2898
原创 跨平台线程池实现
本线程池的作用是管理阻塞的网络操作函数的调用...每次网络操作调用都加入到线程池当中,然后线程回调函数执行 取任务的操作并执行这次任务。 线程池的设计 将线程池的所有操作都封装在类中...外界使用的话只需要new 一个这个线程池对象。 1.加任务函数 2.取任务函数 3.初始化线程池 4.销毁线程池 线程池的实现 实现跨
2011-10-14 18:04:24
2757
1
原创 willRotateToInterfaceOrientation not called
call use the follow method to do .Observe UIDeviceOrientationDidChangeNotification:[[NSNotificationCenter defaultCenter] addObserver:self se
2011-10-10 16:54:59
4215
原创 android获得系统GPU参数 gl.glGetString
通过文档的查找,以及源码的剖析,Android的GPU信息需要通过OpenGL来获取,android framework层提供GL10来获取相应的参数,而GL10要在使用自定义的View时才可以获得,下面是获得GPU信息的例子:1.实现Render类class DemoRenderer implements GLSurfaceView.Renderer { public void o
2011-08-31 14:06:00
18507
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人