自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(43)
  • 资源 (23)
  • 收藏
  • 关注

原创 任务之整理Android5.0中WebKit依赖的第三方库

http://www.it165.net/pro/html/201406/15259.html>>Android 4.4中的结构http://bbs.9ria.com/forum.php?mod=viewthread&tid=250133&highlight=webkit>>老板的Android Webkit的结构http://www.ituring.com.cn/arti

2016-01-26 23:46:13 1338

转载 图片之不可错过图片

1你能看到几个小孩?    5个孩子?10个孩子?这就是著名的五子十童图。  2  在你眼里这图动的有多快?    这是科学家模拟的服用兴奋剂后的视觉幻觉图。也有说法认为,看到图转得越快,压力越大。  3这是美女还是男人?    不近视的人看到的是爱因斯坦,近视的人看到的是玛丽莲·梦露。不信?摘掉眼镜试试。  4给你2

2016-01-23 18:18:06 469

转载 WebKit之Chromium的UI绘制流程初探

常见的UI库的绘制逻辑任何一个成熟的界面框架都有一个相当复杂的结构,消息循环的处理、控件的布局与绘制、焦点的管理以及资源的存取等等,Chromium里的界面框架也不例外,尤其采用的MVC设计方式更是增添了代码结构的复杂度。这里并不打算讨论Chromium的界面框架,本文感兴趣的只是Chromium的UI绘制部分,确切地说应该是引入Aura架构之后控件渲染的硬件加速支持。在常见的Di

2016-01-13 22:16:26 1410

转载 WebKit之GPU进程启动流程说明

硬件渲染依赖计算机的GPU,GPU种类繁多,兼容这么多种类的硬件,稳定性是个大问题,虽然Chromium内部维护了一个GPU黑名单列表,限定了哪些渲染特性不能在哪些GPU上渲染,但还不足以解决使用GPU过程中的稳定性问题。在Chromium的多进程架构中,不稳定不可控的因素一般都会采取独立进程的渲染方式, 从而保证主进程的稳定性,比如Render进程、插件进程,GPU的使用也一样,采取独立进程的方

2016-01-13 22:15:38 767

转载 WebKit之WebRTC初步认识

WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRTC源码上构建自己的对聊框架,都需要遵循以下执行流程: 上述序列中,WebRTC并不提供Stun服务

2016-01-13 22:13:24 1103

转载 WebKit之WebRTC的研究

上一篇文章简单地介绍了下WebRTC的协议流程,这一篇就开始介绍框架与接口。一提到框架,本能地不知道从什么地方入手了。曾经直接从Chromium项目对WebRTC的源码的集成方面入手,后来发现这个步子迈的太大了,看的越多,概念越混乱,看了半个月感觉也没啥沉淀。还是从WebRTC提供的示例工程peerconnection_client入手比较轻便。先抛开音视频流的构建和渲染流程,示例工程核心

2016-01-13 22:12:48 1642

转载 WebKit之基于Chromium的二次开发

工程狮自述:我们是怎么做出 Chromium M35 内核浏览器的36氪的朋友们 • 2014/07/24 17:59编者按:本文来自 UC 浏览器电脑版技术负责人李云,微博 @至简李云,详细叙述了自己和团队是如何将浏览器内核从 Chromium M32,升级到 Chromium M35 的过程,对相关技术感兴趣的读者可以和他交流。对于这次内核升级,我们花了很大

2016-01-13 22:09:10 13639

转载 WebKit之Chromium加载网络加速初步研究

本文主要内容翻译自Google的文档Data Compression Proxy,如果您觉得文章写的不明白,请参看原文。对于一款浏览器而言,速度无疑是非常重要的,其中加载速度更是重中之重。UC浏览器很早就采用了云端加速技术,所以在网页加载速度方面一直很有优势。现在越来越多的浏览器,如Opera、QQ浏览器都采用了服务器端加速技术。Chrome移动版从V33开始正式支持数据压缩代理。下面就分

2016-01-13 22:07:39 1009

转载 WebKit之Frame Tree建造过程

