日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发人员不得不收集的代码(不断更新中...)

發布時間:2025/5/22 Android 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发人员不得不收集的代码(不断更新中...) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 尺寸相關
    • dp與px轉換
    • sp與px轉換
    • 各種單位轉換
    • 在onCreate()即可獲取View的寬高
    • ListView中提前測量View尺寸
  • 手機相關
    • 判斷設備是否是手機
    • 獲取當前設備的IMIE,需與上面的isPhone一起使用
    • 獲取手機狀態信息
    • 是否有SD卡
    • 獲取MAC地址
    • 獲取手機廠商,如Xiaomi
    • 獲取手機型號,如MI2SC
    • 跳轉至撥號界面
    • 撥打電話
    • 發送短信
    • 獲取手機聯系人
    • 直接打開手機聯系人界面,并獲取聯系人號碼
    • 獲取手機短信并保存到xml中
  • 網絡相關
    • 打開網絡設置界面
    • 判斷是否網絡連接
    • 判斷wifi是否連接狀態
    • 獲取移動網絡運營商名稱,如中國聯通、中國移動、中國電信
    • 返回移動終端類型
    • 判斷手機連接的網絡類型(2G,3G,4G)
    • 判斷當前手機的網絡類型(WIFI還是2,3,4G)
  • App相關
    • 安裝指定路徑下的Apk
    • 卸載指定包名的App
    • 獲取App名稱
    • 獲取當前App版本號
    • 獲取當前App版本Code
    • 打開指定包名的App
    • 打開指定包名的App應用信息界面
    • 分享Apk信息
    • 獲取App信息的一個封裝類(包名、版本號、應用信息、圖標、名稱等)
    • 判斷當前App處于前臺還是后臺
  • 屏幕相關
    • 獲取手機分辨率
    • 獲取狀態欄高度
    • 獲取狀態欄高度+標題欄(ActionBar)高度
    • 獲取屏幕截圖
    • 設置透明狀態欄,需在setContentView之前調用
  • 鍵盤相關
    • 避免輸入法面板遮擋
    • 動態隱藏軟鍵盤
    • 點擊屏幕空白區域隱藏軟鍵盤
    • 動態顯示軟鍵盤
    • 切換鍵盤顯示與否狀態
  • 正則相關
    • 正則工具類
  • 加解密相關
    • MD5加密
    • SHA加密
  • 未歸類
    • 獲取服務是否開啟
  • 更新Log

尺寸相關

dp與px轉換

/** * dp轉px */ public static int dp2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f); }/** * px轉dp */ public static int px2dp(Context context, float pxValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (pxValue / scale + 0.5f); }

sp與px轉換

/** * sp轉px */ public static int sp2px(Context context, float spValue) {final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;return (int) (spValue * fontScale + 0.5f); }/** * px轉sp */ public static int px2sp(Context context, float pxValue) {final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;return (int) (pxValue / fontScale + 0.5f); }

各種單位轉換?

// 該方法存在于TypedValue /** * 各種單位轉換 */ public static float applyDimension(int unit, float value, DisplayMetrics metrics) {switch (unit) {case TypedValue.COMPLEX_UNIT_PX:return value;case TypedValue.COMPLEX_UNIT_DIP:return value * metrics.density;case TypedValue.COMPLEX_UNIT_SP:return value * metrics.scaledDensity;case TypedValue.COMPLEX_UNIT_PT:return value * metrics.xdpi * (1.0f / 72);case TypedValue.COMPLEX_UNIT_IN:return value * metrics.xdpi;case TypedValue.COMPLEX_UNIT_MM:return value * metrics.xdpi * (1.0f / 25.4f);}return 0; }

在onCreate()即可獲取View的寬高

/** * 在onCreate()即可獲取View的寬高 */ public static int[] getViewMeasure(View view) {int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);view.measure(widthMeasureSpec, heightMeasureSpec);return new int[]{view.getMeasuredWidth(), view.getMeasuredHeight()}; }

ListView中提前測量View尺寸

// 通知父布局,占用的寬,高; /** * ListView中提前測量View尺寸,如headerView */ private void measureView(View view) {ViewGroup.LayoutParams p = view.getLayoutParams();if (p == null) {p = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);}
//第一個參數spec =0,mode是UNSPECIFIED(未指定),父元素不對子元素施加任何束縛,第二個參數,是外邊距和內邊距
int width = ViewGroup.getChildMeasureSpec(0, 0, p.width);   int height; int tempHeight = p.height;
  if (tempHeight > 0) {
  height
= MeasureSpec.makeMeasureSpec(tempHeight, MeasureSpec.EXACTLY);
    }
else {
    height
= MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
    }
  view.measure(width, height);
}

?

手機相關?

判斷設備是否是手機

/** * 判斷設備是否是手機 */ public static boolean isPhone(Context context) {TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return telephony.getPhoneType() != TelephonyManager.PHONE_TYPE_NONE; }

獲取當前設備的IMIE,需與上面的isPhone一起使用

/** * 獲取當前設備的IMIE,需與上面的isPhone一起使用 */ public static String getDeviceIMEI(Context context) {String deviceId;if (isPhone(context)) {TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);deviceId = telephony.getDeviceId();} else {deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);}return deviceId; }

獲取手機狀態信息

// 需添加權限<uses-permission android:name="android.permission.READ_PHONE_STATE"/> /** * 獲取手機狀態信息 * * 返回如下 * DeviceId(IMEI) = 99000311726612 * DeviceSoftwareVersion = 00 * Line1Number = * NetworkCountryIso = cn * NetworkOperator = 46003 * NetworkOperatorName = 中國電信 * NetworkType = 6 * honeType = 2 * SimCountryIso = cn * SimOperator = 46003 * SimOperatorName = 中國電信 * SimSerialNumber = 89860315045710604022 * SimState = 5 * SubscriberId(IMSI) = 460030419724900 * VoiceMailNumber = *86 */ public static String getPhoneStatus(Context context) {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);String str = "";str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n";str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion() + "\n";str += "Line1Number = " + tm.getLine1Number() + "\n";str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n";str += "NetworkOperator = " + tm.getNetworkOperator() + "\n";str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n";str += "NetworkType = " + tm.getNetworkType() + "\n";str += "honeType = " + tm.getPhoneType() + "\n";str += "SimCountryIso = " + tm.getSimCountryIso() + "\n";str += "SimOperator = " + tm.getSimOperator() + "\n";str += "SimOperatorName = " + tm.getSimOperatorName() + "\n";str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n";str += "SimState = " + tm.getSimState() + "\n";str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n";str += "VoiceMailNumber = " + tm.getVoiceMailNumber() + "\n";return str; }

是否有SD卡

/** * 是否有SD卡 */ public static boolean haveSDCard() {return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); }

獲取MAC地址

// 需添加權限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> /** * 獲取MAC地址 */ public static String getMacAddress(Context context) {String macAddress;WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifi.getConnectionInfo();macAddress = info.getMacAddress();if (null == macAddress) {return "";}macAddress = macAddress.replace(":", "");return macAddress; }

獲取手機廠商,如Xiaomi

/** * 獲取手機廠商,如Xiaomi */ public static String getOsName() {String MANUFACTURER = Build.MANUFACTURER;return MANUFACTURER; }

獲取手機型號,如MI2SC?

/** * 獲取手機型號,如MI2SC */ private String getModel() {String model = android.os.Build.MODEL;if (model != null) {model = model.trim().replaceAll("\\s*", "");} else {model = "";}return model; }

跳轉至撥號界面

