Reprinted from: http://blog.csdn.net/lmj623565791/article/details/38965311
1. Logging Tool Class 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);
-
}
-
}
The classes I see on the internet, the name of the original creator should be on the annotation, a very simple one; there are also many classes available on the Internet that record logs on SDCard s, but I have never recorded them, so it's the simplest to introduce one, so you can evaluate if it needs to be expanded~~
2. Toast Unified Management Class
-
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();
-
}
-
-
}
It's also a very simple encapsulation that saves ~~
3. SharedPreferences encapsulation class SPUtils
-
package com.zhy.utils;
-
-
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 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);
-
}
-
-
-
-
-
-
-
-
-
-
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;
-
}
-
-
-
-
-
-
-
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);
-
}
-
-
-
-
-
-
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);
-
}
-
-
-
-
-
-
-
-
public static boolean contains(Context context, String key)
-
{
-
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
-
Context.MODE_PRIVATE);
-
return sp.contains(key);
-
}
-
-
-
-
-
-
-
-
public static Map<String, ?> getAll(Context context)
-
{
-
SharedPreferences sp = context.getSharedPreferences(FILE_NAME,
-
Context.MODE_PRIVATE);
-
return sp.getAll();
-
}
-
-
-
-
-
-
-
-
private static class SharedPreferencesCompat
-
{
-
private static final Method sApplyMethod = findApplyMethod();
-
-
-
-
-
-
-
@SuppressWarnings({ "unchecked", "rawtypes" })
-
private static Method findApplyMethod()
-
{
-
try
-
{
-
Class clz = SharedPreferences.Editor.class;
-
return clz.getMethod("apply");
-
} catch (NoSuchMethodException e)
-
{
-
}
-
-
return null;
-
}
-
-
-
-
-
-
-
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();
-
}
-
}
-
-
}
Suggested encapsulation of the use of SharedPreference, publishing put, get, remove, clear and so on;
Note that all commit operations inside have been replaced with SharedPreferencesCompat.apply in order to replace commit with apply whenever possible
First of all, why, because the commit method is synchronous, and most of our commit operations are UI threads, after all, IO operations, as asynchronous as possible;
So instead of using apply, apply writes asynchronously;
But apply is equivalent to commit as a new API, and we adapted it for better compatibility;
SharedPreferencesCompat also provides a reference for creating compatible classes~~
4. Unit Conversion Class 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 Card Utils
-
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 ScreenUtils
7. App-related auxiliary classes
-
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. Softkeyboard-related auxiliary class 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. Network-related auxiliary class 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-related auxiliary class 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;
-
-
/**
-
* Tool class for Http requests
-
*
-
* @author zhy
-
*
-
*/
-
public class HttpUtils
-
{
-
-
private static final int TIMEOUT_IN_MILLIONS = 5000;
-
-
public interface CallBack
-
{
-
void onRequestComplete(String result);
-
}
-
-
-
/**
-
* Asynchronous Get Requests
-
*
-
* @param urlStr
-
* @param callBack
-
*/
-
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();
-
}
-
-
/**
-
* Asynchronous Post Request
-
* @param urlStr
-
* @param params
-
* @param callBack
-
* @throws Exception
-
*/
-
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();
-
-
}
-
-
/**
-
* Get request, get return data
-
*
-
* @param urlStr
-
* @return
-
* @throws Exception
-
*/
-
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 ;
-
-
}
-
-
/**
-
* Send POST method request to specified URL
-
*
-
* @param url
-
* URL to send the request
-
* @param param
-
Request parameters, which should be in the form of name1=value1&name2=value2.*
-
Response results of remote resources represented by * @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);
-
// Open the connection to the URL
-
HttpURLConnection conn = (HttpURLConnection) realUrl
-
.openConnection();
-
// Set Common Request Properties
-
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);
-
The following two lines are required for // sending POST requests
-
conn.setDoOutput(true);
-
conn.setDoInput(true);
-
conn.setReadTimeout(TIMEOUT_IN_MILLIONS);
-
conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);
-
-
if (param != null && !param.trim().equals(""))
-
{
-
// Get the output stream corresponding to the URLConnection object
-
out = new PrintWriter(conn.getOutputStream());
-
* Send Request Parameters //
-
out.print(param);
-
Buffering of // flush output stream
-
out.flush();
-
}
-
// Define the BufferedReader input stream to read the response of the URL
-
in = new BufferedReader(
-
new InputStreamReader(conn.getInputStream()));
-
String line;
-
while ((line = in.readLine()) != null)
-
{
-
result += line;
-
}
-
} catch (Exception e)
-
{
-
e.printStackTrace();
-
}
-
// Use finally blocks to close output and input streams
-
finally
-
{
-
try
-
{
-
if (out != null)
-
{
-
out.close();
-
}
-
if (in != null)
-
{
-
in.close();
-
}
-
} catch (IOException ex)
-
{
-
ex.printStackTrace();
-
}
-
}
-
return result;
-
}
-
}
Reproduction purpose: record