摘要: 经常有朋友想学习 Windows Mobile 开发,体验移动开发的乐趣,但不知道从哪里下载各种开发工具和学习资料。于是我整理了一个列表,里面包含了各个版本的 Windows Mobile SDK, .NET Compact Framework, SQL Server CE, Device Emulator, Emulator Image 和学习资料的下载链接。阅读全文
posted @ 2007-03-13 13:27 黎波 阅读(45241) 评论(164) 编辑

将字符串进行MD5加密,返回加密后的字符串(实际上是该字符串的报文摘要)。

public static String md5(String string) {
    byte[] hash;
    try {
        hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
    } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException("Huh, MD5 should be supported?", e);
    } catch (UnsupportedEncodingException e) {
        throw new RuntimeException("Huh, UTF-8 should be supported?", e);
    }

    StringBuilder hex = new StringBuilder(hash.length * 2);
    for (byte b : hash) {
        if ((b & 0xFF) < 0x10) hex.append("0");
        hex.append(Integer.toHexString(b & 0xFF));
    }
    return hex.toString();
}

 

参考:http://stackoverflow.com/questions/5494447/what-will-be-the-android-java-equivalent-of-md5-function-in-php


作者:黎波
博客:http://bobli.cnblogs.com/
日期:2012年3月26日 
posted @ 2012-03-26 22:24 黎波 阅读(125) 评论(0) 编辑

原理是遍历所有网络接口的所有IP地址。如果方法返回null,则设备没有可用的网络连接。方法返回的IP地址是设备正在使用的IP地址。

public String getLocalIpAddress() {
    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}


参考:http://www.droidnova.com/get-the-ip-address-of-your-device,304.html


作者:黎波
博客:http://bobli.cnblogs.com/
日期:2012年3月26日
posted @ 2012-03-26 12:30 黎波 阅读(117) 评论(0) 编辑

iOS

使用 NSObject 基类的 isKindOfClass: 方法。

声明:

- (BOOL)isKindOfClass:(Class)aClass
描述:
Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. (required)

参数:

aClass: A class object representing the Objective-C class to be tested.

返回值:

YES if the receiver is an instance of aClass or an instance of any class that inherits from aClass, otherwise NO.

示例代码:

for (UIView *ctrl in [self childViewControllers]) {
    if ([ctrl isKindOfClass:[UITextField class]]) {
        [(UITextField*)ctrl setText:@""];
    }
    else if ([ctrl isKindOfClass:[UISwitch class]]) {
        [(UISwitch*)ctrl setOn:NO];
    }
}

 

Android

The instanceof operator compares an object to a specified type. You can use it to test if an object is an instance of a class, an instance of a subclass, or an instance of a class that implements a particular interface.

示例代码:

void checkforTextView(View v)
{
    if(v instanceof TextView)
    {
        // This is a TextView control
    } else {
        // This is not a TextView control
    }
}


Windows Phone

C# 的 is 操作符关键字。Checks if an object is compatible with a given type. An is expression evaluates to true if the provided expression is non-null, and the provided object can be cast to the provided type without causing an exception to be thrown.

示例代码:

foreach (UIElement ctrl in this.ContentPanel.Children) {
    if (ctrl is TextBlock) {
        //TextBlock
    }
    else if (ctrl is TextBox) {
        //TextBox
    }
}

 

作者:黎波
博客:http://bobli.cnblogs.com/
日期:2012年3月14日

posted @ 2012-03-14 11:01 黎波 阅读(101) 评论(0) 编辑

精至手机药典iPhone版已经完成了第二版的开发和测试,正在等待AppStore的审批。已越狱的iPhone很快就能下载使用了。第二版加入了历史前进和后退导航,从历史打开页面,以及收藏和注释功能,大大提升了用户体验!

 

启动界面

主界面

 

药品目录

 

药品

 

药品相互作用

 

药物类别

 

药品搜索

 

相互作用搜索

 

用药指南

 

临床计算工具

 

诊断评估工具

 

收藏

历史

选项

使用帮助

 

官方网站:http://www.apocrest.com/

官方博客:http://blog.sina.com.cn/jzhmed

官方微博:http://weibo.com/wamuu

App Store:http://itunes.apple.com/cn/app/id490834552

 

