一、简介 java
utils部分是对一些经常使用的工具类进行简单的封装,使用起来比较方便。这里列举经常使用的一些。 算法
二、ContextUtils使用 api
主要封装了网络判断。一些方法解释以下: 缓存
//判断是否存在网络链接 public static boolean hasNetwork(Context context); //判断GPS是否打开 public static boolean isGpsEnabled(Context context); //SD卡是否可用 public static boolean hasSdCard()三、 HttpUtils使用
这个只作了简单请求封装,没有支持图片上传功能,要使用图片上传功能相见dazzle.common.http部分。 网络
//GET请求,可带参数,使用UTF-8编码,链接超时和请求超时默认12s public static String requestURL(String url, Map<String, String> params) throws IOException; //POST请求,使用UTF-8编码 public static String requestURLPost(String url, Map<String, String> paramsMap); //下载文件,输出流到file里 public static void downloadURLToFile(String downloadUrl, File file) throws Exception;
四、ToastUtils使用 app
对ToastUtils作了简单的封装,使用更加方便,基本一句话搞定。 工具
//显示吐司信息(较长时间) public static void displayTextLong(Context context, String text); //显示吐司信息(较短期) public static void displayTextShort(Context context, String text); //显示吐司信息交给handler处理(较长时间) public static void displayTextLong2Handler(final Context context, final String text, Handler handler); //显示吐司信息交给handler处理(较短期) public static void displayTextShort2Handler(final Context context, final String text, Handler handler);五、 ProgressDialogUtils使用
是对ProgressDialog的简单封转,使调用更加简单,一句话搞定。至于实现部分可能static的引用了Context,可能会引发所谓的内存泄露危险,待后面考虑改进。 this
//单例的progressDialog显示 public void show(String title); //单例的progressDialog隐藏 public void dismiss(); //单例的progressDialog影藏,在线程中使用 public void dismiss(Handler handler); //上面说的单例能够这样生成单例 ProgressDialogUtils pdu = ProgressDialogUtils.instance(this);
六、PreferenceModel使用 编码
主要是对SharedPreferences存储的封装,使用简单一句话搞定。 url
//保存写法,其中name是key,xuan是value,Types.String是类型 PreferenceModel.instance(this).saveSystemProperties("name","xuan",Types.STRING); //获取写法,其中name是key,"anan"是在获取不到值时的默认值,Types.String你懂的 PreferenceModel.instance(this).getSystemProperties("name","anan",Types.STRING);七、缓存cache部分使用
主要是对LRU算法的缓存实现。在手机内存有限的状况下,这种缓存算法性价比仍是比较高的。下面是从keel里面拷贝过来的一个很简陋的cache。其实sdk高版本的api中已经有实现的叫:LruCache类。有空用这个重写一下,人家写的总归牛逼点,虽然使用过程当中也没看出来咱们本身写的比较差。不过去看过源码后发现,人家的确实比较牛逼的。
//获取一个默认缓存,默认容量20个数量,若是要缓存bitmap之类的这种缓存有弊端 LRUPlusCache cache = LRUPlusCacheFactory.getDefaultCache(); //把对象放入缓存 XuanObj xuanObj = new XuanObj(); cache.putInCache("name",xuanObj); //获取 XuanObj xuanObj = (XuanObj)cache.getFromCache("name"); //清理缓存 cache.removeAll();
八、其余
固然上面只是一些比较经常使用,还有一些其余的,大体说一下把
(1)ActionUtils类。封装了打电话,发短信接口。
(2)AlertDialogUtils类。AlertDialog的封装。相似网页的啊alert,还有多选单选框。
(3)DateUtils类。keel里面拷贝过来的。对日期的简化封装。
(4)ServiceUtils类。对Service操做的封装。
(5)StringUtils类。字符串操做的封装。
(6)TextViewHtmlUtils类。对TextView可能设置HTML的封装。
(7)UpdateManager类。更新APK使用模块。包括了APK的下载,和自动安装。
(8)Validators类。keel里面拷贝过来的,是一些经常使用的校验方法。
(9)VersionUtils类。能够获取app系统的一些版本号和版本名称。
九、media模块
该模块有两个重要的类。MediaPlayerModel和MediaRecorderModel分别对播放音频和录音进行了封装。