public static boolean isDebuggable(Context context) { try { PackageInfo pInfo = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManager.GET_META_DATA); if (pInfo != null) { if ( 0 != (pInfo.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE)) { return true; } } } catch (NameNotFoundException e) { Log.w("isDebuggable()", Log.getStackTraceString(e)); } return false; }
之前一直对于按位与&和按位或|不是很了解,今天在看程序的时候有看到了这样的用法
if ( 0 != (pInfo.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE)) { return true; }如果他们的每一位都相同的话返回1,否则是0