Chromium支持硬件加速渲染网页,即使用GPU渲染网页。在多进程架构下,Browser、Render和Plugin进程的GPU命令不是在本进程中执行的,而是转发给GPU进程执行。这是因为GPU命令是硬件相关操作,不同平台的实现不一样,从而导致不稳定,而将不稳定操作放在独立进程中执行可以保护主进程的稳定性。本文对Chromium硬件加速渲染机制的基础知识进行简要介绍和制定学习计划。老

2016-01-13 00:36:26 712

转载 WebKit之硬件加速的原理介绍

Chromium支持硬件加速渲染网页,即使用GPU渲染网页。在多进程架构下,Browser、Render和Plugin进程的GPU命令不是在本进程中执行的,而是转发给GPU进程执行。这是因为GPU命令是硬件相关操作,不同平台的实现不一样,从而导致不稳定,而将不稳定操作放在独立进程中执行可以保护主进程的稳定性。本文对Chromium硬件加速渲染机制的基础知识进行简要介绍和制定学习计划。老

2016-01-13 00:35:40 1950

转载 WebKit之chromimu页面加载过程

Chromium加载网页的过程,需要Browser进程和Render进程协作完成。加载网页的过程由Browser进程发起,向服务器请求网页内容的过程也是由Browser进程完成。Render进程负责对下载回来的网页内容进行解析,解析之后得到一个DOM Tree。有了这个DOM Tree之后,Render进程就可以对网页进行渲染了。本文接下来就对上述过程涉及到的重要概念进行简要介绍以及制定学习计划。

2016-01-13 00:34:56 562

转载 WebKit之Chrominu的IPC消息收发/分发的讲述

由于Chromium采用多进程架构,因此会涉及到进程间通信问题。通过前面一文的学习,我们知道Browser进程在启动Render进程的过程中会建立一个以UNIX Socket为基础的IPC通道。有了IPC通道之后,接下来Browser进程与Render进程就以消息的形式进行通信。我们将这种消息称为IPC消息,以区别于线程消息循环中的消息。本文就分析Chromium的IPC消息发送、接收和分发机制。

2016-01-13 00:28:14 1678

转载 WebKit之GPU进程启动过程分析

Chromium除了有Browser进程和Render进程,还有GPU进程。GPU进程负责Chromium的GPU操作,例如Render进程通过GPU进程离屏渲染网页,Browser进程也是通过GPU进程将离屏渲染好的网页显示在屏幕上。Chromium之所以将GPU操作运行在独立进程中,是考虑到稳定性问题。毕竟GPU操作是硬件相关操作,硬件的差异性会引发一定的不稳性。本文分析GPU进程的启动过程。

2016-01-13 00:26:13 1760

转载 WebKit之Plugin进程启动过程分析

前面我们分析了Chromium的Render进程和GPU进程的启动过程,它们都是由Browser进程启动的。在Chromium中,还有一类进程是由Browser进程启动的,它们就是Plugin进程。顾名思义,Plugin进程是用来运行浏览器插件的。浏览器插件的作用是扩展网页功能,它们由第三方开发,安全性和稳定性都无法得到保证,因此运行在独立的进程中。本文接下来就详细分析Plugin进程的启动过程。

2016-01-13 00:24:32 1359

转载 WebKit之Chromium的Render进程分析

配置多进程的情况下,Chromium的网页渲染和JS执行在一个单独的进程中进行。这个进程称为Render进程,由Browser进程启动。在Android平台中,Browser进程就是Android应用程序的主进程,而Render进程就是Android应用程序的Service进程,它们通过UNIX Socket进行通信。本文就详细分析Chromium的Browser进程启动Render进程的过程。

2016-01-13 00:22:59 2983

转载 WebKit之Chromium多进程模型分析

Chromium以多进程架构著称,它主要包含四类进程,分别是Browser进程、Render进程、GPU进程和Plugin进程。之所以要将Render进程、GPU进程和Plugin进程独立出来,是为了解决它们的不稳定性问题。也就是说,Render进程、GPU进程和Plugin进程由于不稳定而引发的Crash不会导致整个浏览器崩溃。本文就对Chromium的多进程架构进行简要介绍,以及制定学习计划。

