Android common tool encapsulation and android tool Encapsulation

Source: Internet
Author: User
Tags md5 digest

Android common tool encapsulation and android tool Encapsulation

1. MD5 tool class:

Public class MD5Util {public final static String MD5 (String s) {char hexDigits [] = {'0', '1', '2', '3', '4 ', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E ', 'F'}; try {byte [] btInput = s. getBytes (); // The MessageDigest object that obtains the MD5 Digest algorithm. MessageDigest mdInst = MessageDigest. getInstance ("MD5"); // use the specified byte to update the abstract mdInst. update (btInput); // obtain the ciphertext byte [] md = mdInst. digest (); // converts the ciphertext to a hexadecimal string in the form of int j = md. length; char str [] = new char [j * 2]; int k = 0; for (int I = 0; I <j; I ++) {byte byte0 = md [I]; str [k ++] = hexDigits [byte0 >>> 4 & 0xf]; str [k ++] = hexDigits [byte0 & 0xf];} return new String (str) ;}catch (Exception e) {return null ;}} public static void main (String [] args) {System. out. print (MD5Util. MD5 ("password "));}}

 

2. Thread sleep

public class CSleep {    public static final long DEFAULT_SLEEP_TIME = 500;    private boolean          isRuning           = false;    public boolean isRuning() {        return isRuning;    }    public void runWithTime(final long defaultSleepTime) {        isRuning = true;        new Thread() {            @Override            public void run() {                try {                    sleep(defaultSleepTime, 0);                } catch (InterruptedException e) {                    e.printStackTrace();                }                isRuning = false;                super.run();            }        }.start();    }}

 

3. Check whether the network is connected.

/*** Check whether the network is connected ** @ return boolean * @ since V1.0 */public boolean isNetworkAvailable (Context context) {// create and initialize the connection object ConnectivityManager connMan = (ConnectivityManager) context. getSystemService (Context. CONNECTIVITY_SERVICE); // determines whether the initialization is successful and processes it accordingly. if (connMan! = Null) {// call the getActiveNetworkInfo method to create an object. if it is not null, the network is connected. Otherwise, the NetworkInfo info = connMan. getActiveNetworkInfo (); if (info! = Null) {return info. isAvailable () ;}} return false ;}

 

4. Exception capture

/*** UncaughtException processing class. When an Uncaught exception occurs in a program, this class takes over the program and records the error report. you need to register in the Application, in order to monitor the entire program in the program initiator. */Public class CrashHandler implements UncaughtExceptionHandler {/** TAG */public static final String TAG = "CrashHandler";/** system default UncaughtException processing class */private Thread. uncaughtExceptionHandler mDefaultHandler;/** CrashHandler instance */private static CrashHandler mCrashHandler;/** Context object of the Program */private Context mContext; /** stores device information and exception information */private Map <String, String> infos = new HashMap <Stri Ng, String> ();/** used to format a date, as part of the log file name */private DateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd-HH-mm-ss "); /*** private constructor */private CrashHandler () {}/ *** get the CrashHandler instance, singleton mode ** @ return * @ since V1.0 */public static CrashHandler getInstance () {if (mCrashHandler = null) mCrashHandler = new CrashHandler (); return mCrashHandler ;} /*** initialize ** @ param context * @ since V1.0 */publi C void init (Context context) {mContext = context; // obtain the default UncaughtException processor mDefaultHandler = Thread. getDefaultUncaughtExceptionHandler (); // sets the CrashHandler as the default processor Thread of the program. setDefaultUncaughtExceptionHandler (this);}/*** when UncaughtException occurs, it will be transferred to this function for processing */@ Override public void uncaughtException (Thread thread, Throwable ex) {if (! HandleException (ex) & mDefaultHandler! = Null) {// if the user does not process the mDefaultHandler, the system's default exception processor is used to process the mDefaultHandler. uncaughtException (thread, ex);} else {try {Thread. sleep (3000);} catch (InterruptedException e) {CLog. e (TAG, "uncaughtException () InterruptedException:" + e);} // exit the android program. OS. process. killProcess (android. OS. process. myPid (); System. exit (1) ;}/ *** custom error handling, collecting error information, and sending error reports are all completed here. ** @ param ex * @ return true: If the exception information is processed, false is returned. * @ sinc E V1.0 */private boolean handleException (Throwable ex) {if (ex = null) {return false;} // collect device parameter information collectDeviceInfo (mContext ); // use Toast to display the exception information new Thread () {@ Override public void run () {Looper. prepare (); Toast. makeText (mContext, "Sorry, the program encountered an exception and is about to exit. ", Toast. LENGTH_SHORT ). show (); logoff. loop ();}}. start (); // Save the log file saveCatchInfo2File (ex); return true;}/*** collect device parameter information ** @ param ctx * @ sin Ce V1.0 */public void collectDeviceInfo (Context ctx) {try {PackageManager pm = ctx. getPackageManager (); PackageInfo pi = pm. getPackageInfo (ctx. getPackageName (), PackageManager. GET_ACTIVITIES); if (pi! = Null) {String versionName = pi. versionName = null? "Null": pi. versionName; String versionCode = pi. versionCode + ""; infos. put ("versionName", versionName); infos. put ("versionCode", versionCode) ;}} catch (NameNotFoundException e) {CLog. e (TAG, "collectDeviceInfo () an error occured when collect package info NameNotFoundException:", e);} Field [] fields = Build. class. getDeclaredFields (); for (Field field: fields) {try {field. setAccessible (true); Infos. put (field. getName (), field. get (null ). toString (); CLog. d (TAG, field. getName () + ":" + field. get (null);} catch (Exception e) {CLog. e (TAG, "collectDeviceInfo () an error occured when collect crash info Exception:", e );}}} /*** Save the error message to the file ** @ param ex * @ return returns the file name, which is convenient for transferring the file to the server */private String saveCatchInfo2File (Throwable ex) {StringBuffer sb = new StringBuffer (); for (Map. entry <String, String> entry: infos. entrySet () {String key = entry. getKey (); String value = entry. getValue (); sb. append (key + "=" + value + "\ n");} Writer writer = new StringWriter (); PrintWriter printWriter = new PrintWriter (writer); ex. printStackTrace (printWriter); Throwable cause = ex. getCause (); while (cause! = Null) {cause. printStackTrace (printWriter); cause = cause. getCause ();} printWriter. close (); String result = writer. toString (); sb. append (result); try {long timestamp = System. currentTimeMillis (); String time = formatter. format (new Date (); String fileName = "crash-" + time + "-" + timestamp + ". log "; if (Environment. getExternalStorageState (). equals (Environment. MEDIA_MOUNTED) {String path = Fi LePathUtil. getiVMSDirPath () + "/crash/"; File dir = new File (path); if (! Dir. exists () {dir. mkdirs ();} FileOutputStream fos = new FileOutputStream (path + fileName); fos. write (sb. toString (). getBytes (); // send it to the developer sendCrashLog2PM (path + fileName); fos. close () ;}return fileName;} catch (Exception e) {CLog. e (TAG, "saveCatchInfo2File () an error occured while writing file... exception: ", e);} return null ;} /*** send the captured crash-caused error messages to developers. Currently, only log logs are saved in sdcard and output to LogCat, but not sent. To the background. ** @ Param fileName * @ since V1.0 */private void sendCrashLog2PM (String fileName) {if (! New File (fileName ). exists () {CLog. e (TAG, "sendCrashLog2PM () log file does not exist"); return;} FileInputStream FCM = null; BufferedReader reader = null; String s = null; try {FCM = new FileInputStream (fileName); reader = new BufferedReader (new InputStreamReader (FCM, "GBK"); while (true) {s = reader. readLine (); if (s = null) break; // log is output first because the method for sending is not determined yet. CLog. e (TAG, s) ;}} catch (FileNotFoundException e) {e. printStackTrace ();} catch (IOException e) {e. printStackTrace ();} finally {// close the stream try {reader. close (); FCM. close ();} catch (IOException e) {e. printStackTrace ();}}}}

 

5. Pop-up box reminder

 public static Dialog showDialog(Context ctx, int layViewID, int ThemeType) {        Dialog res = new Dialog(ctx, ThemeType);        res.setContentView(layViewID);        return res;    }

 

 

6. Image API

public class ImageAPI {    public static Bitmap getImageByFilePath(String filePath, int scale) {        Bitmap res = null;        BitmapFactory.Options options = new BitmapFactory.Options();        options.inJustDecodeBounds = true;        BitmapFactory.decodeFile(filePath, options);        options.inJustDecodeBounds = false;        options.inSampleSize = scale;        options.inPreferredConfig = Bitmap.Config.ARGB_4444;        return res;    }    public static Bitmap getImageByFilePath(String filePath, int Towidth, int ToHeight) {        Bitmap res = null;        BitmapFactory.Options options = new BitmapFactory.Options();        options.inJustDecodeBounds = true;        if (!new File(filePath).exists())            return res;        BitmapFactory.decodeFile(filePath, options);        int origionalWidth = options.outHeight;        int origionalHeight = options.outWidth;        options.inJustDecodeBounds = false;        int scale = Math.max(origionalWidth / Towidth, origionalHeight / ToHeight);        options.inSampleSize = scale;        options.inPreferredConfig = Bitmap.Config.ARGB_4444;        try {            res = BitmapFactory.decodeFile(filePath, options);        } catch (Exception e) {            e.printStackTrace();            return null;        } catch (OutOfMemoryError e) {            e.printStackTrace();            return null;        }        return res;    }}

 

 

10. Reminder encapsulation class

public static void showToast(Context ctx, int id, String str) {        if (str == null) {            return;        }        Toast toast = Toast.makeText(ctx, ctx.getString(id) + str, Toast.LENGTH_SHORT);        toast.setGravity(Gravity.CENTER, 0, 0);        toast.show();    }    public static void showToast(Context ctx, String errInfo) {        if (errInfo == null) {            return;        }        Toast toast = Toast.makeText(ctx, errInfo, Toast.LENGTH_SHORT);        toast.setGravity(Gravity.CENTER, 0, 0);        toast.show();    }

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.