作者:黎波
博客:http://bobli.cnblogs.com/
日期:2012年1月15日(2.0),2011年12月20日(1.0)
posted @ 2011-12-20 15:02 黎波 阅读(530) 评论(1) 编辑

1.判断字符串是否为空

if ([text lenght] == 0) {
    // empty string
}


2.字符串连接

NSString *str1 = @"str1";
NSString *str2 = @"str2";
NSString *result;

//方法1
result = [str1 stringByAppendingString:str2];
NSLog(result, nil);

//方法2
result = [NSString stringWithFormat:@"%@%@", str1, str2];
NSLog(result, nil);

//方法3
result = [@"" stringByAppendingFormat:@"%@%@", str1, str2];
NSLog(result, nil);

//方法4
NSMutableString *ms = [[NSMutableString alloc] init];
[ms appendString:str1];
[ms appendString:str2];
NSLog(ms, nil);
[ms release];
    
//结果都是:str1str2

 一般推荐使用方法1,如果需要大量字符串连接推荐使用方法4,需要更少的内存开销。

 

3.去除字符串首尾的空格和换行符

NSString *text = [textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

 

4.多行书写字符串常量

NSString *str1 = @"SELECT [CustomerID], [CustomerName] "
"FROM [Customer] "
"WHERE [CustomerID] = 1234";

NSString *str2 = @"SELECT [CustomerID], [CustomerName] \
FROM [Customer] \
WHERE [CustomerID] = 1234
";

NSLog(str1, nil);
NSLog(str2, nil);

//结果都是:SELECT [CustomerID], [CustomerName] FROM [Customer] WHERE [CustomerID] = 1234

注意字符串中每行结尾处的空格。这种字符串声明方式虽然看上去是多行,实际上字符串中并没有换行符,也就是说整个字符串实际上是一行。如果需要在字符串中换行,可以在字符串中加入换行符"\n"。这种声明方式一般用在需要在代码中多行显示字符串以便提高可读性,例如:SQL语句往往需要多行显示来提高可读性、较长的文本的段落之间需要分行显示以便更容易找到分段位置。

 

此文将不断更新...

 

作者:黎波
博客:http://bobli.cnblogs.com/
日期:2011年12月7日

posted @ 2011-12-07 12:29 黎波 阅读(602) 评论(0) 编辑

这是最近完成的一个iPhone app。《目标身高》根据各省的调查数据和身高遗传特点进行计算,来算算你家宝贝能长多高吧。

 

 


 

App Store

http://itunes.apple.com/cn/app/id478325161

 

作者:黎波
博客:http://bobli.cnblogs.com/
日期:2011年12月2日
posted @ 2011-12-02 17:40 黎波 阅读(206) 评论(1) 编辑

这是最近完成的一个Android App。目标身高根据各省的调查数据和身高遗传特点进行计算,来算算你家宝贝能长多高吧。

 

 

 

Android Market Page

https://play.google.com/store/apps/details?id=com.jingzhimed.targetheight

 

作者:黎波
博客:http://bobli.cnblogs.com/
日期:2011年12月2日
posted @ 2011-12-02 17:31 黎波 阅读(171) 评论(0) 编辑
摘要: 这几天遇到一个非常奇怪的问题,基于Xcode 4.2开发的app,导出的ipa安装包不能安装到iPod Touch 2上。Touch2固件版本是4.2.1,已越狱。iTunes、91手机助手、同步推试过了都不行。但是其他ipa文件可以成功安装到Touch2上。而Xcode 4.2生成的ipa包在iPhone 4、iPhone 3GS、iPod Touch 4都能安装成功并顺利运行,无论固件什么版本。初步分析的结果就是Xcode 4.2生成的app不支持Touch2。这几天找了一些朋友帮我测试ipa安装包,问一些有iOS开发经验的朋友,最终有个朋友提醒我Xcode 4.2中,Project-&g阅读全文
posted @ 2011-11-09 13:37 黎波 阅读(1306) 评论(1) 编辑
摘要: 今天在 Lion+Xcode 4.1 打开以前的项目出现 Expected declaration specifiers before 'interface' 错误,导致项目编译不通过,该项目之前在 Snow Leopard+Xcode 3.2.6 环境下编译正常。经过google找到解决方法如下:方法一:升级到 Xcode 4.2。方法二:修改所有 sqlite3.h 的引用路径#import "/usr/include/sqlite3.h"改成#import "sqlite3.h"原因是这两个头文件的版本不同,#import &quo阅读全文
posted @ 2011-09-26 11:37 黎波 阅读(635) 评论(0) 编辑
摘要: 转载说明:这是我在2010~2011年参与的一个项目,主要负责Windows Mobile端的应用程序开发。本项目的主要亮点是用户体验。为了在Windows Mobile平台上实现完美的用户体验,所有的界面元素都重新封装了特殊控件,并由控件所在的View统一绘图,从而兼顾了界面的美观与快速的反应。 腾讯汽车 原创报道组 2011年07月21日08:05[导读]家用汽车和智能手机都有着强劲的发展,但两者相互结合会有一个什么样的结果?看看上海安吉星手机应用程序来告诉我们如何玩转汽车的。用手机玩转汽车 体验安吉星手机应用程序家用汽车和智能手机都有着强劲的发展,但两者相互结合会有一个什么样的结果?看看阅读全文
posted @ 2011-09-24 09:51 黎波 阅读(544) 评论(0) 编辑
摘要: 今天在Lion下用Xcode 4.1做书上的练习,写了一个非常简单的app。View上面有1个Image View,2个Label,2个Text Field。我在Xcode将项目编译运行到iOS模拟器中,当我用iOS模拟器的软键盘输入几个英文字母后,Xcode调试器出现了 EXC_BAD_ACCESS 错误。同样的代码在Snow Leopard 10.6.8下的Xcode 3.2.6运行正常。所以绝非大多数人所遇到的release使用不当的问题。经过百度找到错误原因和解决方法,原因:Xcode 4.1的iOS 4.3模拟器的bug,解决方法:在模拟器通过设置Keyboard将Auto-Corr阅读全文
posted @ 2011-09-22 14:55 黎波 阅读(1298) 评论(1) 编辑
摘要: 刚完成了这个项目,Android版操作体验比之前发布的Windows Mobile版提升很多,支持语音搜索,加入更多的临床工具,还有注释和收藏功能!这是我的第一个Android作品,从Windows Mobile转向Android的体会是:开发语言非常相似;开发工具Eclipse性能比Visual Studio差很多;开发Android界面很舒服,都是基于XML的配置,iOS和WP7类似;Android的Java类库很强大;总体评价是先进很多,大大提供了开发效率!想想以前开发Windows Mobile界面那个叫痛苦啊!启动界面主界面药品目录药品药品相互作用 药物类别药品搜索语音搜索相互作用搜阅读全文
posted @ 2011-09-06 22:48 黎波 阅读(820) 评论(3) 编辑
摘要: ProGuard 是 Android 代码混淆工具,对于程序员保护自己的劳动成果非常有用,目前已经包含在 Android SDK 2.3 里面了。今天在配置好 ProGuard 使用 Export Android Application 时提示“conversion to Dalvik format failed with error 1”错误。网络上有人介绍将 SDK 降级到 r11 和修改 proguard.bat 两种方法,不过最彻底的方法是将 Android SDK 2.3 包含的 ProGuard v4.4 升级到 v4.6,就能彻底解决该问题。解决方法:从这里下载 ProGuard阅读全文
posted @ 2011-09-06 02:52 黎波 阅读(1664) 评论(3) 编辑
摘要: 今年上半年完成的一个项目,投入了很多心血,个人觉得是比较实用的医药查询工具。精至手机药典的用户群是医药专业学生/教师、医生、药房工作者、药品销售者、药监局工作人员。Windows Mobile版本已经发布正式版,Android版即将发布!主界面药品目录药品简介药品信息药品别名药品相互作用药品搜索药品相互作用搜索临床工具临床工具-用药指南临床工具-计算工具浏览历史官方网站:http://www.apocrest.com/官方博客:http://blog.sina.com.cn/jzhmed官方微博:http://weibo.com/wamuu作者:黎波博客:http://bobli.cnblog阅读全文
posted @ 2011-07-22 18:40 黎波 阅读(1008) 评论(1) 编辑
摘要: 字符串资源的定义文件路径:res/values/strings.xml字符串资源定义示例:<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="hello">Hello!</string></resources>字符串资源的调用 在 Layout XML 调用字符串资源:<TextViewandroid:layout_width="fill_parent"android:layout_阅读全文
posted @ 2011-06-04 23:58 黎波 阅读(2165) 评论(0) 编辑