自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(439)
  • 资源 (12)
  • 论坛 (5)
  • 问答 (4)
  • 收藏
  • 关注

原创 Android之免清单注册启动Activity

在此立志:我要努力大学毕业进BAT 实习目标:Activity不需要注册在清单即可通过intent启动。有些文章叫做hook技术。大致内容为监听方法或者的调用或触发,期间修改方法参数或者返回值达到无须需改app源码即可修改app。如Xpose有插件可防止qq撤销消息。我们今天监听activity的启动然后进行方法修改,期间会用动态代理和大量的反射Activity启动流程分析 第一章首先学习ac

2017-10-12 16:29:53 5427 4

原创 Android压缩图片和libjpeg库

前言一些额外知识补充知识的结论参考文献前言:在android开发时我们往往有如对图片如下的需求: 1. 希望压缩图片方便网络传输 2. 修改图片分辨率 防止在Android加载Bitmap的时候oom(内存溢出)一些额外知识:Android的Bitmap对象在加载时 内存大小为:宽的像素*高的像素*位图格式(如ARGB8888)注意: 这里的

2017-09-01 00:16:34 4451 3

原创 安卓用ffmeg解码

本文章是用ffmeg解码封装格式(如mp4)转换为yuv420p保存到本地,本文是结合雷霄骅博客ppt和某地方学习的一个笔记(说出来等下被认为做广告就尴尬了)封装格式视频编码数据将封装格式解压后可以得到压缩过的音视频等. 将压缩过的视频解压后可以得到 视频像素数据(RGB,YUV等).常见的视频压缩格式有H.264, MPEG4等… YUV420P格式介绍YUV是视频像素格式,在压缩视频格式解

2017-05-31 13:16:32 2548

原创 最全的增量更新入门 包含linux端和Android

