自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

愷风(Wei)的专栏

使用工具、了解工具、创造工具……

  • 博客(18)
  • 资源 (25)
  • 收藏
  • 关注

原创 Pro Android学习笔记(一三四):Media Frameworks(9):MediaStore

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei。MediaStore类提供了媒体接口,可以搜索特定类型的媒体,通过intent调用其它应用进行录音录像,建立playlist等等。和之前学习不同,MediaStore不能对编码、帧率、输入源和输出格式进行设定,如果我们不

2014-09-30 17:31:07 3813 1

原创 Pro Android学习笔记(一三三):Media Frameworks(8):MediaRecorder进行录像

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei。media framework提供录像功能,录像的同时也包括了录音。录像要通过Surface的UI对象来显示Camera的内容,然后在从Surface中copy。对于一些复杂的应用,即使不需将视频显示给用户,也仍需要一个

2014-09-30 17:30:41 4143

原创 Pro Android学习笔记(一三二):Media Frameworks(7):AudioRecord进行录音

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei。MediaRecorder将录音写到文件中,但有时我们需要对录音进行处理后在写,或者我们并不需要些文件,只是需要对这些数据进行处理,例如在VoIP中,数据转换为RTP/RTCP流,传输对远端。这些情况可以采用AudioR

2014-09-27 17:26:43 4444

原创 Pro Android学习笔记(一三十):Media Frameworks(5):播放视频

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处以及作者@恺风Wei。Android为视频播放提供了很好的封装。通过android.widget.VideoView封装了MediaPlayer,使用起来很简单。小例子的效果如下:小例子的layout的xml文件如下:     VideoView android:id="@+id/

2014-09-23 21:50:50 2387

原创 Pro Android学习笔记(一二九):Media Frameworks(4):JetPlayer、AsyncPlayer和AudioTrack

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处以及作者@恺风Wei。JetPlayerSoundPool有内存使用的限制,对于同时播放声音,还可以使用JetPlayer。JetPlayer针对游戏进行裁剪,是一个灵活的根据用户行为播放多种声音的工具,使用了MIDI(Musical Instrument Digital Interface)。在wiki中

2014-09-23 21:49:56 2942 1

原创 Pro Android学习笔记(一二八):Media Frameworks(3):用SoundPool的音频播放

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处以及作者@恺风Wei。MediaPlayer在一个时间只能处理一个音频或视频文件,如果我们需要同时播放多个音频文件,可以创建多个MediaPlayer。如果我们有若干个的音频需要播放,还可以使用SoundPool类,SoundPool类使用了MediaPlayer,但我们不需要访问MediaPlayer API

2014-09-23 21:49:25 3796 1

原创 Pro Android学习笔记(一二七):Media Frameworks(2):MediaPlayer的音频播放

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处以及作者@恺风Wei。播放web音频内容的小例子片段private final static String AUDIO_PATH =http://www.androidbook.com/akc/filestorage/android/documentfiles/3389/play.mp3;pri

2014-09-23 21:47:17 4450

原创 Pro Android学习笔记(一二六):Media Frameworks(1):SD卡

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处以及作者@恺风Wei-傻瓜与非傻瓜。Android在android.media包中支持音视频,核心是android.media.MediaPlayer类。内容来源有web,apk(作为resource或者asset打包到apk中),SD卡。MediaPlayer支持.3gp,*.mp3,*.mid,*.ogg,

2014-09-16 21:48:18 2981

原创 Pro Android学习笔记(一二五):Telephony API(7):SIP Phone(下)

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。发起呼叫发起呼叫,要确保客户端正常发送RTP包,需要增加两个新的权限:   发起呼叫的代码片段如下:public SipAudioCall myCall = null; public v

2014-09-16 21:47:58 4238

