21

这几周一直在看《重构》这本书,从提取变量,减少参数,到分拆、合并不同的类,每次都给我恍然的感觉。就想习武多年有人给我一本秘笈一般。

针对名录上的各种方法,我基本上都能在以前写的代码中找到相应的坏味道。于是,reading,recoding,refactoring,and progressing。

以前的总喜欢一个方法做很多事情,穿5、6个参数,用了十几个if,好多return,现在重读代码,竟累得呼哧呼哧的。

还有就是一个类做很多类的事情;一个变量做好几个变量的事情,可一个方法中却有十几个变量;以前的代码真是丑陋啊。每天晚上花上2个小时,重构这些代码,倒有些乐在其中的感觉。

目前正在进行cgdangdang(java)和cg问答(php)2个程序的重构工作。

By 馒头 \\ tags: ,

27

用yGuard混淆、编译后的class,类名被替换为256+个ascii,比如O,o,0等。这个是不是有点BT:

oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
.class

OS是windows 2008,当试图用jade反编译时,提示创建文件或文件夹错误的提示:文件名或扩展名太长。
后来网上搜索了一下,发现jode可以反编译,原因是jode是纯java编写。使用jode犯编译时,完全按照java代码规范进行。

将jode和yGuard混淆后的jar放在一起,或者都放在classpath下面。然后命令行执行:
java -classpath jode.jar jode.decompiler.Main program.jar > out.txt
将反编译后的代码输出到out.txt。

By 馒头 \\ tags: , , , ,

26

有3种方式。

1、普通

<property name=”mappingResources”>
<value>com/mycompany/user/model/user.hbm.xml</value>
<value>com/mycompany/money/model/money.hbm.xml</value>
</property>

2、mappingDirectoryLocations

<property name=”mappingDirectoryLocations”>
<value>classpath*:/com/cgdangdang/**/model/</value>
</property>

3、mappingLocations

<property name=”mappingLocations”>
<value>classpath*:/com/cgdangdang/**/*.hbm.xml</value>
</property>

By 馒头

21

android

注: 我是一边学,一遍翻译Android文档,翻译的目的是为了加深印象,以后有新想法了,便回来修正目前的错误。

Android应用程序剖析

一个Android应用程序通常有下面4个组件组成:

  • Activity
  • Intent Receiver
  • Service
  • Content Provider

不是每个程序都有这4个,可能你的程序只使用了其中一部分。
一旦你决定程序包含哪些组件时,你得在AndroidManifest.xml文件中列出它们。这是个XML文件,它包含你程序所定义的组件,这些组件的功能和必备的条件。你可以访问Android manifest在线文档获得此文件的详细描述。

Activity

注:专有名词不翻。

Activities 是4个组件中最常用的。 程序中,Activity通常的表现形式是一个单独的界面(screen)。每个Aactivity都是一个单独的类,它扩展实现了Activity基础类。这个类显示为一个由Views组成的用户界面,并响应事件。大多数程序有多个Activity。例如,一个文本信息程序有这么几个界面:显示联系人列表界面,写信息界面,查看信息界面或者设置界面等。每个界面都是一个Activity。切换到另一个界面就是载入一个新的Activity。某些情况下,一个Activity可能会给前一个Activity返回值——例如,一个让用户选择相片的Activity会把选择到的相片返回给其调用者。

打开一个新界面后,前一个界面就被暂停,并放入历史栈中(界面切换历史栈)。使用者可以回溯前面已经打开的存放在历史栈中的界面。也可以从历史栈中删除没有界面价值的界面。Android在历史栈中保留程序运行产生的所有界面:从第一个界面,到最后一个。

更多…

By 馒头 \\ tags: , ,

19

Welcome to Android!

android

一、什么是Android

Android 平台可以说是为移动设备提供的整体软件解决方案,它包括一个操作系统,中间件和应用程序。开发者可以通过Android SDK,用JAVA为Android开发应用程序,应用程序运行在Dalvik上。Dalvik是一个基于Linux内核的虚拟机,专门为嵌入式应用而设计。

二、Android特性

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
  • 直接复制了Android文档,因为比较简单,我就不翻译了。

    三、Android体系构架

    Android architecture

    更多…

    By 馒头 \\ tags: , ,

    17

    以前介绍过一个PHP的图表工具:Graidle,可以在线生成非常不错的图表。俺目前的工作平台基于java,今又发现一个开源的java图表制作软件:JFreeChart,网址是:http://www.jfree.org/index.html。

    我们知道Google有一个 在线图表工具Google Chart API允许您动态生成各种图表,但是Google Chart API使用起来有限制:每人每天仅能访问50,000次,虽说我们很难达到这个限制,但是有限制的确是很不爽的。超越限制,于是出现了JfreeChart。

    JFreeChart是一个免费的Java 图表类库。它支持pie charts(圆形分格统计图表,2D和3D), bar charts (柱形或条形统计图表,水平的和垂直的、规则的和不规则的),line charts(折线图), scatter plots(散点图), time series charts(时间序列图),high-low-open-close charts,candlestick plots,Gantt charts(甘特表), combined plots,thermometers,dials and more(^_^,不翻译了,自己看吧)。 JFreeChart 可用于应用程序,applets,servlets和JSP。JFreeChart项目由David Gilbert维护,您可以在sourceforge.net上找到它。

    Eastwood Chart Servlet是一个由David Gilbert维护Java servlet项目。通过JFreeChart类库绘图,模拟实现了Google Chart API:图表样式和URL。网站上提供了源码,可以下载Eastwood 1.0.0部署。

    jfree站点上有很详细的介绍。这里是JFreeChart和Google Chart API的比较,看看去吧。

    GoogleJFreeChart

    By 馒头