- 博客(257)
- 资源 (3)
- 收藏
- 关注
转载 OkHttp-Interceptors拦截器
基本用例传送门GET A URLThis program downloads a URL and print its contents as a string. Full source.OkHttpClient client = new OkHttpClient();String run(String url) throws IOException { Request request = new
2017-05-10 15:32:29
1535
原创 关于Java中几种loadClass的讨论
关于Java中几种loadClass的讨论java中有几类加载class的方法,本文针对这几个方法,就行源码导读。 本文的native源码来源于android4.1.2源码。 1. Class.forName(className, true, classLoader);clazz = Class...
2016-01-21 14:12:32
1028
原创 Java NIO
java 网络编程中,不可避免的要谈论NIO,这篇文章就来谈谈对NIO的认识。IO传统意义上分为File IO,StreamIO,这两个分别对应文件读写和Socket,文件读写IO目前只有阻塞进行读写,而socket由于Selector和ByteBuffer构成了非阻塞IO,但是由于NIO需要单独的线程去遍历selectoryKey,导致线程资源一致被占用,所以AIO出现了,利用监听回调,...
2015-08-09 14:58:39
283
原创 jni方法的注册和调用流程
JNI在android中起重要作用,是连接java层和dalvik重要的通道,java层的开发也比较简单,有两种注册方式:1. 按照JNI格式声明native函数并在c文件中定义此native函数2. 动态注册,在c文件中重写JNI_OnLoad函数,并在JNI_OnLoad中调用JNIEnv函数RegisterNatives注册native方法。看似简单的注册和调用,背后...
2015-07-07 17:20:38
488
原创 MethodHooker--Hook分析
Hook的原理是修改java层的method属性,然后注册jni函数,但是实现起来还是有点复杂,具体看下面的函数。[code="java"]int Hook(){ init(); void* handle = dlopen("/data/local/libTest.so",RTLD_NOW); const char *dlopen_error = dlerror(); ...
2015-07-03 17:58:33
278
原创 XPosed解析--XposedBridge--main分析
XposedBridge是Xposed框架替代ZygoteInit的文件,其中main方式是其入口,分析main方法可以更好的理解Xposed的运行模式,下面就来分析一下此函数。[code="java"] private static void main(String[] args) { // the class the VM has been created for or nu...
2015-07-02 11:10:35
1759
原创 XPosed解析--callback_XposedBridge_initNative分析
callback_XposedBridge_initNative函数为XposedBridge注册回调方法的JNI接口,在整个Xposed中起关键作用,连接了module与Xposed框架,下面来分析一些这个函数。完整的代码如下:libxposed_dalvik.cpp[code="java"]jboolean callback_XposedBridge_initNativ...
2015-07-02 10:41:38
388
原创 android进程inject注入
android 进程inject注入注入结果经过一段时间的学习和思考以及参考了许多相关的文章,今天终于把进程注入跑通了,感谢:http://blog.youkuaiyun.com/jinzhuojun/article/details/9900105 的作者。下面将注入的结果呈上: 其中Hook success,pid=158为宿主进程中被注入代码的结果。 设备信息: *系统:android 4.1.2
2015-03-22 22:50:00
6452
原创 Android4.4 源码编译运行
一直热衷于Android底层的实现原理,所有想编译一把源码并刷机,或者DIY Android系统,经过几天的折腾,今天终于看到自己编译的源码在模拟器中运行,特写下此文以纪念。本文分为以下三部分:一、源码下载二、源码编译三、模拟器运行第一部分:源码下载大家都知道从google下载源码是多么的困难,以至于等到天荒地老发现还没有下完,具体如何从google下载源码
2015-03-10 13:31:22
3127
原创 ViewGroup onInterceptTouchEvent and OnTouchEvent
ViewGroup 继承View,实现了View各个方法,同时ViewGroup中包含了不同的View,事件消息在ViewGroup中的传递就比较重要了,理解了事件的传递,才能够写出符合需求的自定义的ViewGroup。首先分析一下onInterceptTouchEvent函数,此函数是ViewGroup独有的拦截函数,顾名思义,是拦截用户触发的事件,来决定此事件是否要传递给子View...
2014-09-16 15:46:51
173
原创 gdx-metagunl分析--整体框架(com.dozingcatsoftware.bouncy)
[align=center][size=x-large][b]gdx-metagun分析--整体框架(com.dozingcatsoftware.bouncy)[/b][/size][/align]一、Metagun.javaMetagun类是整个游戏的入口也是资源和UI创建的入口。[code="java"]public class MetagunAndroid ext...
2013-09-23 23:59:35
191
原创 libdgx之gdx-vectorpinball分析--整体篇
[align=center][size=x-large][b]gdx-vectorpinball分析--整体篇[/b][/size][/align]gdx-vectorpinball经典弹珠游戏,网上没有太多相关文章,在此对gdx-vectorpinball源码进行分析。一、源码框架1. com.dozingcatsoftware.bouncyBaseFieldDe...
2013-09-17 09:47:01
185
原创 重构,简化条件表达式
[align=center][size=xx-small][b]重构,简化条件表达式[/b][/size][/align]重构一书,早就在手,只是一直没有细细品味,对于堪称经典之书,除了瞻仰之外,不敢评论,但是这本书确实通俗易懂,利用小的改动,让你的代码逻辑更清晰,可阅读行更高等。重构的工作是建立在有良好测试环境的基础上进行,没有测试做保障,如何才能知道自己的重构不会改变程序原来的逻辑...
2013-01-21 00:11:22
172
原创 WIN7中安装XAMPP 无法启动apache
最近在WIN7中安装XAMPP,无法启动apache,显示的log为:20:41:12 [Apache] Error: Apache shutdown unexpectedly.20:41:12 [Apache] This may be due to a blocked port, missing dependencies, 20:41:12 [Apache] im...
2012-10-13 20:59:40
162
原创 MFC两个对话框SendMessage通信
[size=large]MFC两个对话框SendMessage通信[/size] 用MFC做Demo时需要两个对话框进行通信,两个对话框的关系如下: 1.CDialog
2012-09-05 13:31:41
829
原创 Google编程风格
[align=center][size=large]Google编程风格(自己整理)[/size][/align][b][size=large]1. 头文件[/size][/b]1. 避免多重包含是学编程时最基本的要求; 2. 前置声明是为了降低编译依赖,防止修改一个头文件引发多米诺效应; 3. 内联函数的合理使用可提高代码执行效率; 4. 标准化函数参数顺序可以提高可诺性...
2012-04-01 17:05:17
141
原创 IME输入法编程
[align=center][size=large]IME输入法编程[/size][/align]第三章 输入法的消息Messages1.WM_IME_SETCONTEXT激活或休眠输入法LRESULT CALLBACK UIWndProc(HWND hUIWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){:case ...
2012-03-26 18:09:21
427
原创 IME输入法编程
[align=center][size=large]IME输入法编程[/size][/align]第二章 输入法的函数简介下面我们将介绍第一章各个函数的功能及接口格式。1.BOOL ImeInquire( //初始化输入法 LPIMEINFO lpIMEInfo, //Pointer to the IME info structure. LP...
2012-03-26 14:04:22
277
原创 IME输入法编程
[align=center][size=large]IME输入法编程[/size][/align]第一章 Windows系统下汉字输入法的基本原理Windows系统下汉字输入法实际上是将输入的标准ascii字符串按照一定的编码规则转换为汉字或汉字串,进 入到目的地。 由于应用程序各不相同,用户不可能自己去设计转换程序,因此,汉字输入自然而然落到WINDOWS...
2012-03-26 13:53:59
206
原创 test dword ptr [eax],eax ; probe page. 分页出错
Windows系统默认分页大小为1M 1024 *1024,当申请的空间大于1M时就会出现如下问题: 1.在Debug下调试程序,出现如下错误:test dword ptr [eax],eax ; probe page. Stack overflow2.通过debug就会进入以下文件chkask.asmpage ,132title chkstk – C stack ch...
2012-03-05 17:17:19
461
原创 GCC 指令
[align=center][size=large]GCC指令[/size][/align]gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as...
2012-02-27 19:58:03
117
原创 Ubuntu下gcc安装及使用
[align=center][size=large]Ubuntu下gcc安装及使用 [/size][/align]方法一:该方法超简单:sudo apt-get build-depgcc方法二:sudo apt-get install build-essential安装完了可以执行gcc--version的命令来查看版本,输出如下:...
2012-02-26 23:33:56
120
原创 未授予用户在此计算机上的请求登录类型
[align=left][size=large]未授予用户在此计算机上的请求登录类型[/size][/align]最近在虚拟机上共享文件,本地机器无法登陆虚拟机,出现问题:未授予用户在此计算机上的请求登录类型,结合网上资料和自己的实验,解决方法如下:原因:禁用来宾帐户,并且“网络访问:本地帐户的共享和安全模式”安全选项被设置为“仅 来宾”。这时则由 Microsoft 网络服务器(SM...
2012-02-25 19:37:37
392
原创 error LNK2005: __initp_misc_invarg already defined in libcmtd.lib(invarg.obj)
Debug模式下编译出现如下错误:LIBCMT.lib(invarg.obj) : error LNK2005: __initp_misc_invarg already defined in libcmtd.lib(invarg.obj)主要原因是链接了两个库LIBCMT and LIBCMTD,以至于出现already defined。解决办法: 1.确保当前工程的Ru...
2012-02-14 16:13:38
553
原创 CMD环境恢复中文
[align=center][size=large]CMD环境恢复中文[/size][/align]纯DOS下中文乱码,在网上搜集了资料,找出了解决问题的办法:在注册表里修改:在开始运行里输入regedit 找到分支 HKEY_CURRENT_USER/Console/%SystemRoot%_system32_cmd.exe再双击右边CodePage选项将数值改为十...
2012-02-03 13:31:51
147
原创 VS常用设置及操作(转) .
在VS2005中更改入口函数的方法: 1.右击项目名,点属性。 2.配置属性->链接器->系统->子系统 3.在子系统中做相应修改,保存后退出即可。 在VS2005显示代码行号: 工具/选项/文本编辑器/c/c++/常规/行号 在已经配置好opencv 1.0的VS2005使用opencv: 1...
2012-02-02 14:06:57
153
原创 tasklist命令
[align=center][size=large]Tasklist命令[/size][/align]Tasklist命令用来显示运行在本地或远程计算机上的所有进程,带有多个执行参数使用格式 Tasklist [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/F...
2012-02-02 13:55:20
372
原创 VS2008快捷键的设置
[align=center][size=large]VS2008快捷键的设置[/size][/align]VS2008默认的快捷键和VC++6.0有许多不同,用管了VC++6.0,在用VS2008时很不顺手,那么如何设置VS2008默认热键呢?Tools-->Options-->Environment-->Help-->Keyboard里面可以对全部的快捷键进行重定义举例如...
2012-02-02 13:43:18
525
原创 VS2008 Property Pages设置
VS2008 Property Pages设置一、VS2008 Property Pages设置【Configuration Properties】 General-> 【Output Directory】 .../../output/debug 表示生成文件的输出路径 General->【Intermediate Directory】.WsIuCsParser_...
2012-01-10 14:40:35
310
原创 VS2008远程调试
VS2008远程调试同一局域网内,主机和虚拟机远程调试环境: 远程计算机:虚拟机环境、WindowsXP 本地计算机:Windows XP、Win71.本机计算机要求:VS2008 IDE 打开被调试代码2.本机计算机登陆的用户名和密码,必须和远程计算机的登录名和密码相同,仅仅用户名相同,密码不同也是不可以的,会报错。3.远程计算机安...
2012-01-07 18:28:51
93
原创 解决afxcontrolbars.h 无法找到的问题
//#include // MFC support for ribbons and control bars#define CWinAppEx CWinApp
2012-01-07 17:19:52
336
原创 Win32字符串处理函数
Win32字符串处理函数一、字符串拷贝函数_tcscpy_s TCHAR.Hstrcpy_s _UNICODE & _MBCS not definedThe strcpy_s function copies the contents in the address of strSource, including the terminating null charac...
2012-01-06 18:52:35
480
原创 Win32--自定义下拉框
[align=center][size=large]Win32--自定义下拉框[/size][/align]上一周要求做一个小的任务,分给我的是自定义下拉框,刚开始接触Windows编程,很多东西都是新的,不知如何去做,如何去查看资料,怎样查资料才会更有效,碰到很多东西,也给我很多启示。Windows编程中消息贯穿始终,对消息理解不透彻,在编程中往往会迷惑,本文讲解下拉框的相关消息...
2011-12-26 18:15:42
1083
原创 IME
//Add By HEWEI 2011 12 20 /* OnBtnGeneralClick()放在初始化函数里,首先初始化General界面,并赋值给m_pCurPage = &m_pPropSheetData->m_wndPageGeneral */ //End HEWEI OnBtnGeneralClick() ; g_hWndCurrentDialog =...
2011-12-20 21:57:09
132
原创 动态库的访问
[align=center][size=large]动态库的访问[/size][/align]动态库如何加载,如何调用其中的参数?先看一个函数:LoadLibrary,来自MSDNMaps the specified executable module into the address space of the calling process.For additio...
2011-12-20 17:56:20
134
原创 单独建立对话框
[size=large]单独建立对话框[/size][align=center][/align]下面的代码是单独建立非模态对话框的程序:从中可以体会对话框的建立和窗口建立的区别。[code="C++"]/*--------------------------------- CreateDialog.cpp---Create About Dialog for m...
2011-12-19 22:19:29
128
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人