/** * 跳轉至撥號界面 */ public static void callDial(Context context, String phoneNumber) {context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber))); }

撥打電話

/** * 撥打電話 */ public static void call(Context context, String phoneNumber) {context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber))); }

發送短信?

/** * 發送短信 */ public static void sendSms(Context context, String phoneNumber, String content) {Uri uri = Uri.parse("smsto:" + (TextUtils.isEmpty(phoneNumber) ? "" : phoneNumber));Intent intent = new Intent(Intent.ACTION_SENDTO, uri);intent.putExtra("sms_body", TextUtils.isEmpty(content) ? "" : content);context.startActivity(intent); }?

獲取手機聯系人?

/** * 獲取手機聯系人 */ public static List<HashMap<String, String>> getAllContactInfo(Context context) {SystemClock.sleep(3000);ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();// 1.獲取內容解析者ContentResolver resolver = context.getContentResolver();// 2.獲取內容提供者的地址:com.android.contacts// raw_contacts表的地址 :raw_contacts// view_data表的地址 : data// 3.生成查詢地址Uri raw_uri = Uri.parse("content://com.android.contacts/raw_contacts");Uri date_uri = Uri.parse("content://com.android.contacts/data");// 4.查詢操作,先查詢raw_contacts,查詢contact_id// projection : 查詢的字段Cursor cursor = resolver.query(raw_uri, new String[] { "contact_id" },null, null, null);// 5.解析cursorwhile (cursor.moveToNext()) {// 6.獲取查詢的數據String contact_id = cursor.getString(0);// cursor.getString(cursor.getColumnIndex("contact_id"));//getColumnIndex// : 查詢字段在cursor中索引值,一般都是用在查詢字段比較多的時候// 判斷contact_id是否為空if (!TextUtils.isEmpty(contact_id)) {//null ""// 7.根據contact_id查詢view_data表中的數據// selection : 查詢條件// selectionArgs :查詢條件的參數// sortOrder : 排序// 空指針: 1.null.方法 2.參數為nullCursor c = resolver.query(date_uri, new String[] { "data1","mimetype" }, "raw_contact_id=?",new String[] { contact_id }, null);HashMap<String, String> map = new HashMap<String, String>();// 8.解析cwhile (c.moveToNext()) {// 9.獲取數據String data1 = c.getString(0);String mimetype = c.getString(1);// 10.根據類型去判斷獲取的data1數據并保存if (mimetype.equals("vnd.android.cursor.item/phone_v2")) {// 電話map.put("phone", data1);} else if (mimetype.equals("vnd.android.cursor.item/name")) {// 姓名map.put("name", data1);}}// 11.添加到集合中數據 list.add(map);// 12.關閉cursor c.close();}}// 12.關閉cursor cursor.close();return list; }

直接打開手機聯系人界面,并獲取聯系人號碼

// 在按鈕點擊事件中設置Intent, Intent intent = new Intent(); intent.setAction("android.intent.action.PICK"); intent.addCategory("android.intent.category.DEFAULT"); intent.setType("vnd.android.cursor.dir/phone_v2"); startActivityForResult(intent, 1); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data != null) {Uri uri = data.getData();String num = null;// 創建內容解析者ContentResolver contentResolver = getContentResolver();Cursor cursor = contentResolver.query(uri,null, null, null, null);while (cursor.moveToNext()) {num = cursor.getString(cursor.getColumnIndex("data1"));}cursor.close();num = num.replaceAll("-", "");//替換的操作,555-6 -> 5556 } }

獲取手機短信并保存到xml中

/** * 獲取手機短信并保存到xml中 */ public static void getAllSMS(Context context) {//1.獲取短信//1.1獲取內容解析者ContentResolver resolver = context.getContentResolver();//1.2獲取內容提供者地址 sms,sms表的地址:null 不寫//1.3獲取查詢路徑Uri uri = Uri.parse("content://sms");//1.4.查詢操作//projection : 查詢的字段//selection : 查詢的條件//selectionArgs : 查詢條件的參數//sortOrder : 排序Cursor cursor = resolver.query(uri, new String[]{"address", "date", "type", "body"}, null, null, null);//設置最大進度int count = cursor.getCount();//獲取短信的個數//2.備份短信//2.1獲取xml序列器XmlSerializer xmlSerializer = Xml.newSerializer();try {//2.2設置xml文件保存的路徑//os : 保存的位置//encoding : 編碼格式xmlSerializer.setOutput(new FileOutputStream(new File("/mnt/sdcard/backupsms.xml")), "utf-8");//2.3設置頭信息//standalone : 是否獨立保存xmlSerializer.startDocument("utf-8", true);//2.4設置根標簽xmlSerializer.startTag(null, "smss");//1.5.解析cursorwhile (cursor.moveToNext()) {SystemClock.sleep(1000);//2.5設置短信的標簽xmlSerializer.startTag(null, "sms");//2.6設置文本內容的標簽xmlSerializer.startTag(null, "address");String address = cursor.getString(0);//2.7設置文本內容 xmlSerializer.text(address);xmlSerializer.endTag(null, "address");xmlSerializer.startTag(null, "date");String date = cursor.getString(1);xmlSerializer.text(date);xmlSerializer.endTag(null, "date");xmlSerializer.startTag(null, "type");String type = cursor.getString(2);xmlSerializer.text(type);xmlSerializer.endTag(null, "type");xmlSerializer.startTag(null, "body");String body = cursor.getString(3);xmlSerializer.text(body);xmlSerializer.endTag(null, "body");xmlSerializer.endTag(null, "sms");System.out.println("address:" + address + " date:" + date + " type:" + type + " body:" + body);}xmlSerializer.endTag(null, "smss");xmlSerializer.endDocument();//2.8將數據刷新到文件中 xmlSerializer.flush();} catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace();} }?

?

網絡相關

打開網絡設置界面

/** * 打開網絡設置界面 */ 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); }

判斷是否網絡連接

/** * 判斷是否網絡連接 */ public static boolean isOnline(Context context) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Activity.CONNECTIVITY_SERVICE);NetworkInfo info = manager.getActiveNetworkInfo();if (info != null && info.isConnected()) {return true;}return false; }

判斷wifi是否連接狀態

/** * 判斷wifi是否連接狀態 */ public static boolean isWifi(Context context) {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);return cm != null && cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI; }

獲取移動網絡運營商名稱,如中國聯通、中國移動、中國電信

/** * 獲取移動網絡運營商名稱,如中國聯通、中國移動、中國電信 */ public static String getNetworkOperatorName(Context context) {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return telephonyManager.getNetworkOperatorName(); }

返回移動終端類型?

// PHONE_TYPE_NONE :0 手機制式未知 // PHONE_TYPE_GSM :1 手機制式為GSM,移動和聯通 // PHONE_TYPE_CDMA :2 手機制式為CDMA,電信 // PHONE_TYPE_SIP:3 /** * 返回移動終端類型 */ public static int getPhoneType(Context context) {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return telephonyManager.getPhoneType(); }

判斷手機連接的網絡類型(2G,3G,4G)

