<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[探索。。。发现。。。]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Ah_Kin</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Ah_Kin]]></copyright><item><title><![CDATA[转：理解TCP网络编程中的send和recv]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/40718293</link><guid>https://blog.csdn.net/Ah_Kin/article/details/40718293</guid><author>Ah_Kin</author><pubDate>Sun, 02 Nov 2014 23:03:57 +0800</pubDate><description><![CDATA[﻿﻿
本篇我们用一个测试机上的阻塞socket实例来说明主题。文章中所有图都是在测试系统上现截取的。

需要理解的3个概念
1. TCP socket的buffer
每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区，TCP的全双工的工作模式以及TCP的流量(拥塞)控制便是依赖于这两个独立的buffer以及buffer的填充状态。接收缓冲区把数据缓存入内核，应用进程一直没]]></description><category></category></item><item><title><![CDATA[通过网络访问adb]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/14163185</link><guid>https://blog.csdn.net/Ah_Kin/article/details/14163185</guid><author>Ah_Kin</author><pubDate>Tue, 05 Nov 2013 11:13:29 +0800</pubDate><description><![CDATA[文章来自：http://blog.csdn.net/tianxiangshan/article/details/7816782


adb支持通过远程访问，这样就可以使用wifi来连接了，而且可以省下usb口来作为他用。具体步骤如下：

第一种方法：

1.用usb连接手机，终端输入adb shell.

2.在shell中输入setprop service.adb.tcp.po]]></description><category></category></item><item><title><![CDATA[信号量机制在WINDOWS编程中的实际应用]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13768253</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13768253</guid><author>Ah_Kin</author><pubDate>Thu, 31 Oct 2013 10:54:05 +0800</pubDate><description><![CDATA[同步问题就是因为线程/进程 间异步执行访问共享数据而引起的数据冲突的问题(经典的例子:生产者与消费者问题),windows提供了一些同步对象来解决此类问题,包括:临界区对象、互斥体对象、事件对象、信号量对象，下面将对这些同步对象进行说明举例。

Win32 API提供了一组能使线程阻塞其自身执行的等待函数。这些函数在其参数中的一个或多个同步对象产生了信号，或者超过规定的等待时间才会返回。
在]]></description><category></category></item><item><title><![CDATA[【转】C++信号量Semaphore和MFC中的CSemaphore类使用【转】]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13767437</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13767437</guid><author>Ah_Kin</author><pubDate>Thu, 31 Oct 2013 10:15:30 +0800</pubDate><description><![CDATA[文章来自：http://hi.baidu.com/hk2305621/item/7be11ad68e89bd2b39f6f7f1

使用信号量内核对象进行线程同步主要会用到CreateSemaphore（）、OpenSemaphore（）、 ReleaseSemaphore（）、WaitForSingleObject（）和WaitForMultipleObjects（）等函数。其 中，Crea]]></description><category></category></item><item><title><![CDATA[线程同步--使用信号量]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13766581</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13766581</guid><author>Ah_Kin</author><pubDate>Thu, 31 Oct 2013 09:35:20 +0800</pubDate><description><![CDATA[除了使用临界区与互斥可以完成线程间的同步外，还可以使用信号量CSemaphore。使用信号量还有一个好处便是：信号允许多个线程同时使用共享资源，这便与操作系统中的PV操作有些雷同的地方。它指出了同时访问共享资源的线程最大数目。

　　在信号量内部有一个计数器，当有线程访问共享资源时，计数器将自动递减，当它为0时，不再允许其他线程对共享资源的访问，直到有一个线程释放共享资源，从而完成对共享资源的]]></description><category></category></item><item><title><![CDATA[c++类成员函数作为回调函数]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13625013</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13625013</guid><author>Ah_Kin</author><pubDate>Wed, 30 Oct 2013 12:03:35 +0800</pubDate><description><![CDATA[转载请标明出处：http://blog.csdn.net/lytxxt/archive/2009/12/15/5014658.aspx
我以前写线程时要么老老实实照着声明写,要么使用C++类的静态成员函数来作为回调函数,经常会因为线程代码而破坏封装.之前虽然知道类成员函数的展开形式，但从没想过利用过它，昨天看深入ATL时无意中学会了这一招:)

类成员方法是一个比较特殊的函数，它在编译时会被]]></description><category></category></item><item><title><![CDATA[类成员函数作为回调函数]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13507769</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13507769</guid><author>Ah_Kin</author><pubDate>Tue, 29 Oct 2013 14:51:18 +0800</pubDate><description><![CDATA[文章来自:http://www.cnblogs.com/zhangminaxiang/archive/2013/02/27/2934466.html


缘由：
在给游戏做背景音乐类的时候，遇到了一个问题，需要用到MCI函数，但是MCI函数必须需要一个窗口来获得MCI执行的状态。特别在播放音乐完成的时候，MCI会向
一个窗口发送播放完成消息。所以我需要创建一个窗口。窗口就肯定有窗口过程，]]></description><category></category></item><item><title><![CDATA[用类的非静态成员函数作为线程入口函数的方法--转]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13001497</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13001497</guid><author>Ah_Kin</author><pubDate>Thu, 24 Oct 2013 17:00:13 +0800</pubDate><description><![CDATA[一个类里的函数，通常要作为线程的入口函数，必须把它指定为static类型。
static类型的类成员函数，并不具有this指针，也不能访问到protected或private类型的类成员。
因为以上的不便，我们会想，怎样把一个普通的类成员函数，当作线程的“入口函数”呢？
方法还是有的，具体说来：
1. 创建一个线程，将类指针this和“入口函数”当作参数传入, 其实这里的“入口函数”已经不]]></description><category></category></item><item><title><![CDATA[__try，__except，__finally，__leave]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/13000129</link><guid>https://blog.csdn.net/Ah_Kin/article/details/13000129</guid><author>Ah_Kin</author><pubDate>Thu, 24 Oct 2013 16:04:07 +0800</pubDate><description><![CDATA[文章来自：http://hi.baidu.com/niujingqian/item/b7043fd66e1773856cce3fd8


导读： 
从本篇文章开始，将全面阐述__try，__except，__finally，__leave异常模型机制，它也即是Windows系列操作系统平台上提供的SEH模型。主人公阿愚将在这里与大家分享SEH的学习过程和经验总结。 
　　SEH有两项非常]]></description><category></category></item><item><title><![CDATA[使用JNI进行混合编程：在Java中调用C/C++本地库]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12857011</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12857011</guid><author>Ah_Kin</author><pubDate>Fri, 18 Oct 2013 18:02:43 +0800</pubDate><description><![CDATA[原文链接：http://www.cnblogs.com/icejoywoo/archive/2012/02/22/2363709.html



JNI是Java Native Interface的英文缩写, 中文翻译为本地调用, 自从Java 1.1开始就成为了Java标准的一部分。
C/C++是系统级的编程语言, 可以用来开发任何和系统相关的程序和类库, 但是Java本身编写底层的应]]></description><category></category></item><item><title><![CDATA[JNI学习积累之一 ---- 常用函数大全]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12857007</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12857007</guid><author>Ah_Kin</author><pubDate>Fri, 18 Oct 2013 18:01:22 +0800</pubDate><description><![CDATA[本文原创，转载请注明出处：http://blog.csdn.net/qinjuning
 
 
 
         最近一段时间，在工作方面比较闲，分配的Bug不是很多，于是好好利用这段时间就着源代码看了些许模块， 主要方式
   还是贼看贼看代码， 同时利用烧机的便利，加Log观看，基本上都能弄个脸熟
 。心里想着该写点什么了？可是水平不够，再加上
   包括很多真正实现地方--]]></description><category></category></item><item><title><![CDATA[安卓开发之JNI编程详解]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12854057</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12854057</guid><author>Ah_Kin</author><pubDate>Fri, 18 Oct 2013 15:03:20 +0800</pubDate><description><![CDATA[文章来自：http://android.tgbus.com/Android/androidnews/201206/438987.shtml

　　首先要强调的是，native方法不但可以传递Java的基本类型做参数，还可以传递更复杂的类型，比如String，数组，甚至自定义的类。这一切都可以在jni.h中找到答案。
　　
　　1.Java基本类型的传递
　　
　　用过Java的人都知道]]></description><category></category></item><item><title><![CDATA[NDK与Cygwin配置]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12849305</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12849305</guid><author>Ah_Kin</author><pubDate>Fri, 18 Oct 2013 10:08:48 +0800</pubDate><description><![CDATA[文章转自：http://blog.csdn.net/android_panda/article/details/7607946

1、Android 开发环境搭建
Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。
下载 JDK
下载 Eclipse
下载 Android SDK
启动Eclipse , 安装 ADT


2、下载安装]]></description><category></category></item><item><title><![CDATA[编译Android .so文件]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12848623</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12848623</guid><author>Ah_Kin</author><pubDate>Fri, 18 Oct 2013 09:32:11 +0800</pubDate><description><![CDATA[文章来自：http://dev.10086.cn/cmdn/wiki/index.php?doc-view-5208.html




说白了就是c代码做成动态库，被Java代码调用(JNI)。用C写不出可以直接在Android上跑的可执行程序来。
　　NDK开发需要一个交叉编译环境，需要安装Cygwin, NDK。
　　这些准备工作就不说了网上很多，当然也可以问我。
　　讲一下.]]></description><category></category></item><item><title><![CDATA[Android APK JNI sample (JAVA JNI)]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12839745</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12839745</guid><author>Ah_Kin</author><pubDate>Thu, 17 Oct 2013 16:57:28 +0800</pubDate><description><![CDATA[原文来自：

一个小实例介绍 Android JNI 如何实现步骤，其中有个遇到的加载库失败的教训：



1.  编写JAVA代码，写明要调用的本地动态链接库的本地方法：


[java] 
view plaincopyprint?


wnplib.java    public class wnplib{      public native void SayHell]]></description><category></category></item><item><title><![CDATA[Android调用jni全过程，方便以后操作。]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12837051</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12837051</guid><author>Ah_Kin</author><pubDate>Thu, 17 Oct 2013 14:39:25 +0800</pubDate><description><![CDATA[文章来源 ：http://www.cnblogs.com/stay/archive/2011/08/28/2155385.html
个人记录下调用jni全过程，省的自己忘记了。哎。
有些需要准备的地方，ndk环境，ndk源码一份，cygwin要装好，配好profile。java要配好环境变量。

1.首先新建一个工程，建个类对调用native的方法进行声明。




packag]]></description><category></category></item><item><title><![CDATA[NDK开发环境搭建_r8]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12837013</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12837013</guid><author>Ah_Kin</author><pubDate>Thu, 17 Oct 2013 14:37:35 +0800</pubDate><description><![CDATA[文章来源： 
http://www.cnblogs.com/baronzhao/archive/2012/07/10/2585181.html


本文主内容：
1、  Android NDK 安装
2、  安装Cygwin与使用NDK编译
3、  在Eclipse中集成C/C++开发环境CDT
4、  安装Sequoyah插件
5、  JNI编译环境配置
 
本文建立在已经]]></description><category></category></item><item><title><![CDATA[ANDROID JNI的头文件生成配置]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12782975</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12782975</guid><author>Ah_Kin</author><pubDate>Wed, 16 Oct 2013 16:51:32 +0800</pubDate><description><![CDATA[（1)我的电脑－属性－高级－环境变量
增加系统变量：java_home：X:...\Java\jdk1.7.0_01（java安装好后的路径），
Path变量中添加 %java_home%/bin，
增加系统变量：classpath：.;X:...\sdk\platforms (1)特别注意要加".;"，这也是添加了1个路径，即当前路径,（2）第二个路径是安卓sdk的安装路径。

3. ]]></description><category></category></item><item><title><![CDATA[为android虚拟机创建sdcard]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12774667</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12774667</guid><author>Ah_Kin</author><pubDate>Wed, 16 Oct 2013 10:30:29 +0800</pubDate><description><![CDATA[一、首先创建SDCARD  我创建的sdcard名为：sdcard.img(名字随便取，以img后缀名结束)  。进入DOS  指向  目录 E:\android-sdk_r10-windows\android-sdk-windows\tools 
 （这是安装android的SDK的文件里，配置这个环境变量的就不用了）
 我们在Dos里面输入   mksdcard -l sdcard 256]]></description><category></category></item><item><title><![CDATA[android利用JNI调用C++自定义类]]></title><link>https://blog.csdn.net/Ah_Kin/article/details/12774001</link><guid>https://blog.csdn.net/Ah_Kin/article/details/12774001</guid><author>Ah_Kin</author><pubDate>Wed, 16 Oct 2013 10:02:32 +0800</pubDate><description><![CDATA[找了好久关于android调用C/C++库的文章，但是始终没有一片是关于android利用jni调用C++自定义类的文章，无奈只好看android的源代码，学习android的图形库的实现，因为它的实现底层也是利用C++的skia库。下面就3个文件来描述。

首先是你在java中的一个类，用于你在应用程序中调用这里取名叫Person类
[java] 
package whf.jnitest]]></description><category></category></item></channel></rss>