- 博客(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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人