// 聯通的3G為UMTS或HSDPA,移動和聯通的2G為GPRS或EGDE,電信的2G為CDMA,電信的3G為EVDO public class Constants {/*** Unknown network class*/public static final int NETWORK_CLASS_UNKNOWN = 0;/*** wifi net work*/public static final int NETWORK_WIFI = 1;/*** "2G" networks*/public static final int NETWORK_CLASS_2_G = 2;/*** "3G" networks*/public static final int NETWORK_CLASS_3_G = 3;/*** "4G" networks*/public static final int NETWORK_CLASS_4_G = 4; } /** * 判斷手機連接的網絡類型(2G,3G,4G) */ public static int getNetWorkClass(Context context) {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);switch (telephonyManager.getNetworkType()) {case TelephonyManager.NETWORK_TYPE_GPRS:case TelephonyManager.NETWORK_TYPE_EDGE:case TelephonyManager.NETWORK_TYPE_CDMA:case TelephonyManager.NETWORK_TYPE_1xRTT:case TelephonyManager.NETWORK_TYPE_IDEN:return Constants.NETWORK_CLASS_2_G;case TelephonyManager.NETWORK_TYPE_UMTS:case TelephonyManager.NETWORK_TYPE_EVDO_0:case TelephonyManager.NETWORK_TYPE_EVDO_A:case TelephonyManager.NETWORK_TYPE_HSDPA:case TelephonyManager.NETWORK_TYPE_HSUPA:case TelephonyManager.NETWORK_TYPE_HSPA:case TelephonyManager.NETWORK_TYPE_EVDO_B:case TelephonyManager.NETWORK_TYPE_EHRPD:case TelephonyManager.NETWORK_TYPE_HSPAP:return Constants.NETWORK_CLASS_3_G;case TelephonyManager.NETWORK_TYPE_LTE:return Constants.NETWORK_CLASS_4_G;default:return Constants.NETWORK_CLASS_UNKNOWN;} }

判斷當前手機的網絡類型(WIFI還是2,3,4G)?

/** * 判斷當前手機的網絡類型(WIFI還是2,3,4G),需要用到上面的方法 */ public static int getNetWorkStatus(Context context) {int netWorkType = Constants.NETWORK_CLASS_UNKNOWN;ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();if (networkInfo != null && networkInfo.isConnected()) {int type = networkInfo.getType();if (type == ConnectivityManager.TYPE_WIFI) {netWorkType = Constants.NETWORK_WIFI;} else if (type == ConnectivityManager.TYPE_MOBILE) {netWorkType = getNetWorkClass(context);}}return netWorkType; }

?

App相關

安裝指定路徑下的Apk?

/** * 安裝指定路徑下的Apk */ public void installApk(String filePath) {Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.setDataAndType(Uri.fromFile(new File(filePath)), "application/vnd.android.package-archive");startActivityForResult(intent, 0); }

卸載指定包名的App

/** * 卸載指定包名的App */ public void uninstallApp(String packageName) {Intent intent = new Intent();intent.setAction("android.intent.action.DELETE");intent.addCategory("android.intent.category.DEFAULT");intent.setData(Uri.parse("package:" + packageName));startActivityForResult(intent, 0); }

獲取App名稱

/** * 獲取App名稱 */ 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; }

獲取當前App版本號

/** * 獲取當前App版本號 */ public static String getVersionName(Context context) {String versionName = null;PackageManager pm = context.getPackageManager();PackageInfo info = null;try {info = pm.getPackageInfo(context.getApplicationContext().getPackageName(), 0);} catch (NameNotFoundException e) {e.printStackTrace();}if (info != null) {versionName = info.versionName;}return versionName; }

獲取當前App版本Code

  • /** *獲取當前App版本Code */public static int getVersionCode(Context context) {int versionCode = 0;PackageManager pm = context.getPackageManager();PackageInfo info = null;try {info = pm.getPackageInfo(context.getApplicationContext().getPackageName(), 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}if (info != null) {versionCode = info.versionCode;}return versionCode; }/** *打開指定包名的App */ public void openOtherApp(String packageName){PackageManager manager = getPackageManager();Intent launchIntentForPackage = manager.getLaunchIntentForPackage(packageName);if (launchIntentForPackage != null) {startActivity(launchIntentForPackage);} }

打開指定包名的App應用信息界面?

/** * 打開指定包名的App應用信息界面 */ public void showAppInfo(String packageName) {Intent intent = new Intent();intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");intent.setData(Uri.parse("package:" + packageName));startActivity(intent); }

分享Apk信息?

/** * 分享Apk信息 */ public void shareApkInfo(String info) {Intent intent = new Intent();intent.setAction("android.intent.action.SEND");intent.addCategory("android.intent.category.DEFAULT");intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT, info);startActivity(intent); }?

獲取App信息的一個封裝類(包名、版本號、應用信息、圖標、名稱等)

/** * 獲取App信息的一個封裝類(包名、版本號、應用信息、圖標、名稱等) */ public class AppEnging {public static List<AppInfo> getAppInfos(Context context) {List<AppInfo> list = new ArrayList<AppInfo>();//獲取應用程序信息//包的管理者PackageManager pm = context.getPackageManager();//獲取系統中安裝到所有軟件信息List<PackageInfo> installedPackages = pm.getInstalledPackages(0);for (PackageInfo packageInfo : installedPackages) {//獲取包名String packageName = packageInfo.packageName;//獲取版本號String versionName = packageInfo.versionName;//獲取applicationApplicationInfo applicationInfo = packageInfo.applicationInfo;int uid = applicationInfo.uid;//獲取應用程序的圖標Drawable icon = applicationInfo.loadIcon(pm);//獲取應用程序的名稱String name = applicationInfo.loadLabel(pm).toString();//是否是用戶程序//獲取應用程序中相關信息,是否是系統程序和是否安裝到SD卡boolean isUser;int flags = applicationInfo.flags;if ((applicationInfo.FLAG_SYSTEM & flags) == applicationInfo.FLAG_SYSTEM) {//系統程序isUser = false;} else {//用戶程序isUser = true;}//是否安裝到SD卡boolean isSD;if ((applicationInfo.FLAG_EXTERNAL_STORAGE & flags) == applicationInfo.FLAG_EXTERNAL_STORAGE) {//安裝到了SD卡isSD = true;} else {//安裝到手機中isSD = false;}//添加到bean中AppInfo appInfo = new AppInfo(name, icon, packageName, versionName, isSD, isUser);//將bean存放到list集合 list.add(appInfo);}return list;} }// 封裝軟件信息的bean類 class AppInfo {//名稱private String name;//圖標private Drawable icon;//包名private String packagName;//版本號private String versionName;//是否安裝到SD卡private boolean isSD;//是否是用戶程序private boolean isUser;public AppInfo() {super();}public AppInfo(String name, Drawable icon, String packagName,String versionName, boolean isSD, boolean isUser) {super();this.name = name;this.icon = icon;this.packagName = packagName;this.versionName = versionName;this.isSD = isSD;this.isUser = isUser;} }

判斷當前App處于前臺還是后臺?

// 需添加<uses-permission android:name="android.permission.GET_TASKS"/> // 并且必須是系統應用該方法才有效 /** * 判斷當前App處于前臺還是后臺 */ public static boolean isApplicationBackground(final Context context) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);@SuppressWarnings("deprecation")List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);if (!tasks.isEmpty()) {ComponentName topActivity = tasks.get(0).topActivity;if (!topActivity.getPackageName().equals(context.getPackageName())) {return true;}}return false; }

?

屏幕相關

獲取手機分辨率?

/** * 獲取屏幕的寬度px */ public static int getDeviceWidth(Context context) {WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);DisplayMetrics outMetrics = new DisplayMetrics();// 創建了一張白紙windowManager.getDefaultDisplay().getMetrics(outMetrics);// 給白紙設置寬高return outMetrics.widthPixels; }/** * 獲取屏幕的高度px */ public static int getDeviceHeight(Context context) {WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);DisplayMetrics outMetrics = new DisplayMetrics();// 創建了一張白紙windowManager.getDefaultDisplay().getMetrics(outMetrics);// 給白紙設置寬高return outMetrics.heightPixels; }

獲取狀態欄高度?

/** * 獲取狀態欄高度 */ public int getStatusBarHeight() {int result = 0;int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");if (resourceId > 0) {result = getResources().getDimensionPixelSize(resourceId);}return result; }

獲取狀態欄高度+標題欄(ActionBar)高度

/** * 獲取狀態欄高度+標題欄(ActionBar)高度 */ public static int getTopBarHeight(Activity activity) {return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); }

獲取屏幕截圖?

/** * 獲取當前屏幕截圖,包含狀態欄 */ public static Bitmap snapShotWithStatusBar(Activity activity) {View view = activity.getWindow().getDecorView();view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap bmp = view.getDrawingCache();int width = getScreenWidth(activity);int height = getScreenHeight(activity);Bitmap bp = null;bp = Bitmap.createBitmap(bmp, 0, 0, width, height);view.destroyDrawingCache();return bp; }/** * 獲取當前屏幕截圖,不包含狀態欄 */ public static Bitmap snapShotWithoutStatusBar(Activity activity) {View view = activity.getWindow().getDecorView();view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap bmp = view.getDrawingCache();Rect frame = new Rect();activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;int width = getScreenWidth(activity);int height = getScreenHeight(activity);Bitmap bp = null;bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height- statusBarHeight);view.destroyDrawingCache();return bp; }

設置透明狀態欄,需在setContentView之前調用

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//透明狀態欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//透明導航欄 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }// 需在頂部控件布局中加入以下屬性讓內容出現在狀態欄之下 android:clipToPadding="true" android:fitsSystemWindows="true"?

?

鍵盤相關

避免輸入法面板遮擋

// 在manifest.xml中activity中設置 android:windowSoftInputMode="stateVisible|adjustResize"?

動態隱藏軟鍵盤

/** * 動態隱藏軟鍵盤 */ public static void hideSoftInput(Activity activity) {View view = activity.getWindow().peekDecorView();if (view != null) {InputMethodManager inputmanger = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0);} }/** * 動態隱藏軟鍵盤 */ public static void hideSoftInput(Context context, EditText edit) {edit.clearFocus();InputMethodManager inputmanger = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);inputmanger.hideSoftInputFromWindow(edit.getWindowToken(), 0); }?

