【Java/Android性能优 7】Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类...
本文转自:http://www.trinea.cn/android/android-common-lib/
介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存、网络缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)、及Android常用工具类(网络、下载、shell、文件、json等等)。
TrineaAndroidCommon已开源,地址为TrineaAndroidCommon@Github,欢迎Star或Fork^_*
示例APK可从这些地址下载:Google Play, 360手机助手, 百度手机助手, 小米应用商店, 豌豆荚
PS:这是准备分享的三个系列之一,暂时告一段落,后续准备开始Android性能优化系列以及Java多线程系列。
一. 缓存类
1. 图片缓存
使用见:图片缓存的使用
适用:获取图片较多的应用,如新浪微博、twitter、微信头像、美丽说、蘑菇街、花瓣、淘宝等等。
主要特性:(1). 使用简单 (2). 轻松获取及预取新图片 (3). 包含二级缓存 (4). 可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等 13种)或自定义缓存算法 (5). 可方便的保存及初始化恢复数据 (6). 省流量性能佳(有且仅有一个线程获取图片) (7). 支持不同类型网络处理 (8). 可根据系统配置初始化缓存 (9). 扩展性 强 (10). 支持等待队列 (11). 包含map的大多数接口。
效果图:
2. 图片SD卡缓存
使用见:图片SD卡缓存的使用
适用:应用中获取图片较多且图片较大的情况,在微博、花瓣、美丽说、path这类应用中可以起到很好的效果。
主要特性:(1). 使用简单 (2). 轻松获取及预取新图片 (3). 包含二级缓存 (4). 可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法 (5). 可方便的 保存及初始化恢复数据 (6). 支持文件sd卡保存及自定义文件名规则 (7). 省流量性能佳(有且仅有一个线程获取图片) (8). 支持不同类型网络处理 (9). 可根据系统配置初始化缓存 (10). 扩展性强 (11). 支持等待队列 (12). 包含map的大多数接口。
效果图:
3. 网络缓存
使用见:Android网络缓存
适用:网络获取内容不大的应用,尤其是api接口数据,如新浪微博、twitter的timeline、微信公众账号发送的内容等等。
主要特性:(1). 可同步或异步获取数据 (2). 可自动根据服务器的返回头判断是否需要缓存 (3). 可自动根据请求头信息判断是否读取缓存
效果图:
4. 预取数据缓存
使用见:预取数据缓存PreloadDataCache
主要特性:(1).使用简单 (2).可自动预取新数据 (3).可选择多种缓存算法(包括FIFO、LIFO、LRU、MRU、LFU、MFU等15种)或自定义缓存算法 (4).省流量性能佳(有且仅有一个线程获取数据) (5).支持不同类型网络处理 (6)缓存可序列化到本地 缓存可从文件中恢复 (7).扩展性强 (8). 包含map的大多数接口
缓存类关系图如下:其中HttpCache为后续计划的http缓存
二. 公用的view
1. 下拉刷新及滚动到底部加载更多的Listview
使用见: 下拉刷新及滚动到底部加载更多listview的使用
主要特性:(1). 可自定义下拉响应事件(如下拉刷新) (2).可自定义滚动到底部响应的事件(如滑动到底部加载更多) (3).可自定义丰富的样式 (4).高效(若下拉样式关闭不会加载其布局,同listView效率一致) (5). 丰富的设置
效果图:
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. Android系统下载管理DownloadManager使用
使用示例见:Android系统下载管理DownloadManager功能介绍及使用示例
功能扩展:Android下载管理DownloadManager功能扩展和bug修改
2. Android APK root权限静默安装
使用示例见:Android APK root权限静默安装
3. Android root权限
直接调用ShellUtils.execCommand方法
4. 图片工具类
(1)Drawable、Bitmap、byte数组相互转换; (2)根据url获得InputStream、Drawable、Bitmap见ImageUtils。
更多工具类介绍见Android常用工具类
转载于:https://www.cnblogs.com/dongdong230/p/4203154.html
【Java/Android性能优 7】Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类...相关推荐
- Android ListView 疯狂之旅 之 《自定义下拉刷新功能的ListView》
效果图: 一 首先创建一个类,继承ListView,编写其构造方法 public class RefreshListView extends ListView {public RefreshListV ...
- android抖音自动刷新,Android 使用SwipeRefreshLayout控件仿抖音做的视频下拉刷新效果...
SwipeRefreshLayout(这个控件),我先跟大家介绍一下这个控件: 一.SwipeRefreshLayout简单介绍 •先看以下官方文档,已有了很详细的描述了. 官方文档说明 •这里我再大 ...
- 微信小程序/网页/app/android等各种bar图标导航图标文章图标标题图标下拉/检索收藏上传客服等图标整理
在做微信小程序的时候,需要给底部放置图标.但是找了好久都没有找到自己想要的,适合的.后来我就把所有的小程序的图标都看了下.后来想想还是整理出来,方便自己以后用,也方便大家一下.我敢保证有你想要的,适合 ...
- android性能优化透明,Android性能优化-图片篇
(1)drawable目录详解(mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi) 1.1.图片在各个目录中要如何存放?(必须理解) android的drawable目录有: drawab ...
- android webview优酷,android 使用WebView 支持播放优酷视频,土豆视频
看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android ...
- Android性能优化系列 + Android官方培训课程中文版
Android性能优化典范 - 第6季 http://hukai.me/android-performance-patterns-season-6/ Android性能优化典范 - 第5季 http: ...
- my android tools优酷,Android自定义控件——仿优酷圆盘菜单
最近学习的时候,看见一份资料上教怎么写自定义控件,上面的示例用的是优酷早期版本的客户端,该客户端的菜单就是一个自定义的组件(现在的版本就不清楚有没有了,没下载过了),好吧,废话不多说,先上优酷的原型图 ...
- android动态显示/隐藏statusbar,android4.4动态显示隐藏statusbar和禁止下拉
android4.4增加动态显示隐藏statusbar和禁止statusbar下拉功能 首先还是在设置->显示里加上图形界面 修改packages/apps/Settings/res/xml/d ...
- android 禁止媒体扫描,Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件...
Android默认情况下会将每个多媒体文件的信息保存在一个数据库中(在系统收到某些消息,比如开机.插拔SD卡.设备连接上电脑这种涉及到可能更改文件系统内容的情况下,会触发系统扫描文件系统中的多媒体文件 ...
- Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件
Android默认情况下会将每个多媒体文件的信息保存在一个数据库中(在系统收到某些消息,比如开机.插拔SD卡.设备连接上电脑这种涉及到可能更改文件系统内容的情况下,会触发系统扫描文件系统中的多媒体文件 ...
最新文章
- 刻意练习:LeetCode实战 -- Task02. 删除排序数组中的重复项
- RecyclerView的基本用法
- 读书笔记4数据的读入和保存
- 20180530更新
- 区块链基础知识系列 第四课Hyperledger fabric 1.0网络组成及构建流程
- Android Loader 异步加载详解一:基础概念
- window下eclipse搭建C/C++开发环境(超简单无需插件版) .
- [C++11]可调用对象包装器function
- G. Xor-MST(异或最小生成树)
- IoT日志利器:嵌入式日志客户端(C Producer)发布
- 深圳电子地图 深圳高清电子地图 来自谷歌电子地图 最高19级地图
- 2020年11月DB-Engines排行:Oracle归零年内涨幅 PostgreSQL增长第一独秀
- 递归遍历文件及子文件夹下的文件(该代码是复制过来修改过的,如果有侵作者权的话,请作者联系我,立即删除)...
- 关于TCP/UDP缓存
- 系泊系统悬链线matlab,孙传耀, 汤鸣晓. 基于MATLAB的系泊系统的设计及其动力分析[J]. 电子技术与软件工程, 2017(6): 62-63....
- 使用枚举实现英文转盲文
- Olly Advanced 1.1 by MaRKuS TH-DJM
- 什么是适用于iPhone和iPad的iOS最新版本?
- uniapp小程序文字与语音互相转化
- 分享实录 | 阿里巴巴代码缺陷检测探索与实践