代码改变世界

随笔分类 -  移动开发

AppStore模式,微软的机遇与挑战

2008-12-08 10:45 by cppguy, 743 阅读, 收藏, 编辑
摘要: 转自http://blog.chinaunix.net/u2/85805/showart_1662286.html 苹果CEO史蒂夫·乔布斯声称:在iPhone的App store “应用商店”推出后的前60天,其应用下载量已突破1亿次;面对苹果公司App store“软件应用商店”的成功,作为网络霸主的Google敏锐地意识到了App s... 阅读全文

.Net Comapct Framework的垃圾回收

2008-10-14 18:03 by cppguy, 713 阅读, 收藏, 编辑
摘要: 1:托管资源 什么是代龄:垃圾收集器将托管堆中的对象分为三代,分别为0,1,2.在CLR初始化时,会选择为三代设置不同的阙值容量,一般分配为:第0代大约为256KB,第一代2MB,第二代10MB。显然,容量越大效率越低,而GC收集器会自动调节其阙值容量来提升执行效率,第0代对象的回收效率肯定是最高的。在CLR初始化后,首先被添加到托管堆中的对象都被定为第0代,当垃圾回收执行时,未被回收的对象代龄将... 阅读全文

在 .NET Compact Framework 中宿主 ActiveX 控件(翻译)