2016-01-13 00:11:32 771

转载 WebKit之Chromium多线程模型的设计与分析

Chromium除了远近闻名的多进程架构之外,它的多线程模型也相当引人注目的。Chromium的多进程架构是为了解决网页的稳定性问题,而多线程模型则是为了解决网页的卡顿问题。为了达到这个目的,Chromium的多线程模型是基于异步通信的。也就是说,一个线程请求另外一个线程执行一个任务的时候,不需要等待该任务完成就可以去做其它事情,从而避免了卡顿。本文就分析Chromium的多线程模型的设计和实现。

2016-01-13 00:10:13 1300

转载 WebKit之Chrominu多线程通信的Closure分析

为了充分利用CPU多核特性,Chromium在启动时会创建很多线程,来负责执行不同的操作。这样就涉及到了多线程通信问题。Chromium为每一个线程都创建了一个消息队列。当一个线程需要另一个线程执行某一操作时,就向该线程的消息队列发送一个Closure。这个Closure最终在目标线程中得到执行。这种基于Closure的多线程通信方式在Chromium中使用得很普通,因此本文就对它的实现进行分析。

2016-01-13 00:07:50 762

转载 Android之chromimu和webkit的智能指针的原理

第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system

2016-01-13 00:04:56 495

转载 Android之如何单独编译Android中的模块

第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system

2016-01-13 00:02:41 278

转载 Android之HAL层编写JNI供Java接口访问

在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问

2016-01-13 00:01:32 805

转载 Android之测试Jave接口访问硬件服务

我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应用层增加一个内置的应用程序,这个内置的应用程序通过ServiceManager接口获取指定的服务,然后通过这个服务来获得硬件服务。      

2016-01-13 00:00:17 384

转载 Android之编写C程序访问Android之驱动程序

在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。进一步,还通过cat命令来直接访问/proc/hello和/

2016-01-12 23:58:25 757

转载 Ubuntu上为Android编写驱动程序

在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore。随着Android系统逐步扩大市场占有率,终

2016-01-12 23:55:12 612

转载 Android之Dalvik运行过程分析

在前面一篇文章中,我们分析了Dalvik虚拟机在Zygote进程中的启动过程。Dalvik虚拟机启动完成之后,也就是在各个子模块初始化完成以及加载了相应的Java核心类库之后,就是可以执行Java代码了。当然,Dalvik虚拟机除了可以执行Java代码之外,还可以执行Native代码,也就是C和C++代码。在本文中,我们就将继续以Zygote进程的启动过程为例,来分析Dalvik虚拟机的运行过程。

2016-01-12 23:53:06 370

转载 Android之Dalvik的进程/线程创建的过程

我们知道,在Android系统中,Dalvik虚拟机是运行Linux内核之上的。如果我们把Dalvik虚拟机看作是一台机器,那么它也有进程和线程的概念。事实上,我们的确是可以在Java代码中创建进程和线程,也就是Dalvik虚拟机进程和线程。那么,这些Dalvik虚拟机所创建的进程和线程与其宿主Linux内核的进程和线程有什么关系呢?本文将通过Dalvik虚拟机进程和线程的创建过程来回答这个问题。

2016-01-12 23:51:47 1222

转载 Android之Dalvk与JNI注册过程介绍

在前面一文中,我们分析了Dalvik虚拟机的运行过程。从中可以知道,Dalvik虚拟机在调用一个成员函数的时候,如果发现该成员函数是一个JNI方法,那么就会直接跳到它的地址去执行。也就是说,JNI方法是直接在本地操作系统上执行的,而不是由Dalvik虚拟机解释器执行。由此也可看出,JNI方法是Android应用程序与本地操作系统直接进行通信的一个手段。在本文中,我们就详细分析JNI方法的注册过程。

2016-01-12 23:49:57 1053

转载 Java之虚拟机Dalvk原理简介

我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。除了指令集和类文件格式不同,Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等。本文对Dalvik虚拟机进行简要介绍,以及制定学习计划。

2016-01-12 23:47:33 882

转载 Android之View的过程分析

