- 浏览: 41910 次
- 性别:
- 来自: 上海
最新评论
-
zeroman1212:
感谢楼主,
Java操作XML文件(1)-写入XML文件 -
wyg1989:
LZ 为什么我把几个包导进去了 但是引包的时候 com. ...
在monkeyrunner里使用Java做为脚本语言
文章列表
Java操作数据库的最基本方式是通过JDBC进行的,在本文中将讲述通过JDBC来操作MySQL数据库的基础知识。
package framework.utils.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
im ...
HttpClient可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。在本文中给出了HttpClient基础使用的说明。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpE ...
在前一节中演示了MapView的简单应用,MapView从服务的提供方获取相关数据并且将地图显示出来,此外通过MapView还可以显示如卫星图,交通等信息;在本文中将介绍另外两个重要类MapController和Overlay,这两个类将丰富地图的功能和展示。
1)MapController:
如果要在地图中设置缩放等级、实现缩放功能和动态移动等功能需要使用另一个重要的类MapController,MapController的简单使用如下:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle) ...
基于位置应用(LBS)伴随着无线的发展越来越走入大家的生活,在无线应用中这类应用也越来越多,而地图作为一个重要部分与基于位置的应用密不可分,这篇文章总结了在学习android基于位置的应用时遇见的问题和学习心得。
1)注册google地图API密钥:
keytool –alias androiddebugkey –keystore “keystore file path” –storepass android –keypass android
在Google网站上注册Map-API:
https://developers.google.com/android/maps-api-signup?hl ...
Content Provider是Android四大组件之一,其主要作用是作为内容(数据)提供方存在,可以用于解决Android进程间数据的共享;
Android中内置了一些Provider,这些Provider提供着一些常用的数据,比如联系人信息等,在这里主要讨论如何在A ...
在android中ListView是一个经常使用到的控件,该控件是android众多列表控件中的一种,以垂直的方式显示一组项,对于ListView的使用包含以下三部分:
1)建立一个包含ListView的布局文件和一个针对ListView中每一个项的布局文件;
2)创建一个Activity(最简单的方式是继承ListActivity);
3)创建一个ListAdapter,填充所需的数据后通过addListAdapter添加ListAdapter至该Activity;
在下面的代码中给出的只是最简单的方式用以演示最基本的使用方式:
1)建立所需的布局文件:
/res/layout/listvie ...
在前面的文章中对于如何使用Rule对JUnit进行扩展进行了说明,在Rule之前对于JUnit的扩展使用的方式是通过创建一个继承自BlockJUnit4ClassRunner类的新的Runner类,然后在测试用例中通过@RunWith指定使用新的Runner来运行测试类实现的;
具体步骤如下:
1)创建一个新的Runner类,该类继承自BlockJUnit4ClassRunner;
2)在测试类中通过@RunWith指定使用新的Runner替代默认的Runner;
注:文中描述的只是一个Demo,操作的逻辑判断直接写在Runner中,实际过程中需要将Runner和操作逻辑解耦,实现一个松耦合的R ...
在上一篇文章中给出了JUnit4.8中如何使用Rule对JUnit进行扩展,在JUnit4.8中存在一个问题就是不能够使用Rule对于@BeforeClass和@AfterClass进行扩展,在JUnit4.10中JUnit提供了通过Rule对于@BeforeClass和@AfterClass扩展的方式;
在JUnit4.10中MethodRule被声明为过时的,建议使用TestRule替代,同时增加了@ClassRule的声明用于扩展@BeforeClass和@AfterClass
步骤:
1)创建一个新的Rule,该类实现TestRule接口;
2)在测试类中添加@Rule和@ClassRu ...
在JUnit4.7之前用户要扩展JUnit通常采用继承BlockJUnit4ClassRunner的方式,然后在BaseTestCase中通过@RunWith指定使用新的Runner代替默认的Runner(该方法将在以后的文章中给出说明)
JUnit4相比于JUnit3的一个很大的不同就是可以通过Annotation来组织测试用例,从JUnit4.7开始推荐用户通过@Rule来扩展JUnit完成用户自定义的操作,这种方式的好处在于与JUnit4有很好的一致性,不需要修改默认的Runner,而仅仅是通过@Rule就可以达成扩展JUnit的目的。
注:本文使用的JUnit版本是4.8再更高的版本中使 ...
开发工程师常常问到的一个问题是:测试用例执行了那么多,到底这些用例覆盖了多少的代码?那么在最终的测试报告中给出代码覆盖率是不是更加有说服力,因此这几天稍微看看了emma的东西,在这里记录下来用以备忘,这里只说off-line模式下emma使用命令行方式进行代码覆盖率统计。
off-line模式下使用emma一般来说包含三个步骤:
1)插桩-使用instr对于class文件(或者包含class文件的文件夹或者文件结构)
2)运行测试;
3)合并覆盖率统计数据-使用merge合并测试期间生成的统计数据;
4)输出统计报告-使用report生成
下面就使用方式进行说明:
1)前提准备:
将emma.j ...
1)把 eclipse\configuration\org.eclipse.update 删除掉。出现这种情况的原因是在你安装新的插件以前你启动过 eclipse ,在 org.eclipse.update 文件夹下记录了插件的历史更新情况,它只记忆了以前的插件更新情况,而你新安装的插件它并不记录,所以删除掉这个文件夹就可以解决这个问题了,不过删除掉这个文件夹后, eclipse 会重新扫描所有的插件,此时再重新启动 eclipse 时可能会比刚才稍微慢点。
2)创建一个 Eclipse 快捷启动方式,在目标栏中加入一个“ 空格— clean ”参数,注意不要把— clean 前面的空格漏掉 ...
1)先安装subeclipse插件就是svn
svn - http://subclipse.tigris.org/update_1.6.x
我这里是灰色的说明我安装过了这里只是截图说明下,我就不继续安装了.
安装过程中可能会出异常,请不用管它,subclipse官方说这异常时插件没被eclipse标注,对安装使 ...
图片对比的另一种方式是通过将图片每一个像素的RGB值提取出来,然后比较两个图片每一个像素的RGB值;该方法的问题是速度比较慢,需要消耗较大的空间;
private static InputStream getImageStreamFromWeb(String urlAddress) {
URL url = null;
HttpURLConnection conn = null;
try {
url = new URL(urlAddress);
conn = (HttpURLConnection) url.openConnection();
if (c ...
图片对比的一个思路是将文件转换为二进制文件流,然后对图片二进制流进行MD5编码,比对图片二进制流MD5编码的结果,不过该方法的缺点当同一图片使用不同的压缩算法进行存储后会失效;
public static byte[] getTuPianBytes(String name) {
File file = new File(name);
byte[] tuPianBytes = new byte[(int) file.length()];
InputStream in = null;
try {
in = new FileInputStream(file);
...
在Java中自定义Annotation的方法如下:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface CaseDesc {
public stat ...