編輯:關於Android編程
本文實例講述了Android編程之防止反編譯的實現方法。分享給大家供大家參考,具體如下:
1. 判斷程序是否運行在模擬器上
boolean isRunningInEmualtor() { boolean qemuKernel = false; Process process = null; DataOutputStream os = null; try{ process = Runtime.getRuntime().exec("getprop ro.kernel.qemu"); os = new DataOutputStream(process.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK")); os.writeBytes("exit\n"); os.flush(); process.waitFor(); // getprop ro.kernel.qemu == 1 在模擬器 // getprop ro.product.model == "sdk" 在模擬器 // getprop ro.build.tags == "test-keys" 在模擬器 qemuKernel = (Integer.valueOf(in.readLine()) == 1); Log.d("com.droider.checkqemu", "檢測到模擬器:" + qemuKernel); } catch (Exception e){ qemuKernel = false; Log.d("com.droider.checkqemu", "run failed" + e.getMessage()); } finally { try{ if (os != null) { os.close(); } process.destroy(); } catch (Exception e) { } Log.d("com.droider.checkqemu", "run finally"); } return qemuKernel; }
2. 檢測keystore簽名,再與之前得做比較
public int getSignature(String packageName) { PackageManager pm = this.getPackageManager(); PackageInfo pi = null; int sig = 0; try { pi = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); Signature[] s = pi.signatures; sig = s[0].hashCode(); } catch (Exception e1) { sig = 0; e1.printStackTrace(); } return sig; }
3. 檢測包名,版本名和版本號,然後做判斷:
private String getAppInfo() { try { String pkName = this.getPackageName(); String versionName = this.getPackageManager().getPackageInfo( pkName, 0).versionName; int versionCode = this.getPackageManager() .getPackageInfo(pkName, 0).versionCode; return pkName + " " + versionName + " " + versionCode; } catch (Exception e) { } return null; }
4. 把jpg圖片寫成是png格式得圖片 但是最新版本的apktool已經修復了
5. 花指令,影響jd-gui 但是最新版本的jd-gui已經修復
private static final char[] wJ = "0123456789abcdef".toCharArray(); public static String imsi = "204046330839890"; public static String p = "0"; public static String keyword = "電話"; public static String tranlateKeyword = "%E7%94%B5%E8%AF%9D";
在每個類裡面加入 如上字段。。。。
https://***/ 一個第三方得”愛加密“網站 1.需要使用官方的打包key工具打包後上傳到"愛加密"網站進行處理,然後到網站上面下載,下載後還要用"愛加密"的打包工具再次進行打包即可。
希望本文所述對大家Android程序設計有所幫助。
Android幀率測試SurfaceFlingerSurfaceFlinger 是 Android 的一個服務,運行在 Android 的System 進程中,負責管理系
android4.4 webview chromium是單進程的,圖中所有組件都運行在Browser進程中。 按從上而下的順序介紹這張圖中與顯示網頁相關的chromiu
在我們進行android開發的時候雖然官方提供了形形色色的控件,但是有的時候根據不同業務需求我們找不到官方的控件支持,那麼這個時候就需要我們自己去定義控件來適應不同的需求
在Monkeyrunner做自動化測試時,可以使用模擬器,當然也可以選擇用真機。不過,要想通過電腦來安裝軟件,操作手機,則必須先安裝手機驅動,而且一般手機連接電腦之後,電