Ⅰ 如何快速定位android app是否存在內存泄露
1、首先確定是否有內存泄露及哪個程序造成。
1.1、內存泄露已彈出out of memory對話框的情況。
這種情況很簡單,直接看對話框就知道是哪個應用的問題了。然後再分析該應用是否是因為內存泄露造成的
out of memory對話框。
》中介紹的各種方法進行分析,確定是否有內存泄露以及是哪個進程造成的內存泄露。
2、生成hprof文件,用MAT進行分析。
生成hprof文件可以在DDMS選中進程點擊窗口左上角的mp hprof file按鈕來直接生成,也可以通過在程序加代碼中來生成代碼2:voidgenerateHprof(){String packageName=getApplicationInfo().packageName;
StringhpFilePath=/data/data/+packageName+/input.hprof;try{//Debug.mpHprofData(/sdcard/input.hprof);Debug.
mpHprofData
(hpFilePath);}catch(IOException e) {//TODOAuto-generated catch block
e.printStackTrace();}}建議使用代碼生成hprof,然後使用《
Android內存泄露利器(hprof篇)》中的工具自動提取多個hprof文件,然後用MAT進行比較分析。在MAT導入.hprof文件以後,
MAT會自動解析並生成報告,點擊
Dominator Tree
,並按Package分組,選擇自己所定義的Package類,比較各個類在不同時期的RetainedHeap
,找出可疑類,然後選擇該類,點右鍵,選中
show retained Set項,參看Retained Heap
的詳細信息,進一步找出嫌疑項。
3、在代碼中查找內存泄露。
根據在MAT找到的內存泄露信息,參照《
Android內存泄漏簡介
》進一步在內存中查找內存泄露的原因並解決。
另外如果代碼很簡單,可以直接參照《
Android內存泄漏簡介
》在內存中查找內存泄露的原因並解決。
Ⅱ Android 是怎麼判斷某個APK文件是否已經安裝
Android系統中,判斷應用有無安裝有兩種方式:
1.根據包名判斷,以下為判斷代碼:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || 「」.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
2. 根據Intent判斷,以下為判斷代碼:
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || 「」.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() > 0) {
return true;
}
return false;
}
Ⅲ APP的安全漏洞怎麼檢測,有什麼工具可以進行檢測
目前我經常用的漏洞檢測工具主要就是愛內測,因為愛內測會根據應用特性,對程序機密性會採取不同程度不同方式的檢測,檢測項目包括代碼是否混淆,DEX、so庫文件是否保護,程序簽名、許可權管理是否完整等;組件安全檢測主要針對Activity、Broadcast Receiver、Service、WebView、Intent等是否存在漏洞,並給出針對性建議;數據安全會全面檢測APP存在的數據泄漏漏洞和輸出層、協議層等所有涉及數據安全的漏洞,確保APP里那些可能導致帳號泄露的漏洞被全部檢測出。
Ⅳ Android APP漏洞,求APK漏洞檢測工具
由於Android系統的開源性,各類Android App經常被爆出漏洞,以及被反編譯、破解。有的Android開發者只是對App進行混淆代碼或是防二次打包,對於源碼的保護並不到位。同時也不清楚其中所隱藏的漏洞,這里給大家介紹一個Android App漏洞測試工具。同時,經常需要用到的一個性能測試工具,在Android應用開發或測試過程中,對應用程序進行性能壓力測試,或者GUI功能測試,以找出程序中隱藏的問題。
1. 文件檢查
檢查dex、res文件是否存在源代碼、資源文件被竊取、替換等安全問題。
2. 漏洞掃描
掃描簽名、XML文件是否存在安全漏洞、存在被注入、嵌入代碼等風險。
3. 後門檢測
檢測App是否存在被二次打包,然後植入後門程序或第三方代碼等風險。
4. 一鍵生成
一鍵生成App關於源碼、文件、許可權、關鍵字等方面的安全風險分析報告。
自動化App安全檢測平台,只需一鍵上傳APK就可完成安全漏洞檢測,檢測結果清晰、詳細、全面,並可一鍵生成報告,極大的提高了開發者的開發效率,有效幫助開發者了解App安全狀況,提高App安全性。
愛加密的漏洞分析功能http://safe.ijiami.cn/集成了目前黑客最常用的各種破解方法與思路,模擬黑客攻擊行為進行分析。開發者只需上傳自己的應用,就可以自動分析出應用存在哪些可被利用的風險漏洞,清晰直觀,並且全網首家支持一鍵下載完整詳細的PDF格式分析報告,方便技術及公司管理人員對應用漏洞相關結果進行傳遞與研究,有針對性的進行安全防護,避免破解損失。