旁观者-郑昀博客java调优

随笔分类 - Java

摘要: 这是去年的RCA报告。mysql-connector-java-5.1.27 之前的版本里,CancelTask 会大量累积,从而严重影响 JVM 内存,最终引发 FullGC。之后的 mysql-connector-java 里,CancelTask 已经不采用全局的 Timer 任务池了。测试证明,频繁的大数据查询场景下,mysql-5.1.34 驱动的性能处理远优于 mysql-5.0.7 驱动。 阅读全文
posted @  2016-03-29 13:25 旁观者 阅读(913) |  评论 (1)  编辑
摘要: Summoner 是基于 MySQL+Redis+Zookeeper 的分布式并行计算调度和管理系统。Summoner 是 JobCenter 的延伸和有益补充,它们各自有各自的应用场景。我们还会借鉴 mesos 的先进理念,进一步提升 Summoner 的集群调度能力。 阅读全文
posted @  2016-01-08 10:52 旁观者 阅读(2725) |  评论 (1)  编辑
摘要: 四个解读:click 事件还是 tap 事件?Zepto 的 show/hide 有时不靠谱。Android 下的跨域问题。pushState 调用失败也属于跨域问题。 阅读全文
posted @  2015-12-30 11:28 旁观者 阅读(2729) |  评论 (0)  编辑
摘要: 如本文所示,在没有部门经理、研发经理、工程师的帮助下,我自己就能从宏观看到微观,并最终明确某个性能瓶颈的 Root Cause(当然还不够接触本质)。 阅读全文
posted @  2015-07-15 11:33 旁观者 阅读(3827) |  评论 (0)  编辑
摘要: 电商系统的分布式缓存一般是 redis 和 memcached 集群,每一个节点上会起很多实例,因为一个业务类型对应于一个端口,拆分得很清楚。既然节点很多,端口很多,业务也在变化,随时都有变动,如何管理呢? 阅读全文
posted @  2015-05-14 11:42 旁观者 阅读(3296) |  评论 (1)  编辑
摘要: 标准做法一:OOM触发HeadpDump;标准做法二:系统负载高触发ThreadDump;可选做法三:年老代使用率高触发HeapDump;标准做法四:默认开启GC打印。 阅读全文
posted @  2013-09-26 15:12 旁观者 阅读(3702) |  评论 (0)  编辑
摘要: 当然,也有业务场景绕不开 multiget,那么,一是按照 facebook 所说,此时需要的是更多的 CPU,把缓存数据复制一份到另一个 memcache 集群上,一个集群负责读一半的 keys;二是按照火丁所说,最好保证批量查的这批键值都在同一个 mc node 上。 阅读全文
posted @  2013-09-04 12:36 旁观者 阅读(7157) |  评论 (1)  编辑
摘要: 存储介质、WebServer和中间件们的那些默认参数和超时设置总结。 阅读全文
posted @  2013-06-19 17:03 旁观者 阅读(12631) |  评论 (1)  编辑
摘要: 三个小知识点记录。 阅读全文
posted @  2013-06-06 13:24 旁观者 阅读(11793) |  评论 (1)  编辑
摘要: 现象倒推一:Java Web应用的连接数暴增;现象倒推二:Java应用频繁 fullgc。 阅读全文
posted @  2013-03-29 17:30 旁观者 阅读(7090) |  评论 (0)  编辑
摘要: 使用 TDA 工具,看到大量 Java Thread State 的第一反应是 阅读全文
posted @  2013-03-18 23:37 旁观者 阅读(57144) |  评论 (1)  编辑
摘要: 我们先从第一个例子开始分析,然后再列出不同线程状态的含义以及注意事项,最后再补充两个实例。 阅读全文
posted @  2013-01-06 23:16 旁观者 阅读(55899) |  评论 (2)  编辑
摘要: 那么,spymemcached 是如何实现 Multiget(即getBulk)的? 阅读全文
posted @  2013-01-05 13:01 旁观者 阅读(1967) |  评论 (0)  编辑
摘要: spymemcached 中,一个 mc client 与某一个 mc node 之间已建立的 connection 上, 如果执行操作屡屡超时(net.spy.memcached.OperationTimeoutException), 那么,有一个计数器专门记录超时次数(connected或reconnecting就清零)。 当某一个 mc node 的连续超时次数达到一定阈值(如 998 次), 就会…… 阅读全文
posted @  2013-01-05 12:09 旁观者 阅读(4389) |  评论 (0)  编辑
摘要: 如果你没有特意在 spymemcached 的 client bean definition 里配置 useNagleAlgorithm 属性为 True,那么默认 spymemcached 是不启用 Nagle 算法的。 阅读全文
posted @  2013-01-04 23:19 旁观者 阅读(2494) |  评论 (0)  编辑
摘要: 当线上出现诡异问题, 当你意识到靠现有的日志无法定位问题时, 当现象难以在你的开发环境重现时, 请不要执著于枯坐肉眼看代码,因为:一)不一定是你代码逻辑问题,可能是脏数据造成的,是老业务数据造成的,是分布式环境造成的,是其他子系统造成的;二)线上业务处于不稳定中,条件不允许问题定位无限期。 阅读全文
posted @  2012-12-15 16:43 旁观者 阅读(3709) |  评论 (0)  编辑
摘要: 关键词有:历史记录不得直接篡改原则, 交易关闭通知处理,退款处理结束通知, 掉单被动处理,掉单主动处理, 多个渠道的重复支付处理, 支付成功时商品不可售卖的处理, 订单金额变化交易流水号变化规则, 推送订单不得包含违禁词,………… 阅读全文
posted @  2012-12-14 01:38 旁观者 阅读(5373) |  评论 (3)  编辑
摘要: 此事应该与 ipv6-dns-lookup 有关。 阅读全文
posted @  2012-12-08 00:55 旁观者 阅读(4061) |  评论 (0)  编辑
摘要: 按目前 OSCacheManager 的做法,在高并发环境下,一旦一个 OSCache 缓存失效,而缓存的数据片段很大,那么很有可能让其他线程在 getFromCache 时有机会捕获 NRE 异常,最终导致做缓存重建的线程抛出 IllegalStateException 异常,虽然此时缓存已经重建完毕。 阅读全文
posted @  2012-12-07 23:40 旁观者 阅读(2360) |  评论 (0)  编辑
摘要: “silently reconnecting”可能非常不安全,将衍生出很多不可控问题。所以最佳策略是,通知应用程序到底发生了什么,然后由应用开发者决定如何处理。mq broker service 试图在已关闭的数据库连接上继续执行操作,从而抛出“ com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed. ”异常。 阅读全文
posted @  2012-11-10 00:30 旁观者 阅读(12756) |  评论 (0)  编辑
摘要: wait_timeout 和 activemq lost network connection with mysql 之间的关系。 阅读全文
posted @  2012-11-10 00:26 旁观者 阅读(10159) |  评论 (2)  编辑
摘要: 之所以搞这么麻烦,是因为存在很多种网络结构,如 Nginx+Resin、Apache+WebLogic、Squid+Nginx。下面挨个儿讲一下。 阅读全文
posted @  2012-09-19 01:17 旁观者 阅读(13092) |  评论 (1)  编辑
摘要: 分为秒杀器爱好者的技能点,京东商城的做法,苏宁易购的做法,建东的做法,特定商品秒杀的做法等小节。 阅读全文
posted @  2012-09-18 03:51 旁观者 阅读(5870) |  评论 (1)  编辑
摘要: Web Server常见的三个问题。 阅读全文
posted @  2011-02-27 13:18 旁观者 阅读(3267) |  评论 (0)  编辑
摘要: 由于resin版本升级到4.0之后,重启时,如果会根据自身resin.xml的如下配置做判断,如果当前启动Resin的用户是root,那么就会使用user-name节点中指定的www-data用户身份启动Resin(也因此有些工程师自己测试时启动不了Resin,就是因为www-data用户不存在)。 阅读全文
posted @  2011-02-25 14:53 旁观者 阅读(9171) |  评论 (1)  编辑
摘要: 早先说过线上Resin的配置文件中要增加线程池大小、各种timeout参数(resin 4.0.15的默认配置文件肯定没有这些参数,需要另行增加)。 在resin 4.0.10里,有这么一个bug,thread-max的数量设置没有起作用:http://bugs.caucho.com/view.php?id=4251 ,但后面到了resin 4.0.15应该就修复了。 下面内容会给出背景介绍以及建议配置。 阅读全文
posted @  2011-02-25 00:44 旁观者 阅读(14716) |  评论 (0)  编辑
摘要: 去年我写了一个手机看北京交通监视器实时录像的开源程序,虽然获得很多人欣赏,但是后来由于那些交通监视器流媒体服务器的关闭而无法玩下去。 
今天,爱尔兰的中国网友邀请对Dublin的交通监视器流媒体 
(http://stream.netro.ca/allcladdagh )进行手机端开发,哪位网友有兴趣,可以试试看,源程序在后面的blog中提供了,您只需要修改修改。 
手机实时看交通还是挺有意思的。 阅读全文
posted @  2006-11-19 01:02 旁观者 阅读(1454) |  评论 (0)  编辑
摘要: J2medev论坛上近年来一直有人在问Applet模拟J2ME的问题,这种平台,国外波兰人提供了一个开源项目:microemulator,这个项目06年6月还在更新,已经达到了1.0版本。后来者可以借鉴这个项目。这里强力推介gustzhang撰写的一系列文章。他在这个microemulator的0.91版本上作了大量修改,使之适应了多种大厂商的模拟器。 阅读全文
posted @  2006-10-10 14:45 旁观者 阅读(2015) |  评论 (0)  编辑
摘要: 当用HttpConnection读取远端数据,而远端返回状态码302表示重定向时,继续调用openInputStream来读取输入流将会导致程序崩溃。 
此种现象发生在以下机型: 
Nokia N90/ 
6600/6630/6680。 
N70不会崩溃但也不会正常运行。 阅读全文
posted @  2006-07-24 22:57 旁观者 阅读(3608) |  评论 (5)  编辑
摘要: 综上所述,如果你遇到了"Cannot parse this type of AMR"的异常,那么请考虑你用来测试j2me程序的模拟器是不是有问题。不妨到真机上测试。 阅读全文
posted @  2006-04-17 17:04 旁观者 阅读(730) |  评论 (0)  编辑
摘要: 很多人都想知道怎么让自己的MIDlet访问网络啦、发送短信啦都能够不弹出烦人的警告框。 
单纯回答说“你必须去Versign购买一个证书,或者找厂商签名”之类的话,也是让人不知道该如何具体操作的,还是懵懵懂懂的。 
所以,下面我们试图聚合各位,一起参透这个话题: 
如何签名? 
找谁签名? 
到底如何操作? 
能不能自己给自己签名? 阅读全文
posted @  2006-04-07 15:09 旁观者 阅读(2616) |  评论 (3)  编辑
摘要: j2medev.com之“用户界面和多媒体”版面的部分有价值问题的整理.不断更新中。 
1 全屏问题 
2 Image和ByteArray转换问题 
3 getRGB问题 
4 字符串换行问题 
5 字体问题 
6 重新播放音乐问题 
7 MediaException问题 
8 混音问题 
9 CustomItem问题 
10 Nokia播放Tone音乐问题 阅读全文
posted @  2006-04-04 14:27 旁观者 阅读(2671) |  评论 (1)  编辑
摘要: 很多人都在j2medev.com上讨论过流媒体的实现方式,当然我们这里说的不是对RTSP/MMS这种主流的流媒体服务器的客户端实现,因为现在中国市场的很多很多手机的Java环境都不支持这两个协议,只有新出的某些手机才内置支持这一功能。 
我们这次讲的是,在现有GPRS环境下,在现有的一两千块钱的手机条件下,如何做到流媒体实时播放呢,而且还能做到较为流畅呢? 
2006年1月份,我恰巧看到了国外有一个人提出一种思路,并且号称在Nokia6260[相关数据:诺基亚 6260 Nokia62602.0 (3.0436.0) SymbianOS7.0s Series602.1 ProfileMIDP-2.0 ConfigurationCLDC-1.0]运行了。 

就此思路和诸位高手讨论了一下,并且写了三篇讨论稿,有了大致的思路。但一直都没有时间去测试这个思路是否可行。 

今天索性抽出了一两个小时,把这个思路写出来放在真实手机/GPRS网络上测试,不敢独享,遂开放代码,希望借此抛砖引玉。 

这种流媒体的播放,还是取决于使用时GPRS网络 阅读全文
posted @  2006-03-28 23:04 旁观者 阅读(14258) |  评论 (31)  编辑
摘要: 对比上个版本的改进之处: 
可以根据屏幕计算菜单的长宽和位置,这样所有java手机都可以显示二级菜单,还有悬浮菜单。 
菜单项目多的话,可以在屏幕上只绘制适合当前手机屏幕显示的那部分菜单,剩余部分可以用上下按键滚动显示。 
还可以加入三级菜单。 阅读全文
posted @  2006-03-21 11:27 旁观者 阅读(2362) |  评论 (2)  编辑
摘要: 可能导致的原因之一: 
用户的Windows登录用户名是中文的,或者用户的程序路径中有中文。 

原因之二: 
Netbean中有相应的信任域的设置方式。可能用户没有设置。 
建议用户在NetBean选中项目,然后右键à属性,找到运行, 然后配置一下里面的域,按照他说的选择untrusted。 阅读全文
posted @  2006-03-18 17:10 旁观者 阅读(1143) |  评论 (0)  编辑
摘要: 你知道那句名言的,J2ME的那句,“write once, debug everywhere”。 
So,尽量在真机上用Alert来反复进行二分法测试,寻找到异常是从哪里抛出来的。 
尽量确定你自己创建的线程能否自己优雅地结束,而不需要VM强制关闭。 阅读全文
posted @  2006-03-04 15:45 旁观者 阅读(766) |  评论 (1)  编辑
摘要: [详细解释] 
可能WTK初始化WMAClient和ClientConnector时,必须先运行InetAddress.getLocalHost()来寻找localhost的IP地址。 
但是你看 
http://www.vf.utwente.nl/~vriesajk/j2me/java/net/InetAddress.html#getLocalHost() 
它说了 
“Throws: 
UnknownHostException - if no IP address for the host could be found. 
” 
所以,如果它没有能够找到IP地址的话,它就报告“localhost has no IP address”。 阅读全文
posted @  2006-03-02 13:56 旁观者 阅读(1032) |  评论 (1)  编辑
摘要: 承蒙厚爱,被任命为J2MEDEV(J2ME开发网,国内最具影响力的专业J2ME开发门户)的斑竹。那里聚合了许多无线软件制作领域中广为人知的强人,有mingjava、favoyang、efei等等。 阅读全文
posted @  2006-02-28 11:07 旁观者 阅读(372) |  评论 (1)  编辑
摘要: "Cannot connect socket to port 1157 
Windows error code 10057 
Cannot open socket for LIME events on port 1157"的解决途径。 阅读全文
posted @  2006-02-26 22:22 旁观者 阅读(655) |  评论 (0)  编辑
摘要: 本文档给出MenuBarlet(j2me二级菜单绘制演示)的开源说明。 
第1章 简单描述MenuBarlet的功能和特别之处。 
第2章 描述调用MenuBarlet的开源版权声明。 
第3章 给出了 MenuBarlet的思路和设计细节。 阅读全文
posted @  2006-02-17 17:40 旁观者 阅读(3081) |  评论 (0)  编辑
摘要: 2006年2月份的《程序员》杂志上,软件中国2005年风云榜专题中, 
列出的10佳技术Blog,赫然我列其中第六:“旁观者”。 
其他九人为: 
车东、dbanotes、江南白衣、Limodou、李维、思归、熊节、云风和曾登高。 阅读全文
posted @  2006-02-15 17:49 旁观者 阅读(464) |  评论 (1)  编辑
摘要: 今日又花费了点时间,调整界面上各种按键之下的效果,比如: 
上下左右方向键的作用; 
点击一次“选择”左软键就是展开主菜单, 
再点击一次“选择”左软键的作用就是销隐主菜单; 
等等诸如此类的效果,和Windows的“开始”菜单是一样的。 

顺便从bloglines手机伴侣中将软键绘制的类搬过来,这样左右软键的绘制办法被封装起来了,效果还不错。 

由于opera mini下面是一行长条的状态栏,所以我在SoftButtonControl类里加了一个判断,这样只要改变这个标志可以改变软键输出风格,如下所示。 阅读全文
posted @  2006-02-14 16:42 旁观者 阅读(408) |  评论 (0)  编辑
摘要: 全赖朋友指点迷津,终于调试出来些许效果。实际上调整这种Opera Mini风格的二级菜单效果,颇为费时费力,也颇为折磨人的锐气。我只能按照以前对付bloglines手机伴侣的制作手法,每日花费一点时间调试,但也并不投入过多的精力,只要见得当日定下来的小目标收效,即鸣金收兵,等来日再战,这样保留那份技术上的好奇心,否则一味死缠烂打可能会被消磨去一探究竟的好奇心,从而不愿意再试,毕竟这不是工作任务,而是个人喜好。 
今日又略收成果,如下展示: 
把一级菜单挪到下方显示,更加类似于Windows的开始菜单了: 

并可以上下键控制选择哪一个菜单命令,然后点击Fire键。比如选择“我的状态”菜单,则展开二级菜单如下所示: 

下面展开“聊天室”的二级菜单: 

注意到,被选择的一级菜单的背景色将会变为白色。 
择日再战。 阅读全文
posted @  2006-02-13 17:34 旁观者 阅读(717) |  评论 (4)  编辑
摘要: 拜朋友所赐,今日开始尝试如何绘制类似于Opera Mini的二级菜单,如下图所示: 

我自己的练习,还很幼稚,姑且记录如下: 

点击左软键,即可选中界面左下角的“选择”命令,二级菜单旋即弹出: 

日后慢慢调整色彩和效果。 阅读全文
posted @  2006-02-10 18:26 旁观者 阅读(523) |  评论 (3)  编辑
摘要: 继续上次的讨论。本次涉及到分割媒体文件的详细办法。 阅读全文
posted @  2006-01-17 16:47 旁观者 阅读(846) |  评论 (0)  编辑
摘要: 继续讨论在现有移动环境下实现手机流媒体的技术可能性。 阅读全文
posted @  2006-01-15 18:35 旁观者 阅读(1196) |  评论 (2)  编辑
摘要: 看到很多很多人持续在问这个问题。 
那么现在国外有一个人提出下面这种思路,并且号称在Nokia6260[相关数据:诺基亚 6260 Nokia62602.0 (3.0436.0) SymbianOS7.0s Series602.1 ProfileMIDP-2.0 ConfigurationCLDC-1.0] 
上真实实现了(两种网络方式:蓝牙和GPRS都试验过),但我怀疑他的前提条件是“你的手机必须允许同时实现player的多个实例进入prefetched状态(预读取声音流)”,不过这个前提在我的手机上证实了。所以,从理论上是可行的。只是中间稍微会有点磕巴。 阅读全文
posted @  2006-01-12 16:05 旁观者 阅读(833) |  评论 (1)  编辑
摘要: 刚刚修改了kSoap2的源代码,符合了我国的特殊国情,支持连接互联网时走cmwap代理访问,这样可以利用大家的WAP包月资费,降低浏览Bloglines的费用。 阅读全文
posted @  2005-12-30 14:53 旁观者 阅读(582) |  评论 (0)  编辑
摘要: http://www.cnblogs.com/Files/zhengyun_ustc/BloglinesMobile-src.rar 

虽然还有这样那样的问题,但是作为一个Alpha版本的j2me软件,能够在Nokia S60系列手机上运行,这样已经足够了,所以先放出源代码,希望抛砖引玉吸引有志者继续在此基础上修改。 

20051230 update(修改了kSoap2的源代码从而可以走资费可以包月的cmwap): 

使用时请注意当要连接互联网时选择接入点为“移动梦网”;如果你想选择接入点为“GPRS连接互联网”,那么请您到设置界面里将“用cmwap代理”点击为白色圆球,代表不使用cmwap代理。 阅读全文
posted @  2005-12-27 15:09 旁观者 阅读(2266) |  评论 (13)  编辑
摘要: 在我的nokia 7610真机上测试过了,不错,效果还真得不错,蛮快的!哈哈,终于把bloglines搬到手机上了,尽管bloglines自己也提供了手机浏览器阅读服务,不过那是wap方式的,而我这个是j2me版本的。 
源代码下载:服务器端的web service已经能够发布alpha版本了,请在http://www.cnblogs.com/Files/zhengyun_ustc/flickrBuddy.rar下载。这是一个tomcat+axis搭建环境下的java web service。 阅读全文
posted @  2005-12-25 22:52 旁观者 阅读(437) |  评论 (1)  编辑
摘要: 制作完成了flickrBuddy web service,可以完成对bloglines api的方便调用。手机客户端则使用kSoap来访 
问这个flickrBuddy web service来获得用户的bloglines订阅源。 
首先,可以看到你的“my feeds”中列出的blog订阅源标题以及未读条目的数目。 阅读全文
posted @  2005-12-25 16:37 旁观者 阅读(330) |  评论 (0)  编辑
摘要: 最近一些网友询问《[OTA]制作OTA短信来配置手机与服务器同步》和《[SMS&WAP]实例讲解制作OTA短信来自动配置手机WAP书签[附源码] 》的代码问题。 阅读全文
posted @  2005-12-20 16:00 旁观者 阅读(908) |  评论 (0)  编辑
摘要: 想让程序的图形界面在Nokia S60真机上运行,真是历经周折,找了好几个真机的BUG(Nokia真机测试程序自动退出现象搜集[1][javaME])。 阅读全文
posted @  2005-12-16 19:29 旁观者 阅读(296) |  评论 (0)  编辑
摘要: 在Nokia S60真机上这是一个BUG似乎: 
setFullScreenMode(true);调用之后, 
getHeight()返回的并不是全屏后的高度,比如他本应该返回208, 
但是他却返回144,所以,在真机测试时也要小心nokia s60的这个bug, 
不要因为屏幕高度获取不正确,导致fillRect与你预想不一致。 阅读全文
posted @  2005-12-16 17:10 旁观者 阅读(607) |  评论 (1)  编辑
摘要: 这种程序自动退出的问题,有时候是因为你根本猜想不到的代码导致的,这时候只能通过二分排除法(不断地注释代码来缩小代码范围)来判定了。 阅读全文
posted @  2005-12-15 16:07 旁观者 阅读(542) |  评论 (0)  编辑
摘要: 本文档帮你了解实用工具midletinfo,简单地说,它发掘了javaME所能得到的大多数系统信息,对试图将自己的程序在不同款手机上运行的开发者会很有帮助的。 阅读全文
posted @  2005-12-07 15:41 旁观者 阅读(353) |  评论 (0)  编辑
摘要: 对于HttpConnection的应用,估计大家都已经熟练了。 
那么,你的HttpConnection是否封装的足够健壮呢?遇到各种情况,你是否有信心应对呢? 
譬如说,你要请求的Response包实在太大,以至于运营商给你掐了告诉你说超时;譬如说, 
譬如说你是不是总要自己写一个线程来专门作http连接?譬如说有一些移动运营商设置了caching proxy servers,妨碍了你的测试。 
来,这已经有人奉献了一个精心封装并测试的类,下载它吧,http://jay-f.jp/devcorner/netconnection.zip。 阅读全文
posted @  2005-12-01 18:18 旁观者 阅读(1389) |  评论 (1)  编辑
摘要: 探讨一下。 阅读全文
posted @  2005-11-25 16:39 旁观者 阅读(692) |  评论 (0)  编辑
摘要: Windcao提供的CreateAlphaImage的意思是这样的“如果需要半透明可以先在image上画,然后把这个Image弄成半透明的。最后将Image绘到Canvas上就OK了”。 
我在工程中用了,有效果,好像也不需要对原始的Image src有什么特殊要求。 我是在一个CustomItem扩展类中使用这个半透明图片的,代码如下所示. 阅读全文
posted @  2005-11-23 16:28 旁观者 阅读(1239) |  评论 (0)  编辑
摘要: 解决办法: 
一是确定服务器端正确地改写了HTTP_CONTENT_LENGTH头域; 
二是针对手机端拿到了HTTP_CONTENT_LENGTH的错误数值-1,作相应处理。 阅读全文
posted @  2005-11-23 15:31 旁观者 阅读(784) |  评论 (0)  编辑
摘要: 简单描述如何在NokiaS60系列手机同时播放两个音乐。 
使用nokia的专有类Sound 
Nokia UI API有一个专门播放声音的类,它支持两种声音: 
@ Single notes,给定了频率和持续时间; 
@ Simple tunes,沿用了Nokia Smart Messaging ringing tone二进制格式。 
我们这里说的是后者。由此Nokia UI API支持从二进制音乐数据播放曲调。这个二进制格式是Nokia’s binary Ringing Tone Programming Language(RTPL),由Nokia Smart Messaging Specification(SMART)定义。 阅读全文
posted @  2005-11-23 14:13 旁观者 阅读(2025) |  评论 (3)  编辑
摘要: 本文档以及后续文档试图一步一步地探讨如何在手机上同时播放两个声音文件,譬如一个是背景音乐,一个是按键触发的游戏音效。请慢慢看下去,我们尽量糅合进各方汇集的一些经验。 阅读全文
posted @  2005-11-22 23:46 旁观者 阅读(3532) |  评论 (2)  编辑
摘要: 除了上面这种方法,只要是一个新的media被播放,上一个Player必须被停止而且释放资源。 阅读全文
posted @  2005-11-21 15:55 旁观者 阅读(275) |  评论 (0)  编辑
摘要: javaME中一向没有与StringTokenizer相对应的类,Ostermiller提供了一个。他的util类包还有很多很多其他帮助类。 阅读全文
posted @  2005-11-21 15:05 旁观者 阅读(349) |  评论 (0)  编辑
摘要: 有点像手机英文输入法中,按2一下代表a,连按两下代表b,连续三下代表c。 
据说,你可以用timertask来做这件事情。 阅读全文
posted @  2005-11-16 23:14 旁观者 阅读(311) |  评论 (0)  编辑
摘要: 比如你的游戏正在进行中,却突然一个电话,那么你能保证你的游戏不死机吗? 
解决来电问题,唯一需要做的就是重载Canvas的hideNotify()方法。 阅读全文
posted @  2005-11-16 22:47 旁观者 阅读(569) |  评论 (2)  编辑
摘要: 主要是展示如何利用TimerTask的,还有介绍了System.currentTimeMillis. 阅读全文
posted @  2005-11-16 22:34 旁观者 阅读(550) |  评论 (0)  编辑
摘要: 值得注意的是,手机的按键并不能保证个个都能拿到,而且上下左右之类的特定意义的按键也未见得都有,所以小心。 阅读全文
posted @  2005-11-16 18:52 旁观者 阅读(423) |  评论 (0)  编辑
摘要: 上回说到申请动态IP是可以了,并且准备好了一个线程等候在socket://10.16.195.219:8110之类的端口上监听。 

这次把代码修改了,完成了监听线程之后,就相当于起了一个Socket Server,一旦有人要连接它,就回复一个字符串说“God bless you!You are the No.”后面加上是第几位访问者的序号。 

菜单中也相应加入了一个命令“联系ServerSocket”,就是向界面中的"ServerSocket为:"编辑框所指明的Server发起Socket连接请求,看能否得到回复;如果有回复,就输出到屏幕上。 阅读全文
posted @  2005-11-16 16:39 旁观者 阅读(539) |  评论 (1)  编辑
摘要: 后来,终于试出来了,只要到接入点删除拔号连接互联网,就可以了。然后起应用程序,再连接网络时,就能够提示选择接入点了。而之前出现-3606错误的时候,是不会提示接入点选择的。 

可能之前我曾经用拨号互联网这个接入点拨号了,导致手机以后连CMNET默认用这个接入点,不带提示的。 
阅读全文
posted @  2005-11-16 15:43 旁观者 阅读(220) |  评论 (0)  编辑
摘要: jes就是Java Event Server。这个jes的实例是用来处理gui toolkit (LCDUI)的callback的。 
具体什么原因,并不是很明确,只能说可能是传入了一个unexpected null native pointer,导致抛出异常。 

我个人认为这属于Nokia制造厂商的BUG,因为这种形式的异常应该算作虚拟机的不正确处理所致。也许应该去更新这部Nokia手机的Firmware了,厂商也许已经修正了这个BUG。 阅读全文
posted @  2005-11-10 17:14 旁观者 阅读(329) |  评论 (0)  编辑
摘要: 这是我们起的第一个线程ThreadRegisterIP,这之后,ThreadRegisterIP可以通过PushRegistry.registerConnection来注册监听;也可以调用(SocketConnection) ssc.acceptAndOpen();等候其他人来访问这个socket端口,这样会导致线程ThreadRegisterIP处于listen状态。 

特别值得关注的一点是,在(ServerSocketConnection) Connector.open(url)之前,我发现必须先去用HttpConnection看看一个Internet网站,然后再来ServerSocketConnection.open,这样才能够正确拿到socket://10.16.195.219:8110。不这么做,就会得到socket://127.0.0.1:8110这种地址。 

ServerSocketConnection之后呢,我们另外起一个ThreadAskServerIP线程,它呢,发送HttpConnection.GET请求给我的服务器网页,这个网页会 阅读全文
posted @  2005-11-09 16:06 旁观者 阅读(1452) |  评论 (2)  编辑
摘要: 用ServerSocketConnection? 
http://www.j2medev.com/bbs/dispbbs.asp?boardid=21&id=4099&star=1#2083 ,这里是原始讨论贴。 

这里我们给出一个思路:可以先这样,手机先访问一个固定的网址,然后就会被分配一个IP,这就是手机用来和外界联系的IP了。 阅读全文
posted @  2005-11-09 00:24 旁观者 阅读(1453) |  评论 (10)  编辑
摘要: 一般性的答案是:可以的。只不过现在的手机尚且不支持此标准。 

更多的信息: 

对于JavaCard这种东西,MIDP2.0中扩展了一个叫做Security and Trust Services API for J2ME (SATSA); JSR 177的东西,具体信息参见http://java.sun.com/products/satsa/。 
阅读全文
posted @  2005-11-08 13:58 旁观者 阅读(1231) |  评论 (1)  编辑
摘要: For further information see: 
http://www.symbian.com/developer/techlib/papers/java_MIDP.asp 
"Extending the Reach of MIDlets: how MIDlets can access native services" 
and 
http://midpjni.com/ 阅读全文
posted @  2005-11-05 17:39 旁观者 阅读(583) |  评论 (0)  编辑
摘要: 本文档并不是一个关于PopupWinks On Mobile 之Kjava版本的开发说明,这里只是一个总入口。我将给出手机传情动漫的奇异特性、用户使用说明,以及演示程序下载地址;并且给出开发指导的相关链接。慢慢看下去,你会大有收获的。 
都有源代码可供下载。 阅读全文
posted @  2005-11-04 17:19 旁观者 阅读(4722) |  评论 (21)  编辑
摘要: 原因是,Player::setMediaTime函数在Nokia 7610上不支持! 
希望这个报告对你有参考价值。也希望你能够告诉我-18代表着什么。 阅读全文
posted @  2005-10-31 13:39 旁观者 阅读(1066) |  评论 (0)  编辑
摘要: 让你心跳的播客Podcasting的无线玩法到来了! 
“今年7月,国外传统媒体包括ABC、维亚康姆、ESPN、《新闻周刊》等大鳄,纷纷为 “播客”开疆辟土,作为MP3播放器领导厂商的苹果公司也迫不及待地在其新版iTunes上内置了播客功能。2005年,播客已成为网络世界新潮流。” 

那么,我们的手机能玩这种新玩法吗?作为Geek的我们,能只甘心于用iPod/iTunes这种昂贵的设备收听播客的节目盛筵吗? 

我的答案是,能!J2ME和Web Service让这一切成为可能。 
阅读全文
posted @  2005-10-31 00:44 旁观者 阅读(9163) |  评论 (13)  编辑
摘要: 我使用KSoap2请求远端Web Service。 
在Nokia S60系列的模拟器上运行,以及WTK2.2的模拟器上,都没有任何问题。 
但是在Nokia7610真机上,回答“是否允许使用网络”问题后,立刻弹出错误报告“SymbianOS error -28。java.ioException”。 
该程序在索爱K700C上运行正常。 阅读全文
posted @  2005-10-25 15:33 旁观者 阅读(659) |  评论 (1)  编辑
摘要: 手机看交通重要路口摄像头 – 北京司机的心愿? 
我每天开车三个多小时,最喜欢听的节目就是1039的一路畅通。堵在北四环的时候,热切地盼望着主持人早点播报路况信息。但往往他们不说北四环,可能因为这里常年拥堵吧。这时就心想,要是我自己能够看到前行路上每一个交通要道的实况就好了,知道什么时候通了,什么时候茬上了,这样也有个盼头,或者提前选择道路避让。 

您该问了,北京各个地方的交通监视器摄像头能提供给你吗? 
答,可以,北京各个路口的摄像头实况,已经有人提供流媒体服务器播放了。 

从 mms://real.u-mail.cn/cebeijing1,到 mms://real.u-ail.cn/cebeijing58。为了演示本项目,我选择了国贸桥的监视器:mms://real.u-mail.cn/cebeijing10 。 

您又有疑问了,手机怎么看呢? 
答,当然了,现有的各种品牌的手机都不会支持流媒体的,他们只能播放手机存储卡的媒体文件或者内存中的InputStream。我们呢,就必须自建一个服务器,帮助手机 阅读全文
posted @  2005-10-24 15:15 旁观者 阅读(20352) |  评论 (62)  编辑
摘要: 有一个JLayerME-CLDC0.2,专门是用来在CLDC1.0/MIDP2.0上播放MP3文件以及获取mp3文件的位速/采样率的。
JLayerME是自己做解码器解析MP3格式,然后自行转换为wav格式,这个格式是真机都支持的,然后再让Manager.createPlayer进行播放。 

所以非常消耗资源。 

他们开发者也说,现在的JLayerME-CLDC0.2还不是一个产品。 

你可以下载我的代码,导入到eclipse: 

http://www.cnblogs.com/Files/zhengyun_ustc/JLayerMp3MIdlet.rar 阅读全文
posted @  2005-10-19 17:35 旁观者 阅读(1510) |  评论 (4)  编辑
摘要: 我们提供的VideoIM手机自动拍照上传器J2ME版本[开源]就是这么一种概念: 
一个可以下载到手机(例如Nokia7610已经确实可以下载安装并正常运行)的Java应用程序,用来自动驱动你的手机摄像头定时拍摄一张图像(默认是Jpeg格式,数据量很小)。然后,后台线程将Jpeg图像(很小,大约几KB)上传到服务器上。手机默默地拍照,默默地上传照片,不用手工干预,比如你可以设置每隔三分钟拍一张照片,然后上传到Flickr这个著名的图片共享站点上,全世界都会看到你的慢速视频。 
这样就可以帮助其他系统工作,比如这么一个场景: 
PC机上的MSN Messenger用户Vicky正在和你的移动MSN Messenger通过这种方式视频聊天,Vicky的聊天对话框上能够看到你的头像,并且每隔十几秒钟就看到你的手机所看到的画面了,是不是就是一种慢速的移动视频聊天呢? 

本文档给出VideoCoolala(MobileWebCam)的设计思路和类说明。 
第1章 简单描述VideoCoolala(MobileWebCam)的背景、功能和特别之处。 
阅读全文
posted @  2005-10-13 02:10 旁观者 阅读(3884) |  评论 (5)  编辑
摘要: 我们提供的VideoIM手机自动拍照上传器J2ME版本[开源]就是这么一种概念: 
一个可以下载到手机(例如Nokia7610已经确实可以下载安装并正常运行)的Java应用程序,用来自动驱动你的手机摄像头定时拍摄一张图像(默认是Jpeg格式,数据量很小)。然后,后台线程将Jpeg图像(很小,大约几KB)上传到服务器上。手机默默地拍照,默默地上传照片,比如你可以设置每隔三分钟拍一张照片,然后上传到Flickr这个著名的图片共享站点上,全世界都会看到你的慢速视频。 

本文档给出VideoCoolala(MobileWebCam)的开源说明。 
第1章 简单描述VideoCoolala(MobileWebCam)的功能和特别之处。 
第2章 描述调用VideoCoolala(MobileWebCam)的开源版权声明。 
第3章 给出了 VideoCoolala(MobileWebCam)的下载资源。 
阅读全文
posted @  2005-10-13 01:42 旁观者 阅读(4767) |  评论 (4)  编辑
摘要: 本文档给出RSS无线阅读器J2ME版本的设计思路和类说明。 
第1章 简单描述RSS无线阅读器J2ME版本的背景、功能和特别之处。 
第2章 描述调用RSS无线阅读器J2ME版本的设计思路。 
第3章 给出了 RSS无线阅读器J2ME版本的设计过程中需要特别指出的问题。 
第4章 给出了 各种下载资源。 
阅读全文
posted @  2005-10-07 23:20 旁观者 阅读(9670) |  评论 (9)  编辑
摘要: 本文档给出RSS无线阅读器J2ME版本的开源说明。 
第1章 简单描述RSS无线阅读器J2ME版本的背景、功能和特别之处。 
第2章 描述调用RSS无线阅读器J2ME版本的开源版权声明。 
第3章 给出了 RSS无线阅读器J2ME版本的各种网络资源。 
阅读全文
posted @  2005-10-07 23:12 旁观者 阅读(5390) |  评论 (17)  编辑
摘要: Xmlpull官方站点:http://www.xmlpull.org/ 

优点:不必等整个文档解析完成,部分求值结果早就可以开始反馈给用户。 
网络中有很多人问到同样一个问题: 
为什么我们在调用 
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
时,总是得到这样的错误: 
错误提示: 
Exception in thread "main" org.xmlpull.v1.XmlPullParserException: caused by: org.xmlpull.v1.XmlPullParserException: resource not found: /META-INF/services/org.xmlpull.v1.XmlPullParserFactory make sure that parser implementing XmlPull API is available 
at org.xmlpull.v1.XmlPullPar 阅读全文
posted @  2005-09-28 17:18 旁观者 阅读(6983) |  评论 (3)  编辑
摘要: 本文只是探讨一下这种可能性。 
粗粗地看了JXTA,他的目标很宏大,不局限于各种设备,不局限于各种平台,只要能够保持心跳,就算是P2P的一个对等实体。 
又看了JXTA的J2ME实现:JXME。 
也顺着他的思路,心想能不能这样: 
Mobile上的JXME通过GPRS登录到P2P网络,无论是实名还是匿名; 
其他位于企业内部的防火墙之后的PC也登录进入JXTA; 
笔记本通过Wi-Fi登录JXTA。。。。 
于是,一台PC机用户和一个Mobile用户自由透明地聊天,透明地共享图片、音频或视频。 
而不像现在,手机上要看什么东西,必须通过蓝牙或者红外与其他手机/笔记本通讯,要么就通过Internet服务提供商下载铃声图片,而完全没有P2P的功能。 
如果JXME真的能够让Mobile/Pocket PC/Windows Mobile自由自在地和Internet上的各种设备共享数据,该有多好? 阅读全文
posted @  2005-09-28 16:09 旁观者 阅读(808) |  评论 (0)  编辑
摘要: 下载了jxta-myjxta-2.3.5.zip,解压缩后直接运行myjxta.bat,立马登录入JXTA网络,上面还真有几个对端呢,还聊了几句。第一次用到这么直截了当的P2P Java程序。 

IBM上的JXTA资源: 

http://www-128.ibm.com/developerworks/cn/java/wi-jxta2/index.html,《通过 JXTA 进行无线通信,第 2 部分: 实现 JXTA-for-JMS》; 

http://www-128.ibm.com/developerworks/cn/java/wi-p2pmsg2/index.html,《移动 P2P 消息传递,第 2 部分: 开发通用 P2P 网络的移动扩展》 
阅读全文
posted @  2005-09-27 18:32 旁观者 阅读(2209) |  评论 (2)  编辑
摘要: 本文档讲解了OTA的概念,给出了如何发送“同步设置”的OTA短信的步骤,并附带Java编写的源代码(http://www.cnblogs.com/Files/zhengyun_ustc/SyncSettingBuilder.rar)。 

规范中定义了三种Setting: 

浏览器设置 

浏览器的书签设置 

SyncML设置 

也就是说,你通过发送短信可以帮助用户手机设置SyncSettings,从而可以让手机与服务器同步信息(如电话本、日程和记事本等)。 阅读全文
posted @  2005-09-26 15:46 旁观者 阅读(6254) |  评论 (12)  编辑
摘要: 在sync4j社区看到一个话题,讨论如何纠正Nokia系列手机会自动在远程数据库前面添加一个“./”符号。据Harrie说,“You can work around this by configure a similar syncsource 

as the one with the scard URI. Create with the admin tool 

a similar syncsource that has the URI ./scard.” 

也就是说,我们需要自己到Sync4j Admin中,配置一个数据库源。 阅读全文
posted @  2005-09-20 14:40 旁观者 阅读(1057) |  评论 (5)  编辑
摘要: 按照前面所说的,设置手机上面的“远程数据库”为“./contact”,然后做手机同步。 

结果,经过漫长的初始化时间,手机上报告错误 
“连接错误 
同步类型不被支持 
无法和服务器同步” 阅读全文
posted @  2005-09-19 22:37 旁观者 阅读(476) |  评论 (0)  编辑
摘要: 通过Domino的Document.getFirstItem("Body")是可以获取当前邮件的Body字段,并试图直接转换为RichTextItem类型,从而访问该邮件的附件。 

但是,有时候这个转换得到了下面的异常: 

Log提示: 

Exception: 

java.lang.ClassCastException: lotus.domino.cso.Item 


导致错误的语句就是: 

代码: 

RichTextItem bodyWithAttachs = 

(RichTextItem)doc.getFirstItem("Body"); 

阅读全文
posted @  2005-09-19 17:50 旁观者 阅读(1207) |  评论 (0)  编辑
摘要: jarhoo是一个很棒的根据类名找jar包的地方, 。 
在写程序的时候,我反正是经常遇到某一个类声明不知道是哪一个jar包的,比如某一个开源包报告了 
java.lang.NoClassDefFoundError: javax/servlet/http/HttpSessionListener 
错误,搞得满世界找。 
有了jarhoo好点,它声称“Searches for jar files or fully qualified java classnames usually performed under 2 seconds. Package or non-qualified classname searches may take around 10 seconds ”,只要你将javax.servlet.http.HttpSessionListener输入搜索框,他就会帮你找到各种各样的jar包. 阅读全文
posted @  2005-09-16 13:47 旁观者 阅读(1282) |  评论 (1)  编辑
摘要: 测试代码下载:http://www.cnblogs.com/Files/zhengyun_ustc/WSCallerMIDlet.rar 

第二小步,Web Service传递较为复杂的类 
下面我们讲述如何在MIDP设备和Web Service之间传递较为复杂的类,比如这个类中不但有String类型成员变量,还有Vector之类的复杂类型。 

从kSoap的FAQ上看,他们推荐使用KvmSerializable以及 ClassMap传递自定义类,但是我一直没有试验成功。 

我还是按照能试验出来的办法讲述一下步骤吧: 

大致思路就是,在服务器端将类实例按照一定规格(一个一个的成员变量写)序列化为byte[],将这个byte[]数组返回给kSOAP。kSOAP收到之后,再反序列化,将byte[]一段一段地读入类实例。 阅读全文
posted @  2005-08-27 04:31 旁观者 阅读(2971) |  评论 (8)  编辑
摘要: 测试代码下载:http://www.cnblogs.com/Files/zhengyun_ustc/WSCallerMIDlet.rar 

kSOAP和JSR172 
原则上,无线设备可以通过HttpConnection接口访问远端Web服务器。 
但是,对于远端的Web Service,我们还有两种解决方案: 
kSOAP; 
JSR172。 

第一小步,Web Service传递String: 
可以说,Web Service传递String给MIDP是一件很简单的事情: 

第二小步,Web Service传递较为复杂的类; 
阅读全文
posted @  2005-08-27 04:28 旁观者 阅读(3294) |  评论 (0)  编辑
摘要: 读取PDF文件的某一部分文本内容,可以使用开源项目xpdf。 

从Java中调用xpdf,我们参照了《Java抽取Word,PDF的四种武器》文章最后提到的办法。 

总而言之,调用xpdf十分简单,下面讲一下xpdf的配置问题。 
阅读全文
posted @  2005-08-03 15:26 旁观者 阅读(7655) |  评论 (19)  编辑
摘要: 试图从Java调用C#编写的Web Service,借用了王咏刚的wsCaller源代码中DynamicInvoker类。 
请求一个C#编写的Web Service,利用DynamicInvoker类遍历web service每一个方法,获取serverName、参数列表以及类型。 阅读全文
posted @  2005-08-02 11:24 旁观者 阅读(2455) |  评论 (2)  编辑

猜你喜欢

转载自blog.csdn.net/wangshuminjava/article/details/80994585
今日推荐