来源:http://blog.csdn.net/lmj623565791/article/details/38965311
Android开发必备工具类集合
1、日志工具类L.java
- package com.zhy.utils;
-
- import android.util.Log;
-
-
-
-
-
-
-
- public class L
- {
-
- private L()
- {
-
- throw new UnsupportedOperationException("cannot be instantiated");
- }
-
- public static boolean isDebug = true;
- private static final String TAG = "way";
-
-
- public static void i(String msg)
- {
- if (isDebug)
- Log.i(TAG, msg);
- }
-
- public static void d(String msg)
- {
- if (isDebug)
- Log.d(TAG, msg);
- }
-
- public static void e(String msg)
- {
- if (isDebug)
- Log.e(TAG, msg);
- }
-
- public static void v(String msg)
- {
- if (isDebug)
- Log.v(TAG, msg);
- }
-
-
- public static void i(String tag, String msg)
- {
- if (isDebug)
- Log.i(tag, msg);
- }
-
- public static void d(String tag, String msg)
- {
- if (isDebug)
- Log.i(tag, msg);
- }
-
- public static void e(String tag, String msg)
- {
- if (isDebug)
- Log.i(tag, msg);
- }
-
- public static void v(String tag, String msg)
- {
- if (isDebug)
- Log.i(tag, msg);
- }
- }
网上看到的类,注释上应该原创作者的名字,很简单的一个类;网上也有很多提供把日志记录到SDCard上的,不过我是从来没记录过,所以引入个最简单的,大家可以进行评价是否需要扩充~~
2、Toast统一管理类
- package com.zhy.utils;
-
- import android.content.Context;
- import android.widget.Toast;
-
-
-
-
-
- public class T
- {
-
- private T()
- {
-
- throw new UnsupportedOperationException("cannot be instantiated");
- }
-
- public static boolean isShow = true;
-
-
-
-
-
-
-
- public static void showShort(Context context, CharSequence message)
- {
- if (isShow)
- Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
- }
-
-
-
-
-
-
-
- public static void showShort(Context context, int message)
- {
- if (isShow)
- Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
- }
-
-
-
-
-
-
-
- public static void showLong(Context context, CharSequence message)
- {
- if (isShow)
- Toast.makeText(context, message, Toast.LENGTH_LONG).show();
- }
-
-
-
-
-
-
-
- public static void showLong(Context context, int message)
- {
- if (isShow)
- Toast.makeText(context, message, Toast.LENGTH_LONG).show();
- }
-
-
-
-
-
-
-
-
- public static void show(Context context, CharSequence message, int duration)
- {
- if (isShow)
- Toast.makeText(context, message, duration).show();
- }
-
-
-
-
-
-
-
-
- public static void show(Context context, int message, int duration)
- {
- if (isShow)
- Toast.makeText(context, message, duration).show();
- }
-
- }
也是非常简单的一个封装,能省则省了~~
3、SharedPreferences封装类SPUtils
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
public class SPUtils
{
/**
* 保存在手机里面的文件名
*/
public static final String FILE_NAME = "share_data";
public static final String LOGIN_DATA="loginData";
public static final String IS_LOGIN= "IS_LOGIN";
/**
* 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
*
* @param context
* @param key
* @param object
*/
public static void put(Context context, String key, Object object)
{
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
if (object instanceof String)
{
editor.putString(key, (String) object);
} else if (object instanceof Integer)
{
editor.putInt(key, (Integer) object);
} else if (object instanceof Boolean)
{
editor.putBoolean(key, (Boolean) object);
} else if (object instanceof Float)
{
editor.putFloat(key, (Float) object);
} else if (object instanceof Long)
{
editor.putLong(key, (Long) object);
} else
{
editor.putString(key, object.toString());
}
//SharedPreferencesCompat.apply(editor);
editor.commit();
}
/**
* 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
*
* @param context
* @param key
* @param defaultObject
* @return
*/
public static Object get(Context context, String key, Object defaultObject)
{
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
if (defaultObject instanceof String)
{
return sp.getString(key, (String) defaultObject);
} else if (defaultObject instanceof Integer)
{
return sp.getInt(key, (Integer) defaultObject);
} else if (defaultObject instanceof Boolean)
{
return sp.getBoolean(key, (Boolean) defaultObject);
} else if (defaultObject instanceof Float)
{
return sp.getFloat(key, (Float) defaultObject);
} else if (defaultObject instanceof Long)
{
return sp.getLong(key, (Long) defaultObject);
}
return null;
}
/**
* 移除某个key值已经对应的值
* @param context
* @param key
*/
public static void remove(Context context, String key)
{
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.remove(key);
//SharedPreferencesCompat.apply(editor);
editor.commit();
}
/**
* 清除所有数据
* @param context
*/
public static void clear(Context context)
{
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
SharedPreferencesCompat.apply(editor);
}
/**
* 查询某个key是否已经存在
* @param context
* @param key
* @return
*/
public static boolean contains(Context context, String key)
{
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
return sp.contains(key);
}
/**
* 返回所有的键值对
*
* @param context
* @return
*/
public static Map<String, ?> getAll(Context context)
{
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE);
return sp.getAll();
}
/**
* 创建一个解决SharedPreferencesCompat.apply方法的一个兼容类
*
* @author zhy
*
*/
private static class SharedPreferencesCompat
{
private static final Method sApplyMethod = findApplyMethod();
/**
* 反射查找apply的方法
*
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
private static Method findApplyMethod()
{
try
{
Class clz = SharedPreferences.Editor.class;
return clz.getMethod("apply");
} catch (NoSuchMethodException e)
{
}
return null;
}
/**
* 如果找到则使用apply执行,否则使用commit
*
* @param editor
*/
public static void apply(SharedPreferences.Editor editor)
{
try
{
if (sApplyMethod != null)
{
sApplyMethod.invoke(editor);
return;
}
} catch (IllegalArgumentException e)
{
} catch (IllegalAccessException e)
{
} catch (InvocationTargetException e)
{
}
editor.commit();
}
}
}
调用判断是否登录
isLogin=(Boolean) SPUtil.get(getActivity(), SPUtil.IS_LOGIN, false);
存储登录状态:
//保存登录状态
SPUtil.set(LoginActivity.this, SPUtil.IS_LOGIN, true);
//保存登录个人信息
SPUtil.set(LoginActivity .this, SPUtil.LOGIN_DATA, result);
退出登录:
SPUtil.setParam(MySettingsActivity.this, SPUtil.IS_LOGIN, false);
SPUtil.removeParam(MySettingsActivity.this, SPUtil.LOGIN_DATA);
对SharedPreference的使用做了建议的封装,对外公布出put,get,remove,clear等等方法;
注意一点,里面所有的commit操作使用了SharedPreferencesCompat.apply进行了替代,目的是尽可能的使用apply代替commit
首先说下为什么,因为commit方法是同步的,并且我们很多时候的commit操作都是UI线程中,毕竟是IO操作,尽可能异步;
所以我们使用apply进行替代,apply异步的进行写入;
但是apply相当于commit来说是new API呢,为了更好的兼容,我们做了适配;
SharedPreferencesCompat也可以给大家创建兼容类提供了一定的参考~~
4、单位转换类 DensityUtils
- package com.zhy.utils;
-
- import android.content.Context;
- import android.util.TypedValue;
-
-
-
-
-
-
-
- public class DensityUtils
- {
- private DensityUtils()
- {
-
- throw new UnsupportedOperationException("cannot be instantiated");
- }
-
-
-
-
-
-
-
-
- public static int dp2px(Context context, float dpVal)
- {
- return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
- dpVal, context.getResources().getDisplayMetrics());
- }
-
-
-
-
-
-
-
-
- public static int sp2px(Context context, float spVal)
- {
- return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
- spVal, context.getResources().getDisplayMetrics());
- }
-
-
-
-
-
-
-
-
- public static float px2dp(Context context, float pxVal)
- {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (pxVal / scale);
- }
-
-
-
-
-
-
-
-
- public static float px2sp(Context context, float pxVal)
- {
- return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
- }
-
- }
5、SD卡相关辅助类 SDCardUtils
- package com.zhy.utils;
-
- import java.io.File;
-
- import android.os.Environment;
- import android.os.StatFs;
-
-
-
-
-
-
-
- public class SDCardUtils
- {
- private SDCardUtils()
- {
-
- throw new UnsupportedOperationException("cannot be instantiated");
- }
-
-
-
-
-
-
- public static boolean isSDCardEnable()
- {
- return Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED);
-
- }
-
-
-
-
-
-
- public static String getSDCardPath()
- {
- return Environment.getExternalStorageDirectory().getAbsolutePath()
- + File.separator;
- }
-
-
-
-
-
-
- public static long getSDCardAllSize()
- {
- if (isSDCardEnable())
- {
- StatFs stat = new StatFs(getSDCardPath());
-
- long availableBlocks = (long) stat.getAvailableBlocks() - 4;
-
- long freeBlocks = stat.getAvailableBlocks();
- return freeBlocks * availableBlocks;
- }
- return 0;
- }
-
-
-
-
-
-
-
- public static long getFreeBytes(String filePath)
- {
-
- if (filePath.startsWith(getSDCardPath()))
- {
- filePath = getSDCardPath();
- } else
- {
- filePath = Environment.getDataDirectory().getAbsolutePath();
- }
- StatFs stat = new StatFs(filePath);
- long availableBlocks = (long) stat.getAvailableBlocks() - 4;
- return stat.getBlockSize() * availableBlocks;
- }
-
-
-
-
-
-
- public static String getRootDirectoryPath()
- {
- return Environment.getRootDirectory().getAbsolutePath();
- }
-
-
- }
6、屏幕相关辅助类 ScreenUtils
7、App相关辅助类
- package com.zhy.utils;
-
- import android.content.Context;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager;
- import android.content.pm.PackageManager.NameNotFoundException;
-
-
-
-
-
-
-
- public class AppUtils
- {
-
- private AppUtils()
- {
-
- throw new UnsupportedOperationException("cannot be instantiated");
-
- }
-
-
-
-
- public static String getAppName(Context context)
- {
- try
- {
- PackageManager packageManager = context.getPackageManager();
- PackageInfo packageInfo = packageManager.getPackageInfo(
- context.getPackageName(), 0);
- int labelRes = packageInfo.applicationInfo.labelRes;
- return context.getResources().getString(labelRes);
- } catch (NameNotFoundException e)
- {
- e.printStackTrace();
- }
- return null;
- }
-
-
-
-
-
-
-
- public static String getVersionName(Context context)
- {
- try
- {
- PackageManager packageManager = context.getPackageManager();
- PackageInfo packageInfo = packageManager.getPackageInfo(
- context.getPackageName(), 0);
- return packageInfo.versionName;
-
- } catch (NameNotFoundException e)
- {
- e.printStackTrace();
- }
- return null;
- }
-
- }
8、软键盘相关辅助类KeyBoardUtils
- package com.zhy.utils;
-
- import android.content.Context;
- import android.view.inputmethod.InputMethodManager;
- import android.widget.EditText;
-
-
-
-
-
-
-
- public class KeyBoardUtils
- {
-
-
-
-
-
-
-
-
- public static void openKeybord(EditText mEditText, Context mContext)
- {
- InputMethodManager imm = (InputMethodManager) mContext
- .getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);
- imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
- InputMethodManager.HIDE_IMPLICIT_ONLY);
- }
-
-
-
-
-
-
-
-
-
- public static void closeKeybord(EditText mEditText, Context mContext)
- {
- InputMethodManager imm = (InputMethodManager) mContext
- .getSystemService(Context.INPUT_METHOD_SERVICE);
-
- imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
- }
- }
9、网络相关辅助类 NetUtils
- package com.zhy.utils;
-
- import android.app.Activity;
- import android.content.ComponentName;
- import android.content.Context;
- import android.content.Intent;
- import android.net.ConnectivityManager;
- import android.net.NetworkInfo;
-
-
-
-
-
-
-
- public class NetUtils
- {
- private NetUtils()
- {
-
- throw new UnsupportedOperationException("cannot be instantiated");
- }
-
-
-
-
-
-
-
- public static boolean isConnected(Context context)
- {
-
- ConnectivityManager connectivity = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
-
- if (null != connectivity)
- {
-
- NetworkInfo info = connectivity.getActiveNetworkInfo();
- if (null != info && info.isConnected())
- {
- if (info.getState() == NetworkInfo.State.CONNECTED)
- {
- return true;
- }
- }
- }
- return false;
- }
-
-
-
-
- public static boolean isWifi(Context context)
- {
- ConnectivityManager cm = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
-
- if (cm == null)
- return false;
- return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
-
- }
-
-
-
-
- public static void openSetting(Activity activity)
- {
- Intent intent = new Intent("/");
- ComponentName cm = new ComponentName("com.android.settings",
- "com.android.settings.WirelessSettings");
- intent.setComponent(cm);
- intent.setAction("android.intent.action.VIEW");
- activity.startActivityForResult(intent, 0);
- }
-
- }
10、Http相关辅助类 HttpUtils
- package com.zhy.utils;
-
- import java.io.BufferedReader;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.HttpURLConnection;
- import java.net.URL;
-
-
-
-
-
-
-
- public class HttpUtils
- {
-
- private static final int TIMEOUT_IN_MILLIONS = 5000;
-
- public interface CallBack
- {
- void onRequestComplete(String result);
- }
-
-
-
-
-
-
-
-
- public static void doGetAsyn(final String urlStr, final CallBack callBack)
- {
- new Thread()
- {
- public void run()
- {
- try
- {
- String result = doGet(urlStr);
- if (callBack != null)
- {
- callBack.onRequestComplete(result);
- }
- } catch (Exception e)
- {
- e.printStackTrace();
- }
-
- };
- }.start();
- }
-
-
-
-
-
-
-
-
- public static void doPostAsyn(final String urlStr, final String params,
- final CallBack callBack) throws Exception
- {
- new Thread()
- {
- public void run()
- {
- try
- {
- String result = doPost(urlStr, params);
- if (callBack != null)
- {
- callBack.onRequestComplete(result);
- }
- } catch (Exception e)
- {
- e.printStackTrace();
- }
-
- };
- }.start();
-
- }
-
-
-
-
-
-
-
-
- public static String doGet(String urlStr)
- {
- URL url = null;
- HttpURLConnection conn = null;
- InputStream is = null;
- ByteArrayOutputStream baos = null;
- try
- {
- url = new URL(urlStr);
- conn = (HttpURLConnection) url.openConnection();
- conn.setReadTimeout(TIMEOUT_IN_MILLIONS);
- conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);
- conn.setRequestMethod("GET");
- conn.setRequestProperty("accept", "*/*");
- conn.setRequestProperty("connection", "Keep-Alive");
- if (conn.getResponseCode() == 200)
- {
- is = conn.getInputStream();
- baos = new ByteArrayOutputStream();
- int len = -1;
- byte[] buf = new byte[128];
-
- while ((len = is.read(buf)) != -1)
- {
- baos.write(buf, 0, len);
- }
- baos.flush();
- return baos.toString();
- } else
- {
- throw new RuntimeException(" responseCode is not 200 ... ");
- }
-
- } catch (Exception e)
- {
- e.printStackTrace();
- } finally
- {
- try
- {
- if (is != null)
- is.close();
- } catch (IOException e)
- {
- }
- try
- {
- if (baos != null)
- baos.close();
- } catch (IOException e)
- {
- }
- conn.disconnect();
- }
-
- return null ;
-
- }
-
- /**
- * 向指定 URL 发送POST方法的请求
- *
- * @param url
- * 发送请求的 URL
- * @param param
- * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
- * @return 所代表远程资源的响应结果
- * @throws Exception
- */
- public static String doPost(String url, String param)
- {
- PrintWriter out = null;
- BufferedReader in = null;
- String result = "";
- try
- {
- URL realUrl = new URL(url);
-
- HttpURLConnection conn = (HttpURLConnection) realUrl
- .openConnection();
-
- conn.setRequestProperty("accept", "*/*");
- conn.setRequestProperty("connection", "Keep-Alive");
- conn.setRequestMethod("POST");
- conn.setRequestProperty("Content-Type",
- "application/x-www-form-urlencoded");
- conn.setRequestProperty("charset", "utf-8");
- conn.setUseCaches(false);
-
- conn.setDoOutput(true);
- conn.setDoInput(true);
- conn.setReadTimeout(TIMEOUT_IN_MILLIONS);
- conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);
-
- if (param != null && !param.trim().equals(""))
- {
-
- out = new PrintWriter(conn.getOutputStream());
-
- out.print(param);
-
- out.flush();
- }
-
- in = new BufferedReader(
- new InputStreamReader(conn.getInputStream()));
- String line;
- while ((line = in.readLine()) != null)
- {
- result += line;
- }
- } catch (Exception e)
- {
- e.printStackTrace();
- }
-
- finally
- {
- try
- {
- if (out != null)
- {
- out.close();
- }
- if (in != null)
- {
- in.close();
- }
- } catch (IOException ex)
- {
- ex.printStackTrace();
- }
- }
- return result;
- }
- }
如果大家在使用过程中出现什么错误,或者有更好的建议,欢迎大家留言提出~~可以不断的改进这些类~
相关推荐
本资源“Android快速开发工具类收集”是一个全面的集合,包含了多种实用的工具类,旨在加速Android应用的开发过程。以下是这些工具类的一些核心知识点: 1. **软键盘控制**: - 在Android应用中,有时我们需要根据...
"Android-Android快速开发工具类收集" 是一个整理了多个常用工具类的资源,旨在提高开发效率,减少网络搜索时间。下面将详细介绍这个资源中的关键知识点和可能包含的功能。 1. **StringUtil**: 字符串处理工具类,...
本篇文章将详细探讨“android快速开发工具类”这一主题,尤其是关于网络请求的`Api`工具类的实现。 首先,Android工具类通常包含静态方法,不持有任何实例状态,这样可以避免内存泄漏,并且可以直接通过类名调用,...
【标题】"安卓开发框架工具类相关-Android快速开发系列10个常用工具类.rar" 涉及的是Android应用程序开发中的一个关键方面——工具类的集合。在Android开发中,工具类通常包含一系列静态方法,用于执行常见的、重复...
本篇文章将详细探讨“Android-AndroidStudio快速创建常用工具类的插件”,以及如何利用这个名为Utils_plugin-master的插件来提升开发效率。 首先,理解“工具类”在Android开发中的概念至关重要。工具类通常是一些...
这里提到的"android 常用快速开发集成工具类"就是这样的一个集合,它包含了在实际项目开发中可能会频繁使用的各种工具方法,帮助开发者快速实现功能,减少重复劳动。 这个工具类库可能包含以下几个方面的主要内容:...
在Android开发过程中,工具类(Utility Class)是开发者不可或缺的好帮手。它们通常包含一系列静态方法,用于执行特定任务,如日期时间处理、网络请求、数据解析等,从而提高代码的复用性和效率。以下是一些Android...
"Android快速开发9个常用工具类.zip" 包含了九个这样的工具类,它们可能是Android开发者在日常工作中不可或缺的部分。下面将详细介绍这些工具类可能涉及的关键知识点。 1. **字符串处理工具类**:这类工具通常包含...
本资源"Android快速开发系列 10个常用工具类 程序源码"提供了10个实用的工具类,旨在帮助开发者更快捷地完成日常开发工作。以下是对这些工具类的详细解释: 1. **StringUtil**: 字符串处理工具类,包括字符串格式化...
在这个"Android快速开发系列"中,我们将探讨10个非常实用的工具类,这些工具类可以帮助我们提高开发效率,优化代码结构。以下是每个工具类的核心知识点: 1. **StringUtil**: 这个工具类主要处理字符串操作,如格式...
在Android开发过程中,工具类是不可或缺的一部分,它们可以极大地提高开发效率,简化代码,使得开发者能够更加专注于核心功能的实现。以下是一些Android开发中常用的工具类及其详细知识点: 1. **日志工具类**: -...
本文将深入探讨标题所提及的"Android快速开发不可或缺的11个工具类",帮助您更好地理解和运用这些工具。 1. **LogUtil**: 日志打印工具类 在Android开发中,日志是调试应用的重要手段。LogUtil封装了Android原生的...
"android快速开发最新工具类"这个资源显然提供了一系列预构建的工具函数,涵盖了网络操作、内存卡读写、CPU信息获取以及视频处理等多个方面。下面我们将详细探讨这些关键知识点。 1. **网络操作**: 在Android中,...
"安卓开发框架工具类相关-Android快速开发不可或缺的辅助类.rar"这个压缩包文件很可能包含了多个这样的工具类,用于简化Android开发过程。下面将详细探讨Android开发中常用的工具类及其可能包含的功能。 1. **日期...
通过这样的工具类,开发者可以快速地在Android应用中实现数据的安全传输,提高应用的安全性。 总结,这个基于Java Base64的Android加密解密工具类为Android开发者提供了一种简单且安全的方式来处理敏感数据。它利用...
本篇将详细介绍两个常用的Android开发工具类:日志工具类(Log.java)和Toast统一管理类(Tost.java)。 一、日志工具类(Log.java) 在Android开发中,日志(Log)用于调试和跟踪应用程序运行时的信息,是开发者...