Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)
介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)、及Android常用工具类(网络、下载、shell、文件、json等等)。
TrineaAndroidCommon开源地址为TrineaAndroidCommon@Github,欢迎Star或Fork^_*,示例APK地址见TrineaAndroidDemo.apk。
PS:这是准备分享的三个系列之一,暂时告一段落,后续准备开始Android性能优化系列以及Java多线程系列。Android公共库系列后续计划是添加二级缓存以及一个能给应用以亮点的公共View。
一. 缓存类
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. 预取数据缓存 使用见:预取数据缓存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常用工具类
Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)的更多相关文章
- Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类
Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类 转载自http://www.trinea.cn/android/android-common-lib/ 介绍总结的一 ...
- Android自定义之ScrollView下拉刷新
公司项目,需要用到ScrollView的下拉刷新,一开始使用的时候PullToRefresh三方库的下拉刷新,我比较纠结第三档库,很强大,但是,公司项目的需求,PullToRefresh就不能做到了, ...
- Android仿苹果版QQ下拉刷新实现(二) ——贝塞尔曲线开发"鼻涕"下拉粘连效果
前言 接着上一期Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件 的博客开始,同样,在开始前我们先来看一下目标效果: 下面上一下本章需要实现的效果图: 大家看到这个效果 ...
- <keep-alive> 大量异步数据嵌入在循环体内,会有大量相同异步请求,可以缓存下拉用。
<keep-alive> 大量异步数据嵌入在循环体内,会有大量相同异步请求,可以缓存下拉用.
- 【Java/Android性能优 7】Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类
本文转自:http://www.trinea.cn/android/android-common-lib/ 介绍总结的一些android公共库,包含缓存(图片缓存.预取缓存.网络缓存).公共View( ...
- android模仿58筛选下拉框(PopupWindow实现)
前言:前几天用58同城APP找房子的时候,看到筛选下拉框蛮不错的,然后也有很多朋友需要实现这个功能,于是从网上下载了一个demo,在他的基础上进行修改,花了几个小时对他的代码进行修改,重构,封装.把一 ...
- Android 使用PullToRefresh实现下拉刷新和上拉加载(ExpandableListView)
PullToRefresh是一套实现非常好的下拉刷新库,它支持: 1.ListView 2.ExpandableListView 3.GridView 4.WebView 等多种常用的需要刷新的Vie ...
- android 引用 project以及下拉刷新开源类库Android-PullToRefresh 的使用
Android-PullToRefresh 是一个github上的开源下拉刷新类库, GitHub .此外,该作者还有另外一个实用度和关注量极高的项目–另一种Android ActionBar的实现 ...
- Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件
前言: 忙完了结婚乐APP的开发,终于可以花一定的时间放在博客上了.好了,废话不多说,今天我们要带来的效果是苹果版本的QQ下拉刷新.首先看一下目标效果以及demo效果: 因为此效果实现的步骤 ...
随机推荐
- C# Windows - 创建控件
VS提供了一个项目类型Windows Control Library,使用它可以创建自己的控件. 可以开发两种不同类型的自定义控件: 用户或组合控件:这种控件是根据现有控件的功能创建一个新控件.这类控 ...
- WPF解析PDF为图片
偶遇需要解析PDF文件为单张图,此做, http://git.oschina.net/jiailiuyan/OfficeDecoder using System; using System.Colle ...
- 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能
在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException ...
- 【POJ】【3071】Football
概率DP kuangbin总结中的第10题 简单的画个比赛图,会发现是一颗完全二叉树,且同一层的子树之间各自独立,只有在合并得到更高一层结果时才结合. 所以我们可以按比赛轮数进行DP,f[i][j]表 ...
- 清除HTML中的特殊字符
/// <summary> /// 清楚HTML中的特殊字符 /// </summary> /// <param name=&q ...
- ARRAY_SIZE宏
宏ARRAY_SIZE,是求设备结构体中设备的个数, 定义在linux/kernel.h中 #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof((arr)[ ...
- P1011 传纸条//dp优化改进状态表示
P1011 传纸条 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2008复赛提高组第三题 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不 ...
- 初识io流条件状态
一 流状态 C++中的输入输出系统负责记录每一个输入输出操作的结果信息,这些当前的状态信息被包含在io_state类型的对象中.io_state是一个枚举类型(就像open_mode一样),以 ...
- iOS开发--_weak typeof(self) weakSelf = self
_weak typeof(self) weakSelf = self; (一)内存管理原则 1.默认strong,可选weak.strong下不管成员变量还是property,每次使用指针指向一个 ...
- vc2005中没有classwizard这个命令
vc2005中没有classwizard这个命令了 2005下怎么添加鼠标事件 vc2005中没有classwizard这个命令了 取代classwizard 中的添加消息映射,添加类,等等的功能主要 ...