自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (4)
  • 收藏
  • 关注

转载 记录Android下的加固以及逆向技术

刚重新看了下hikari的string encryption pass,大概是这个流程1,扫描function里所有inst的operand,判断是不是constexpr,如果是,将常量表达式退化成指令序列2,经过1处理,函数所有引用的global variable都会是某个inst的直接operand,所以扫描function里所有inst的operand,判断是不是globalvariab...

2019-08-30 15:56:14 1126 1

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原因是...

2019-04-10 14:38:44 260

转载 关于mock

Home吐槽源码研究我的算法挑战网络科学吧文青关于我TDD笔记208 Jul 2014 byLelouchHe关于mock个人感觉mock是测试中一个比较掌握的点,所以试图单独拿出来说明下mock的引入在开发过程中,会遇到各种各样的依赖关系.如果依赖的仅仅是local的类还好说,至少之间的交互最复杂也莫过于进程间rpc调用了,普通的也就是函数调用的,这些...

2019-04-09 11:38:38 766

转载 linux命令

https://wangchujiang.com/linux-command/

2018-12-13 12:00:31 172

原创 android下 C++单元测试 及 代码覆盖率

一、简单介绍gtest是一款google提供的强大的测试框架,测试案例的编写也比较简单,gtest案例的编写可以参考系列博文:http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html。Gcov是进行代码运行的覆盖率统计的工具,它随着gcc的发布一起发布的,它的使用也很简单,需要在编译和链接的时候加上-fprofile-ar...

2018-07-23 14:02:52 3349 2

转载 C++ format 格式化字符串实现方式

1.http://stackoverflow.com/questions/2342162/stdstring-formatting-like-sprintfYou can't do it directly, because you don't have write access to the underlying buffer (until C++11; see Dietrich Epp's co...

2018-04-23 10:18:03 16507

转载 MARK linux下 手机调试模式 no permissions的问题

linux ubuntu android调试 adb shell ubs调试 no permissions 没权限

2017-11-27 14:22:52 393

转载 C/C++解析XML,pugixml库的使用

前言:本文介绍c++编写的xml解析库——pugixml,能解析xml内容,支持xpath解析,同时能够跨linux平台,非常方便。总结一下使用步骤和简单的使用方法:使用pugixml库需要三个文件:pugiconfig.h/pugixml.h/pugixml.cpp,可直接从gugixml官网下载,将其加入工程,使用处如包含头文件pugiconfig.h/pugixml.

2017-11-20 13:47:33 5003

转载 C++ 通过 jvm 调 java

Call Java functions from C++ by using Java Native Interface (JNI) on Ubuntu 12.04Linux ProgrammingCode/home/shinya/jni_example/Main.javapublic class Main { public static void mai

2017-10-26 17:06:30 369

转载 linux 心跳包的实现

在做游戏开发时,经常需要在应用层实现自己的心跳机制,即定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性。在TCP socket心跳机制中,心跳包可以由服务器发送给客户端,也可以由客户端发送给服务器,不过比较起来,前者开销可能更大。—— 这里实现的是由客户端给服务器发送心跳包,基本思路是:1) 服务器为每个客户端保存了IP和计数器count,即map>。

2016-12-09 15:58:55 6425

转载 Libevent参考手册第八章:连接侦听器: 接受 TCP 连接

