showcase
版主
积分:203

OpenFace技术交流(第四轮:2008-08-08)

OpenFace技术交流(第四轮:2008-08-08)

以下是技术交流所讨论的问题:
1) 关于内存、翻页等问题
开发者 :我在写一个和你们给的新闻类似的代码,在你们的帮助过程中,新闻的条目已经可以实现翻页,所以有很多条新闻。 我在给新闻添加内荣过程中,在模拟器上显示的是空白,手机上提示内存不足,后来发现是新闻内容只要超过40多个字就会显示不出来 ,这到底是怎么回事,如果内容只能显示这点字那是根本不行的。
请问如何解决。
Openface:
1、 对文本来说,超过40个肯定是没有问题的。
2、 内存是否够用取决的因素比较多,所以我在这里把哪些东西要消耗内存大概说一下,以便大家理解,我们的这个平台上,对应用来说,内存分两个部分占用:java代码和js代码,这两个部分的是独立的,其它比如显示什么的,不算在这两个里面,大家先不用考虑,大家编写一个Lzx应用时,尽管没有使用java代码,但是编译后的目标代码是需要使用java代码的,所以每个人写的应用都有可能导致Java或者javascript内存不够的情况。关于而对于XMLHttpRequest对象或者直接用dataset请求的数据源,当请求后,这些数据就成了应用的一部分,因此也要占用内存,更准确的说,这些XML数据就成了DOM tree保存到了Javascript或者Java的内存空间里。一般来说,Java占的内存大小主要取决于你创建的XML元素的个数,包括动态创建的,而Javascirpt占的内存大小除了取决于创建的XML元素的个数外,还和应用中使用Javascript有关。静态重用比较好,动态生成涉及到平台要多次进行垃圾回收的问题,
3、 我现在不需要处理很大的应用,只需要处理一般大小的应用。大小都是相对的,当然对于同样的东西,平台需要耗多少内存,这是平台的一个问题。

开发者:如果一个代码多多的,而图片比较多的应用超过了4兆 ,会不会出现内存问题?
Openace:图片不是一次都显示应该是可以的,我无法严格判断,因为之前我说到那些。只能是大家在使用时去理解,但是图片要占内存这个是肯定的,因为图片要占内存比较容易理解,所以我没有着重说,图片占内存的大小就和图片本身的大小有关。

开发者:openface是不是不能运行太大的程序?
Openace:是的,基于内存原因,没有哪个平台可以运行超过它能容纳的东西,主要是这个大小的比较。你看其他手机上运行的java 应用一般也不是太大。

开发者:您是说只要一张一张显示,不管多少张都能显示?
Openace:基本上可以这样理解,但是你别搞一张十几M的图片,这样即使是一张也显示不了。

2)关于数据集里的数据清除等:
开发者:那如何清除?
Openface:应该说一次不能,这个不需要开放人员清除,系统会在垃圾回收时判断。但是你要确保垃圾回收时这个东西确实是不被使用的。对于一个文本信息很大的应用 采用数据集形式容易导致内存不足。

开发者:那能不能把数据放在外面 ,等调用时再拿进来?
Openface:当然可以。

开发者:怎么实现?
Openface:那dom不适合在openface里处理xml吗?
使用XMLHttpRequest对象就是利用dom 处理xml。

3)关于手机测试:
开发者:那要是做连接互联网的应用,在手机上怎么测试?
Openface:实现的方式有两种:1、就是许同学在做那个应用中使用的dataset的setsrc和doRequest方法,2、是直接使用javascript中的XMLHttpRequest对象。这两种方法都是动态请求,当然其实还有一种方法,就是保存在数据库中,但是目前的版本不支持。

开发者:不支持怎么保存?
Openface:目前的版本上dataset这块的问题确实比较多,所以建议大家如果dataset不好解决,就使用XMLHttpRequest对象。当然这个对象使用没有dataset方便,在下一个版本中我们对dataset发现的一些已有问题做了一些解决,这个版本计划在近期发布,目前还在测试中。

开发者:连接互联网的应用在手机上也要测试吗?显然一些在本地做的处理是没办法用的把,那些应用只要在模拟器上测试完成就可以提交吗?但是手机和模拟器还是有很大差别的,这该怎么解决啊?
Openface:我觉得你们如果没有这个环境,那么肯定是无法做这样的测试。但是做几个工作会保障模拟器和手机上的效果基本一致。1、理解手机上http请求的和模拟器上http请求的区别;2、模拟器的内存适当小些。其实呢,后台处理也是应用开发的一部分。手机上Http请求和模拟器上请求的区别是:网络链路不同,在模拟器上你访问本机是很自然的事情。在手机上客户端要能成功连接到服务器,需要服务器是一个公网地址。

开发者:可这个怎么配置?
Openface:其实这个区别也不是很大,主要是大家以往没有web开发的经验开始就不知道这个区别了,这个基本无法配置,如果你没有网络环境的话,所以大家在文档中要说明。还有一种方式是把你们的服务器端代码给我们,我们给你们一个环境。

开发者:参数要改那些?该多少?区别具体在那些地方?
Openface:memory-size 设置到7、8M左右

4)关于显示问题:
开发者:还有一个问题 那个新闻内容如果比较多的话 一屏显示不完的话 采用什么方式解决?
Openface:最简单的方式就是用一个自动换行的text。然后设置上层view clip=true

5)关于地址:
开发者:setSource()方法,里面的参数可以是一个图片的网络地址吗?怎么在模拟器里提取不到照片,在openlaszlo里可以提取?
Openface:是一个网络地址,或者相对地址,应该是本地地址。

开发者:这个地址可以吗?www.iphoneinvestigator.com/.../2008/04/rss.jpg?
Openface:前面有HTTP的,应该是可以的。
可有时候在模拟器里就是带不开的
也不排除是我们的一个bug,我不能确定,也许你可以做一个case给我看看,而你说是有时。