Android docs4.3API

网上找的类,加快访问Android docs API,主要原因是加载网上的js文件慢,另外一个是加载google字体慢!

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;
import java.util.UUID;

public class AndroidDoc {

    private static final String ANDROID_SDK_HOME = "ANDROID_SDK_HOME";

    private static final String TAG = "<script src=\"http://www.google.com/jsapi\" type=\"text/javascript\"></script>";

    //private static final String TAG = "<link rel=\"stylesheet\"";

    //private static final String TAG = "href=\"http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold\" title=\"roboto\">";
    private static String androidSDKHome;

    public static void main(String[] args) {
        Map<String, String> map = System.getenv();
        androidSDKHome = map.get(ANDROID_SDK_HOME);
        if (androidSDKHome != null) {
            System.out.println("Detected the Android SDK Installation path:"
                    + androidSDKHome);
            File docs = new File(androidSDKHome + "\\docs");
            System.out.println("It will take several minutes, please wait...");
            traverse(docs);
            System.out
                    .println("Operation Down!!! Now you can visit Android Doc without waiting...");
        } else {
            System.out
                    .println("Please configure the Android SDK Environment variable (ANDROID_SDK_HOME)!");
        }
    }

    /**
     * 遍历Android SDK安装目录下的docs目录
     *
     * @param dir
     */
    private static void traverse(File dir) {
        if (dir.isDirectory()) {
            File[] files = dir.listFiles(new FileFilter() {

                @Override
                public boolean accept(File file) {
                    if (file.isFile() && file.getName().endsWith(".html")) {
                        BufferedReader reader = null;
                        try {
                            reader = new BufferedReader(new FileReader(file));
                            String buffer;
                            while ((buffer = reader.readLine()) != null) {
                                if (buffer.trim().equalsIgnoreCase(TAG)) {
                                    return true;
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        } finally {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    } else if (file.isDirectory()) {
                        return true;
                    }
                    return false;
                }
            });
            for (File file : files) {
                if (file.isDirectory()) {
                    System.out.println("Scanning Folder:"
                            + file.getAbsolutePath());
                    traverse(file);
                } else {
                    doChange(file);
                }
            }
        }
    }

    /**
     * 注释html中的某行Javascript代码
     *
     * @param file
     * @return
     */
    private static boolean doChange(File file) {
        System.out.println("Extracting File:" + file.getAbsolutePath() + "...");
        String desPath = file.getParent() + "\\" + UUID.randomUUID().toString() + ".html";
        File des = new File(desPath);
        BufferedReader reader = null;
        BufferedWriter writer = null;
        try {
            des.createNewFile();
            reader = new BufferedReader(new FileReader(file));
            writer = new BufferedWriter(new FileWriter(des));
            String buffer;
            while ((buffer = reader.readLine()) != null) {
                if (buffer.trim().equalsIgnoreCase(TAG)) {
                    buffer = "<!--" + TAG + "-->";
                }
                writer.write(buffer + "\n");
                writer.flush();
            }
            return true;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
                writer.close();
                file.delete();
                des.renameTo(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return false;
    }

}

直接编译运行,注释的三行,三行代表替换三次

加载慢原因有两个一个是加载Google的字体,二个是加载Google的JS文件.

如果感觉麻烦直接去的我网盘下载,地址:http://pan.baidu.com/s/1eQd4gEm

Android docs4.3API,布布扣,bubuko.com

时间: 2025-01-02 16:45:02

Android docs4.3API的相关文章

Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤

原文地址: Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET http://blog.csdn.net/fengbingchun/article/details/11192189   1.  先按照http://blog.csdn.net/fengbingchun/article/details/10439281中操作搭建好基本的Android开发环境: 2.  打开Eclipse,-->Window-->

Android开始之 入门

TextView: android:id -- 控件的ID android:layout_width -- 控件的宽度 android:layout_height -- 控件的高度 android:text -- 文本内容 android:textSize -- 文本大小 android:textColor -- 文本颜色 android:background -- 控件背景 EditText增加了: android:hint -- 输入显示文本 android:inputType -- 输入文

Android之SDK Manager无法更新终极解决方案

前几天,Google终于发布了Android5.0正式版--棒棒糖,也许大家和我一样,也想第一时间更新SDK,结果打开SDK Manager,却让人大失所望,根本突破不了天朝的网络围墙啊.默默问一句:最近好久没有听到方校长的消息了,不知道病魔是否已经战胜方校长? 好了,废话不多说,先看看更新成功5.0的战果: 其实要越过天朝的GFW封锁,有两种比较简单的方法: ①.寻找免费的vpn,通常付费的vpn也有免费的体验时间或流量,缺点是经常掉线,网络慢. ②.修改hosts文件,不过目前百度搜索出来的

更新ADT到Android L的方法

android ADT无法更新到20? 哈哈,有办法,windows 进入host   写入如下全部,是的全部,然后在到sdk manager中方可更新 #Google Services START #Googleapis↓ 61.19.1.54 mt0.googleapis.com 61.19.1.54 mt1.googleapis.com 61.19.1.54 mt2.googleapis.com 61.19.1.54 mt3.googleapis.com 61.19.1.54 mts0.g

Android学习第一课

首先看一个android项目中各个包的作用 以下看几个经常使用的控件: 1. TextView 显示文本框控件 2. EditText 输入文本框 TextView控件经常使用属性: id----控件的id layout_width----控件的宽度 layout_height----控件的高度 text----文本内容 textSize----文本大小 textColor----文本颜色 background----控件背景 EditText控件经常使用属性 id----控件的id layou

Android控件——TextView,EditText

TextView: 显示文本控件 EditText 输入文本框 1.TextView常用属性: 2.EditText常用属性: 设置EditText的android:inputType属性可以限制文本输入类型比如android:inputType="textPassword"为设置输入格式为密码格, android:inputType="phone"为设置输入格式为拨号键盘 3.使用TextView与EditText 布局文件: <LinearLayout x

Android控件之TextView(显示文本框控件)

一.TextView控件的常用属性 android:id——控件的id   android:layout_width——控件的宽度  android:layout_height——控件的高度 android:text——文本内容 android:textSize——文本大小 android:textColor——文本颜色 android:background——控件背景  android:singleLine——是否单行显示(true为单行,false(默认)自动换行) android:text

Android 在界面中显示以及输入文本信息 TextView和EditText

Android控件之TextView和EditTextTextView:显示文本框控件EditText:输入文本框TextView和EditText的常用属性TextView控件的常用属性android:id 控件的idandroid:layout_width 控件的宽度android:layout_height 控件的高度android:text 文本内容android:textSize 文本大小android:textColor 文本颜色android:background 控件背景Edit

android控件之TextView(显示文本框控件)和EditText(输入文本框控件)

一.TextView(显示文本框控件) 1.TextView控件的常用属性 android:id——控件的id   android:layout_width——控件的宽度  android:layout_height——控件的高度 android:text——文本内容 android:textSize——文本大小 android:textColor——文本颜色 android:background——控件背景 <TextView android:id="@+id/name" an