这篇文章是我发布在我的另外一个blog上的,http://wuhua.3geye.net
中国手机浏览器之战--初稿中国流行手机浏览介绍
声明,本文原创,所以错别字特多。请见谅。
此文的URL是:
写这篇文章,让我想起了PC上的 IE与Netscape Navigator的浏览器大战, IE与Firefox相斗。想来在PC上的浏览器现在是IE与FF主宰者这个世界
相信在很长一段时间,他们都会共同存在的。
上的的事情都是过去了。现在要说的才刚刚开始,先罗列下现在流行的手机浏览器吧。
1. 手机自带浏览器
2. UCWEB -- 最新版本5.1 网址 http://www.ucweb.com/download.shtml
3. 航海家 -- 1.5.2版 sis 下载网址 http://3gtb.com:4080/tvoy/
4. operamini -- 最新版本4.0 bate3 网址 http://www.operamini.com/beta/
5. TeaShark -- 最新版3.2 网址http://www.teashark.com/
6. TSunami 比较不出名
7. 手机qq也自带了一个浏览器,其他一些SP,游戏厂商也开发了自己内部的浏览器,不过这些在中国几乎没什么影响厉害,就不讨论了
8. firefox mobile -- 传闻要出手机浏览器了。让我们拭目以待吧
9. Google -- 你说移动这块蛋糕能让你们独吃吗?比如Google Gmail for J2me, Google Map for j2me。这些都是刚刚开始
一。手机自动浏览器
手机自动浏览器在手机操作系统封闭时代对用户来说是上网的唯一选择。说说自带浏览器的优势吧
1. 与操作系统紧密结合,可以直接访问一下底层的API,比如可以通过网页打电话,下载图片,下载文件,发短信等。浏览模式完全跟
本机的UI一致。不过现在来说也变成了劣势了,表现形式单一,跳动元素太少
2. 出厂默认安装。省去自己找软件,下载软件,安装软件等麻烦事情,这也是最大的自动浏览器的优势。不过这些优势
也慢慢的消失了。因为现在很多浏览器厂商跟手机厂商进行合作。所以个人认为自动浏览器时代将会慢慢的消失。
下面是劣势,这些劣势足以说明了,现在其他非自带浏览器的生存空间,你说他妈会不会取代自带浏览器了,这就要拭目以待了
1. 操作各异,因为手机平台的按键处理各异,所以也导致了手机自带浏览器在浏览网页以及操作软件的时候方式不同,
这点在非自动浏览器中就有很大的发挥空间了,他们可以实现统一的按键处理,或者是尽量统一的处理以减少用户
的麻烦。
2. 显示效果不统一,有些手机屏幕大小不同,因此导致了浏览器实现机制不同,比如有些<center/>等标签就没有实现居中效果
这点对于非自带来说就有很大的发展空间,比如,我可以实现对UI的可配置,具有在各个平台下有统一的表现效果,用户也可以
定制
3. 一些增值服务。这东西很重要,也是非自带浏览器的杀手锏。里可以提供一下个性话的服务是,自带浏览器没办法比的,比如网
站导航,书签功能,天气预报,我的空间等web2.0的元素。这些元素也是非自动浏览器能成功的主要原因。
4. 还有没有其他的呢,比如。。。。。浏览我的读者朋友吧
下面我们来分析下那个浏览器能够在这场战争中胜出
主推国产品牌UCWEB,个人比较看好这东西。
先看看他们的自我介绍吧
图片智能优化显示,支持多达5种的用户自定义图片显示模式——用户可以选择“无图”“微缩”“低彩”“标准”“全彩”等5种显示模式,并支持图片的放大显示,方便用户根据需要来调整、配合网页打开的速度、欣赏美图。
以下图片是新浪新闻页面在手机上和在PC上的浏览效果对比。
使用UCWEB专有的动态网页过滤和优化技术,智能的将互联网上的页面进行过滤和优化,有效缩减了页面大小,降低了实际传输的数据量。这样不但加快了浏览速度,同时也可对浏览的版面进行智能编排,使用户可以更便利,轻松地浏览。
下载了需要的文件却无法打开,读不了?用UCWEB解决吧。UCWEB支持多格式文件阅读,如DOC、PDF、XLS、PPT、EML等,满足你手机阅读的体验。拥有UCWEB,你就可以下载多种格式的文件了,赶快来吧。
使用UCWEB专有的动态网页过滤和优化技术,智能的将互联网上的页面进行过滤和优化,有效缩减了页面大小,降低了实际传输的数据量。这样不但加快了浏览速度,同时也可对浏览的版面进行智能编排,使用户可以更便利,轻松地浏览。
为无法同时浏览多个页面而甚感不便? UCWEB 对智能机提供了多窗口浏览网页的功能,最多可以同时打开10个窗口!使用“窗口”菜单项管理多个窗口,包括顺序切换窗口、新建空白窗口,选中链接后打开新窗口、关闭当前窗口、关闭当前窗口以外的其它窗口等等功能。同时,您可以使用手机键盘上的“3”键快速切 换多个窗口。对于UIQ版本,您还可以使用UCWEB下方工具栏最右边的按钮快速切换多个窗口。Java版本提供了双窗口浏览功能。
UCWEB是基于Java及智能手机的web、wap网页浏览器,通过中国移动cmnet和cmwap访问互联网。它支持标准的html与wml格式文档的读取,以及大部分的JavaScript网页脚本, 同时对下载的内容和图片可以进行优化、压缩和定制。
本人使用这东西也有段时间,总体给人感觉是
1. 界面清晰,操作性强
2. 浏览器定义清晰,我就是做浏览器的,而且还比较懂中国国情,在首页的页面布局,内置的网站导航我特别喜欢
有点像好123, 至于邮件,rss,网盘,我没怎么用过,不过想来也是个很有吸引力的东西。
3. 浏览速度强,因为是采用C/S模式,所以这方面要比自带的解释wml速度要快,而且流量更小。
4. 内置搜索。这东西也不错,可以浏览html,我特别喜欢
5. 没有发现的功能:
1. 我能不能选中一段文字,然后有这样的按钮,1,发短信,2, 发彩信等
2. 其他
根据用户体验,我感觉此浏览器胜出的理由
1. 它比国外浏览器,更懂中国国情,更了解中国上网用户
2. 它比较专注,因为专注才可以成功
3. 已经获取了风险投资。实力是国内现在最强的。
4. 已经跟比较多Wap门户进行了合作,看他的导航网站,以及出了相当多的双品牌浏览器就知道,他们公司的外交能力
在这方面国内的竞争对手是:航海家。
国外的竞争对手:opera mini,也是最强的对手 TeaShark也是要引起注意
opera mini
出自一个老牌的挪威浏览器,产品包括PC, MOBILE。PC上的就不说了,
opera mini现在已经推出了第4版了。这个版本给我的最大的惊喜是,可以采用缩放模式浏览html,简直就是太神奇了。
读者可以下载来玩下。也再次证明了opera mini的实力
它也采用C/S 模式,所以在速度上。流量上跟UCWEB很像,不过有点敢肯定的是,这东西不支持CNWAP上网,速度也要慢UCWEB
因为它的服务器不在中国。像上次,海底光纤坏了的时候,国内用户就上不了网.
在首页上,Opera也做的很不错。不过感觉就是缺少了导航的功能,其他的倒也没什么,
综上所述,opera mini的优势是,在技术上很有优势,毕竟做了好多年的浏览器,有很足的底气了。在页面排版,UI上吧表现
的更加不错。色彩搭配也可以,不过我不喜欢太鲜艳的。还是喜欢UCWEB的配色
它的劣势也不小,不懂中国国庆,在国内合作的伙伴少,发现(空中网有跟它合作)。
对于航海家,感觉技术,市场能力比上面的公司要差很多。
海航家的最另外感到新奇的是,提出了预读功能,这样在手机上网来说确实是一个不错的功能。速度快,不过这些已经没什么优势了
感觉,行家家在众多浏览器中对wml的解释支持应该是最好的。速度最快的。哈哈,不过界面做的不怎么样
因为没有找到比较多的资料,这里就不说了。
从个人使用的角度上来看 航海家不然UCWEB
不过我用的版本还只是可以浏览Wap页面,不支持HTML,听说他们现在埋头苦干准备出新版哦。我们等等看吧,也许有新特性哦。
TeaShark
一个可以号称可以跟operamini竞争的东西。使用了下发现有下面优点
1. 界面个人感觉比operamini做的好。
2. 可以按照html的模式展现普通的网页。不过感觉有点慢了。
3. 其他的没感觉到。基本差不多,不过有个东西就是存在一个虚拟鼠标,看来国外的技术切实是很牛啊
4. 虽然实现的很炫,但是以目前的移动设备,以及网络来说,不是很适合中国用户,只是随便玩下就可以了。
5. 联网速度慢,操作反应慢。
6. 不了解中国国情。
其他的浏览器就不做详细说明了,可以到官方网站看看de
Firefox mobile 相信还有段时间才出。我特别喜欢Firefox PC浏览器,相信Mobile也是可以期待的。
综上可以得出
使用过程中,UCWEB的使用感受是最好的,速度快操作方便,书签导航,页面滚动也快。缺少的是没有国外的产品新颖。
operamini 缺少的是本土话支持,如果能在本土化方面做的好点的话,相信是UCWEB的强烈竞争对手。不过现在做的也不差了
航海家,听过要出新版本了,内核全部重构。相信也是话了大力气来做的。他算是一只骑兵,做的好的话,三分天下也不一定哦。
附件: {
`
http://www.3geye.net/bbs/thread-221-1-1.html 原文地址,
自己写的内存管理工具类,支持简单的垃圾回收 开发J2AVA ME 程序最需要关注的是内存的占用,开发性能高,适配多种机型的软件不是件容易的事情,我在国庆时间整理下我的开发思路写了这个类,给大家参考下
package com.gggeye.util;
import java.util.Hashtable;
import java.util.Stack;
import java.util.TimerTask;
import java.util.Vector;
import com.gggeye.demo.Logger;
/**
* 内存管理,工具类,主要是用于项目的内存控制,
* 此类相对重要点,因为涉及到各个方面的内存回收
* 此类除了提供一些常用的方法进行回收外,还还提供一个自动回收的机制,不过不建议采用,自动回收机制是是当
* 空闲内存小于指定内存大小时候,释放内存,回收的时间是5秒回收一次<br/>
* 创建日期 2007-10-1
* @author wuhua
* <p><b>MSN </b> gggeye@hotmail.com
* <p><b>EMAIL</b> gooogledev@gmail.com </p>
* <p>网站支持 <a href="http://www.3geye.net">http://www.3geye.net</a></p>
* <p>网站论坛 <a href="http://www.3geye.net/bbs">http://www.3geye.net/bbs</a></p>
* <p>wuhua的博客 <a href="http://wuhua.3geye.net">http://wuhua.3geye.net</a></p>
*/
public class MemoryManager implements Runnable {
/**
* 释放内存,当内存小于addtionMemory时候,进行垃圾回收,主动回收
* @param addtionMemory
*/
public final static void release(long addtionMemory) {
long freeMemory = Runtime.getRuntime().freeMemory();
//如果空闲的内存小于指定的内存,则回收
if(freeMemory<=addtionMemory){
Logger.println("回收前的内存==>" +MemoryManager.freeMemoryKByte());
System.gc();
Logger.println("回收后的内存==>" +MemoryManager.freeMemoryKByte());
}
}
/**
* 释放指定缓存对象
* @param addtionMemory
* @param cache
*/
public final static void release(long addtionMemory, Object cache){
release(addtionMemory);
if(cache != null){
if(cache instanceof java.util.Hashtable){
Hashtable i = (Hashtable)cache;
i.clear();
}else if(cache instanceof java.util.Vector){
Vector i = (Vector)cache;
i.removeAllElements();
}else if(cache instanceof java.util.Stack){
Stack i = (Stack)cache;
i.removeAllElements();
}
cache = null;
System.gc();
}
}
/**
* 得到系统空闲内存,单位是k
* @return 返回空闲内存的大小
*/
public final static String freeMemoryKByte(){
return freeMemoryByte()/1024 + "k";
}
public final static long freeMemoryByte(){
return Runtime.getRuntime().freeMemory();
}
private static MemoryManager instance ;
private static TimerTask task;
/**
* 自动回收内存机制,此方法,应该在系统第一次调用的时候调用,如果重复调用则会抛出异常
* @param time
*/
public static void autoGC(long time) throws java.lang.RuntimeException{
if(instance == null){
instance = new MemoryManager();
task = TimerTaskManager.getInstace().create(instance, time);
}else
throw new RuntimeException("GC is starting...");
}
public static void colse(){
if(instance != null) instance = null;
if(task != null){
task.cancel();
task = null;
}
}
/**
* 实现对内存的自动化管理
*/
public void run() {
//小于12k内存的时候释放内存
release(1200000);
}
}
爬虫工作室 -- 专业的手机软件开发工作室
3G视线 -- 专注手机软件开发
我看了一下JFace Data binding,还有其他一些之类的,想问下大家开发类似程序会采用这些数据绑定框架吗?有没有比较成熟好用的推荐一下?