05 2011 档案
摘要:字符串比较: 结果string1 = string2 string1等于string2:True, 否则Falsestring1 != string2 string1等于string2:False, 否则True-n stringstring不等于null时:True,否则False-z stringstring等于null时:True,否则False算术比较结果expression1 -eq expression2 表达式相等:True,否则Falseexpression1 -ne expression2 表达式不相等:True,否则Falseexpression1 -gt expressi
阅读全文
摘要:Linux应用程序有两种特殊类型的文件:可执行文件(executables)和脚本(scripts)可执行文件是能够被操作系统直接执行的程序,它们相当于Windows 的.exe文件;脚本是需要另一个程序来解释执行的指令的集合,它们相当于Windwos的.bat或.cmb文件、或者是被解释执行的Basic程序
阅读全文
摘要:Unix操作系统以及以后的Linux系统鼓励的一些编程风格:1.简单:大多数常用的Unix工具都是很简单的,并且很短小而且容易理解。2.聚焦(关注一点):通常一个执行单一任务的程序要比包含了很多功能的程序要好,拥有大而全功能的程序难已使用并且难以维护。3.可复用的组件:要是应用程序的核心成为有效的类库,一个好的类库应该拥有简单而灵活的编程接口。4.过滤器:很多的Unix程序能够作为过滤器来使用,也就是说,给它们传入输入,它们就能产生输出。5.开放的文件格式:大多数成功和流行的Unix程序都使用纯ASCII 文本或XML作为配置文件或数据文件。6.灵活性:我们不能准确的预知用户会怎样来使用我们的
阅读全文
摘要:代码下载 www.imobilebbs.com/download/android/AndroidGraphics2DTutorial.zipAndroid 简明开发教程使用了引路蜂二维图形库作为例子,引路蜂二维图形库是引路蜂地图开发包一部分,引路蜂地图开发包提供了对几乎所有软件平台(桌面和移动平台)的支持,采用统一的接口使用包括Google 地图,Bing地图,MapABC地图在内多达二十多种地图类型,并在同一开发包中支持离线地图,矢量地图显示。引路蜂地图开发包Android平台示例可以参见http://www.imobilebbs.com/wordpress/?page_id=15引路蜂二维
阅读全文
摘要:在前面的例子中,我们忽略了一个重要的原则,在代码和Layout中,直接使用了字符串常量,比如:<Button android:text=”Pattern”android:id=”@+id/btnPattern”android:layout_width=”wrap_content”android:textColor=”@color/black”android:checked=”true”android:layout_height=”wrap_content”></Button>我们直接定义Button的显示内容为“Pattern”。如果你想你的应用支持多种设备,多种语言,
阅读全文
摘要:到这里基本介绍了Android开发的一些基本知识,在开发实际应用时最常用的几个参考是:The Developer’s GuideAndroid ReferencesAndroid Resources最后一个是Google.com :-)写好应用后,在设备上测试后,最后一步是发布你的应用。和Java ME平台类似的,Android应用也需要进行数字签名后才能发布。但和Java ME不同的,Android用来签名的数字证书并不需要经过CA认证,这可以每年省下$400-$500的费用,iPhone 每年需交$100费用。Android平台开发对于开发者来说是投资最小的,从长远看也是最有发展前途的一个
阅读全文
摘要:在例子Android简明开发教程十七:Dialog 显示图像 中我们留了一个例子DrawMap()没有实现,这个例子显示在线地图,目前大部分地图服务器都是将地图以图片存储以提高响应速度。 一般大小为256X256个像素。具体可以参见离线地图下载方法解析。比如: URL http://www.mapdigit.com/guidebeemap/maptile.php?type=MICROSOFTMAP&x=7&y=4&z=14 显示:下面的例子访问Internet下载地图图片,并拼接成地图显示,这种方法也是引路蜂地图开发包实现的一个基本原则。Android应用访问Inter
阅读全文
摘要:Android 中BroadCast Receiver可以用来侦听广播事件。在使用Broadcast 之前,必须使用代码或是在AndroidManifest.xml进行注册。下面的例子实现使用短信来触发AndroidGraphics2DTutorial中的示例。短信格式为:@demo:xxxx ,xxxx为 示例名称,比如, 启动Colors示例, 则向手机发送: @demo:Colors . 手机在收到短信后,先检测短信格式是否符合 @demo:xxxx, 若符合,这启动对应的示例。在AndroidGraphics2DTutorial中添加一个自定义的Broadcast Receiver S
阅读全文
摘要:Android中使用线程Thread的方法和Java SE相同。和大多数OS系统一样,Android中也有称为UI Thread的主线程。UI Thread 主要用来给相应的Widget分发消息,包括绘制(Drawing)事件。UI Thread 也是用来处理用户交互事件的线程。比如:如果你按下屏幕上某个按钮,UI 线程则将Touch 事件通知对应的控件(Widgets),Widget 则将其状态设置成“按下”,并把“重绘”(Invalidate)事件发到Event Queue中去。 UI线程从Event Queue中读取事件后通知Widgets重画自身。如果你的应用设计不好的话, UI线程的
阅读全文
摘要:Android自带的AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog 可以用于简单的对话框显示。当还是有这些对话框不能满足应用需要的时候,这时就可以使用一些自定义的对话框。有多种方法可以实现自定义对话框。一是使用Activity作为Dialog,可以通过设置Activity显示Dialog风格,使得该Activity在外观上和Dialog一致:显示在其它Activity前面且半透明。<Activity android:name=”MyDialogActivity” Android:theme=”@android:st
阅读全文
摘要:Dialog一般指可以显示在Activity前面的小窗口,当前的Activity失去焦点(Focus),Dialog将接受用户输入,一般可以用来显示消息或接受用户输入等等。使用Dialog时一般不需要直接创建Dialog类的实例。而是可以使用AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog。最常用的是AlertDialog。下面就以使用AlertDialog为例,使用AlertDialog来选择显示图像的三个例子:DrawMap, JumbleImage,SeeThroughImage。其中DrawMap暂时不介绍,将在后
阅读全文
摘要:将RadioButton 换成Button ,类似的在res/layout 中新建brush.xml:<?xml version=”1.0″ encoding=”utf-8″?><LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:orientation=”vertical” android:background=”@drawable/white”android:layout_width=”fill_parent”android:layout_height=”fill_
阅读全文
摘要:这个例子是绘制多边形,多义形和路径,采用单选钮RadioButton来选择Polys 和Path示例:UI 设计为 上部分用来显示绘图内容,下部分为两个单选按钮 Polys ,Path。这样layout就和main.xml 不一样,main.xml只含一个com.pstreets.graphics2d.GuidebeeGraphics2DView。因此需在res/layout下新建一个polys.xml:<?xml version=”1.0″ encoding=”utf-8″?><LinearLayout xmlns:android=”http://schemas.andro
阅读全文
摘要:系统下面许多设备,比如键盘,串口,触摸屏,硬盘......这些设备什么时候被系统使用的?这些设备怎样被系统使用的?加载过程是怎么样的?设备如何加入系统协同工作的?为什么系统能检测到并使用即插即用的设备(如usb鼠标)?系统是怎么控制设备的电源的?CE管理设备的程序叫做DEVICE.EXE,这是一个独立的用户级进程,它主要负责跟踪,维护系统的设备信息并对设备资源进行调配.设备管理器包括即插即用设备管理,电源管理,io资源管理等等.结构示意图:目录树:c:/WINCE500/PRIVATE/WINCEOS/COREOS/DEVICE/[DEVCORE]设备管理器的核心代码部分.Devapi.cDe
阅读全文
摘要:设备管理器架构----Windows Embedded CE 6.0 R3原文:http://msdn.microsoft.com/en-us/library/ee484004(v=WinEmbedded.60).aspx设备管理器运行在Windows Embedded CE操作系统下,跟踪加载的驱动及其接口。它从内核中启动,并持续运行。当设备接口变的可用或不可用时,设备管理器能够通知用户。用户,或者系统本身可以让设备接口变的可用或不可用。对于那些暴露了流接口(stream interface)的设备接口,设备管理器会通知内核该设备接口支持CreateFile之类的文件操作来访问设备。设备管理
阅读全文
摘要:函数CHub::IdentifyOTGDevice中对m_bOtgDescriptor进行赋值 m_bOtgDescriptor = m_bOtgDesc[2];函数CDevice::CreateUsbConfigurationStructure中对m_bOtgDesc进行了赋值: //identify the OTG descriptor memset((PVOID)&m_bOtgDesc[0], 0, 3); memcpy((PVOID)&m_bOtgDesc[0], pDataBuffer + offset, 3);函数CHub::GetOtgDescriptor返回m_
阅读全文
摘要:函数OTGHNP_Init中调用了函数UsbSocHnpInit。 UsbSocHnpInit(dwHnpRegBase, fLegacyHost);函数UsbSocHnpInit中对全局变量g_dwHnpRegBase进行赋值。 g_dwHnpRegBase = dwHnpRegBase;函数OTGHNP_IsADevice调用了函数UsbSocHnpIsADevice。函数UsbSocHnpIsADevice使用宏READ_HNPREG_ULONG读取数据: dwData = READ_HNPREG_ULONG(OTG_OTGSC_OFFSET); // 然后判断设备是否为A de...
阅读全文
摘要:wince usb驱动中的CHub::AttachDevice函数函数CHub::AttachDevice在HubStatusChangeThread中被调用。当有设备插入的时候,该函数被调用。函数的注释如下:// This function is called when a new device is attached// on port "port". After this procedure finishes, a configured// device will be added to the hub's port array该函数中,通过一个循环,判断当前
阅读全文