跳至主要内容

博文

目前显示的是 六月, 2007的博文

Repacking MIDlet class

JavaME的程序要打成Jar包提交,由于移动的限制,Jar的file size越小越好。Proguard无疑是最受青睐的混淆器之一。 混淆打包的时候,经常遇到这样的问题:如何将keep指令保留的class放到default package中?搜寻了很久也没有找到答案,都想利用Proguard的src自己来写个小工具了,又仔细搜了一边help forum,终于看到了 解决方案 。 Quote: Keeping a class name means keeping its fully qualified name. You could try creating a mapping file with the name that you want, and feeding it into ProGuard with -applymapping. In ProGuard 4.0 beta, you can specify -keep,allowobfuscation instead of just -keep. If you use -printmapping, you can then find the obfuscated name in the mapping file. Eric. 可以先用keep执行一次obfuscate,将映射结果用printmapping打印出来,保存为proguard.map文件,再修改其中MIDlet类型的映射,如: com.jlazy.MyMIDlet -> MyMIDlet 然后,在keep选项之后加一个参数allowobfuscation: -keep,allowobfuscation public class * extends javax.microedition.midlet.MIDlet 并在progard中指定使用map文件执行repackage: -applymapping 'proguard.map' 这样就搞定了,所有的class都放到了default package中。 这个解决方法必须要使用 Proguard 4.0 beta 以上版本。而且由于要在第一次生成映射文件,多做了一步,感觉还可以再改进。如果Eric没有时间加入这个feature的话,打算自己写一个并集成到ant脚本中。

Project in VIM

最近想要用VIM组织一下文件,搜索了几个插件,觉得project还不错。VIM本身朴素的文本界面决定了文件树的简洁特质。 Project插件为VIM提供了组织文件的功能。用户可以将常用的文件组织到一个文件列表中。这份列表将会被VIM显示在左侧的窗口中。可以按『回车』键或是双击文件名来打开文件。这比起另一个插件『file-explorer』要容易使用。 这个插件还可以帮助用户切换到另一个目录,并运行vim的脚本。这些脚本可以修改环境变量,将编译器包含到$PATH变量中。这使得需要操作多个项目变得轻松易行。 由于Project插件内置了对VIM的folder的支持,因此可以自由地使用折叠功能来控制各个directory结点。而且使用'/'或是'?'进行查找的时候,丝毫不受折叠的影响。真是太酷了! 其它特点包括: 加载或是卸载目录中所有的文件(\r)。 Grepping项目中所有的文件,这个特征还没有研究,不知道Windows下是否也支持grep。 运行一个用户自定义的脚本(非常有用的功能,可以用于定制编译环境)。 高度可定制。用户甚至可以自己编辑project的定义文件。 可以配合netrw插件,通过不同的协议(如ftp、rcp、scp或是http等)来操作不同的文件。