- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 支持https但不验证证书的HttpClient
import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;import java.security.KeyManagementException;import java.security.KeyStore;import java.security.KeyStore
2013-12-10 10:55:29 25726 4
原创 显示/隐藏密码切换
TransformationMethod m = null; if (!showPassword) { m = new PasswordTransformationMethod(); }((EditText)view.findViewById(R.id.passwordEditText)).setTransformationMethod(m);
2013-12-08 21:28:13 3045
原创 点击AlertDialog的按钮时,不自动关闭对话框
AlertDialog dialog = builder.show();View.OnClickListener clickListener = new View.OnClickListener() { ...}Button btn = dialog.getButton(DialogInterface.BUTTON_POSITIVE);btn.setOnClickListener(cli
2013-12-08 21:24:54 4610
原创 中国省市列表的JSON数据
工作需要用到JSON格式的省市列表,搜了一下没找到合适的,就从百度的JS里提取出来过程很简单,将下面的代码保存成一个html文件,用浏览器打开这个文件就可以看到了 $(document).ready(function(){ $("#china_cities").text(JSON.stringify(arrCity));});中国城市列表JSON
2013-04-22 18:33:21 49248 6
原创 Activity的4种launchMode
也许是我的英文理解能力问题,Google关于launchMode的描述总是让我困惑,所以我就分别测试了这几种模式,按照我的理解重新整理一下文字A - standard:默认模式,总是创建新的A实例,同一个任务可以有多个A的实例Task堆栈:A1->A2->A3->A4B - singleTop:类似于standard,不过,当堆栈顶部是B的实例时,不会创建新的B实例(A
2013-02-01 11:44:48 2790
原创 TelephonyManager有什么信息
这是模拟器上的信息:01-29 02:42:41.962: V/PhoneInfo(1002): DeviceID = 00000000000000001-29 02:42:41.992: V/PhoneInfo(1002): DeviceSoftwareVer = null01-29 02:42:41.992: V/PhoneInfo(1002): Line1Number = 155
2013-01-29 10:58:06 4134
原创 快速隐藏RadioButton, CheckBox默认样式
RadioButton和CheckBox都是Android app中常用的Widget,它们派生于CompoundButton,允许使用者自行设置背景和按钮的样式,不过,有时我们仅希望简单的设置一个有状态的背景,并隐藏其默认样式。可是,当我们调用setButtonDrawable(null)或setButtonDrawable(0)时,却发现完全没有效果。原来,CompoundButton的set
2012-07-24 16:09:21 12237 3
原创 非典型的NinePatch使用模式
Android程序员对NinePatch文件一定很熟悉,因为它的应用实在是太广泛了,当图像需要拉伸或收缩时,一定会首先考虑到它,而由于Android设备那五花八门的分辨率,图像的拉伸收缩几乎是不可避免的....Google已经为我们安排好了一个简单有效的NinePatch使用模式:创建图像文件使用sdk/tools/draw9patch工具,选择图像的拉伸收缩区域,以及内容显示区域
2012-07-20 19:11:40 9036 1
原创 通过WIFI在Android设备上调试程序
记得早期在Palm OS上开发应用程序时,如果需要在真机上进行调试时,还得通过一个专用的底座和电脑连接才行。随着USB大行其道,各种专用线缆和接口开始没落,设备间互联似乎一夜间都改用USB了。而现在,无线才是王道,Simple is the best。Android设备默认是使用USB和PC通信调试的(也有些较新的设备默认改成使用TCP了),这很显而易见,打开“设置->应用程序->开发“, 上
2012-04-10 16:55:32 5536 1
原创 3步使RHEL 5的yum更新可用
Redhat Linux企业版免费发布,但技术支持和更新是需要收服务费的,如果我们的RHEL没注册到RHN,那就没法通过yum下载更新软件包。CentOS是使用RHEL公布的源代码重新编译的Linux发行版,大部分情况下CentOS的软件包和RHEL完全一致,因此我们可以放心的让yum指向CentOS的源下载和更新软件包。国内CentOS的镜像中,163对于普通互联网用户来说,下载速度相当
2011-12-01 15:47:28 3860
原创 如何在触摸模式(Touch Mode)下高亮显示ListView选中行
这应该是大部分Android开发者在使用ListView时会碰到问题,在解决这个问题前,需要先了解什么叫触摸模式。触摸模式(Touch Mode),在Android SDK的官方文档中有详细解释(http://developer.android.com/resources/articles/touch-mode.html),其大概内容如下:用户通过触摸屏操作设备时,设备将自动进入触
2011-11-29 18:04:41 7077 1
原创 为Android的界面设计增加跳跃效果
先贴出动画效果图(GIF截图比较业余,见谅见谅)设计的思路是,为一个View增加跳起和落下的动画效果,然后为这个View加一个背景View作为运动的影子,进行同步运动。首先,根据期望的效果,确定Activity的主题色调,比如我这里的背景色用的是透明渐变的灰黑色,自然就不能再使用黑色的显示主题,我选用的是Light(android:theme="@android:style
2011-11-16 18:35:00 5728
原创 捕获Android文本输入框的软键盘完成(Done)按键消息
mEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorI
2011-11-01 10:17:36 10995
原创 理解Android的手势识别
对于触摸屏,其原生的消息无非按下、抬起、移动这几种,我们只需要简单重载onTouch或者设置触摸侦听器setOnTouchListener即可进行处理。不过,为了提高我们的APP的用户体验,有时候我们需要识别用户的手势,Android给我们提供的手势识别工具GestureDetector就可以帮上大忙了。基础GestureDetector的工作原理是,当我们接收到用户触摸消息时
2011-10-28 13:14:09 4986
原创 理解Objective-C的autorelease
对于iOS的应用程序,为了保持内存的使用效率,系统会严格监视对象的引用计数,当引用计数归0时,对象将被立即释放。一般情况下,用release足够了:alloc/copy/new或者retain一个对象,使用对象,然后用release释放对象。 但考虑这种情况,如果一个方法需要返回一个新建的对象,而这个方法并不是以alloc/copy/new命名,所以调用者肯定不会使用release来平衡返
2011-06-15 22:19:00 4879
原创 画个饼图 - 在Android App中使用JFreeCharts(DroidCharts)
前几天在做一个Android app的时候,需要画一个饼图,直接用代码自己画一个当然也不会太复杂,但毕竟还是应该尽量避免重新发明轮子(有些愤青连这句话也要吐槽,好吧,加上一句,专业制造轮子的除外),在网上找了一圈下来,发现可用的库寥寥可数,aiCharts确实不错,可惜是商业化产品,免费试用的有水印,不太适合用在我的app里面,最后决定用DroidCharts,一个JFreeCharts的Andr
2011-06-10 15:50:00 8555 1
原创 TabWidget无法在Layout编辑器中正常查看 - 历时2年多,终于解决了!
如果你希望在layout XML文件中使用了TabHost,相信你很可能也遇到过这样的问题,当使用图形模式查看这个XML文件时,编辑器报错: 这个错误早在2009年的时候已经有人提出了: 到了2010年,总算有了进展: 但等到实际的解决办法出现,已经是2011年的事了: 注意:目前这个更新库仍是R
2011-06-08 13:47:00 3060
转载 删除MySQL表的重复记录
有时候遇到一些错误的数据库,表中产生了一些重复的记录,如何删除多余记录就成了一件麻烦的事,今天看到一个巧妙的解决办法,利用了MySQL的扩展特性,很简单就完成了这项工作。
2011-04-02 09:11:00 2949
原创 MySQLdb-python无法设置字符集的问题
今天写个python脚本从MySQL导数据,导入和导出的两个数据库的编码不一致,需要建立两个数据连接,分别使用不同的字符集,按MySQLdb的文档说明,只需要在MySQLdb.Connect()设置charset参数即可
2011-03-31 17:12:00 5990
转载 关于对象引用次数几道测试题
看Head First iPhone Development的时候,看到这几道测试题对理解Objective-C的对象引用次数很有帮助,在这里特别做个记录
2011-03-10 09:28:00 2799
原创 越狱前后
<br />最近看到一句话,“开放带来创新,封闭带来利润”,前者可参照GOOGLE,后者可参照苹果。<br /> <br />苹果是一家伟大的公司,创造了许多让人赏心悦目爱不释手的产品,与此同时,苹果也是一家自负的公司,为了保持产品的品位,苹果拒绝妥协,坚持建立了一个封闭的系统,如果你想用苹果的产品,那么你就应该从苹果购买硬件,在Itunes store上购买音乐和视频,在App store上购买应用软件,你能接触到的音乐、视频、应用软件,都需要经过苹果的审核,无论是因版权问题、丑陋的界面、无意义的功能,还
2011-02-16 15:12:00 1676
原创 Python学习笔记(2) - Python的main函数
在C/C++/Java中,main是程序运行的起点,Python中,也有类似的运行机制,但方式却截然不同:Python使用缩进对齐组织代码的运行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。
2010-11-25 10:33:00 53296
转载 CentOS 5.3 快速配置VNC Server
CentOS 5.3默认已经安装了VNC Server软件包,只要在服务列表中选中启动一下就可以。通过编辑文件~HOME/.vnc/xstartup来启动你喜欢的窗口管理器。使用startkde & 来启动KDE,使用 gnome-session & 来启动GNOME。
2010-11-24 08:47:00 1432
原创 编译OpenCV for arm-linux
OpenCV是Intel支持的开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。它不依赖于其它的外部库—尽管也可以使用某些外部库。OpenCV使用BSD License,对非商业应用和商业应用都可以免费使用。OpenCV的主要应用环境是Windows和Linux,对于嵌入式系统如arm-linux,很少有资料提到,因此将我在arm-linux编译过程记录下来和大家分享。
2010-08-09 11:41:00 26094 51
原创 如何将YAFFS文件系统镜像烧入Nand Flash
和普通文件系统不同,YAFFS文件系统专门为Nand Flash设计,可以使用mkyaffsimage生成文件系统的镜像,但如果要将此镜像烧入Flash,那么有些地方需要注意。 硬件上,Nand Flash的设计已考虑到包含坏块的情况,对于每扇区512字节的Nand Flash,每扇区都有一个16字节额外的扩展区,通常用以存储此扇区的校验数据以及坏块标记等信息(WinCE则使用了其中4字节
2010-05-24 15:18:00 5108 2
原创 调试VIVI: 一系列莫名错误及其解决过程
问题出现近期一个项目需要将VIVI移植到我们的三星2440板上,在head.S中设置好晶振频率时钟频率之后,VIVI能跑起来了,但进入main后,初始化mtd设备时,程序挂了。 接上JTAG,使用ADS的AXD Debugger进行汇编调试,发现程序正运行着死循环,根据vivi.map中提供的地址信息,得知当前指令属于UndefEntryPoint异常中断处理程序,也就是说,程
2010-05-21 14:44:00 4510 1
原创 使用ADS+HJTAG调试Boot Loader
嵌入式系统的Boot Loader相当于PC机的BIOS,通常我们在移植Boot Loader的时候,往往会陷入无任何软件工具可用的情况,甚至连串口都无法输出任何信息,要追查错误是非常困难的,这时候往往就需要JTAG接口协助我们进行调试了。 JTAG是联合测试工作组的简称,发展于1985年,作为一种简单的电路接口协议,一般用于访问IC内部的子模块,因此也常用于嵌入式系统的调试,目前大部分C
2010-05-07 15:20:00 2865 1
原创 WinCE平台的程序编译到Win32平台下运行
最近做的项目中,有一个在WinCE平台上跑的程序,后来随着项目的发展,要求此程序在PC上也能跑。感谢VS 2005提供的多平台支持,只需要几分钟就可以解决这个问题,方法很简单,下面是我处理的过程。 1.在配置管理中增加新平台 1.1 创建新平台程序最初是基于Pocket PC 2003(ARMV4)平台创建的,我在此平台的配置基础上,创建新的Win32平台。打开菜单Build
2009-11-10 14:43:00 1900
原创 VI常用命令
进入编辑模式 i在光标当前位置开始编辑I在光标所在行首开始编辑 a在光标后一字符开始编辑A在光标所在行尾开始编辑 o在光标下新增一行开始编辑O在光标上新增一行开始编辑 离开编辑模式 ESC 移动光标 编辑模式中,使用上、下、左、右键移动光标命令模式中,使用h(左)、j(下)、k(上)、l(右
2009-09-29 09:59:00 672
原创 几个Linux命令行小技巧
使用一个命令来创建目录树~ $ mkdir -p tmp/a/b/c 使用一个命令来定义复杂的目录树~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a} 使用选项 -C 来解压缩 .tar 存档文件到指定目录~ $ tar xvf -C tmp/a/b/c newarc.tar.gz 按
2009-09-10 15:33:00 1045
原创 S3C2440休眠和唤醒流程解析(WinCE 6)
在WinCE中,有3种方式可以使系统进入休眠:1、用户在开始菜单选择挂起2、用户短按电源键,请求系统进入休眠(需要电源按键驱动的支持,比如设为长按关机,短按休眠)3、用户长时间无操作,系统状态由POWER_STATE_ON转为POWER_STATE_USERIDLE,POWER_STATE_IDLE状态,最后进入POWER_STATE_SUSPEND即休眠状态 休眠之前,对于支持电源管理的
2009-09-10 11:35:00 3199
原创 S3C2440 TFT LCD驱动程序编程要点
1、打开LCD背光将LCD背光对应的GPIO设置为禁止上拉(GPxUP相应位写入1),选择output类型(GPxCON相应位写入01),输出为高电平(GPxDAT相应位写入1)。2、打开LCD电源可以将GPG4选择为LCD_PWREN(GPGCON:9-8写入11),这时候LCD电源的打开/关闭可以通过LCDCON5:3来控制。也可以自定义其他GPIO用作LCD电源开关,只需将此GP
2009-08-05 16:05:00 6329 4
原创 sscanf的高级用法
printf或者sprintf一定是任何一个C程序员最常见到的函数,与sprintf的作用相反,sscanf通常被用来解析并转换字符串,其格式定义灵活多变,可以实现很强大的字符串解析功能。 sscanf的原型很简单,定义如下: #include int sscanf(const char *str, const char *format, ...); str:待解析的字符串
2009-07-28 11:46:00 23232 1
原创 undefined reference to '__ctype_b'
使用GCC编译程序时,如果链接到一些比较老的静态库,经常会碰到这个错误:undefined reference to __ctype_b 这是一个兼容性错误,这个错误出现的原因是,在glibc 2.3.2-11及其之后的C库版本,移除了__ctype_b和相关symbal的定义,因为它和新locale模型存在冲突无法并存,这意味着使用Redhat 7.3编译的C静态库,没有办法在Red
2009-07-28 10:35:00 10718
原创 Nand Flash 的ECC算法
为了能检测到单个位错误,把每256字节的数据划分为一张8x256共2048位的表,使用22位校验码进行校验,16位为行校验码,进行横向校验,6位为列校验码,按进行纵向校验。下图描述了这22位校验码产生的原理: 列校验:CP0:对所有字节的Bit 6,4,2,0进行异或操作的结果CP1:对所有字节的Bit 7,5,3,1进行异或操作的结果..CP5:对所有字节的
2009-07-09 17:48:00 13668
原创 Objective-C对象的生命周期
Objective-C的对象拥有引用计数,对象被创建后其引用计数为1,当其引用计数减少为0时,系统将会销毁此对象。 对象引用计数加1:- (id) retain;对象引用计数减1:- (void) release;–(void) autorelease;获得对象当前引用的计数- (unsigned) retainCount; 通常使用AutoreleasePool自动
2009-07-04 22:44:00 2556
原创 如何定位WinCE产生Data Abort错误的位置
在调试WinCE程序的时候,有时候会碰到Data Abort的异常,系统会在调试控制台输出如下类似信息:Exception Data Abort (4): Thread-Id=03d3000e(pth=83a9e024), Proc-Id=00400002(pprc=81d48308) NK.EXE, VM-active=00fa000a(pprc=83a20ecc) explorer.
2009-07-02 13:35:00 5376
原创 如何开发一个WinCE 6的流设备驱动
在BSP的Drivers目录下,创建新驱动程序的目录,比如MyDriver 修改dirs文件,在变量DIRS中增加新目录MyDriver 创建文件Sources,内容如下:TARGETNAME=MyDriverRELEASETYPE=PLATFORMTARGETTYPE=DYNLINK DEFFILE=MyDriver.defDLLENT
2009-06-26 09:44:00 2019
原创 关于Objective-C
Objective-C:由Brad Cox在1980s创造,混合了C语言的可移植性、高性能和Smalltalk的面向对象能力。NS:NextSTEP的简称,1985年,乔布斯离开了苹果公司后,创办了NeXT公司,准备开发新一代电脑,他们使用Objective-C创建了UI工具包NextSTEP。Objective-C中的类习惯以NS为前缀。Cocoa:1996年,苹果公司收购了NeXT
2009-06-25 21:13:00 768
UmlStudio_7.2_build786.rar
2009-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人