在前面一篇文章中,我们分析了Android应用程序窗口的绘图表面的创建过程。Android应用程序窗口的绘图表面在创建完成之后,我们就可以从上到下地绘制它里面的各个视图了,即各个UI元素了。不过在绘制这些UI元素之前,我们还需要从上到下地测量它们实际所需要的大小,以及对它们的位置进行合适的安排,即对它们进行合适的布局。在本文中,我们就将详细地分析Android应用程序窗口的测量、布局以及绘制过程。

2016-01-12 23:45:39 1477

转载 Android之Activity的框架原理分析

这一侧的Layer对象,而操作Layer对象的目的就是为了修改Activity组件的UI。        在前面Android应用程序与SurfaceFlinger服务的关系概述和学习计划和Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划这两个系列的文章中,我们已经分析在SurfaceFlinger服务这一侧的Layer类和SurfaceLayer类

2016-01-12 23:43:17 2849

转载 Android之UI显示的原理分析

注意,上面我们说Android系统不支持硬件加速的UI 绘制,针对的是Android应用程序2D UI绘制。对于3D UI,例如游戏,一直是支持硬件加速渲染的。此外,从前面Android应用程序与SurfaceFlinger服务的关系概述和学习计划、Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划和Android应用程序窗口(Activity)实现框架简要介

2016-01-12 23:40:37 694

转载 Android之Chromium学习WebView的启动篇幅

Android从4.4起提供基于Chromium实现的WebView。此前WebView基于WebKit实现。WebKit提供网页解析、布局和绘制以及JS运行等基础功能。Chromium在WebKit基础上为WebView提供进程、线程和渲染等基础构架。因此基于Chromium实现的WebView更好地提供了网页浏览功能。从本文开始我们启动对Android Chromium WebView的学习。

2016-01-12 23:37:47 755

转载 Android之编译系统初始化过程

Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号。Android的编译类型主要有eng、userdebug和user三种,而支持的目标设备型号则是不确定的,它们由当前的源码配置情况所决定。为了确定源码支持的所有目标设备型号,Android编译系统在初始化的过程中,需要在特定的目录中加载特定的配置文件。接下来本文就对上述的初始化过程进行详细分析。

2016-01-12 23:35:02 518

转载 Android之Service Manager的Binder守护进程

上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划简要介绍了Android系统进程间通信机制Binder的总体架构,它由Client、Server、Service Manager和驱动程序Binder四个组件构成。本文着重介绍组件Service Manager,它是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Ser

2016-01-12 23:33:03 451

转载 Android之Binder通信原理

在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。        我们知道,Android系统是基于Linux内核的,而Linux内核继承和兼

2016-01-12 23:30:01 558

转载 Java之详细介绍jNI

JNI其实是Java Native Interface的简称,也就是java本地接口。它提供了若干的API实现了和Java和其他语言的通信(主要是C&C++)。也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢? 你

2016-01-12 23:28:27 423

转载 Java之JNI编程注意事项

整理项目文档时, 忽然发现当年的一篇以前公司里关于JNI编程 的标准化文档。做为收藏,就贴在这里吧。注:关于JNI, 现在好像有一个OpenSource项目jace可以帮助进行JNI的开发。另外, 推荐IBM Developerworks网站上的一个教程《用jni进行java编程》JNI编程注意事项:1、  JNI的函数声明:JNI函数声明方法为JAVA_Pac

2016-01-12 23:26:27 296

转载 Java之JNI应用场景

JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,JNI技术的出现主要是基于三个方面的应用需求: 1. 解决性能问题Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。Sun公司及Java的支

2016-01-12 23:24:34 1705

转载 Java之JNI技术总结

昨天和一部zzz一起研究解决一个java调用第三方dll的问题,从零开始学习了jni技术的应用,现在总结如下。       事情的起因是一部的一个项目需要用到一个爱国者提供的基于U盘的加密技术。对方提供了U盘和一个dll动态链接库hiddenIO.dll。在U盘的隐藏区域内可以储存USB-Key信息,通过这个dll里的两个方法可以使用c/c++编写程序在U盘的隐藏区域读写信息,对方提供了示例代