2008-10-10 14:13 by cppguy, 1320 阅读, 收藏, 编辑
摘要: 使用AxImp.exe生成一个完整的控件类定义 能够最终获益当然好-按照VisualStudio在桌面计算机窗体项目中处理的方式处理ActiveX控件。您只需向工具栏添加一个控件,方法是浏览到该控件或从注册组件列表中选择它。虽然VisualStudio设计器主动阻止任何将ActiveX控件添加到设备项目的企图,但您可以避免该限制。与前面描述的方法(将TLBIMP工具用作添加对类型库引用的命令行功能... 阅读全文

.net compact framework下的绘图闪烁解决方案

2008-09-24 18:02 by cppguy, 1170 阅读, 收藏, 编辑
摘要: 1:缓冲贴图 //重新绘制的函数 void Redraw() { //直接从窗体取得Graphics Graphics g = this.CreateGraphics(); Redraw(g); g.Dispose(); } //缓冲图以及操作缓冲图所需要的设备上下文 Bitmap tempBitmap; Graphics tempGraphics; void Redraw(Graphics g... 阅读全文

Windows Mobile的设备控制行为DEMO:重起,获得系统内存大小,设置系统时间,获得系统唯一识别号DeviceID

2008-09-19 17:10 by cppguy, 1238 阅读, 收藏, 编辑
摘要: 今天要实现一个PPC自动重起的功能,搜了一下资料,在MSDN上发现了几个很好资料,把这些整合在一起做成了Demo,大家一起共享了 用 C# + dot NetCF 2.0 and later 的应用程序,通过 P/Invoke 去存取 Win32 API ,执行 KernalIoControl()进行重新启动,获得设备ID,还有通过GetSystemMemoryDivision获得系统内存,以及通... 阅读全文

.NETCF图形和用户界面性能(摘自《编写移动代码》)

2008-09-10 12:14 by cppguy, 1132 阅读, 收藏, 编辑
摘要: 好看的图形如同一件设计完美的艺术品一样:这意味着技术和设计是同等重要的。在一个屏幕上画一个单个举行或者一个单一的文本片段将运行足够快。在视觉屏幕取画一个复杂的图形或者一个“正在飞行”的游戏图板很可能会导致质量很差的用户体验。考虑一下画复杂的图标实例需要用1.5秒时间的情况,这个时间超出了人的最小反应时间,人的视力可以识别在这个时间间隔内发生的离散事件。比如画一个图标,绘制过... 阅读全文

自做的windows mobile地图控件

2008-08-28 18:05 by cppguy, 4754 阅读, 收藏, 编辑
摘要: 在移动应用方面,地图导航是普遍的要求,系统常常要和GPS整合在一起,并且要支持多种地图格式,除了jpeg,jpg,bmp等图片格式外,带有相关地理数据的mapInfo,ArgGis,AutoDesk等公司地图格式也是被期望兼容的。可是要做到后一点真的很难。就算使用了MapInfo mobileX,其他公司的格式也是不兼容的。 而自己编写的话,相应文件的解码器更是没有。地图引擎应该如何选择是决定于这... 阅读全文

推荐大家一个WM上的注册表查看工具

2008-08-27 18:00 by cppguy, 1303 阅读, 收藏, 编辑
摘要: WM永远脱离不了windows家族,所以注册表肯定少不了的,发现一个不错的注册表查看工具,查看移动设备与桌面的差不多,还有一些比较功能,挺实用的 RegistyWorkShop 阅读全文

绘制一个三角形和判断一个点是否在这个三角形中

2008-08-27 12:37 by cppguy, 763 阅读, 收藏, 编辑
摘要: 在CF下要实现一些图形的显示,矩形和圆都有现成的绘制函数,如果要绘制多边形,我们可以使用FillPolygon来绘制,这里我实现了一个绘制等边三角形的demo 程序中输入中线与屏幕坐标系Y轴的偏角,点击绘制,如图。 另外一个比较有意思的问题是,绘制了这个区域,怎么辨别某点是在这个区域中的,这里也有实现,具体办法是首先判断这个点与A点(起始绘制点)的距离看是否大于边长,然后判定角度是否在张角范围之... 阅读全文

WM下的数据业务拨号

2008-08-01 15:52 by cppguy, 1365 阅读, 收藏, 编辑
摘要: WM下的很多应用是需要动态的拨号建立与Internet的连接,G网一般会启用GPRS,C网启用CDMA的数据服务,如果应用过移动msn,移动QQ,Fetion,手机大头等其他手机IM软件的用户来说,基于Windowsmobile的版本,都会有自动数据拨号连接的功能,本人认为手机大头是做的比较优秀和稳定的,它会识别出现有的wap或者net网络连接,并有自己的默认连接选项,这样普通用户就不用通过连接管... 阅读全文

Iphone也支持MicroSoft的ActiveSync‏

2008-07-16 21:19 by cppguy, 727 阅读, 收藏, 编辑
摘要: Iphone 3G版已经支持ActiveSync,把其作为数据交换的一种服务。在微软Teamblog上,Adam Glick, 微软标准通讯组的一位技术经理, 也强调了iphone对ActiveSync的支持:“If you’ve not heard; Apple released iPhone 2.0 today which includes a software upd... 阅读全文

手机要求安装NETCFv35.Messages.zh-CHS.cab,怎么办

2008-07-16 12:18 by cppguy, 13938 阅读, 收藏, 编辑
摘要: 可能也有人遇到相同的问题,我们的产品在打包发布的时候突然报出了"要求安装NETCFv35.Messages.dll"的错误.但是在经常调试的手机里,却没有这种问题. 在网上搜了很久,终于找到http://simonrhart.blogspot.com/2008/02/netcfv35messages-is-new-systemsr.html 翻译如下: 在VS2008和.NET CF 3.5,NE... 阅读全文

WM下的MMS开发

2008-06-27 17:00 by cppguy, 1816 阅读, 收藏, 编辑
摘要: 彩信是多媒体信息服务(即MMS,它是Multimedia Messaging Service的缩写)业务,它最大的特色就是支持多媒体功能,能够传递功能全面的内容和信息,这些信息包括文字、图像、声音、数据等各种多媒体格式的信息. 这里我们主要讨论一下在.net cf下发送MMS的实现过程 首先我们要先讨论一下SMS与MMS的不同。除了发送接收内容比如图片铃声等多媒体内容的不同,最终要的是他们俩经过的... 阅读全文

Windows mobile挣扎在后盖茨时代

2008-06-25 18:03 by cppguy, 3333 阅读, 收藏, 编辑
摘要: 做为一个WM的开发者,应用开发WM已经有两三年了,而这两三年也是智能OS在相互博弈的激烈争斗时期,WM在智能手机的占有量虽然在稳步提升,但这段时期的一系列变化却让人觉得WM在智能手机上,有被边缘化甚至克死的威胁。 来自Mac,iphone从它的横空出世就决定了它不是平凡的产品,极具创新性的手机应用改变的不但是人们的使用习惯,更是对iphone之于手机的革新,原来手机是可以这样的,而相对于WM来说,... 阅读全文

再说cf下的非全屏窗体

2008-06-25 16:46 by cppguy, 1700 阅读, 收藏, 编辑
摘要: 之前写过一篇是通过底层调用来创建移动的非全屏窗体http://www.cnblogs.com/abob/archive/2008/01/11/1035285.html,如果不需要移动的话,cf是可以实现的: 几个关键性的属性设置 this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.ClientSize = new ... 阅读全文

自作的WM文件浏览器

2008-06-25 16:38 by cppguy, 1210 阅读, 收藏, 编辑
摘要: MS提供的openfileDialog实在无法让人忍受,自己做了这个,简单了点,不过还实用。源码:http://www.cnblogs.com/Files/abob/FileExplorer.rar 阅读全文

替换掉.net cf下的Toolbar这种垃圾控件

2008-06-24 18:19 by cppguy, 793 阅读, 收藏, 编辑
摘要: MS把ToolBar做成这样我感到莫名其妙,很明显是桌面版的精简,但是放在手机上真的不怎么样。 1:toolbar下的button分为了四种类型,其中的separator竟然是分割线,另外3种,ToggleButton弹出菜单,在右侧弄了个箭头,按button不弹出菜单,按箭头才弹出。dropdownbutton更是没用的style。 2:toolbar永远驻留在下侧,缺少灵活性,而且连大小都不让... 阅读全文

浅谈WM设备单手操作的解决方案

2008-06-23 14:40 by cppguy, 504 阅读, 收藏, 编辑
摘要: 移动应用的一个重要特征是决定使用单手操作还是使用双手操作。通常情况下,这个选择与应用的移动设备硬件选择相关联。 例如,如果应用打算在只能电话上运行,你必须将单手操作做为特定的设备和测试目标牢记在心。与这个决定过程相反的情况是:如果你的应用使用场景要求单手操作,你应该选择一个设备,该设备是针对单手使用模式的。单手操作意味着用握着设备的手操作应用导航和进行信息的输入。 好的单手使用设计需要对目标移动电... 阅读全文

使用RAPI对WM与PC进行同步通讯

2008-06-23 14:08 by cppguy, 1142 阅读, 收藏, 编辑
摘要: 在WM设备中,对象存储是永久的安装好的RAM存储区域,它包含了内置的文件系统,系统注册表信息和属性数据库,这些存储不仅可获得,而且,RAPI也使我们可以访问安装文件系统支持的可移动SD卡,职能媒体卡,硬盘驱动,等等。大多数的RAPI函数提供了对移动设备对象存储和移动设备短的文件系统的访问。 举个例子,你能打开一个文件,拷贝它的一部分内容或者全部内容从移动设备传送到桌面系统。你能打开系统注册表并创建... 阅读全文

windows mobile下的程序托盘

2008-06-20 17:14 by cppguy, 1945 阅读, 收藏, 编辑
摘要: windows mobile操作系统,大家在使用的时候也发现有很多不方便的地方,比如说,在操作某个应用程序的时候,不小心碰到了别的按键,应用程序就最小化了,如果我们要回到应用程序,往往是到设置-程序中激活程序,或者找到程序中的快捷方式重新点击,那在WM下有没有类似于windows下最小化窗口的托盘呢。有的,Opennetcf给我们提供了NotifyIcon 只要把它拖入我们的主窗口,并相应点击事件... 阅读全文