點擊屏幕空白區域隱藏軟鍵盤?

// 方法1:在onTouch中處理,未獲焦點則隱藏 /** * 在onTouch中處理,未獲焦點則隱藏 */ @Override public boolean onTouchEvent(MotionEvent event) {if (null != this.getCurrentFocus()) {InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);return mInputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);}return super.onTouchEvent(event); }// 方法2:根據EditText所在坐標和用戶點擊的坐標相對比,來判斷是否隱藏鍵盤,需重寫dispatchTouchEvent @Override public boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_DOWN) {View v = getCurrentFocus();if (isShouldHideKeyboard(v, ev)) {hideKeyboard(v.getWindowToken());}}return super.dispatchTouchEvent(ev); }/** * 根據EditText所在坐標和用戶點擊的坐標相對比,來判斷是否隱藏鍵盤 */ private boolean isShouldHideKeyboard(View v, MotionEvent event) {if (v != null && (v instanceof EditText)) {int[] l = {0, 0};v.getLocationInWindow(l);int left = l[0],top = l[1],bottom = top + v.getHeight(),right = left + v.getWidth();return !(event.getX() > left && event.getX() < right&& event.getY() > top && event.getY() < bottom);}return false; }/** * 獲取InputMethodManager,隱藏軟鍵盤 */ private void hideKeyboard(IBinder token) {if (token != null) {InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);im.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);} }

動態顯示軟鍵盤

/** * 動態顯示軟鍵盤 */ public static void showSoftInput(Context context, EditText edit) {edit.setFocusable(true);edit.setFocusableInTouchMode(true);edit.requestFocus();InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);inputManager.showSoftInput(edit, 0); }

切換鍵盤顯示與否狀態

/** * 切換鍵盤顯示與否狀態 */ public static void toggleSoftInput(Context context, EditText edit) {edit.setFocusable(true);edit.setFocusableInTouchMode(true);edit.requestFocus();InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); }?

?

正則相關?

正則工具類