2016-01-12 23:22:00 346

转载 Java之创建JNI的案例

环境说明:ubuntu 10.4.2 LTS系统程序清单1:src/com/magc/jni/HelloWorld.java 1 /** 2 * 3 */ 4  package com.magc.jni; 5 6  /** 7 * @author magc 8 * 9 */10  public class HelloWorld {11

2016-01-12 23:20:56 301

汉化版dhcpd的服务器绿色软件

这是一个汉化版的绿色软件,运行于WIndows平台下的dhcpd的服务器软件。 存在Ini配置文件进行配置

2015-12-01

libevent.tar.gz的源码包

这是一个libevent的源码包,用于事件驱动的案例分析

2015-11-30

kindeditor的压缩包

这是一个js的格式化的输入的插件,可以方便的格式化输入各类信息(视频、图片、文字等)

2015-11-29

SQLiteSpy的db文件查阅器

这是一个绿色工具,可以方便的执行/查阅Sql语句

2015-11-19

绿色软件-识别可执行程序运行时依赖的dll库

绿色软件-全面分析exe程序的dll依赖关系

2015-11-18

绿色正则表达式测试的软件

这是一个绿色的测试正则表达式的软件,方便大家编写简单的正则进行测试

2015-11-18

绿色截图软件

这是一个绿色的截图软件,让PC上截图非常的方便

2015-11-18

绿色软件-颜色抓取器

这是一个绿色的工具,可以轻易的获取桌面上任一点的颜色RGB值

2015-11-18

基于Python实现的自动化生成XML解析类

这是一个采用Python脚本自动解析XML格式并生成对应Qt的解析XML的代码, 让Qt完全解脱了编写解析的逻辑。

2015-06-11

采用php编写在线聊天室

采用php脚本编写简易的在线聊天项目, 你可以采用它迅速的实现一个在线聊天室的功能。

2015-06-11

借助于php手机控制PC

这一段PHP的代码,手机可以通过php控制PC

2015-06-04

BasicExcel_test.zip

Linux环境下使用C++编程对Excel进行操作(创建、写入、读取等操作) 可以将demo中BasicExcel文件编译为静态库,然后作为第三方库对外进行调用

2015-05-28

protobuf-2.5.0.tar.gz

分享protobuf源码, 用于Linux下进行编译,用于自动化生成代码,大大降低通信协议的编写。

2015-05-28

qt编写的ftp简单客户端

如果想学习简单的QFtp的使用,这是一个不错的案例。

2015-05-25

C趣味程序百例,入门级别者必须要了解的哟

你对编程感兴趣吗? 那么你就必须要精通C语言啦 面对一个全新的事物,怎么在快乐之中逐渐的接受呢,那就下载这个100道的快乐编程题目吧等你全部弄懂啦之后,你就基本入门啦哟 !

2010-09-19

curses编程初步Linux中的一道亮色 哟

这个尽管没有QT那么华丽 但是还是有自己的特长的哟 我已经用他先后编写啦 单片机的流水灯的模仿程序 五子棋,小型坦克大战。。。

2010-09-18

汇编的基础入门的知识大奉送

想了解或是对汇编感兴趣的那就看看吧 不敢保证很好!但我可以像大家推荐,1分还是值得的哟

2010-09-18

Linux下图形界面mp3播放器的实现

稍微懂得编程的人都知道,mp3的播放可比wav要难多啦 写一个代码播放wav文件不是很难,但是播放mp3的代码,我想要难道一大批人啦哟!想尝试一下吗?那就来吧

2010-09-18

个人对Qt学习之后的感受和经验

知道谷歌地图是用什么做的吗? 可不是什么flash或是Ps呀? 那就是用QT做的哟 话说,图形界面上,只有你想不到的,没有她办不到的,你信吗? 不信就来试试哟

2010-09-18

《数字信号处理教程》程佩青(第二版)课后答案

你还在为数字信号处理的问题发愁吗? 那就赶快下了吧!解决你不少的麻烦! 我用了之后感觉好好啊!推荐大家!

2010-09-18

空空如也

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

TA关注的人

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