翻译 VisionMobile:没人谈及的Apple Watch的三个关键特点

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及译者@恺风Wei在2014年9月10日,VisionMobile发表文章The 3 key Apple Watch features that nobody talks about. Yet.[如果Apple要从智能手表建立一个全新

2014-09-13 21:14:24 2974

原创 Pro Android学习笔记(一二四):Telephony API(6):SIP Phone(上)

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。Android有android.net.sip和android.net.rtp包。而在sdk\samples\android-19(API版本)\legacy\SipDemo提供一个SIP phone的例子。此外,Andr

2014-09-11 21:37:31 6180 1

原创 Pro Android学习笔记(一二三):Telephony API(5):Phone

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。拨打电话拨打电话和发Email一样不属于Telephony API,通过intent调用拨号器App应用的。代码例子如下:Intent intent = new Intent(Intent.ACTION_VIE

2014-09-09 21:19:07 3640

原创 Pro Android学习笔记(一二二):Telephony API(4):发Email

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。发Email不属于Telephony API,但作为常用通信的方式,也在此提及。Android通过intent调用Email App应用的方式进行短信发送。如果我们开发办公软件,Email还是常用的功能。代码例子如下:

2014-09-09 21:16:33 2858

翻译 VisionMobile:2014年Q3移动开发者经济报告(九):8、多种类型的应用开发者

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及译者@恺风Wei2014年7月,visionMobile发表了最新一期的移动开发者经济报告。 开发者不只是将咖啡转换为代码的机器,他们创建应用有着各种不同的动机。任何一个平台上,尽管大部分的开发者有着相同的工具和技术,但他们有着

2014-09-07 15:49:13 3073

原创 Pro Android学习笔记(一二一):Telephony API(3):读短信

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。读短信需要READ_SMS的权限。Content Provider的URI通过content Provider可以读取短信。相关的URI如下:所有:   content://sms/all 收件

2014-09-07 15:48:28 3132

原创 Pro Android学习笔记(一二十):Telephony API(2):接收短信

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。很多APP需要短信发送一个验证码,APP可以截取短信中的验证码,我们来学习一下如何在应用中通过BroastReceiver截获短信。接收短信的机制接收短信,需要有接收短信的授权:当系统接收到短信时,会通

2014-09-05 08:29:18 5989 1

翻译 VisionMobile:2014年Q3移动开发者经济报告(八):7、应用开发者工具的交易

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及译者@恺风Wei2014年7月,visionMobile发表了最新一期的移动开发者经济报告。 单个开发者或小团队在产品或服务的基础上构建复杂的软件,从来没有这么容易过。现在,有超过1000个强大的第三方工具帮助应用开发者写更少的代码

2014-09-05 08:29:03 2738

原创 Pro Android学习笔记(一一九):Telephony API(1):发送短信

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。在Android,接口封装得很好,发送短信很容易实现,小例子代码 public class SendSMSActivity extends Activity{    @Override    

2014-09-05 08:28:39 3189

Pro Android学习:联系人API

Pro Android学习系列中的传感器小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2015-06-15

Servlet速成学习

跟踪http://edu.51cto.com/course/course_id-1774.html学习,在代码上做笔记,可算是速成学习完servlet

2015-03-20

Pro Android学习:传感器

Pro Android学习系列中的传感器小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2015-02-06

[zip文件] Pro Android学习:拖拽小例子

Pro Android学习系列中的拖拽小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2014-12-12

Pro Android学习:touch screen小例子

Pro Android学习系列中的Touch Screen小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2014-11-18

Pro Android学习:list widget小例子

Pro Android学习系列中的List Widget2小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2014-10-23

Pro Android学习:widget小例子

Pro Android学习系列中的Home Screen Widget小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2014-10-15

Pro Android学习:media frameworks小例子

Pro Android学习系列中的media frameworks小例子。具体见http://blog.csdn.net/flowingflying/article/details/6212512

2014-09-30

[zip文件] Pro Android学习:telephony小例子

这是Pro Android学习系列中Telephony API部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-09-16

Pro Android学习:location小例子

这是Pro Android学习系列中location部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-08-27

Pro Android学习:2D动画小例子

这是Pro Android学习系列中2D动画部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-08-14

Pro Android学习:Alarm manager小例子

这是Pro Android学习系列中alarm manager部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-07-18

Pro Android学习:Broadcast小例子

这是Pro Android学习系列中Broadcast部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-07-01

Pro Android学习:AsyncTask小例子

这是Pro Android学习系列中AsyncTask部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-05-16

Pro Android学习:了解Handler小例子

这是Pro Android学习系列中Android Service部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-05-08

Pro Android学习:了解package的小例子

这是Pro Android学习系列中了解package部分的例子源代码。包括通过共享UserID实现资源共享,以及lib项目

2014-04-18

Pro Android学习:Android service小例子

这是Pro Android学习系列中Android Service部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

2014-03-27

Pro Android学习:Http service小例子

这是Pro Android学习系列中http service的例子源代码。

2014-02-10

Pro Android学习:permission例子

这是Pro Android学习系列中permission部分的例子源代码。

2013-12-19

Pro Android学习:Preference(首选项)小例子

这是Pro Android学习系列中preference部分的例子源代码。

2013-12-04

Pro Android学习:ActionBar小例子

Pro Android学习系列中的action bar小例子。

2013-11-07

Pro Android学习:Dialog小例子

这是Pro Android学习dialog部分的例子源代码。

2013-10-30

Pro Android学习:Fragment

这是Pro Android学习Fragment部分的例子源代码。

2013-10-25

Pro Android学习:Menu

是Pro Android学习笔记Menu系统的例子代码

2013-09-29

NTLM PPROXY client的实现(C source code)

HTTP PROXY中NTLM的客户端的C源代码。包含相关的DES等算法在内。Base64的算法,是通过网上共产主义获取,MD4,MD5,HMAC MD5的算法是RFC中提供的,其余的可以根据下面链接的步骤进行编写。我提供一个源代码的例子。其中arith_开头的相关算法,httppc_ntlm是 NTLM的type1、type2、type3消息的应答构成,test_httppc_connect是一个测试的例子,里面没有main函数,但是另外构造一个main函数,在wei_set_proxy_info之后,调用wei_httppc_connect就可以了。详细见http://blog.csdn.net/flowingflying/archive/2009/03/03/3952796.aspx 有朋友说少了头文件,我查了一下,不好意思,少了md.h。请参考下面。 /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved. License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD4 Message-Digest Algorithm" in all material mentioning or referencing this software or this function. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD4 Message-Digest Algorithm" in all material mentioning or referencing the derived work. RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. These notices must be retained in any copies of any part of this documentation and/or software. */ #ifdef __cplusplus extern "C" { #endif #ifndef WEI_MD_H #define WEI_MD_H #ifndef IN #define IN #endif #ifndef OUT #define OUT #endif /************************************ 算法:MD4和MD5 *********************************/ //从RFC1320 The MD4 Message-Digest Algorithm的附录 //从RFC1321 The MD5 Message-Digest Algorithm的附录 /* PROTOTYPES should be set to one if and only if the compiler supports function * argument prototyping.The following makes PROTOTYPES default to 0 if it has not * already been defined with C compiler flags. */ #ifndef PROTOTYPES #define PROTOTYPES 0 #endif /* POINTER defines a generic pointer type */ typedef unsigned char * POINTER; /* UINT2 defines a two byte word */ typedef unsigned short int UINT2; /* UINT4 defines a four byte word */ typedef unsigned long int UINT4; /* PROTO_LIST is defined depending on how PROTOTYPES is defined above.If using PROTOTYPES, * then PROTO_LIST returns the list, otherwise it returns an empty list. */ #if PROTOTYPES #define PROTO_LIST(list) list #else #define PROTO_LIST(list) () #endif /* MD4 context. */ typedef struct { UINT4 state[4]; /* state (ABCD) */ UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ unsigned char buffer[64]; /* input buffer */ } MD4_CTX; void MD4Init PROTO_LIST ((MD4_CTX *)); void MD4Update PROTO_LIST ((MD4_CTX *, unsigned char *, unsigned int)); void MD4Final PROTO_LIST ((unsigned char [16], MD4_CTX *)); /* MD5 context. */ typedef struct { UINT4 state[4]; /* state (ABCD) */ UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ unsigned char buffer[64]; /* input buffer */ } MD5_CTX; void MD5Init PROTO_LIST ((MD5_CTX *)); void MD5Update PROTO_LIST ((MD5_CTX *, unsigned char *, unsigned int)); void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); #endif #ifdef __cplusplus } #endif 因为我没有认真地打包封装,而是从我的一个project中抽出了,有些遗漏,请大家原谅。今天又有网友来问PRIVATE在哪里定义。因为代码不在手头的机器上,没法仔细看,PRIVATE的定义如下 #define PRIVATE 定义为空,这是模仿C++的private,说明这个函数不会被其他文件引用,只用于本文件。 最近又收到网友的来信,说少了几个util文件。这个是不在ntlm的算法中,而是在验证例子test_httppc_connect.cpp中使用。查了一下,我确实没有放到网上。汗啊,因为验证例子是从某个程序中抽取出来,里面包含一个很简单的http的解析。我本来想update资源,没有找到 update的方法。需要说明的是这部分和真正的算法没有直接关系。放在这里,太长了,如果需要的网友,请到http://blog.csdn.net/flowingflying/archive/2009/03/03/3952796.aspx 那里下载。

2009-03-16

空空如也

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

TA关注的人

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