您的位置:首页 > 其它

windows Mobile 软件开发入门小结

2013-02-02 13:15 232 查看
前两天回家了,闲来无事。想起某同学曾抱怨自己的windows mobile系统连看pm2.5的软件都下不到,就做了一个wm上的监视“空气质量指数”的小软件。

找不到wm的真机、之前也没接触过智能手机开发,只好全凭意念了。。

网上查了wm开发的资料,vm的应用分为托管(用.net framework)和原生(用VC)两种,没有怎么接触过VC,于是用托管吧,执行效率差一点,但是开发方便。

如下是这两天工作的小结。

[转载引用请注明原文:/article/7712995.html]

1. 安装开发环境

操作系统windows 7 sp1 32位旗舰版

需要安装的软件是Visual studio2008(我的win7装不上vs2010...)和Microsoft Virtual PC。如果需要在PC和仿真器之间同步数据的话,还需要安装Microsoft ActiveSync,但是这个在win7上貌似不太好装。

vs我装的是中文专业版

Virtual PC的下载地址是http://www.microsoft.com/en-us/download/details.aspx?id=4580

2. 设置仿真器

打开vs,菜单栏->工具->设备仿真器管理器



右击需要的仿真器,选择“连接”打开仿真器,在仿真器的菜单栏->文件->配置



在常规选项卡下的共享文件夹可以设置为win7上的一个目录,这样在仿真器中的资源管理器->sd card中就可以看到这个目录下的文件夹了。



在网络选项卡中选择“启用NE2000 PCMCIA网络适配器并绑定到”并将下面的下拉框选择到当前win7上网的那个网络或者“连接的网卡”,点击确定。

在仿真器的wm中,开始->设置->连接->网卡,在“我的网卡连接到”中选择“默认Internet设置”,在下方选择“NE2000兼容Ethernet驱动程序”设置ip和dns,一路ok,然后点击仿真器菜单栏->文件->保存状态并退出。

重新打开仿真器,应该就可以上网了,参考http://www.weste.net/2009/6-19/1527076726.html

3. 开发程序

打开vs,菜单栏->文件->新建->项目->Visual C#->智能设备->智能设备项目,之后就和开发普通的windows form程序一样了,.net framework最好选择2.0,因为高版本的在低版本的windows mobile系统中不支持。



写好后,启动调试,选择刚才配置好的那个仿真器,然后就会将开发的程序部署到仿真器中进行调试,仿真器的速度稍微有点慢。

4. http访问

在托管方式下,让wm访问http、获取站点返回的html内容并处理,可以用WebRequest,在System.Net中。示例如下:
try
{
string url = urlBase + city;
WebRequest req = WebRequest.Create(url);
WebResponse result = req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();

//read the stream into a string
StreamReader sr = new StreamReader(ReceiveStream);
sr.ReadLine();
label_City.Text = sr.ReadLine();
label_AQI.Text = sr.ReadLine();
int aqi = Int32.Parse(label_AQI.Text);
if (aqi <= 0)
{
label_AQI.Text = "--";
}
label_AQI.ForeColor = Common.getGradeColor(aqi);
label_Grade.Text = Common.getGrade(aqi);
label_GradeName.Text = Common.getGradeName(aqi);
label_PM25H.Text = sr.ReadLine();
label_PM25D.Text = sr.ReadLine();
int stationNum = Int32.Parse(sr.ReadLine());
Common.stationDataList.Clear();
while ((stationNum--) > 0)
{
StationData data = new StationData();
data.setStationName(sr.ReadLine());
data.setAQI(Int32.Parse(sr.ReadLine()));
data.setPm25h(Double.Parse(sr.ReadLine()));
data.setPm25d(Double.Parse(sr.ReadLine()));
Common.stationDataList.Add(data);
}
label_MaxTemp.Text = sr.ReadLine();
label_MinTemp.Text = sr.ReadLine();
label_Weather.Text = sr.ReadLine();
sr.ReadLine();
label_Tips.Text = sr.ReadLine();
if (result != null)
{
result.Close();
}
}
catch (Exception e)
{
MessageBox.Show("服务器暂无响应:" + e.Message);
}


5. 在手机上使用程序

生成后,在vs工程目录下的bin/debug下的exe文件可以直接在手机上运行,如果需要可以建一个智能设备CAB工程、制作安装包,但是折腾了一下没有成功,暂时作罢。
[转载引用请注明原文:/article/7712995.html]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: