Android项目中常用的工具类集(史上最全整理)
如果你是一名有经验的Android开发者,那么你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础。如果你是新手,那么有了这些辅助类,可以让你的项目做起来更加的简单。
下面介绍一个在GitHub中发现的强大的工具集开源项目,名字叫
android-common
项目GitHub地址:https://github.com/Trinea/android-common
做有了这个项目,你可以从中抽取部分你项目中可能会用到的类,来帮你解决很多的问题。
示例APK:
一. 缓存类
1. 图片缓存
使用见:图片缓存的使用
适用:获取图片较多且图片使用频繁的应用,包含二级缓存,如新浪微博、twitter、微信头像、美丽说、蘑菇街、花瓣、淘宝等等。效果图如下:
2. 图片SD卡缓存
使用见:图片SD卡缓存的使用
适用:应用中获取图片较多且图片较大的情况。需要二级缓存及ListView或GridView图片加载推荐使用上面的ImageCache。效果图如下:
3. 网络缓存
使用见:Android网络缓存
适用:网络获取内容不大的应用,尤其是api接口数据,如新浪微博、twitter的timeline、微信公众账号发送的内容等等。效果图如下:
4. 预取数据缓存
使用见:预取数据缓存
缓存类关系图如下:其中HttpCache为后续计划的http缓存
二. 公用的view
1. 下拉刷新及滚动到底部加载更多的Listview
使用: 下拉刷新及滚动到底部加载更多listview的使用
实现原理: http://trinea.iteye.com/blog/1562281。效果图如下:
2. 滑动一页(一个Item)的Gallery
使用及实现原理:滑动一页(一个Item)的Gallery的使用。效果图如下:
3. 滑动到底部或顶部响应的ScrollView
使用及实现原理: 滚动到底部或顶部响应的ScrollView使用。效果图如下:
三. 工具类
具体介绍可见:Android常用工具类
目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。
1、HttpUtils
Http网络工具类,主要包括httpGet、httpPost以及http参数相关方法,以httpGet为例:
static HttpResponse httpGet(HttpRequest request)
static HttpResponse httpGet(java.lang.String httpUrl)
static String httpGetString(String httpUrl)
包含以上三个方法,默认使用gzip压缩,使用bufferedReader提高读取速度。
HttpRequest中可以设置url、timeout、userAgent等其他http参数
HttpResponse中可以获取返回内容、http响应码、http过期时间(Cache-Control的max-age和expires)等
前两个方法可以进行高级参数设置及丰富内容返回,第三个方法可以简单的传入url获取返回内容,httpPost类似。更详细的设置可以直接使用HttpURLConnection或apache的HttpClient。
源码可见HttpUtils.java,更多方法及更详细参数介绍可见HttpUtils Api Guide。
2、JSONUtils
JSONUtils工具类,可用于方便的向Json中读取和写入相关类型数据,如:
String getString(JSONObject jsonObject, String key, String defaultValue) 得到string类型value
String getString(String jsonData, String key, String defaultValue) 得到string类型value
表示从json中读取某个String类型key的值
getMap(JSONObject jsonObject, String key) 得到map
getMap(String jsonData, String key) 得到map
表示从json中读取某个Map类型key的值
源码可见JSONUtils.java,更多方法及更详细参数介绍可见JSONUtils Api Guide。
3、FileUtils
文件工具类,可用于读写文件及对文件进行操作。如:
readFile(String filePath) 读文件
writeFile(String filePath, String content, boolean append) 写文件
getFileSize(String path) 得到文件大小
deleteFile(String path) 删除文件
源码可见FileUtils.java,更多方法及更详细参数介绍可见FileUtils Api Guide。
4、ResourceUtils
Android Resource工具类,可用于从android资源目录的raw和assets目录读取内容,如:
geFileFromAssets(Context context, String fileName) 得到assets目录下某个文件内容
geFileFromRaw(Context context, int resId) 得到raw目录下某个文件内容
源码可见ResourceUtils.java,更多方法及更详细参数介绍可见ResourceUtils Api Guide。
5、StringUtils
String工具类,可用于常见字符串操作,如:
isEmpty(String str) 判断字符串是否为空或长度为0
isBlank(String str) 判断字符串是否为空或长度为0 或由空格组成
utf8Encode(String str) 以utf-8格式编码
capitalizeFirstLetter(String str) 首字母大写
源码可见StringUtils.java,更多方法及更详细参数介绍可见StringUtils Api Guide。
6. Android系统下载管理DownloadManager使用
使用示例:Android系统下载管理DownloadManager功能介绍及使用示例
功能扩展:Android下载管理DownloadManager功能扩展和bug修改 效果图如下:
7. Android APK root权限静默安装
8. Android root权限
9. 图片工具类
关于项目中常用的工具类,就先介绍这么多,如果在以后的工作中碰到新的工具类,在另行补充,或者各位读者有更好的工具类也不妨分享出来,大家一同进步!
Android项目中常用的工具类集(史上最全整理)相关推荐
- java 项目中常用的工具类总结
1.文件 1.根据图片的链接,下载图片 package com.lingxu.module.BigDataJoinMessage.util;import java.io.FileOutputStrea ...
- Java常用工具类整合(史上最全)
JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...
- C#200个基础工具类,史上最全快收藏下载
场景 包含工具类部分如下: CSV文件转换;DataTable转实体;Excel操作类;FTP操作类;Html操作类;IP辅助类;JSON操作;JS操作;URL的操作类;XML操作类;处理多媒体的公共 ...
- Java 验证表单工具类,史上最全
Java 验证表彰工具类,包含各种验证如邮箱,密码,整数,等等,全的让你想不到 package com.wiker.utils; import java.util.regex.*; /**** @ve ...
- Android 项目中常用到的第三方组件
项目中常用到的第三方组件 1 社会化分享 ShareSDK-Core-2.5.9.jar ShareSDK-QQ-2.5.9.jar ShareSDK-QZone-2.5.9.jar ShareSDK ...
- java中常用的工具类
1. 常用零散工具类 1.1[DateUtil.java]日期处理的工具类 /*** 时间日期处理工具* String -> Date* Date -> String* 以及生成含有日期的 ...
- java并发编程中常用的工具类 Executor
/*************************************************** * TODO: description . * @author: gao_chun * ...
- Netflix如何在上万台机器中管理微服务?(史上最全)
疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 < Java 高并发 三部曲 > 面试必备 + 大厂必备 + 涨薪必备 疯狂创客圈 经典图书 : <N ...
- android 开发工具类,Android中常用开发工具类—持续更新...
一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...
最新文章
- Linux下安装JDK和Eclipse
- matlab中ismember_相当于Matlab“ismember”in numpy(Python)?
- CRUD之delete操作
- 网站内页权重高于首页的原因及解决方法攻略总结!
- python-os模块
- 聚类 高维聚类 聚类评估标准 EM模型聚类
- babel import语法 js_Babel 的理解
- 递归求和的复习-计算m~n整数和
- C# Winform 窗体美化(八、Icon)
- 与nfs相关的计算机服务设置,在服务器端配置nfs
- wamp xampp mysql端口冲突_解决xampp端口冲突
- go 对象json转map
- Windows Server 2016忘记密码破解方法
- 九种NPP\GPP数据集介绍和下载
- 哈希表、哈希桶(C++实现)
- android 卸载预装软件,手机自带软件怎么卸载?安卓预装软件卸载方法
- 转:让老板头疼的90后,管不得?
- HCIP-Datacom 分解实验1:访问控制列表
- 排线颜色及排序视觉检测系统
- 云原生时代,企业如何选取研发模式,并通过云效流水线落地
热门文章
- java appkey_如何使用Microsoft Graph API获取AppKey
- 数值选择器之mobiscroll的免费使用
- “带头大哥现象”看市场监管
- 数据可视化图表ECharts视频教程
- 算法衡量auc_优化AUC两遍学习算法
- html手机编辑器内含css,打造属于自己的 HTML/CSS/JavaScript 实时编辑器
- [译] 代码中添加注释之好坏丑
- STM32烧录错误【PDSC: Sequence Execution failed error-Debug access failed - cannot read address 0xE00FFFE】
- 迷宫问题-DFS-BFS
- js判断对象属性是否存在之深入理解