自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Christ的博客

学习分享

  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 理解O(log2N)和O(Nlog2N)

O(lgn)的解释是:将一个数据集分成两半,然后将分开的每一半再分成两半,依此类推O(nlgn)的解释是:将一个数据集分成两半,然后将分开的每一半再分成两半,依此类推,在此过程中同时遍历每一半数据以归并排序为例,可以把排序的过程看成一个倒立的二叉树:2 392116 78 46 54        ->未排序原始数组个数8 (2,39

2016-10-10 10:53:11 30912 1

转载 JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式

讲解JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式,并编写两种缓存方式的示例代码。1.从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据Java的垃圾回收机制,只要有引用存在就不会出发该引用指向的Java对象的垃圾回收。2.这些引用在JNI中分为三种:  全局引用:Global Reference  局部引用:L

2016-06-21 09:52:48 1645 1

转载 Vsync从HWC到APP的传递过程

主要可以分成两个阶段:从HWC到SurfaceFlinger和从SurfaceFlinger到APP。1.从HWC到SurfaceFlingerAndroid系统中VSYNC信号分为两种,一种是硬件生成的信号,一种是软件模拟的信号。硬件信号是由HardwareComposer提供的,HWC封装了相关的HAL层,如果硬件厂商提供的HAL层实现能定时产生VSYNC中断,则直接使用硬件的VS

2016-04-07 17:32:34 4370

转载 DispSync

摘自:点击打开链接个人小结:1. app和SurfaceFlinger对应的两个vsync属于sw vsync,这两个vsync是根据HWC vsync推算出来,这两者有一定相位偏移,原因应该是防止app和SurfaceFlinger同时被唤醒进行绘制和叠图,造成争夺CPU。app 的vsync会先得到响应。2. 然后由于有CPU延时响应可能造成sw vsync超出某个阈值,导致需要H

2016-04-06 15:06:25 2601

转载 C++11在时空性能方面的改进

转自:http://www.cnblogs.com/me115/p/4788322.htmlC++11在时空性能方面的改进这篇我们聊聊C++11在时间和空间上的改进点; 主要包括以下方面: 新增的高效容器:array、forward_list以及unordered containers; 以及常量表达式、静态断言和move语义;大小固定容器 array

2016-03-18 17:44:34 441

转载 c/c++打印变量名

#include ;#include ;#define CAT(x,y) x##y#define MACRO(x) #x#define SNPRINTF(buf,size,fmt,x) \ snprintf(buf,size,fmt,MACRO(x))int main(){ char a[128]; SNPRINTF(a,sizeof(a)-1,"%s"

2016-02-17 18:48:47 2219

转载 Init 的主要作用

http://www.5wpc.info/it/technical/os/android/init/2014/11/21/FirstProcessInit/Init 的主要作用本程序是Linux完成内核加载后的第一个进程, 主要进行linux 级首个上下文的设置(linux属性体系), 基础服务的启动与状态 管理(重新启动, 状态监视), 系统属性变化后的状态重置.

2016-02-04 17:52:36 3998

转载 Android System Properties

Zhibin's blogalways smile :-)RSSBlogArchivesAboutAndroid System PropertiesDEC 13TH, 2013 | COMMENTS—直朝那个方向走,或许真的能到达那个地方。o(∩∩)o…哈哈Property system 是 Andro

2016-02-04 17:51:21 1539

转载 SELinux: 为binderservice编写policy

转自:http://dragon.leanote.com/post/SELinux-%E4%B8%BAbinderservice%E7%BC%96%E5%86%99%E8%A7%84%E5%88%99为了让应用正常访问某个binder service,我们需要编写哪些policy呢? tios音频服务正是一个binder service,为此我们定义了三个主要的标识符:tios

2016-01-30 12:41:54 2024

转载 Android LayoutInflater

转自:http://www.cnblogs.com/top5/archive/2012/05/04/2482328.html在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的

2016-01-11 17:02:33 349

转载 在vc里使gif背景透明

转自:最近一直被一个问题困扰,那就是如何在vc里使gif背景透明。今天终于把问题搞明白了。由于是在已经有保存gif文件功能的代码上修改,所以只要添加和修改很少的一点内容就可以了。gif文件有两种格式“87a”和“89a”,后者才支持背景透明。所以,要先将原来填有“87a”的内容改为了“89a”。然后就是最关键的一步:设置对应背景透明功能的参数项。在这里要添加一个“图形控制补充区

2016-01-08 22:37:19 905

转载 Android的UI底层是用CPU绘图的还是GPU绘图的呢?以及surfaceview,window,普通view是如何实现的?

转自:http://www.zhihu.com/question/25811504著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:沙茶酱链接:http://www.zhihu.com/question/25811504/answer/31696269来源:知乎首先,对于CPU与GPU绘制的问题,根据google的文档http:/

2016-01-08 10:33:36 2280

转载 android View绘制流程

转自:http://my.oschina.net/fengzi2014/blog/404875?p=11.由Activity启动-->onCrate-->setContentView  为源头2.setContent实际调用的是 -->getWindow().setContentView(layoutResID); getWindow()返回 PhoneWindow 实例3

2016-01-08 10:17:02 338

转载 Java中hashCode的作用

本文转自:http://blog.csdn.net/fenglibing/article/details/8905007以下是关于HashCode的官方文档定义:[plain] view plaincopyhashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈

2016-01-07 22:34:48 310

转载 C++类内存分布

转自 http://www.cnblogs.com/jerry19880126/p/3616999.htmlC++类内存分布书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 

2015-12-26 13:55:16 341

原创 堆排序

参考点击打开链接,学习了下堆排序,资料很多就不多描述了,直接贴代码。/*二叉堆:完全二叉树,即除最后一层外,每层节点数均到达最大值;最后一层只缺少右侧节点(节点都在左边)。性质:对于var tree:array[1..n]of longint;{n:integer;n>=1}(1)若i>1,tree的双亲为tree[i div 2];(2)若2*i<=n,那么tree的左孩子为

2015-12-18 16:18:31 323

原创 使用C++自定义Binder

参考Binder使用示例学习一下binder。Binder的核心类关系见下图: Binder > binder核心类图.PNG" src="http://wiki.mediatek.inc/download/attachments/119506337/binder%E6%A0%B8%E5%BF%83%E7%B1%BB%E5%9B%BE.PNG?version=1&modificationD

2015-11-24 15:13:39 821

原创 AP独立实现Animated GIF播放

目前Android原生部分并不完全支持动态GIF的播放,“并不完全”的意思是:google在jni、native层实现了gif的解码和每帧绘制,但如要在AP中动态绘制每帧图片,需要AP通过自己定义view的方式去完成gif动态播放。1.GifView实现简易原理(1) 定义GifView类,继承View类;(2)在GifView构造器中使用android.graphics.Movie类

2015-11-24 13:57:30 713

转载 Android智能指针

转自:http://blog.csdn.net/lksodit_yiyi/article/details/8086209Android中定义了两种智能指针类型,一种是强指针sp(strong pointer),另外一种是弱指针(weak pointer)。其实称之为强引用和弱引用更合适一些。强指针与一般意义的智能指针概念相同,通过引用计数来记录有多少使用者在使用一个对象,如果所有使用者都放

2015-11-23 13:44:10 352

原创 View学习总结

View是Android界面中的一块矩形区域。ViewGroup控件可以包含和管理多个View。通过ViewGroup可以是整个界面上的view形成控件树,上层控件负责下层子控件的测量、布局和绘制,并传递交互事件。在Activity中通过findViewById()可以在控件树中以深度优先遍历方式查找对应view。在控件树的根部会有一个ViewParent对象统一调度分配整棵树的交互管理。

2015-11-05 19:44:19 421

转载 Android学习笔记之AndroidManifest.xml文件解析

转自:http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种

2015-10-27 22:14:08 479

转载 APP工程文件

App工程文件分析创建完的工程文件如下图所示,本文对一些主要的文件进行分析。src文件分析App源文件如图:打开源文件 MainActivity.java 可看到如下代码:源码主要功能如下:App源文件目录?1packagecom.example.firstapp;

2015-10-27 21:48:31 716

转载 有关gif disposal method

转自:http://blog.itpub.net/13685345/viewspace-514315利用gif图片制作简单动画是常用的渲染手段,swing虽然支持gif图片格式并可以自动地实现动画效果。通常最简单地将gif图片放到swing组件上是调用JButton或JLabel的setIcon(Icon icon)方法。还有一种方法是重写paintComponent(Graphi

2015-10-18 00:04:32 2390

转载 Android系统性能调优工具介绍

转自:http://blog.csdn.net/innost/article/details/9008691经作者授权,发表Tieto某青年牛的一篇《程序员》大作。Android系统性能调优工具介绍在软件开发过程中,想必很多读者都遇到过系统性能问题。而解决系统性能问题的几个主要步骤是:测评:对系统进行大量有针对性的测试,以得到合适的测试数据。分析系统瓶颈:分析测试数

2015-10-16 16:00:51 418

转载 正确使用Android性能分析工具——TraceView

##前面唠叨最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方。因为之前不会正确使用TraceView这个工具,主要是看不懂TraceView界面下方数据指标的值代表什么意思…以前我用StopWatch类来分析性能,现在觉得弱爆了…不过有些地方StopWatch工具类还是很简单好用的~网上可以找了很多博客来介绍

2015-10-16 15:53:10 374

转载 Android编译系统

一、Android编译步骤:  二、初始化编译环境--source build/envsetup.sh  在build/envsetup.sh中主要完成了三件事。    添加编译目标的代码如下:for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/*/vendorsetup.sh device/*/

2015-10-13 10:58:25 447

原创 skia draw path flow

1.draw path general flow由上图,drawOval,drawArc,drawRoundRect等基本图形的绘制,或者不规则图形的绘制都会调用drawPath。与draw bitmap flow类似,drawPath的实际实现也是在SkDraw中,这部分的flow如下: skia draw path flow > draw path flow.PNG" src=

2015-09-28 11:08:55 1732

原创 skia bitmap shader

在绘制bitmap的时候经常会用到bitmapShader工厂函数创建不同的shader,shader在后面的过程中对源bitmap着色处理。一个简单使用例子如下:SkBitmap src; SkImageDecoder::DecodeFile("E:/git/skia/Skia_VS2010/skia/out/2.png", &src); //把图片解码到源bitmapSkRec

2015-09-16 19:42:13 1893

转载 [转]Android Matrix利用invert实现逆向坐标映射

转自:http://blog.sina.com.cn/s/blog_783ede030102w6we.htmlandriod一般对图片进行缩放,旋转,移动时会利用到Matrix来做,但如果想知道经过矩阵运算后的图片上某个坐标对应没有matrix运算前的坐标是不是觉得很棘手。      首先先看一下matrix的几个方法public void mapPoints(float[] dst,

2015-09-16 13:51:16 963

转载 Mipmap纹理技术

转自:http://blog.csdn.net/linber214/article/details/3342051/在三维世界中,显示一张图的大小与摄象机的位置有关,近的地方,图片实际象素就大一些,远的地方图片实际象素就会小一些,就要进行一些压缩,例如一张64*64的图,在近处,显示出来可能是50*50,在远处可能显示出来是20*20.       如果只限于简单的支掉某些像素,将会使

2015-09-15 16:38:44 1794

转载 Eclipse Memory Analyzer 使用技巧

转自:http://blog.csdn.net/songjinbin/article/details/41528489Eclipse Memory Analyze 是JAVA 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。概述对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下

2015-09-13 11:22:43 390

原创 skia draw bitmap flow

学习了jxt1234and2010的大作,试着用自己的理解去分析skia draw bitmap的过程,在这里感谢jxt1234and2010。1.Draw bitmap apidraw bitmap的api有以下几种:drawBitmap:将bitmap画到x,y的位置(这本身是一个平移,需要和SkCanvas中的矩阵状态叠加)。drawBitmapRect 和 drawBitm

2015-09-12 15:22:18 2225

原创 skia DrawLooper

本次学习drawLooper.cpp中有关SkDrawLooper类的用法。SkDrawLooper有两个子类:SkLayerDrawLooper和SkBlurDrawLooper。先看一下drawLooper.cpp里面的例子,主要看onDraw()做什么:virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { this->

2015-09-07 19:56:48 1824 1

转载 Android Framework 记录之二

转自:http://blog.csdn.net/banketree/article/details/24982021接着上次的记录,续写。23、services目录文件描述class AlarmManagerService extends IAlarmManager.Stub {//定时管理服务public cla

2015-09-07 15:33:34 1280

转载 Android Framework 记录之一

转自:http://blog.csdn.net/banketree/article/details/24718899  简介之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了。记录1、下载源码,目录如下:2、Android系统的层次如下:3、项目目录简单

2015-09-07 15:29:20 1493

原创 SkCanvas状态栈flag

状态栈flagSkCanvas类在save()时会保存matrix,clip或者matrix和clip都保存,这是依赖于以下这三种flag决定的。save()默认flag是kMatrixClip_SaveFlag。SkCanvas::kMatrix_SaveFlagSkCanvas::kClip_SaveFlagSkCanvas::kMatrixClip_SaveFlag根据canva

2015-09-02 16:00:57 1281

原创 skia draw

Rasterizer在skia渲染管线中,生成path之后的工作就是要去rasterizer。skia中的rasterizer主要是确定像素要画在哪,这通过使用一个mask图像来完成。mask图像实际上是一个只有alpha通道的灰度图。mask图像可以决定每个像素是全透明、不透明还是部分透明。可以使用两个方法生成mask:(1)no rasterizer使用paint style

2015-09-01 16:49:21 2519

转载 [转]xfermode讲解

尊重原创,欢迎转载,转载请注明: FROM  GA_studio   http://blog.csdn.net/tianjian4592前面关于paint的方法讲解里,讲到 setXfermode 就截止了,原因有两个:1. 那篇文章已经太长了,我自己都看不下去了;2. setXfermode 在paint 里占有至关重要的地位;基于以上两个原因

2015-08-28 11:35:20 616

转载 [转]SkGradientShader::CreateLinear

SkGradientShader::CreateLinear 的参数。函数声明:在class SK_API SkGradientShader 中。(include\effects\SkGradientShader.h)/** Returns a shader that generates a linear gradient between

2015-08-27 17:17:10 743

转载 [转]Skia之二 —— SkPaint 篇

SkPaint  /** \class SkPaintThe SkPaint class holds the style and color information about how to draw     paint1.setColor(0xFFFF0000:paint1.setStyle(

2015-08-27 11:21:24 815

OpenGLES3.0编写指南第二版

OpenGL ES3.0编写指南(原书第二版),扫描版,还算清晰

2018-01-08

Ransac随机抽样一致性算法

RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。该算法最早由Fischler和Bolles于1981年提出。

2011-08-10

空空如也

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

TA关注的人

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