#Common4Android v2.0
Common methods for android developer v2.0.
##Overview
###-基类
ClassName | Description
---------------------------|--------------------------------------
BaseApplication.java | Application基类,启动SDCard监听、网络状态监听。
BaseActiivty.java | Activity基类,封装常用方法及Activity管理。
###-管理器
ClassName | Description
---------------------------|--------------------------------------
ActivityManager.java | Activity管理工具类,可以获得当前引用启动的Activity实例。
HotFixManager.java | 热修复patch加载工具类。
SystemBarTintManager.java | 沉浸式管理。
ThemeSettingsHelper.java | 主题模式切换管理(日间/夜间模式)。
LRUCache.java | LRUCache。
ThreadPoolManager.java | 应用线程池管理。
###-网络处理
ClassName | Description
---------------------------|--------------------------------------
HttpTag.java | Api接口配置类。
TaskManager.java | 网络任务管理类。
HttpDataRequest.java | 通用请求类。
HttpGetRequest.java | Get请求类。
HttpPostRequest.java | Post请求类。
###-工具类
ClassName | Description
---------------------------|--------------------------------------
AnimationUtil.java | 动画效果工具类,提供缩放、透明度、位移、旋转动画方法。
AppInfoUtil.java | 应用信息工具类,获取应用版本号、版本编码。
BitmapCacheUtil.java | Bitmap缓存工具类,封装bitmap本地存储方法。
BitmapEffectUtil.java | Bitmap特效实现类,封装bitmap特效实现方法,如:老照片、RGB偏移等。
BitmapUtil.java | Bitmap常用工具类,Bitmap数据类型转换、圆角、缩放、倒影。
ConvertUtil.java | 转换工具类,进行对象的类型转换。
DateUtil.java | 日期工具类,日期转换生肖、日期转换星座、日期相互转换。
DesUtil.java | DES加密工具类。
DeviceUtil.java | 设备信息获取工具类,获得设备型号、设备生产厂商、屏幕尺寸、GPS状态、wifi状态等。
DialogUtil.java | 弹窗工具类,ProgressDialog,AlertDialog,Toast弹出封装。
FileUtil.java | 文件工具类,文件常用方法,获得文件大小、文件大小转换。
MD5Util.java | MD5加密工具类。
RegexUtil.java | 常用正则表达式工具类。
SDCardUtil.java | SD卡信息管理工具类。
SharedPreferencesUtil.java | SharedPreferences工具类。
StringUtil.java | 字符串处理工具类。
SystemIntentUtil.java | 系统Intent工具类,常用的系统Intent跳转函数,如:打电话、发短信等。
##Example Usage
- NetWork
Config HttpTag
public enum HttpTag {
TEST1(Constants.TAG_TYPE_STRING, 1, "http://www.baidu.com", null),
TEST2(Constants.TAG_TYPE_JSON_OBJECT, 2, "http://www.baidu.com", null),
TEST3(Constants.TAG_TYPE_JSON_ARRAY, 3, "http://www.baidu.com", null),
TEST4(Constants.TAG_TYPE_GSON, 4, "http://www.baidu.com", Object.class);
/**
* HttpTag
* @param tagType 标签类型 1:string, 2:gson, 3:jsonObject, 4:jsonArray
* @param httpTag Tag标签,用于接收响应数据
* @param httpUrl 请求Url
* @param parseClass GSON类型使用,用于转换GSON数据
*/
HttpTag(int tagType, int httpTag, String httpUrl, Class> parseClass) {
this.mTagType = tagType;
this.mHttpTag = httpTag;
this.mHttpUrl = httpUrl;
this.mParseClass = parseClass;
}
private final int mTagType;
private final int mHttpTag;
private final String mHttpUrl;
private final Class> mParseClass;
public int getTagType() {
return mTagType;
}
public int getHttpTag() {
return mHttpTag;
}
public String getHttpUrl() {
return mHttpUrl;
}
public Class> getParseClass() {
return mParseClass;
}
@Override
public String toString() {
String toString = "[tag=" + mHttpTag + "][url=" + mHttpUrl + "][parseClass=" + mParseClass + "]";
return toString;
}
}
Create a Get Request
HttpGetRequest request = new HttpGetRequest();
request.setTag(HttpTag.TEST);
request.setSort(Constants.REQUEST_METHOD_GET);
request.setGzip(true);
request.setRetry(false);
request.setNeedAuth(false);
TaskManager.startHttpDataRequset(request, new HttpDataResponse() {
@Override
public void onHttpRecvOK(HttpTag tag, Object extraInfo, Object result) {
DialogUtil.showToast(MainActivity.this, (String) result, Toast.LENGTH_LONG);
}
@Override
public void onHttpRecvError(HttpTag tag, HttpCode retCode, String msg) {
DialogUtil.showToast(MainActivity.this, "onHttpRecvError retCode:" + retCode + " msg:" + msg, Toast.LENGTH_LONG);
}
@Override
public void onHttpRecvCancelled(HttpTag tag) {
DialogUtil.showToast(MainActivity.this, "onHttpRecvCancelled", Toast.LENGTH_LONG);
}
});
Create a Post Request
HttpPostRequest request = new HttpPostRequest();
request.setTag(HttpTag.TEST);
request.setSort(Constants.REQUEST_METHOD_POST); // application/x-www-form-urlencoded
//request.setSort(Constants.REQUEST_METHOD_POST_MULTIPLE); // multipart/form-data
request.setGzip(true);
request.setRetry(false);
request.setNeedAuth(false);
TaskManager.startHttpDataRequset(request, new HttpDataResponse() {
@Override
public void onHttpRecvOK(HttpTag tag, Object extraInfo, Object result) {
DialogUtil.showToast(MainActivity.this, (String) result, Toast.LENGTH_LONG);
}
@Override
public void onHttpRecvError(HttpTag tag, HttpCode retCode, String msg) {
DialogUtil.showToast(MainActivity.this, "onHttpRecvError retCode:" + retCode + " msg:" + msg, Toast.LENGTH_LONG);
}
@Override
public void onHttpRecvCancelled(HttpTag tag) {
DialogUtil.showToast(MainActivity.this, "onHttpRecvCancelled", Toast.LENGTH_LONG);
}
});
NetWork add parameters & file upload
request.addUrlParams(key, value); // URL params
request.addHeadParams(key, value); // Head params
request.addBodyParams(key, value); // Body params only post
request.addFileParams(key, file); // File params only post
- HotFixManager
1. Generate patch.jar with APKTool.
2. Load patch.jar.
String patchVersion = "0.1.0";
String patchPath = "SDCard://mnt/common4android/path/patch.jar";
HotFixManager hotFixManager = new HotFixManager(this);
hotFixManager.init(patchVersion); // init with patch version
hotFixManager.addPatch(patchPath); // load patch.jar
Contact
WeChat:widebluesky