简介增量更新大量用于 Android各大应用市场.本文想做网络上从服务器到app客户端完整讲解.app用eclipse和android studio 最新版cmark开发ndk 如下图: 以前一直好奇怎么做的直到知道了bsdiff库. 地址附上: bsdiff源码地址和简介大家可以从简介看到bsdiff是基于bzip2源码(bsdiff和bspatch一个用于生成差异文件补丁,另一个用于差

2017-04-19 19:16:25 3323 2

原创 MFC 最小Demonstrate

前言MFC是微软提供的一个Win32开源库,皆在帮助我们快速开发。比如原生的一个界面需要经过多个步骤,而在MFC,仅仅是几个类的创建。

2020-11-26 23:51:49 7

原创 Win32 List Control 控件

#前言List Control是Win32中最难用的也是最复杂的空间之一.我们看下本博客的布局样式请注意List Control的view设置为ViewPort,其他视图属性可以自行测试。ViewPort是一个二维的表格视图类型我们首先插入如下数据:三个标题栏,和三行数据。标题栏插入: /*插入标题行*/ LVCOLUMN lv; lv.mask = LVCF_FMT| LVCF_WIDTH|LVCF_TEXT; lv.fmt = LVCFMT_CENTER; lv.c

2020-11-20 23:57:51 29

原创 java 原子类累加器

前言LongAccumulatorDoubleAccumulator在多线程进程情况,我们可能希望计算某一共享变量,如页面访问次数,商品剩余数量秒杀。本文仅用LongAccumulator做说明。LongAccumulator

2020-11-15 21:54:39 70

原创 WIN32 基础控件的使用

代码模板int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow){ //弹出弹窗 DialogBoxA(hInstance, MAKEINTRESOURCEA(IDD_DIALOG1), NULL, Dlgproc); return 0;}复选框代码寓意:我们点击显示之后会弹

2020-11-14 00:00:36 32

原创 WIN32 非模态对话框

//创建一个对话窗口实例 HWND dialogHwnd=CreateDialogA(hInstance, MAKEINTRESOURCEA(IDD_DIALOG1), hwnd, mydialog); //显示 ShowWindow(dialogHwnd, SW_SHOWNORMAL); //不会阻塞代码继续运行非模态对话框关闭和模态对话框关闭有所区别INT_PTR CALLBACK mydialog(HWND hwnd, UINT msgType, WPARAM wparam, L.

2020-11-12 22:46:22 23

原创 WIN32 控件基础

首先我们看下如下界面:上面有一个弹窗,有两个控件,每个控件他们都是一个Window实例。我们首先看下点击事件的交互代码://这是控件所在弹窗的事件过程函数INT_PTR CALLBACK mydialog(HWND hwnd, UINT msgType, WPARAM wparam, LPARAM lparam) { //窗口关闭 if (WM_CLOSE==msgType) { EndDialog(hwnd, 0); return TRUE; } //WM_COMMAND

2020-11-11 23:58:34 523

原创 WIN32 窗口以及模态弹窗创建显示

在常规界面开发中当我们设计好一个窗口类时,就要创建一个窗口实例进行显示。窗口实例分为很多种,弹出窗口,嵌套子窗口等。 //1.窗口类设计 WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = MYWNDPROC; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = NULL; wc.hCursor = NULL;

2020-11-11 16:21:27 27

原创 WIN32 弹窗和父窗口交互

当弹出子窗口时,弹窗自动禁止父窗口的鼠标键盘交互。子窗口弹出时会做出如下几个事情:内部开启自己过程函数 监听事件循环禁止父窗口的键盘鼠标交互如果想要用户可以直接和弹出窗口的父窗口交互。可以调用EnableWindow启用即可。EnableWindow(GetParent(a), true);INT_PTR CALLBACK mydialog(HWND a, UINT b, WPARAM c, LPARAM d) { if (WM_CLOSE==b) { EndDialog(a,

2020-11-09 23:41:32 16

原创 java CAS包装类概述

原子更新基本类型:AtomicBooleanAtomicIntegerAtomicLong原子更新数组:4. AtomicIntegerArray5. AtomicReferenceArray6. AtomicReference原子更新引用7. AtomicReference8. AtomicRefernceFieldUpdater9. AtomicMarkableReference原子更新字段AtomicIntegerFieldUpdaterAtomicLongField

2020-11-09 18:09:58 23

原创 Atomic 特殊标记类

前言JDK提供了两个额外附加信息的Atomic帮助类,主要处理ABA类问题AtomicMarkableReferenceAtomicStampedReferenceAtomicMarkableReference额外添加了一个Boolean字段在其中,可以根据业务场景使用,如避免ABA问题,可是视为AtomicStampedReference精简版。AtomicStampedReference额外添加了一个Long类型字段在其中,可以避免ABA问题,甚至可以知道经过几次变化,相比Atom

2020-11-09 14:10:24 40

原创 java Atomic 字段类更新

我们会在某些需求下想要原子性更新某个类的某些字段,所以JUC提供了如下函数AtomicReferenceFieldUpdaterAtomicLongFieldUpdaterAtomicIntegerFieldUpdater本文仅使用AtomicReferenceFieldUpdater作为说明。下面是一个需求实例:我们有n个线程,每个线程需要从Conductor获取一个唯一的票id。class Conductor { //必须是volatile属性 volatile lo

2020-11-08 21:44:13 24

原创 WIN32发送自定义消息

在WIN32消息机制中,系统会发送各种消息到消息队列,开发可以调用GetMessage得到相关消息。WIN32的API也提供了对应开发自行的发送消息到消息队列的功能.SendMessageA直接发送消息到对应的窗口处理函数中,直到处理后函数才返回。PostMessageA将信息放入消息队列中,立即返回。//消息处理器LRESULT CALLBACK MYWNDPROC(HWND hwind, UINT unit, WPARAM wp, LPARAM lp) { if (WM_COMMAND =

2020-11-05 23:54:38 91

原创 WIN32 资源加载

在Win32中图标样式,光标样式,菜单都是资源。而开发中我们这类资源,都记录在resource.h 和xxx.rc中。VS中双击rc文件跳转到资源视图即可管理资源相关下图是笔者几个资源分别为光标,图标,菜单.加载资源方式:在窗口类中指定,或者在窗口实例指定。如果窗口实例指定了某一个资源,那么窗口类的自动失效。关于资源id可以在资源视图的属性菜单栏中可见当然这一切的id都记录在头文件中...

2020-11-03 00:08:53 43

原创 java Atomic 数组类

前言我们看下Atomic对于数组类的封装AtomicIntegerArrayAtomicLongArrayAtomicReferenceArray我们这里以AtomicLongArray 来做说明。为什么需要退出数组类别的原子操作类?可见性问题原子性操作问题此类问题可以查看博主另一篇文章: java Atomic 基本数据类型函数说明AtomicLongArray 类方法如下:length()数组长度get(int i)具有volatile读特性方式读取数组

2020-11-01 23:41:07 33

原创 java Atomic 基本数据类型

前言本文讲解如下三个基本类型的原子帮助类。AtomicIntegerAtomicBooleanAtomicLong由于三个类所提供的函数都差不多我们以AtomicLong为例进行说明。我们首先看下我们为何需要原子帮助类。Long类型写操作不是原子性,会分为两个32位进行写入(读取是原子性,可以查看网上相关文献)。++i操作非原子性多线程可见性问题多线程数据竞争相关问题,如并发修改其中举例如下:假设 业务逻辑A和业务逻辑B只能执行一个,但是在上诉代码中有可能同

2020-11-01 14:33:20 60

原创 ArrayBlockingQueue 迭代器

ArrayBlockingQueue 是一个多线程容器,但是为了方便读者只管的理解,本文所有理解都在单线程下做演示效果,但是多线程的结果是一样。ArrayBlockingQueue 迭代器比较特殊:他不会像HashMap那样会出现ModifyException异常可以遍历出新插入的元素(前提是迭代前没有删除过全部元素的行为)会自动跳过其他线程删除的元素。(但是不会跳过第一个元素)如果迭代器和ArrayBlockingQueue相差两个循环操作以上,那么迭代器无效但是可以输出开始遍历第一个元素

2020-10-29 22:25:43 62

原创 WIN32 手动编译

前言我们编译的相关工程目录如下:Main.cpp 源代码Project1.rc 资源文件resource.h 资源头文件定义我们简单看下源代码Main.cpp 就是一个简单的带菜单的UI界面代码编译cpp 为 objcl /c /EHsc Main.cpp参数说明:/c编译不连接/EHsc 异常处理上述命令会把cpp的中所有头文件展开,编译成obj汇编文件头文件的寻找优先级:如果是以#include<>引入的那么首先会在环境变量中查找。对应的环境遍历名为 inc

2020-10-28 23:58:36 522

原创 win32 Menu消息

当我们创建一个win32 菜单时,当点击某个item时会发送WM_COMMAND消息.其中返回的信息中wParam中高低位表示不同的感念 //1.窗口类设计 WNDCLASS wc; //构造一个菜单,IDMyMenu时rc文件创建的id,使用MAKEINTRESOURCE函数来转化为字符串 wc.lpszMenuName = MAKEINTRESOURCE(IDMyMenu);LRESULT CALLBACK MYWNDPROC(HWND hwind, UINT unit, WPARAM

2020-10-28 23:06:27 22

原创 java 阻塞队列 ArrayBlockingQueue分析

sad

2020-10-25 21:44:52 37

原创 WIN32 定时器消息

设置每隔多少秒后发送消息WM_TIMER //每间隔1000毫秒后发送一个WM_TIMER //注意最后一个参数是函数指针,如果为空会发送消息否则回调函数 //当前设置计时器的id为23.可以用这个id取消这个计时器。KillTimer函数可以用来取消对应id的计时器 //KillTimer(hwnd, 23); SetTimer(hwnd, 23, 1000,NULL); MSG msg; //5消息循环 while (GetMessage(&msg, hwnd, 0, 0))

2020-10-23 23:44:13 30

原创 WIN32键盘消息

当用户按下键盘时Win32希桶会给我们发送WM_KEYDOWN

2020-10-23 23:30:04 21

原创 WIN32 绘制消息

Win32发送绘制信息

2020-10-21 23:37:28 464

原创 WIN32编程 最小化Demonstrate

设计一个窗口1 窗口类设计注册窗口类函数RegisterClass文档

2020-10-20 21:56:40 43

原创 WIN32 错误处理

我们调用Win32 相关函数时回经常出现各种错误,并且得到各种错误码,本文记录这方面的学习过程.如下win32函数重复注册两次,在运行时回弹出 "第二个错误"弹窗.int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow){ //1.窗口类设计 WNDCLASS wc; wc.

2020-10-20 21:56:20 38

原创 SynchronizedXXX 系列并发容器分析

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-10-18 21:04:56 27

原创 ConcurrentHashMap 迭代器相关

在常规的HasMap或者ArrayList容器中一个线程再遍历中,其他线程插入或者删除会引起迭代器错误异常。ConcurrentHashMap可以支持并发情况下遍历元素 且可以感知到元素更新。例子我们看以下例子import java.util.Enumeration;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.TimeUnit;public class Main { public.

2020-10-11 18:04:43 395 1

原创 ConcurrentHashMap addCount分析·

ConcurrentHashMap中addCount用于添加记录数和扩容判断添加记录我们首先分析添加记录数逻辑。第一次调用addCount函数下面的代码仅分析第一次调用时候//ConcurrentHashMap.java //@Contended注解是false shared(伪共享)相关知识可以参考本文引用文章 @sun.misc.Contended static final class CounterCell { volatile long value;

2020-10-07 18:30:44 141

原创 ConcurrentHashMap transfer分析·

文章目录前言transfer初始化transfer哈希桶范围确定transfer 拷贝旧数据到新的哈希表参考文献前言本文分析1.8之下的源码。本文需要读者之前对HashMap有一定了解,如HashMap中的红黑树和链表等。我们回顾下HashMap基本结构:ConcurrentHashMap的扩容算法极其精妙,也是最晦涩难懂的部分.我首先将代码分段梳理各个部分的功能,在做细节说明。//ConcurrentHashMap.java private final void transfer(No

2020-10-07 00:18:38 53

原创 ReentrantLock Condition 分析

文章目录前言一、Condition类结构二、源码分析获得对象流程await 流程signal 流程前言Condition可以快速的帮助我们实现条件阻塞需求一、Condition类结构await:释放当前持有锁,然后进入休眠signal:唤醒进入休眠的线程其中有两个重要字段firstWaiter和lastWaiter。这两个字段会在ConditionObject中构造一个新的链表,用于存在await后休眠的线程,笔者在本文中称为,等候队列(等候列表)。而最原始的AQS链表笔者称为获取锁队列

2020-10-02 23:43:02 43

原创 ReentrantLock 超时锁2

本文需要前置知识,请参阅ReentrantLock 解决锁分析 1文章目录例子例子 ReentrantLock reentrantLock = new ReentrantLock(false); new Thread(new Runnable() { @Override public void run() { reentrantLock.lock(); .

2020-09-21 00:13:40 102

原创 ReentrantLock 锁分析 1

在阅读本文应对AQS有一定基础了解,可参阅博主其他博文AQS分析1-基于AQS自定义锁分析文章目录前言一、ReentrantLock基础用法二、类结构1.引入库2.读入数据总结前言ReentrantLock是一个基于AQS的可重入锁,实现了公平锁,非公平,超时,条件变量等一、ReentrantLock基础用法public class Main { public static void main(String[] args) { /** * 构造.

2020-09-20 18:24:12 45

原创 形形色色的Fragment生命周期

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Activity下的各类生命周期?二、使用步骤1.引入库2.读入数据总结前言 Fragment生命周期在不同的组件下使用具有不同的生命周期,如Activity中,viewpager2 或viewpager.一、Activity下的各类生命周期?二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot

2020-09-14 10:19:09 794

原创 ASQ分析1-基于AQS自定义锁分析

AQS是并发包非常重要的基础锁类,我们看下如何利用其快速实现一个公平锁.public class SimpleLock extends AbstractQueuedSynchronizer { @Override protected boolean tryAcquire(int arg) { boolean compareAndSetState = compareAndSetState(0, 1); if (compareAndSetState) {

2020-09-06 01:08:41 66

原创 c-15 c++虚表

本文简单探究虚表实现。如下代码中有一个基类CPerson和子类CStudent:public.并有两个虚函数run和cry。#include<iostream>using namespace std;class CPerson {public: virtual void run() { cout << "Person is runing. \r\n"; } virtual void cry() { cout << "Person is cry.

2020-08-30 19:59:15 57

原创 自旋锁 CLH和CMS

在JAVA 中concurrent包中大多数API借助AQS完成,而AQS核心又在于CLH自旋锁上。The java.util.concurrent Synchronizer Framework

2020-08-23 21:40:03 57

原创 c-14 c++ 类函数和普通函数的区别

__thiscall

2020-08-21 00:17:30 139

frida-12.8.20-py2.7-macosx-10.9-intel.egg

mac frida相关工具。如果你使用pip install frida-tools过慢时,请下载此资源,然后放入/Library/Python/2.7/site-packages/目录下

2020-04-05

腾讯2016安全比赛第一题

安全比赛第一题的题目apk.要求写出注册机.考点位于反编译后的so库.

2018-07-21

AIDL bindservice流程图

aidl binserive的流程图 内含png oom两个原文。http://blog.csdn.net/qfanmingyiq/article/details/78094417

2017-09-29

Android使用的libjpeg库文件

可以用于Android下使用libjpeg。内部有arm x86 x64的静态库和头文件

2017-08-29

电脑Gif制作器licecap126-install

电脑安装软件后移动窗口到某一区域点击record录制 然后按下stop键生成gif图

2016-10-20

Navicat Premium数据管理

Navicat Premium 可视化管理一些轻量级数据库如 mysql sqlite内含补丁

2016-09-07

仿QQ截图工具

一款仿照QQ截图的工具简单实用

2016-09-06

ColorCop屏幕取色器

获取屏幕某个点的RGB颜色值 无广告简洁 开发者必备

2016-09-05

fastjson 阿里巴巴json工具jar包

阿里巴巴的json解析生成 的jar包 如快速解析json生成javabean 或者javabean生成json

2016-09-02

fastjson 阿里巴巴的解析生成json工具

2016-09-01

GSON 包含源码和DOC

谷歌解析json工具

2016-09-01

json解析器

用于解析json数据 并且清晰的结构图

2016-08-30

为什么编程语言浮点计算出现误差?直接赋值却不会

发表于 2017-01-08 最后回复 2017-04-14

安卓在代码中dp换算成px 不理解

发表于 2016-11-03 最后回复 2017-03-30

android studio开发 如何使用jdk1.8

发表于 2016-12-13 最后回复 2017-01-08

CSDN中如何在博客中显示CSDN明日之星投票的横幅?

发表于 2016-12-01 最后回复 2016-12-13

Andoid 中DPI计算

发表于 2016-11-18 最后回复 2016-12-01

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

TA关注的人 TA的粉丝

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