public class RegularUtils {//驗證手機號private static final String REGEX_MOBILE = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$";//驗證座機號,正確格式:xxx/xxxx-xxxxxxx/xxxxxxxxprivate static final String REGEX_TEL = "^0\\d{2,3}[- ]?\\d{7,8}";//驗證郵箱private static final String REGEX_EMAIL = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";//驗證urlprivate static final String REGEX_URL = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?";//驗證漢字private static final String REGEX_CHZ = "^[\\u4e00-\\u9fa5]+$";//驗證用戶名,取值范圍為a-z,A-Z,0-9,"_",漢字,不能以"_"結尾,用戶名必須是6-20位private static final String REGEX_USERNAME = "^[\\w\\u4e00-\\u9fa5]{6,20}(?<!_)$";//驗證IP地址private static final String REGEX_IP = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";//If u want more please visit http://toutiao.com/i6231678548520731137//*** @param string 待驗證文本* @return 是否符合手機號格式*/public static boolean isMobile(String string) {return isMatch(REGEX_MOBILE, string);}/*** @param string 待驗證文本* @return 是否符合座機號碼格式*/public static boolean isTel(String string) {return isMatch(REGEX_TEL, string);}/*** @param string 待驗證文本* @return 是否符合郵箱格式*/public static boolean isEmail(String string) {return isMatch(REGEX_EMAIL, string);}/*** @param string 待驗證文本* @return 是否符合網址格式*/public static boolean isURL(String string) {return isMatch(REGEX_URL, string);}/*** @param string 待驗證文本* @return 是否符合漢字*/public static boolean isChz(String string) {return isMatch(REGEX_CHZ, string);}/*** @param string 待驗證文本* @return 是否符合用戶名*/public static boolean isUsername(String string) {return isMatch(REGEX_USERNAME, string);}/*** @param regex 正則表達式字符串* @param string 要匹配的字符串* @return 如果str 符合 regex的正則表達式格式,返回true, 否則返回 false;*/public static boolean isMatch(String regex, String string) {return !TextUtils.isEmpty(string) && Pattern.matches(regex, string);} }

?


?

加解密相關

?MD5加密

/** * MD5加密 */ public static String encryptMD5(String data) throws Exception {MessageDigest md5 = MessageDigest.getInstance("MD5");return new BigInteger(md5.digest(data.getBytes())).toString(16); }

SHA加密

/** * SHA加密 */ public static String encryptSHA(String data) throws Exception {MessageDigest sha = MessageDigest.getInstance("SHA");return new BigInteger(sha.digest(data.getBytes())).toString(32); }

?

未歸類?

獲取服務是否開啟

/** * 獲取服務是否開啟 */ public static boolean isRunningService(String className, Context context) {//進程的管理者,活動的管理者ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);//獲取正在運行的服務List<RunningServiceInfo> runningServices = activityManager.getRunningServices(1000);//maxNum 返回正在運行的服務的上限個數,最多返回多少個服務//遍歷集合for (RunningServiceInfo runningServiceInfo : runningServices) {//獲取控件的標示ComponentName service = runningServiceInfo.service;//獲取正在運行的服務的全類名String className2 = service.getClassName();//將獲取到的正在運行的服務的全類名和傳遞過來的服務的全類名比較,一直表示服務正在運行 返回true,不一致表示服務沒有運行 返回falseif (className.equals(className2)) {return true;}}return false; }

?

轉載于:https://www.cnblogs.com/earl-yongchang/p/5792834.html

總結

以上是生活随笔為你收集整理的Android开发人员不得不收集的代码(不断更新中...)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久99久久久久久 | 91资源在线播放 | 五月天中文字幕mv在线 | 正在播放 国产精品 | 亚洲精品乱码久久久久久蜜桃不爽 | 久久精品99北条麻妃 | 久久色视频 | 美女在线观看网站 | 国产精品3| 免费看污片 | 日韩成年视频 | 久久精品国产免费看久久精品 | 日韩在线在线 | 精品国产人成亚洲区 | 人人澡人人爽欧一区 | 国产91在线播放 | 国产不卡精品 | 国产日本在线观看 | 麻豆免费视频网站 | 久久久久久久久久久久久久免费看 | 日韩在线视频观看 | 国产精品都在这里 | 免费精品在线观看 | 五月开心激情网 | 日韩精品久久久久久久电影竹菊 | 最新日本中文字幕 | 久久久这里有精品 | 午夜精品视频一区二区三区在线看 | 97超级碰碰碰视频在线观看 | 成人毛片久久 | 久久伊人五月天 | av免费在线网 | 婷婷综合影院 | 国产精品麻豆三级一区视频 | 国产精品久久久久永久免费看 | 日韩午夜在线播放 | 国产在线一区二区三区播放 | 亚洲狠狠干| 胖bbbb搡bbbb擦bbbb | 亚洲一区网站 | 国产三级国产精品国产专区50 | 国产精品视频线看 | 午夜视频黄 | 欧美日韩3p | 久久精品在线免费观看 | 99视频在线精品免费观看2 | 91久久久国产精品 | 高清免费在线视频 | 91网页版免费观看 | 日本久热| 超碰在线观看99 | 免费观看性生交大片3 | 99久久久久久久久久 | 人人爽人人 | 久久视频6 | 久久久伦理 | 91探花在线 | 最新国产精品久久精品 | 日韩欧美一区二区三区在线观看 | 色综合久久88色综合天天6 | 国产精品国产三级国产不产一地 | 亚洲视频1 | 超碰在线公开免费 | 黄色a视频免费 | 欧美成a人片在线观看久 | 中文字幕一区二区三区久久蜜桃 | 久久这里精品视频 | 91精品国产综合久久福利 | 日韩高清免费观看 | 国产色资源 | japanesexxx乱女另类 | 免费看污在线观看 | 欧美一级性生活视频 | 国产剧情久久 | 久久久久五月 | 亚洲aⅴ在线观看 | 91视频黄色 | 又湿又紧又大又爽a视频国产 | 成人h电影 | 日韩在线视频观看免费 | 九九色综合 | 黄色片软件网站 | 日韩精品视频免费在线观看 | 欧美久草视频 | 免费看黄的 | 久久精品视频播放 | 亚洲成人免费观看 | 欧美一级片在线观看视频 | 99精品视频精品精品视频 | 丁香激情网 | 视频一区在线播放 | 国产女人40精品一区毛片视频 | av中文字幕在线观看网站 | 久草精品在线播放 | 中文字幕日韩国产 | 国产一区二区视频在线 | 天天操天天干天天操天天干 | 色一级片 | 成人性生交大片免费看中文网站 | 成年人网站免费在线观看 | 国产精品乱码久久久 | 麻豆一精品传二传媒短视频 | 黄色美女免费网站 | 天天爱天天插 | 日日操操| 久久精品视频在线免费观看 | 国产手机免费视频 | 亚洲aⅴ一区二区三区 | 国产日韩欧美自拍 | 亚洲视屏 | 欧美日韩在线精品一区二区 | 免费观看黄色12片一级视频 | 69视频永久免费观看 | 国产一区在线精品 | 国产免费av一区二区三区 | 九九热免费精品视频 | 国产粉嫩在线 | 亚洲精品乱码久久久久久按摩 | 成人av网页| 精品视频免费在线 | 精品久久1 | 狠狠色噜噜狠狠 | 97人人澡人人添人人爽超碰 | 91精品无人成人www | 免费成人在线视频网站 | 九色精品免费永久在线 | 亚洲精品在线二区 | 亚洲一区二区三区精品在线观看 | 91探花国产综合在线精品 | 一级免费看 | 91理论电影 | 欧美日韩xxx | 国产视频97| 999一区二区三区 | 婷婷色在线 | 欧美a级一区二区 | 久久精品视频免费播放 | 在线 国产 日韩 | 国产98色在线 | 日韩 | av动态图片 | 亚洲国产日韩一区 | 久久不卡日韩美女 | a视频免费在线观看 | 麻豆系列在线观看 | 午夜精品一区二区三区免费视频 | 久草精品在线观看 | 色九九在线 | 亚洲 欧美 综合 在线 精品 | 色五月成人 | 成人丁香花 | 欧美日韩国产综合一区二区 | 美女在线免费观看视频 | 国产精品久久久久久久久久ktv | 久草国产在线观看 | 日本视频不卡 | 操高跟美女 | 中文字幕乱在线伦视频中文字幕乱码在线 | 美州a亚洲一视本频v色道 | 天天操天天操天天操天天操天天操天天操 | 欧美日韩视频精品 | 中文字幕一区在线观看视频 | 日韩精品免费一区二区 | 在线视频日韩 | 免费亚洲精品视频 | 国产精品一区二区三区电影 | 国产精品久久久久久久毛片 | 午夜视频在线观看欧美 | 一区二区三区视频网站 | 日韩视频一区二区在线观看 | 免费a视频在线观看 | 日韩欧美精品在线观看 | 激情网五月婷婷 | 夜夜爽天天爽 | 国产精品99精品 | 91资源在线观看 | 成年人在线观看免费视频 | 色综合久久五月 | 超碰最新网址 | 精品国产精品久久一区免费式 | 国产剧情一区二区在线观看 | 69精品久久 | 国产99久久久精品视频 | av.com在线| 久久免费99精品久久久久久 | 成 人 黄 色 免费播放 | 91完整版在线观看 | 在线视频 91 | 亚洲干视频在线观看 | 玖玖玖在线观看 | 99精品国产在热久久下载 | 国产第一页福利影院 | 97超碰人人看 | 久久免费视频3 | 日韩高清在线一区二区三区 | 91探花国产综合在线精品 | 国产精品99久久久久久久久 | 欧美激情第八页 | 在线亚洲欧美视频 | 少妇按摩av | 精品国精品自拍自在线 | 免费观看www7722午夜电影 | 99久久精品网 | 麻豆视传媒官网免费观看 | 免费网站观看www在线观看 | 国产亚洲成av人片在线观看桃 | 欧美日本不卡高清 | 色噜噜日韩精品一区二区三区视频 | 新版资源中文在线观看 | 精品99在线视频 | 丁香婷婷激情国产高清秒播 | 99久久99久久免费精品蜜臀 | 欧美日韩性视频 | 国产精品免费视频久久久 | 日韩有码第一页 | 五月宗合网 | 日本精品视频免费 | 精品福利网 | 久草视频国产 | 麻豆免费在线播放 | 91天堂在线观看 | 久久国产亚洲精品 | 美女网站久久 | 免费观看av网站 | 97网在线观看 | 香蕉视频在线免费 | 精品亚洲免费 | 欧美一区二区三区免费观看 | 日韩欧美综合在线视频 | av在线看片| 精品欧美乱码久久久久久 | 一区二区激情 | 在线观看免费高清视频大全追剧 | 精品国产一区二区三区久久久久久 | 91网站观看 | 国产五月天婷婷 | 手机av在线网站 | 欧美日韩午夜在线 | 国产流白浆高潮在线观看 | 中文字幕在线久一本久 | 成人免费共享视频 | 狠狠狠狠狠狠天天爱 | 在线国产视频一区 | 91片黄在线观 | 国内毛片毛片 | 亚洲激情在线观看 | 国产一区二区三区黄 | 色婷婷国产精品一区在线观看 | 国产精品乱码久久 | 97视频免费在线观看 | 免费裸体视频网 | 91高清视频在线 | 激情婷婷网 | 国产精品人人做人人爽人人添 | 久久久久美女 | 久久艹综合 | 五月婷婷亚洲 | 中文字幕欧美日韩va免费视频 | 中文字幕在线观看第一页 | 国产视频一区二区在线观看 | 国产日韩视频在线 | 久久精品久久久久电影 | 日本h视频在线观看 | 制服丝袜在线91 | 国产在线观看一区 | 最新婷婷色 | 丁香六月五月婷婷 | 欧美一级艳片视频免费观看 | 婷婷www| 亚洲免费一级电影 | 久久九精品 | 国产精品久久久久久吹潮天美传媒 | 欧美日韩在线播放一区 | 色福利网 | 日韩欧美综合在线视频 | 国产91综合一区在线观看 | 久草视频2| 韩国av免费在线观看 | 亚洲日本三级 | 国产精品美女免费 | 波多野结衣一区二区 | 9999国产| 日韩av五月天 | 成人a视频| 四虎影视8848aamm | 99在线免费视频 | 欧美精品乱码99久久影院 | 国产又粗又猛又色又黄网站 | 日本不卡123| 国产精品18久久久久久不卡孕妇 | 精品国产一区在线观看 | 国产中文字幕视频在线 | 又黄又爽又刺激的视频 | 97超碰资源网 | 亚洲激情av | 久久综合久久综合这里只有精品 | 亚洲乱亚洲乱妇 | 狠狠色丁香婷婷综合 | 免费网站黄色 | 日韩电影在线观看中文字幕 | 久久久久亚洲精品中文字幕 | 精品在线免费观看 | 一区二区三区韩国免费中文网站 | 国内99视频| 久久久久久免费视频 | 天天操天天色天天射 | 中文av一区二区 | 亚洲永久国产精品 | av大全免费在线观看 | 国内免费的中文字幕 | 欧美日韩国产一二三区 | 欧美精品国产综合久久 | 天天曰视频 | 欧美一区二区日韩一区二区 | 激情图片区 | 欧美性极品xxxx做受 | 欧美日在线观看 | 国产又粗又硬又长又爽的视频 | 一区二区丝袜 | 天天干天天操人体 | 婷婷激情五月 | 激情五月婷婷综合网 | 国产一区二区成人 | 91av短视频| 美国av大片| 亚洲国产精品成人va在线观看 | 懂色av一区二区在线播放 | 亚洲欧洲一区二区在线观看 | 成人av高清在线观看 | 久久九九免费视频 | 国产成人久 | 色综合天天色综合 | 天天操夜夜做 | 日本中文字幕观看 | 成人黄在线观看 | www.色午夜.com | 久久国产影视 | 成人avav | 免费看国产精品 | 精品久久久久久亚洲综合网站 | 久草在线视频精品 | 国外av在线| 91专区在线观看 | 日韩中文在线播放 | 成人av一级片 | 欧美精品xxx | 国产一级二级av | 成人app在线免费观看 | 日韩理论电影网 | 一级黄色视屏 | 亚洲波多野结衣 | 69亚洲视频 | 国产精品1024| 日本精品视频在线观看 | 日韩极品视频在线观看 | 久久综合毛片 | 又爽又黄又无遮挡网站动态图 | 久久五月婷婷丁香 | 视频99爱 | 久久国产精品99精国产 | 99综合视频 | 色久网| 免费看网站在线 | 中文字幕乱码日本亚洲一区二区 | 色综合久久中文字幕综合网 | 黄色中文字幕在线 | 91av在线视频播放 | 亚洲一区二区精品在线 | 国产精品久久久久久久久蜜臀 | 久久99精品一区二区三区三区 | 999国产精品视频 | 久久精品久久久久久久 | 日韩成人精品 | 久久综合干| 国产va精品免费观看 | 91精品国产高清自在线观看 | 色综合 久久精品 | 久久视频免费在线 | 中文字幕 国产 一区 | 国产精品久久久久久久久久99 | 亚洲香蕉视频 | 96av在线视频| 久久综合免费视频 | 天天艹天天| 四月婷婷在线观看 | 成年人免费av | 在线国产一区二区 | 日韩精品中文字幕一区二区 | 成人a视频在线观看 | 狠狠操精品 | 国产少妇在线观看 | 欧美一区中文字幕 | 天天综合网 天天 | 欧美日韩在线观看视频 | 欧美日韩精品在线播放 | 亚洲精品视频久久 | 久久久久免费精品国产小说色大师 | 奇米网777 | 久久激情精品 | 97精品国产91久久久久久 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 91久久久久久久一区二区 | 在线播放日韩av | 欧美另类亚洲 | 在线看一级片 | 午夜成人免费影院 | 国产一区二区三区免费在线观看 | 最新av中文字幕 | 九九九九色 | 久久国产精品免费一区二区三区 | 中文字幕一区二区三区乱码不卡 | 国产亚洲精品美女久久 | 狠狠88综合久久久久综合网 | 国产99一区 | 日韩中字在线 | 国产精品久久久久久婷婷天堂 | 欧美午夜a | 精品国产成人在线 | 丝袜美女在线观看 | 色com| 国产综合香蕉五月婷在线 | 久久精品网站免费观看 | 成人午夜影视 | 日韩一二区在线观看 | 欧美一区影院 | 国产精品久久久久久一区二区 | 国产在线观看,日本 | 97视频免费观看2区 亚洲视屏 | 免费av观看 | 久久久久久网站 | 欧美日韩在线视频观看 | 欧美成人手机版 | 人人看看人人 | 最新动作电影 | 欧美精品久久久久久久久久久 | 毛片基地黄久久久久久天堂 | 超碰97公开 | 婷婷色伊人 | 亚洲欧美日本国产 | 狠狠的操你 | 成年人在线观看网站 | 色午夜 | 91精品啪在线观看国产 | 女人久久久久 | 97av在线视频 | 在线小视频国产 | 中文av影院 | 免费在线一区二区三区 | aaa毛片视频| 伊人狠狠 | 欧美99久久| 麻豆视频91 | 国产综合片| 精品福利视频在线 | 国产精品久久久久免费 | 麻豆国产网站 | 中国一区二区视频 | 激情综合五月婷婷 | 精品伊人久久久 | 在线国产欧美 | 国产精品原创视频 | 日本中文字幕电影在线免费观看 | 久久一区国产 | 国产精品一区在线观看 | 国产区精品在线观看 | 国产一区在线视频播放 | 国产小视频在线免费观看 | 亚洲日本激情 | 国产精品国产亚洲精品看不卡 | 国产美女免费视频 | 黄色软件在线观看 | 久久国产麻豆 | 色网站在线 | 国产超碰在线观看 | 天天色 天天 | 99一级片| 久久国产品 | 色七七亚洲影院 | 日韩免费中文 | 国产免费不卡 | 操久久免费视频 | 欧美久久久久 | 国产免费一区二区三区最新6 | 激情中文在线 | 成人四虎| 97成人超碰 | 欧美综合色在线图区 | 99在线视频精品 | 在线91播放 | 中文字幕刺激在线 | 亚洲视频1 | 亚洲精品毛片一级91精品 | 中文字幕久久精品一区 | 成人免费共享视频 | 国产91九色视频 | 在线观看av免费 | 亚洲精品xxx | 草久视频在线 | 在线观看蜜桃视频 | 黄色com | 成人中文字幕在线观看 | 国产香蕉视频在线观看 | 93久久精品日日躁夜夜躁欧美 | 日韩精品视频在线免费观看 | 亚洲黄网站 | 91试看| 国产精品久久久久久久久久久久久 | 亚洲精品视频在线免费 | 日韩免费一区二区三区 | 中国一级特黄毛片大片久久 | 综合天堂av久久久久久久 | 日韩xxxx视频 | 中文av一区二区 | 色吧av色av | 久久久久黄 | 成人毛片一区 | 有码中文字幕 | 免费看片黄色 | 国内久久精品视频 | 欧美欧美 | 日韩欧美一区二区在线 | 国产女教师精品久久av | 日韩精品一区不卡 | 国产一区二区三区免费在线 | 丁香视频免费观看 | 国产精品久久婷婷六月丁香 | 国产精品18久久久久久vr | 一区二区三区免费在线播放 | 欧美日韩免费一区二区三区 | 国内久久看 | 欧美成人h版 | 99电影| 久久久免费视频播放 | 国产亚洲片 | 99精品免费久久久久久久久 | av在线播放快速免费阴 | 久久久久国产精品厨房 | 91网页版在线观看 | 91观看视频| 日韩在线一二三区 | 毛片一级免费一级 | 黄网站app在线观看免费视频 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产日韩av在线 | 婷婷丁香在线观看 | 欧美性色xo影院 | 九九热视频在线 | 日韩免费小视频 | 国产69久久久 | 日本不卡一区二区 | 午夜一级免费电影 | 97视频在线看 | 国产精品少妇 | 国产精品一区二区久久精品爱微奶 | 免费色婷婷 | www91在线| av电影免费在线播放 | 98超碰人人 | 久久久久女教师免费一区 | 337p西西人体大胆瓣开下部 | 欧美精品九九99久久 | 日韩精品在线观看av | 日韩中文在线播放 | 欧美性性网 | a黄色大片 | 91av视频观看 | 欧美成人区 | 九色视频网站 | 亚洲一二视频 | 在线有码中文字幕 | 一区二区三区免费在线观看视频 | 日韩v欧美v日本v亚洲v国产v | 九九av| 欧美日韩高清一区二区 | 中文字幕日韩电影 | 国产 一区二区三区 在线 | 午夜精品福利在线 | 成人免费xxx在线观看 | 中文字幕在线看 | 婷婷在线看 | 久久亚洲欧美日韩精品专区 | 在线观看视频99 | free. 性欧美.com| 99久久999久久久精玫瑰 | 亚洲精品国偷拍自产在线观看蜜桃 | 美女视频黄色免费 | 又粗又长又大又爽又黄少妇毛片 | 午夜久草| 欧美99久久 | 久草视频视频在线播放 | 深爱激情婷婷网 | 国产精品久久久久久久久久久免费 | 天天干天天色2020 | 99r在线视频| 美女视频黄在线观看 | 麻豆精品视频在线观看免费 | 国产资源网站 | 欧美日韩色婷婷 | 最近中文字幕大全中文字幕免费 | 日本乱视频 | 日本在线观看黄色 | 国产精品女教师 | 欧美日韩一区二区三区在线观看视频 | 久久久精品二区 | 天天爱av导航 | 国产日产欧美在线观看 | 在线a人片免费观看视频 | 久久久穴| 男女拍拍免费视频 | 人人爽夜夜爽 | 久草视频中文在线 | 午夜成人免费电影 | 麻豆果冻剧传媒在线播放 | 久久成人高清 | 久青草电影 | 99麻豆久久久国产精品免费 | 久久免费av电影 | 黄色三级视频片 | 日韩久久久久久 | 久香蕉| 91久久爱热色涩涩 | 悠悠av资源片 | 西西www4444大胆视频 | www色av| 日一日操一操 | 久久国产成人午夜av影院潦草 | 中文字幕在线视频精品 | 国产91综合一区在线观看 | 久久亚洲欧美日韩精品专区 | 成年人看片 | 久久av观看 | 麻豆视频在线免费 | 91精品啪在线观看国产 | 日日操天天操狠狠操 | 国产精品视屏 | 天天激情综合网 | 国产视频 亚洲精品 | 婷婷综合导航 | 成 人 黄 色 片 在线播放 | 狠狠综合网 | 欧美一级黄色网 | 九九九在线观看 | 九九热在线观看 | 亚洲国产中文在线观看 | 国产精品美女久久久免费 | 人人看97 | 免费一级片在线 | 久久久久久国产精品 | 日p视频在线观看 | 久久久久人人 | 99色精品视频 | 久久999久久| 国产午夜激情视频 | 天天av在线播放 | 日韩欧美专区 | 午夜久久久久久久久久久 | 久久人操| 中文字幕在线观看三区 | 国产一区二区三区免费观看视频 | 国产精品一码二码三码在线 | 日韩理论在线视频 | av电影不卡| avcom在线| 在线国产一区 | 97免费公开视频 | 中文字幕在线人 | 中文在线字幕免费观看 | 久久理论视频 | 欧美激情xxxx性bbbb | 最近日本mv字幕免费观看 | 人人插人人费 | 最新av中文字幕 | 成人国产精品一区二区 | 日韩欧美综合精品 | 久久综合欧美 | 国产91在线 | 美洲 | 香蕉久久久久久av成人 | www日韩欧美 | 伊人久久电影网 | 亚洲欧美精品一区二区 | 69国产精品视频 | 日韩欧美在线综合网 | 成人黄色小视频 | 久久激情网站 | 久久免费av电影 | 夜夜操天天摸 | www五月天 | av在观看 | 青青网视频| 天天操天天射天天操 | www国产一区 | 国产精品亚洲片夜色在线 | 亚洲精品字幕 | 91香蕉视频在线 | 91精品电影| 激情伊人五月天久久综合 | 在线天堂中文在线资源网 | 日韩欧美高清一区二区 | 麻豆一二| 成人手机在线视频 | 久久精品中文字幕免费mv | 免费h在线观看 | 在线观看一| 亚洲国产免费av | 天天操综合 | 午夜精品久久 | 国产第一页福利影院 | 成人黄色电影视频 | 日日夜夜天天干 | 欧美大香线蕉线伊人久久 | 99综合电影在线视频 | 国产色拍拍拍拍在线精品 | av高清在线 | 亚洲妇女av | 91视频下载 | 99在线视频精品 | 久久久影片 | 久久久三级视频 | 在线观看免费版高清版 | 日本精品视频免费观看 | 99色免费| av亚洲产国偷v产偷v自拍小说 | 狠狠色丁香婷综合久久 | 成人国产一区 | 色九九在线| 五月综合激情婷婷 | 国产精品中文久久久久久久 | 九九久久久 | 欧美激情另类 | 国产h在线播放 | 日韩精品欧美一区 | 国产91丝袜在线播放动漫 | 国产 日韩 欧美 自拍 | 久久国产精品99久久久久久丝袜 | 九九九热精品免费视频观看网站 | 91在线视频网址 | 麻豆国产视频下载 | 成年在线观看 | 综合av在线 | av韩国在线 | 日韩电影在线观看一区二区 | 日本中出在线观看 | 五月色综合 | 国产这里只有精品 | 久久经典国产视频 | 欧美日韩国产色综合一二三四 | 在线视频黄 | 黄色激情网址 | 欧美a在线看 | 激情婷婷在线 | 国产精品欧美日韩在线观看 | 欧美成年人在线视频 | av 一区二区三区四区 | 久久久久免费精品视频 | 久草精品网 | 国产精品免费久久久久久久久久中文 | 精品国产自 | 又污又黄的网站 | 久久久久久久久久免费视频 | 夜夜婷婷 | 久久免费在线视频 | 在线观看免费色 | 在线影院中文字幕 | 三级av免费| 亚洲va欧美 | 国产精品国产三级国产aⅴ无密码 | 日韩视频三区 | 91在线产啪| 不卡的一区二区三区 | 播五月婷婷 | 国产又粗又猛又爽又黄的视频先 | 午夜精品久久久久久久99热影院 | 玖玖视频精品 | 亚洲网久久 | 91免费视频网站在线观看 | 亚洲精品视频一 | 久久久久国产一区二区 | 96久久 | 成年人视频免费在线播放 | 亚洲国产精品va在线看黑人 | 精品国产片| 久久艹人人| www黄色大片 | 久久综合婷婷综合 | 日日夜夜天天射 | 亚洲一区二区精品 | 色老板在线视频 | 久久国产精品久久久 | 久久电影网站中文字幕 | 欧美另类xxxx | 久久久久国产精品一区二区 | 韩国av一区二区 | 91中文字幕在线视频 | 日本二区三区在线 | 国产成人久久久久 | 国产高清在线免费视频 | 美女久久久久久久久久久 | 久久久国产精品亚洲一区 | 曰韩在线 | 欧洲视频一区 | 亚洲狠狠操 | 色大片免费看 | 日韩欧美电影在线 | 在线欧美中文字幕 | 午夜手机电影 | 园产精品久久久久久久7电影 | 日韩剧情 | 精品国产1区2区3区 国产欧美精品在线观看 | 69av网| 亚洲成av人片 | 天天射射天天 | 97精品国产97久久久久久粉红 | 亚洲精品免费在线观看 | 狠狠色丁香婷婷综合最新地址 | 国产精品第52页 | 久久久91精品国产一区二区三区 | 99热在线精品观看 | 免费日韩三级 | 日韩黄视频 | 97伊人网 | 91成人短视频在线观看 | av在线播放网址 | 最近中文字幕在线播放 | 亚洲精品tv久久久久久久久久 | 开心色婷婷 | 亚洲精品综合在线观看 | 五月婷丁香网 | 四虎影视成人 | 天天拍天天操 | 国产亲近乱来精品 | 国内视频在线观看 | 成人免费视频视频在线观看 免费 | 免费观看性生活大片3 | av.com在线| 天天躁日日躁狠狠躁av中文 | 91香蕉嫩草| 狠狠亚洲 | 中文字幕成人网 | 色婷婷啪啪免费在线电影观看 | 久国产在线播放 | 五月av在线 | 99资源网 | 久久久久久久久久久久久国产精品 | 五月天亚洲精品 | 午夜国产一区二区 | 国产免费xvideos视频入口 | 欧美日韩精品影院 | www.久久色 | 在线亚洲日本 | 91成人破解版 | 国产色网 | 丁香花在线视频观看免费 | 国产真实精品久久二三区 | 日日夜夜狠狠操 | 91完整视频 | 亚洲在线视频网站 | 国产精品成人在线观看 | 久久久久99精品成人片三人毛片 | 久久精品亚洲一区二区三区观看模式 | www天天操| 五月综合色婷婷 | 91av资源在线| 中文字幕成人在线 | av福利在线免费观看 | 日韩中文字幕国产 | 日韩欧美高清一区二区三区 | 97人人澡人人添人人爽超碰 | 精品免费 | 日韩免费二区 | 91免费高清 | 在线播放一区二区三区 | av中文字幕av| 国产视频2区 | 亚洲黄污| 天天色天天操综合 | 在线导航福利 | 天天干天天操天天干 | 亚洲精品日韩av | 欧美日韩视频网站 | 色网站中文字幕 | 日韩最新在线视频 | 视频直播国产精品 | 国产一区黄色 | 免费精品国产va自在自线 | 欧美精品午夜 | 狠狠躁日日躁狂躁夜夜躁av | 成人免费xyz网站 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日韩精品一卡 | 欧美成人播放 | 在线天堂v | 日韩av成人 | 日日夜日日干 | 69久久99精品久久久久婷婷 | 久草精品电影 | 成人久久电影 | 亚洲尺码电影av久久 | 久久精品电影 | 亚洲第一香蕉视频 | 激情伊人五月天久久综合 | www激情网 | 国产黄a三级三级三级三级三级 | 亚洲欧美精品一区二区 | 久久另类视频 | 九九热国产视频 | 日韩啪啪小视频 | 亚洲国产精品成人av | 在线观看国产亚洲 | 97超碰总站 | 超碰午夜 | 日本三级国产 | 四虎影院在线观看av | www.伊人网.com| 色偷偷88888欧美精品久久 | 中文字幕不卡在线88 | 精品视频不卡 | 国产人免费人成免费视频 | 国产午夜精品久久 | 午夜精品一区二区三区在线视频 | 奇米影视8888 | 日韩精品第1页 | 激情婷婷在线观看 | 久久久久免费精品视频 | 人人草在线视频 | 亚洲一区动漫 | 久久久久麻豆v国产 | 午夜精品久久久久久久久久久久久久 | 免费色视频在线 | 亚洲成人动漫在线观看 | 在线观看网站黄 | 婷婷丁香狠狠爱 | 激情久久伊人 | 成人在线视频在线观看 | 天天操天天艹 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 97在线精品视频 | 婷婷丁香激情综合 | 日韩色在线 | 亚洲精品99 | 在线播放亚洲激情 | 亚洲成人精品影院 | 国产精品午夜在线 | 九九色网| 91成人破解版 | 97超碰色 | 久久精品激情 | 99国产高清| 欧美激情第一页xxx 午夜性福利 | 国产精品美女 | www.天天草 | 天天插一插 | 麻豆精品传媒视频 | www.福利| 国产va在线 | 久久99影院 | 中文字幕4| 日韩三级成人 | 日日日日日| 亚洲国产精品一区二区久久hs | 超碰在线人人草 | 久久一二三四 | 亚洲aⅴ乱码精品成人区 | 国产一级免费观看 | 久草爱| 精品国产乱子伦一区二区 | 午夜影院在线观看18 | 亚洲视频综合在线 | 欧美久久综合 | 国产精品理论在线观看 | 最近中文字幕国语免费av | 午夜av在线 | 视频二区| 黄色片网站免费 | 久久精品这里热有精品 | 国产高清视频在线观看 | 亚洲黄色一级视频 | 97视频在线播放 | 国产天天综合 | 国产玖玖在线 | 一本一本久久aa综合精品 | 免费黄色a级毛片 | 国产99久久久久久免费看 | 久久av免费电影 | 久久看片网站 | 久草精品在线播放 | 日韩极品在线 | 国产精品日韩高清 | 99精品国产一区二区三区麻豆 | 九精品| 午夜精品一区二区三区在线 | 日韩网站在线免费观看 | 999日韩 | 日韩毛片久久久 | 手机av电影在线 | 在线视频免费观看 | 最近的中文字幕大全免费版 | 婷婷深爱五月 | 日韩资源视频 | 天天综合区|