【測試基礎第十一篇】APP日志分析


  • 1、ADT、SDK、ADB?
    • ADT(Android development tools)- Android開發工具。 在Eclipse.上調用各種與android有關的插件,便要ADT。
    • SDK(software development kit)--軟件開發部件。 要用到各種android平台,好比android2.3等,便要有SDK
    • ADB(Android debug bridge)是用來連接安卓手機和PC端的橋梁,通過adb服務,在PC端命令行界面對手機或者模擬器進行全面的操作。
  • 常用命令
    • 1.adb --help查看幫助手冊
    • 2.adbdevices檢測連接到電腦的安卓設備,這個是我們會經常用到的檢測命令。
    • 3.adb connect/disconnect ip:端口號通過wif進行遠程連接手機進行調試,手機和電腦在連接同一個路由器
      • 127.0.0.1本機回環地址,62001夜神模擬器默認端口

      • adb連接真機
        • 1. USB連接調試:
          • 1) usb數據線連接好電腦,手機打開調試模式:
          • 2)勾選usb調試模式
          • 3)輸入adb devices檢測手機.

        • 2. Wif連接調試:
          • Android設備與將運行adb的電腦連接到同一個局域網,比如連到同-一個WiFi.
            • 1) USB連接手機和電腦:
            • 2)運行adb devices,測試是否連接成功,能出現設備列表即可:
            • 3)運行adb tcpip 5555,然后斷開USB連接:
            • 4)通過手機狀態信息,查看手機的IP地址,- 般會在設置關於手機-狀態信息-找到P地址。
            • 5)運行adb connect 192.168.2.216 (ip地址) ,若出現: connected to 192.168.2.216.5555說明連接成功:
            • 6)輸入adb devices檢測手機

    • 4.adb se---登錄設備shell (命令行的人機界面),安卓手機后台就是一個Linux系統:
      • 進入安卓手機

      • 1) II詳細屬性, Is命令都可以用-查看文件: list

      • 2) cd: 進入目錄

    • 5.adb pull <手機文件路徑> <本機路徑>從手機中拉取信息放到本地電腦上

    • 6.adb push <本機文件路徑> <手機路徑>從本地推送信息到手機上去

    • 7.adb install xxx apk ---為了獲取apk的安裝包所在地址,可以直接把apk拖到cmd的窗口獲取,返回success就說明安裝成功了!

    • 8.adb shell dumpsys activity | find "mFocusedActivity" --查看前台應用包名

    • 9.adb uninstall +應用包名

    • 10.adb logcat打印1og信息
      • logcat日志文件
        • android日志系統提供了記錄和查看系統調試信息的功能,日志都是從各種軟件和一些系統的緩沖區中記錄下來的,緩沖區可以通過logcat命令來查看和使用
          • 使用方式:
            • [adb] logcat [<option>] .. [< fiter-spec>]..

        • logcat是以如下開頭的:
          • 1. -------- beginning of xxx
          • 開發者選項,有個選項叫做“日志記錄器緩沖區大小”, 默認是256K,日志是循環寫入環形緩沖區的。在通常情況下,寫滿時最舊的日志會被刪除以給新輸出的日志留內存空間一真機設置 ,模擬器一般沒有
      • logcat日志文件分析
        • 輸出的日志格式如下所示:

        • 由五部分組成:
          • 1.寫下日志時的時間,如上中01-11 09:39:35.209.
          • 2.優先級,在Android中,日志的優先級從低到高分以下幾種:
            • V- -Verbose (最低級別,開發調試中的一些詳細信息,僅在開發中使用,不可在發布產品中輸出)
            • D- -Debug (調試,用於調試的信息,可以在發布產品中關閉,比較常見)
            • I- -Info (信息,一般提示性的消息)
            • W- -Warning (警告)
            • E-- Error (錯誤,已經出現可影響運行的錯誤,比如應用crash時輸出的日志)---重點關注
          • 3.標簽(tag) ,標明日志發起者和方便日志的過濾篩選,如上中ActivityManager ,類和模塊。
          • 4. PID (進程ID) , 如上中491。
          • 5.正文:本日志的主體內容。
      • 發生crash如何分析
        • 發生crash , adb logcat獲取日志分析:
          • 1.搜索exception關鍵字, 根據時間,包名定位【com.zzb.memoryleak】

          • 2.搜索fatal/ caused by關鍵字
          • 3、搜索force finish
        • 找到對應的日志,貼到bug里,發給開發! ! !
      • ANR?
        • 何為ANR
          • ANR全名Application Not Responding ,也就是應用無響應當操作在一段時間內系統無法處理時 ,系統層面會彈出右圖那樣的ANR對話框
          • 為用戶在主線程長時間被阻塞時提供處理交互 ,提高用戶體驗
          • Android系統一種自身檢測機制

        • 發生ANR如何分析
          • 系統在發生ANR時,會通過三種方式記錄信息:
          • ➢Logcat舊志
          • ➢Trace文件
          • ➢DropBox服務
        • ANR分析
          • 通過Logcat日志進行分析:
            • 日志格式
              • ActivityManager : ANR in [進程名]([部件名])
              • ActivityManager : PID:[應用進程ID]
              • ActivityManager : Reason:[原因提示]
              • [Process CPU state]

            • 通過搜索anr關鍵字,若無具體java報錯信息,繼續另一種方法獲取日志
          • 通過Trace文件進行分析: /data/anr/
            • Dump stack trace信息
            • Dump的進程包括:當前應用進程,父進程,主進程, persistent進程,以及CPU占用率排在前幾位的(最多5個)進程
            • ps :只能記錄最后一-次發生的anr的信息
            • data/anr/traces.txt文件里面只能保留最后一次發生ANR時的traces信息

          • 通過dropbox可以收集系統- -段時間內的異常信息(包括ANR、crash )
            • /data/system/dropbox是dropbox指定的文件存放位置

    • 11. error: cannot connect to daemon
      • 1) 查看是否有手機助手,豌豆莢之類的軟件,會占用5037端口
      • 2)使用netstat -ano | findstr 5037查看5037端口對應的進程號(因為5037是adb的默認端口號),
        • 然后用taskkill -f -pid 11100 --- 進程號即可殺死
        • adb connect
      • 3)替換文件
    • 12. offline:
      • 1) adb kill-server , 殺掉進程,重新連接 -- adb connect
      • 2) 模擬器必須啟動
      • 3) 替換文件
    • 14.真機測試 ,保證步驟跟老師PPT一致之外, https://www.cnblogs.com/zymnstlm/p/12381619.html , 安裝驅動
      • 1)權限 : /data -- 模擬器權限低 ,真機高 #--root, $--p普通用戶 === sdcard 目錄 是有權限 , cd sdcard == 注意:很少新建文件;
      • 2)電腦C盤: adb logcat -v time > C:\test\logcat.txt == 因為直接建在C盤,對於C盤根目錄無權限訪問
    • los APP定位日志
      • MacOS電腦: xcode工具
      • Windows: iTunes iTools
      • 使用工具將日志同步到電腦,然后貼到bug里給開發!
  • 常見面試題
    • 1、APP測試什么時候需要收集日志?怎么收集日志的?
      • 測試app時,出現異常會去收集日志,查看定位具體的一些問題,出現crash、anr無響應時一定要手機日志,幫助開發定位問題
      • 安卓手機通過adb命令連到手機里,用adblog這個命令去收集日志
    • 2、APP日志捕獲的工具有哪些?
      • 安卓:adb
      • 蘋果xcode、itunes、itools
  •  


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM