摘要: ===============================神奇分割线==================================keepAliveTimejdk中的解释是:当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。有点拗口,其实这个不难理解,在使用了“池”的应用中,大多都有类似的参数需要配置。比如数据库连接池,DBCP中的maxIdle,minIdle参数。什么意思?接着上面的解释,后来向老板派来的工人始终是“借来的”,俗话说“有借就有还”,但这里的问题就是什么时候还了,如果借来的工人刚完成一个任务就还回去,后来发现任务还有,那岂不是又要去借?这一来一往,老 阅读全文
posted @ 2013-03-16 00:18 编程小爬虫 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 前记:jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue);中篇中主要聊聊与keepAliveTime这个参数相关的话题;下片中介绍一下一些比较少用的该类的API,及他的近亲:ScheduledThreadPoolExecutor。如果理解错误,请直接指出。查看JDK帮助文档, 阅读全文
posted @ 2013-03-16 00:15 编程小爬虫 阅读(419) 评论(0) 推荐(0) 编辑
摘要: private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(100000),new ThreadPoolExecutor.CallerRunsPolicy());一、简介线程池类为java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,lo 阅读全文
posted @ 2013-03-16 00:08 编程小爬虫 阅读(953) 评论(0) 推荐(0) 编辑
摘要: AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到 ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HTTP请求把图片的输入流取出,然 后用BitmapFactory去解析,然后再把得到的Bitmap放到ImageView中。这个应用是用4.0的SDK开发的,也是运行在4.0上面 的。但是有时候下载这张图片去要用很久很久,甚 阅读全文
posted @ 2013-03-15 17:04 编程小爬虫 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 通过RTTI,Class类和Reflection可以获取某个类的详细信息,包括其没有Public出来的信息,先看一个实例:public class ClassExtractor { /** to discard qualifiers */ private static final Pattern pattern = Pattern.compile("\\w+\\."); private static String removeQualifiers(String name) { return pattern.matcher(name).replaceAll... 阅读全文
posted @ 2013-03-15 16:50 编程小爬虫 阅读(234) 评论(0) 推荐(0) 编辑
摘要: Understanding LooperLooper是用于给一个线程添加一个消息队列(MessageQueue),并且循环等待,当有消息时会唤起线程来处理消息的一个工具,直到线程结束为止。通常情况下不会用到Looper,因为对于Activity,Service等系统组件,Frameworks已经为我们初始化好了线程(俗称的UI线程或主线程),在其内含有一个Looper,和由Looper创建的消息队列,所以主线程会一直运行,处理用户事件,直到某些事件(BACK)退出。如果,我们需要新建一个线程,并且这个线程要能够循环处理其他线程发来的消息事件,或者需要长期与其他线程进行复杂的交互,这时就需要用到 阅读全文
posted @ 2013-03-15 16:47 编程小爬虫 阅读(324) 评论(0) 推荐(0) 编辑
摘要: BitmapFactory.decodeFile(imageFile);用BitmapFactory解码一张图片时,有时会遇到该错误。这往往是由于图片过大造成的。要想正常使用,则需要分配更少的内存空间来存储。BitmapFactory.Options.inSampleSize设置恰当的inSampleSize可以使BitmapFactory分配更少的空间以消除该错误。inSampleSize的具体含义请参考SDK文档。例如:BitmapFactory.Options opts = new BitmapFactory.Options();opts.inSampleSize = 4;Bitmap 阅读全文
posted @ 2013-03-15 16:16 编程小爬虫 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 在android下,要想接受广播信息,那么这个广播接收器就得我们自己来实现了,我们可以继承BroadcastReceiver,就可以有一个广播接受器了。有个接受器还不够,我们还得重写BroadcastReceiver里面的onReceiver方法,当来广播的时候我们要干什么,这就要我们自己来实现,不过我们可以搞一个信息防火墙。具体的代码:public class SmsBroadCastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Int... 阅读全文
posted @ 2013-03-12 21:21 编程小爬虫 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 大家都知道,Android 2.3 SDK发布的时候,在SDK中增加了第三方add-ons,其中就包括了针对平板电脑的Galaxy Tab Addon。当我们启动一个新的平板电脑模拟器的时候,首先我们需要设置“Scale display to real size"选项,这将让平板电脑的屏幕大小与我们电脑屏幕的大小匹配。以我的电脑为例,我的屏幕大小是1440x900px。如果我们平板电脑模拟器上运行一个SDK 1.6的例子(我们至少需要 API level 4, SDK 1.6 for tablets),您将看到如下所示:我们的应用程序并没有填满整个平板电脑模拟器的屏幕,下面我们就来解 阅读全文
posted @ 2013-03-06 23:08 编程小爬虫 阅读(288) 评论(0) 推荐(1) 编辑
摘要: 转自:http://www.blogjava.net/fastunit/archive/2008/04/08/191533.html当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。一、Comparator强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。接口方法: /** * @return o1小于、等于或大于o2,分别返回负整数、零或正整数。 */ int compare(Object o1, O... 阅读全文
posted @ 2013-03-03 11:01 编程小爬虫 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 首先我们先来看下官方API对SurfaceView的介绍SurfaceView的API介绍Provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format of this surface and, if you like, its size; the SurfaceView takes care of placing the surface at the correct location on the screenThe surface is Z ordere 阅读全文
posted @ 2013-02-23 10:28 编程小爬虫 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 世界上信息无处不在,条码就无孔不入。方便快速的生成和读取条码信息,已经成为智能手机的基本功能。如何在Window Phone手机应用上实现条码扫描功能呢?最先想到的可能是首先用摄像头读取到条码图像、二值化、图像处理等等,让人头大。但是俗话说的好,Don't Reinvent The Wheel,要感谢强大的ZXing库[1],我们可以把精力多放在app本身功能的实现上。ZXing库实现了众多的一维/二维条码的读取功能,例如常见的EAN-13和QR码。Zxing支持多种编程语言,有人实现了Silverlight版本[2],WP7应用中可以很方便的使用。本文从一个实例入手,介绍一下如何来使 阅读全文
posted @ 2013-01-24 23:52 编程小爬虫 阅读(1987) 评论(0) 推荐(0) 编辑
摘要: 一.intent.setFlags()方法中的参数值含义:1.FLAG_ACTIVITY_CLEAR_TOP:例如现在的栈情况为:A B C D 。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记,则栈情况变为:A B。如果没有添加这个标记,则栈情况将会变成:A B C D B。也就是说,如果添加了FLAG_ACTIVITY_CLEAR_TOP标记,并且目标Activity在栈中已经存在,则将会把位于该目标activity之上的activity从栈中弹出销毁。这跟上面把B的Launch mode设置成singleTask类似。简而言之, 阅读全文
posted @ 2013-01-10 20:14 编程小爬虫 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 开发Windows Phone 7 应用程序时,我们经常需要弹出一个对话框(Popup Dialog)来向用户提示一些信息,或向用户索取输入信息。相比于完全导航(Navigate)到一个新的界面,半遮掩式的弹出窗口显得更加轻便(Lightweight),也提供更加紧凑的交互上下文环境(Interaction Context)。这一点尤其适用于那些些内容相对简单、控件数量相对较少的界面。然而,Windows Phone 7 SDK 中,并没有对弹出对话框提供太多的功能。最常用的也就是MessageBox.Show() 而已。在这片文章里,我将介绍如何构建一个可重用的弹出框容器(PopupCont 阅读全文
posted @ 2012-12-28 15:06 编程小爬虫 阅读(194) 评论(0) 推荐(0) 编辑
摘要: http://daimajishu.iteye.com/blog/1088680 阅读全文
posted @ 2012-12-28 00:26 编程小爬虫 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 从对话框中返回信息:现在,到了我们要从对话框上获取用户输入的值,将它返回到主调的Activity中的时候了。然而,Dialog类并没有提供可以直接返回这些值的方法…但是,我们可以使用自己创建的监听类:public interface MyDialogListener { public void onOkClick(String name); public void onCancelClick();}我们的对话框类的构造方法同时需要作一点小小的修改:public MyDialog(Context context, MyDialogListener listener) { super(contex 阅读全文
posted @ 2012-12-02 17:31 编程小爬虫 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-11-28 20:29 编程小爬虫 阅读(149) 评论(0) 推荐(0) 编辑
摘要: /** * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。 * * 1.图形绘制 * setARGB(int a,int r,int g,int b); * 设置绘制的颜色,a代表透明度,r,g,b代表颜色值。 * * setAlpha(int a); ... 阅读全文
posted @ 2012-11-23 16:02 编程小爬虫 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 有时候我们在项目中,需要把图片加工一下,比如说加个圆角,或者打上马赛克或者水印,虽然不是很难的东西,但是没弄过,还是很纠结的,比如像我这样的小白,现在根据网上一些大牛的一些方法,总结了下面这个图片加工厂工具类,可能还有更多的需求,有需要的时候,再去网上找,继续完善中,,直接上跟大家分享代码,注释比较多,而且简单,我就不多说了,直接上跟大家分享代码:/** * 图片加工厂 * * @author way * */ public class ImageUtil { /** * 通过路径获取输入流 * * @param path *... 阅读全文
posted @ 2012-11-23 12:40 编程小爬虫 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 现在WP7的中文学习资料还是非常的少,自己摸索Windows Phone 7有一阵子,现在与大家分享一些自己常用技巧和个人的学习总结,同时也作为自己学习资料,用到时方便查阅,由于个人学习能力和知识有限,如果有错误或者不好之处,欢迎大家拍砖纠正,同时欢迎大家共同交流。 1. ApplicationBar在其它事件中调用的方法 Applicatio 现在WP7的中文学习资料还是非常的少,自己摸索Windows Phone 7有一阵子,现在与大家分享一些自己常用技巧和个人的学习总结,同时也作为自己学习资料,用到时方便查阅,由于个人学习能力和知识有限,如果有错误或者不好之处,欢迎大家拍砖纠正,同... 阅读全文
posted @ 2012-11-20 23:20 编程小爬虫 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 哈哈,好久没有写博客拉,blog里边好凄凉阿~~人也变懒了…… android原生自带的桌面文件夹样式及其简单,没有iphone那种可以显示文件夹内文件图标缩略图的功能,今天我们来简单的实现一个。效果如下:效果如下:从launcher源码中很容易变可以看出需要修改的文件,主要修改FolderIcon.java这个文件。修改后的代码如下:public class FolderIcon extends BubbleTextView implements DropTarget { private UserFolderInfo mInfo; private Launcher mLaunch... 阅读全文
posted @ 2012-11-18 13:31 编程小爬虫 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同;阴(农)历,每个月固定28天 每周的第一天 - 阳(公)历星期日是第一天;阴(农)历,星期一是第一天 实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一个人的生日是\"八月八日\" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是 \"Gregori 阅读全文
posted @ 2012-11-16 00:16 编程小爬虫 阅读(928) 评论(0) 推荐(0) 编辑
摘要: android:gravity指定在对象的X和Y轴上如何放置内容。指定一下常量中的一个或多个(使用 “|”分割)ConstantValueDescriptiontop0x30紧靠容器顶端,不改变其大小bottom0x50紧靠容器底部,不改变其大小left0x03紧靠容器左侧,不改变其大小right0x05紧靠容器右侧,不改变其大小center_vertical0x10垂直居中,不改变其大小fill_vertical0x70垂直方向上拉伸至充满容器center_horizontal0x01水平居中,不改变其大小Fill_horizontal0x07水平方向上拉伸使其充满容器center0x11居 阅读全文
posted @ 2012-11-15 15:46 编程小爬虫 阅读(232) 评论(0) 推荐(0) 编辑
摘要: GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。GridView常用的XML属性:属性名称描述android:columnWidth设置列的宽度。android:gravity设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。and 阅读全文
posted @ 2012-11-15 15:37 编程小爬虫 阅读(258) 评论(0) 推荐(0) 编辑
摘要: Android的Margin和Padding跟Html的是一样的。如下图所示:黄色部分为Padding,灰色部分为Margin。通俗的理解 Padding 为内边框,Margin 为外边框对应的属性为android:layout_marginBottom="25dip"android:layout_marginLeft="10dip"android:layout_marginTop="10dip"android:layout_marginRight="10dip"android:paddingLeft=" 阅读全文
posted @ 2012-11-14 20:55 编程小爬虫 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 我们经常会在应用程序中使用列表的形式来展现一些内容,所以学好ListView是非常必需的。ListView也是Android中比较难以使用的控件,这节内容就将详细解读ListView的用法。一个ListView通常有两个职责。(1)将数据填充到布局。(2)处理用户的选择点击等操作。第一点很好理解,ListView就是实现这个功能的。第二点也不难做到,在后面的学习中读者会发现,这非常简单。一个ListView的创建需要3个元素。(1)ListView中的每一列的View。(2)填入View的数据或者图片等。(3)连接数据与ListView的适配器。也就是说,要使用ListView,首先要了解什么 阅读全文
posted @ 2012-11-14 17:20 编程小爬虫 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 在开发中我们需要绑定一些数据展现到桌面上,这是就需要AdapterView。AdapterView是ViewGroup的子类,它决定了怎么展现视图通过Adapter来绑定特殊的数据类型。 AdapterView是非常有帮助的当你展现数据在你的布局中。Gallery,ListView和Spinner是AdapterView的子类。 下面看一下AdapterView的结构图: 然后再看一下Adapter的结构图: 上面已经充分展现了他们的子类和父类的基础关系。 下面我们看一个ListViewDemo的例子: 先来看一个简单的adapter的例子: public class SimpleList . 阅读全文
posted @ 2012-11-14 15:58 编程小爬虫 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。加载模式分类及在哪里配置Activity有四种加载模式:standardsingleTopsingleTasksingleInstance设置的位置在AndroidManifest.xml文件中activity元素的android:launchMode属性:<activity android:name="ActB& 阅读全文
posted @ 2012-11-13 12:08 编程小爬虫 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 自己整理,整理得不好,不喜勿喷!HTTP通信HttpURLConnection接口HTTP超文本传输协议,用于传送WWW方式的数据。HTTP协议采用了请求/响应模式。Android提供了HTTPURLConnection和HttpClient接口来开发HTTP程序。HTTP使用最多的就是Get和Post,Get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给服务器。HttpUrlConnection是抽象类,无法直接实例化对象,所以只能够通过URL的openConnection方法获得。URL url = new URL(“http://www.google.com/”);Http 阅读全文
posted @ 2012-11-12 22:04 编程小爬虫 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 在ListView中设置Selector为null会报空指针?mListView.setSelector(null);//空指针试试下面这种:mListView.setSelector(new ColorDrawable(Color.TRANSPARENT));如何让ListView初始化的时候就选中一项?ListView需要在初始化好数据后,其中一项需要呈选中状态。所谓"选中状态"就是该项底色与其它项不同,setSelection(position)只能定位到某个item,但是无法改变底色呈高亮。setSelection(position)只能让某个item显示在可见It 阅读全文
posted @ 2012-11-09 01:57 编程小爬虫 阅读(333) 评论(0) 推荐(0) 编辑
摘要: package fkshl.activity.contentProvider;/* Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://ww... 阅读全文
posted @ 2012-11-09 01:49 编程小爬虫 阅读(355) 评论(0) 推荐(0) 编辑
摘要: EditText属性EditText继承TextView,所以EditText具有TextView的属性特点,下面主要介绍一些EditText的特有的输入法的属性特点android:layout_gravity="center_vertical":设置控件显示的位置:默认top,这里居中显示,还有bottomandroid:hin:Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。android:singleLine:设置单行输入,一旦设置为true,则文字不会自动换行。android:gray="top":多行中指针 阅读全文
posted @ 2012-11-09 01:48 编程小爬虫 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 启动Service有两种方式:startService 与 bindService。前者已经说过如何使用,所以,这篇贴子主要是关于 bind service的。 这里所讨论的是仅针对那些被绑定的service的,而那些既被startService() 又被 bindService() 的 service 不在此范围内。① Bind Service就像是C/S架构中的服务端,其他组件(比如 Activity)绑定到它(通过 bindService()),可以向它发送请求,可以接受从它返回的响应,它甚至还提供了进程间通信(IPC)功能。② 一个service要想能够被其他组件绑定,那么它的 onB 阅读全文
posted @ 2012-11-05 14:26 编程小爬虫 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 内存缓存//需要导入外部jar文件 android-support-v4.jar import android.support.v4.util.LruCache; //开辟8M硬缓存空间 private final int hardCachedSize = 8*1024*1024; //hard cache private final LruCache<String, Bitmap> sHardBitmapCache = new LruCache<String, Bitmap>(hardCachedSize){ @Override public int sizeOf(S 阅读全文
posted @ 2012-11-04 11:08 编程小爬虫 阅读(302) 评论(0) 推荐(0) 编辑
摘要: java.io包1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有:PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。PrintWriter(Writer out) 创建不带自动行刷新的新 PrintWriter。 这两种构造方法。由于PrintWriter能够实现自动刷新所以又衍生出另两种:PrintWriter(OutputStream out, boolean autoFlush) 通过现有 阅读全文
posted @ 2012-11-03 23:15 编程小爬虫 阅读(334) 评论(0) 推荐(0) 编辑
摘要: java.util包1)首先记住它的8中构造方法同PrintWriter类Scanner类同样可以直接对文件进行操作Scanner(File source)构造一个新的 Scanner,它生成的值是从指定文件扫描的,底层平台的默认字符集转换成字符。Scanner(File source, String csn)指定字符集。 但如果用String的话是不能指定字符集的Scanner(String source)构造一个新的 Scanner,它生成的值是从指定字符串扫描的,Scanner的这个构造方法允许它能作为扫描器。 注意同PrintWriter的区别,若想指定字符集就必须将目录或文件转换成F 阅读全文
posted @ 2012-11-03 23:15 编程小爬虫 阅读(319) 评论(0) 推荐(0) 编辑
摘要: import java.text.*;import java.util.*;public class DecimalFormatSample { public static void main(String args[]) { DecimalFormat myformat1 = new DecimalFormat("###,###.0000");//使用系统默认的格式 System.out.println(myformat1.format(111111123456.12)); Locale.setDefault(Local... 阅读全文
posted @ 2012-11-03 20:04 编程小爬虫 阅读(453) 评论(0) 推荐(0) 编辑
摘要: Android中提供的HttpURLConnection和HttpClient接口可以用来开发HTTP程序。以下是本人在学习中的总结与归纳。1. HttpURLConnection接口 首先需要明确的是,Http通信中的POST和GET请求方式的不同。GET可以获得静态页面,也可以把参数放在URL字符串后面,传递给服务器。而POST方法的参数是放在Http请求中。因此,在编程之前,应当首先明确使用的请求方法,然后再根据所使用的方式选择相应的编程方式。 HttpURLConnection是继承于URLConnection类,二者都是抽象类。其对象主要通过URL的openConnection方法获 阅读全文
posted @ 2012-11-03 13:54 编程小爬虫 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 类描述:通过系统提供的MotionEvent来监测各种手势和(触摸)事件。当一个指定的手势事件发生时,GestureDetector.OnGestureListener回调函数将通告用户。这个类仅仅处理由触摸引发的MotionEvent(不能处理由轨迹球引发的事件)。类中的一些手势类型: 1.boolean onDoubleTap(MotionEvent e)解释:双击的第二下Touch down时触发 2.boolean onDoubleTapEvent(MotionEvent e)解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。 3.boole.. 阅读全文
posted @ 2012-11-03 13:00 编程小爬虫 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 屏幕切换指的是在同一个Activity内屏幕见的切换。通过GestureDetector、OnGestureListener实现滑屏事件。ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。示例中第一页仅放了一个按钮BUTTON,向下滑屏时,每页都只放了一个TEXTVIEW。页面:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/ 阅读全文
posted @ 2012-11-03 12:58 编程小爬虫 阅读(293) 评论(0) 推荐(0) 编辑