加速你的Android开发文档

Android4.2刚发布不久,更新了一下4.2的SDK,顺便更新了一下Documentation for Android SDK,真后悔更新这个文档。害得在Ubuntu10.10下用火狐打开页面错乱,而且打开奇慢无比,一直是一个白板,等接近10几秒才慢慢出来页面,而且其他子页面也都是奇慢无比!


我就很郁闷的,好好的文档,一下子就这么慢了,那今后要看文档就麻烦了,太耗时了。那个后悔呀。

补充:事后发现可以直接下载,虽然在sdk manager里面没有。doc 3.0的下载地址为:http://dl-ssl.google.com/android/repository/docs-3.0_r01-linux.zip(直接迅雷下载就行),这个版本不会出现打开慢的问题, 不过内容没有4.2版丰富)

后来想了想,不能这么慢,都下载好的本地html,于是看了看页面的源代码。明白了!


很明显,在打开本地文档前需要打开google的网站,google.com在中国打开慢,这不是我们需要争辩的话题。

那么,如何才能解决?答案很明显,要么断网,要么去掉这些网址

本人觉得吧,闲每次看个文档断网太麻烦了。于是决定自己花些时间写个小工具,去除文档中的网址。


先看看写完的小工具吧。

下载地址http://download.csdn.net/detail/xn4545945/4809848


由于处理的文件量比较大,有1W多个html文件。共计500M多一点,耗时比较长。构想对每一个文件开一个线程来进行处理,那就是考验CPU与内存的时候了。


部分主要代码:

package xu.neng.processor;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 调用一个独立的线程来处理单个html文件删除过程
 */
public class ProcessorThread extends Thread
{
	// 传递过来的路径
	private File file;
	private String htmlContent = "http://blog.csdn.net/xn4545945";

	public ProcessorThread()
	{
		super();
	}

	public ProcessorThread(File file)
	{
		super();
		this.file = file;
	}

	@Override
	public void run()
	{

		try
		{
			String oldString1 = "http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold";
			String oldString2 = "http://www.google.com/jsapi";

			// 1. 从文件读取出字符串存放进htmlContent
			BufferedReader in = new BufferedReader(new FileReader(file));
			//这里按行来读并比对,设定字节数组应该会快一些.稍后再改.
			String temp = "";
			while ((temp = in.readLine()) != null)
			{
				// 2. 从字符串中删除特定的内容, 并存入字符htmlContent中
				if (temp.contains(oldString1))
				{
					htmlContent = htmlContent + temp.replace(oldString1, "")
							+ "\n";
				} else if (temp.contains(oldString2))
				{
					htmlContent = htmlContent + temp.replace(oldString2, "")
							+ "\n";
				} else if (htmlContent.equals("http://blog.csdn.net/xn4545945"))
				{
					htmlContent += "\n";
				} else
				{
					htmlContent = htmlContent + temp + "\n";
				}
			}
			// System.out.println(htmlContent);// 打印一下
			in.close();

			// 3. 将字符串写入文件
			BufferedWriter out = new BufferedWriter(new FileWriter(file));
			out.write(htmlContent);
			out.close();

		} catch (FileNotFoundException e)
		{
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}
		super.run();
	}
}


未完待续。。。。。。。以后再写,里面包含了一些多线程问题。


转载请注明出处:http://blog.csdn.net/xn4545945





  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值