Evconnlistener 机制为您提供了侦听和接受传入的 TCP 连接的方法。这一节中的所有函数与类型都是在event2/listener.h中声明。他们首次出现在 Libevent 2.0.2-alpha,除非另有说明。创建或释放 evconnlistener接口struct evconnlistener *evconnlistener_new(struct even

2016-11-30 15:22:46 611

转载 Libevent参考手册第七章:Evbuffers:用于缓冲IO的实用工具

Libevent的evbuffer功能通过实现一个字节队列,在队列末尾添加数据,在队列头移除数据。Evbuffers 是通常用来做缓冲网络 IO 的"缓冲区"部分。他们将不会提供安排 IO 或IO准备就绪时的触发等功能: 而这些功能是bufferevents应该做的。本章中的函数声明都在event2/buffer.h 中,除非另有说明。创建或释放 evbuffer接口struc

2016-11-30 15:22:03 695

转载 libevent参考手册第六章:bufferevent:概念和入门

很多时候,除了响应事件之外,应用还希望做一定的数据缓冲。比如说,写入数据的时候,通常的运行模式是:l  决定要向连接写入一些数据,把数据放入到缓冲区中。l  等待连接可以写入。l  写入尽量多的数据。l  记住写入了多少数据,如果还有更多数据要写入,等待连接再次可以写入。这种缓冲IO模式很通用,libevent为此提供了一种通用机制,即bufferevent。buffereve

2016-11-30 15:20:58 407

转载 libevent参考手册第五章:辅助类型和函数

定义了很多在实现可移植应用时有用的函数,libevent内部也使用这些类型和函数。1 基本类型1.1 evutil_socket_t在除Windows之外的大多数地方,套接字是个整数,操作系统按照数值次序进行处理。然而,使用Windows套接字API时,socket具有类型SOCKET,它实际上是个类似指针的句柄,收到这个句柄的次序是未定义的。在Windows中,libevent定义e

2016-11-30 15:20:11 249

转载 libevent参考手册第四章:与事件一起工作

libevent的基本操作单元是事件。每个事件代表一组条件的集合,这些条件包括:l  文件描述符已经就绪,可以读取或者写入l  文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发IO)l  超时事件l  发生某信号l  用户触发事件所有事件具有相似的生命周期。调用libevent函数设置事件并且关联到event_base之后,事件进入“已初始化(initialized

2016-11-30 15:19:29 248

转载 Libevent参考手册第三章:与事件循环一起工作

Libevent参考手册第三章:与事件循环一起工作1 运行循环一旦有了一个已经注册了某些事件的event_base(关于如何创建和注册事件请看下一节),就需要让libevent等待事件并且通知事件的发生。接口#define EVLOOP_ONCE     0x01#define EVLOOP_NONBLOCK 0x02 int event_base_loop(s

2016-11-30 15:18:03 270

转载 Libevent源码分析(一):最小堆

Libevent中的timeout事件是使用最小堆来管理维护的.代码位于.看函数命名和代码风格应该是一个C++程序员,函数名都挺好懂的,只是下面这个结构体变量命名比较坑....typedef struct min_heap{ struct event** p; unsigned n, a;//n队列元素的多少,a代表队列空间的大小.} min_heap_t;

2016-11-30 15:03:03 597

转载 获取一个event_base

原文链接:http://www.wangafu.net/~nickm/libevent-book/Ref2_eventbase.html创建一个event_base在你使用任何有意思的Libevent函数之前,你需要分配一个或多个event_base结构.每一个event_base结构含有一组events,并且可以告知你哪一些events是就绪的.如果一个event_base是

2016-11-30 15:02:19 610

转载 创建Libevent库

Setting up the Libevent libraryLibevent有一些被整个进程共享的全局设置.这些设置会影响到整个库.在使用Libevent库的其余部分之前,你应该先对这些设置做些修改.否则的话Libevent可能会以一种前后矛盾的状态终止( If you don’t, Libevent could wind up in an inconsistent state).

2016-11-30 15:01:10 385

转载 【Unix编程】进程间通信(IPC)

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点:

2016-11-23 16:29:13 333

转载 C++11 lambda

为什么需要lambda函数匿名函数是许多编程语言都支持的概念,有函数体,没有函数名。1958年,lisp首先采用匿名函数,匿名函数最常用的是作为回调函数的值。正因为有这样的需求,c++引入了lambda 函数,你可以在你的源码中内联一个lambda函数,这就使得创建快速的,一次性的函数变得简单了。例如,你可以把lambda函数可在参数中传递给std::sort函数#in

2016-11-15 10:23:23 276

原创 Android studio Plugin is too old 问题

Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to ........将默认的 classpath 'com.android.tools.build:gradle:2.2.0-beta2'修改成

2016-09-29 14:40:46 409

转载 Qt——鼠标拖动调整窗口大小

要求:鼠标移到界面边角时,鼠标样式相应地发生改变。实现方法一:重写mouseMoveEvent,如果鼠标没有按下,则根据鼠标在界面上的位置设置鼠标样式,如果鼠标按下,则根据位置判断该怎样调整界面大小,或者是拖动界面。思路如上,实现起来很简单。但是存在一个问题,如果界面中放了一些其它控件,比如listWidget,此时鼠标在界面边缘移动速度稍微快一些,mouseMoveEvent就会

2016-09-05 17:21:12 7880 1

转载 Qt实现窗体从虚到实及动画效果

一,实现界面从虚变实方法1:使用QWidget类提供的公有方法void setWindowOpacity(qreal level);(参数为double类型)     a,使用此方法应该在窗体show之后在调用,否则可能会出现窗体会闪一下实体窗口,然后才会从虚到实变化。     b,调用此方法时窗体不能设置Qt::FramelessWindowHint风格,否则该方法将不生

2016-08-26 17:04:20 1859

转载 QT动画框架

状态机框架提供了创建和执行状态图的一些类.这些概念和表示都是基于Harel状态图中的一些概念和记法.它也是UML状态图表的基础.状态机执行的语义是基于状态图XML(SCXML).   状态图提供了一种图形化的方式来对一个系统建模,从而反映它怎么响应外部触发.这是通过定义系统可能进入的一些状态以及系统怎么从一个状态转换到另一个状态(不同状态之间转变)来实现的.事件驱动系统的一个关键的特征(例

2016-08-26 13:59:24 471

原创 【Android studio】 unable to start the daemon process

这几天在做一个安卓桌面项目时,突然发现android studio 不能用了。提示:网上的一些方法,要不就是:1、删 C:\Users\username>\.gradle 文件夹 要不 就是 2、File Menu - > Invalidate Caches/ Restart->Invalidate and Restart3、 C:\Users\

2016-08-25 09:58:59 632 2

转载 QT/QTableView

QTableWidget是QT对话框设计中常用的显示数据表格的控件。学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研究人一样一样的),因为QTableWidget继承于类QTableView。两者主要区别是QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWid

2016-08-22 10:48:53 4034

转载 Pygame游戏编程入门笔记

目录1. Python游戏编程入门2. 建立开发环境3. 简单示例4. 绘制不同形状5. 事件监听举例6. 用pygame打印文本7. 键盘事件8. 鼠标事件9. 轮询键盘10. 轮询鼠标11. 角度与弧度12. 遍历圆周13. 矢量图与位图14. 获取已有的surface15. 加载位图16. 绘制位图17. 绘制游戏背景图18. 缩放图像19. 旋转20. 用精灵实现动画2

2016-08-08 16:21:51 3985 1

转载 FFMPEG视音频编解码零基础学习方法

在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,

2016-05-09 17:01:35 918

转载 java中的IO操作总结(一)

所谓IO,也就是Input与Output的缩写。在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写其他知识点将放置后续章节(我想,文章太长了,谁都没耐心翻到最后) 对于文件内容的操作主要分为两大类分别是:  字符流  字节流其中,字符流有两个抽象类:Writer   Reader其对应子类FileWriter和File

2016-05-09 10:33:29 340

转载 Android中Parcel的分析以及使用

简单点来说:Parcel就是一个存放读取数据的容器, Android系统中的binder进程间通信(IPC)就使用了Parcel类来进行客户端与服务端数据的交互,而且AIDL的数据也是通过Parcel来交互的。在Java空间和C++都实现了Parcel,由于它在C/C++中,直接使用了内存来读取数据,因此,它更有效率。             分析Binder机制中的客户端与服务器端进行实

2016-05-04 11:38:27 606

转载 Binder service入门–创建native binder service

本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 http://www.cloudchou.com/android/post-332.html 1.前言 Binder service入门系列: Binder service入门—Framework binder service: http://www.cloudchou.com/android/post-447.html

2016-05-03 13:48:14 458

转载 Android Binder通信机制学习

binder驱动和通信库是binder的核心,驱动是用c语言编写的,通信库是c++写的,应用程序通过jni和底层的库产生联系,建议研究binder的读者先读完和这两本书做好研究准备,有时间的也可以学学。本文不打算详细分析binder的代码,老罗的书写的最详细了 :-)一,和传统IPC方式的比较:binder是一种进程间通信的机制,因此要说binder,不得不拿它与其他Unix传

2016-05-03 13:41:49 788

转载 Binder service入门–创建native binder service

本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接1.前言Binder service入门系列:Binder service入门—Framework binder service:http://www.cloudchou.com/android/post-447.htmlBinder service入门—应用层binder service:

2016-05-03 13:38:45 680

转载 Experimental Plugin User Guide

IntroductionThe new experimental plugin is based on Gradle’s new component model mechanism, while allows significant reduction in configuration time. It also includes NDK integration for building

2016-04-16 11:38:04 515

转载 Android 5.x Theme 与 ToolBar 实战

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45303349; 本文出自:【张鸿洋的博客】1、概述随着Material Design的逐渐的普及,业内也有很多具有分享精神的伙伴翻译了material design specification ,中文翻译地址:Material Design 中文

2016-04-08 11:18:34 464

转载 android:ToolBar详解

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!这篇文章因为是台湾人写的,语言风格很别致。本文在原文的基础上做了一些微调(主要是繁体字的问题)。今年(2014) 的 google i/o 发表令多数人为之一亮的 material desi

2016-04-08 10:59:33 624

转载 整理一些比较好的Android开发教程

这些都是我在学习Android开发过程中觉得比较好的教程和博客,在这里整理一下,方便自己也方便大家学习使用。欢迎补充~##介绍LoaderManager的使用Life before Loaders(part 1)http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-backg

2016-04-08 10:13:00 545

转载 android开发教程21篇

Android提高第一篇之MediaPlayerhttp://www.apkbus.com/android-23947-1-1.html   ·············································································································

2016-04-08 10:05:44 571

转载 2015最流行的Android组件、工具、框架大全

Android 是目前最流行的移动操作系统之一。 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件。本文试图将目前流行的组件收集起来以供参考, 如果你发现本文还没有列出的组件,欢迎在评论中贴出来,我会定期的更新本文。部分图片需要翻墙才能显示很好的中文教程Google Android官方培训课程中文版

2016-04-07 10:30:19 559

opengles2.0 Animation

opengles2.0 方波图,加速减速运动

2015-07-15

ubuntu下构建deb包

ubuntu下构建deb包

2014-06-07

spice_protocol

spice protocol

2014-06-07

基于spice协议研究与改进方案

基于spice协议的桌面虚拟化技术研究与改进方案

2014-05-19

空空如也

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

TA关注的人

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