亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android筆記之:App調試的幾個命令的實踐與分析

2020-04-11 12:26:27
字體:
來源:轉載
供稿:網友

在Android的應用開發中,我們會用到各種代碼調試;其實在Android的開發之后,我們可能會碰到一些隨機的問題,如cpu過高,內存泄露等,我們無法簡單的進行代碼調試,我們需要一個系統日志等等,下面我把握工作中碰到的幾個常用命令和方法給大家演示實踐一下。

1.logcat命令
這個命令最簡單常用,可查看幫助,我不多說,如果需要打印時間,加參數-v time

adb logcat -v time

2.bugreport命令
這個命令也非常簡單,但是在實際應用中非常有用,會有從開機之后詳細的dumpsys,dumpstate和logcat信息,是一份完整的日志記錄。對分析用戶行為,異常信息,系統狀態有很大的參考作用。一般我們會把bugreport導出到電腦上分析。

adb bugreport > xxx.log

我再次強調,bugreport里面包含豐富的系統和用戶信息,它是其他很多命令輸出的結果的記錄,非常有用。

3.dumpsys命令
這個查看系統信息,用的還是比較多的.

復制代碼 代碼如下:

dumpsys [options]
               meminfo 顯示內存信息
               cpuinfo 顯示CPU信息
               account 顯示accounts信息
               activity 顯示所有的activities的信息
               window 顯示鍵盤,窗口和它們的關系
               wifi 顯示wifi信息

例如查看某個程序內存信息:
復制代碼 代碼如下:

#查看應用com.tianxia.test的內存使用情況
adb shell dumpsys meminfo com.tianxia.test

效果圖如下:

里面的信息很有價值,尤其對于分析內存泄露,內存溢出都有極大的作用。

4.top命令
這個查看cpu信息太方便了。

top -m 5 -t

我們看看效果圖,其中按cpu大小列出5個進程列表。

com.tianxia.test的cpu過高,會導致手機發燙。同時利用這個信息,可以監控應用cpu的使用,以調整優化代碼。

5.配置文件local.prop
目前網上沒有查到local.prop的配置使用,工作中本人只使用過如下:

log.tag.SQLiteStatements=VERBOSE log.tag.SQLiteTime=VERBOSE

把上述文本加到/data/local.prop中,如果沒有這個文件自行創建。然后重啟手機,就能看到每個應用詳細的查詢數據庫的sql語句信息,對于調試數據庫,分析和優化數據庫sql異常非常有用。

6.分析手機發燙
下面我們來實踐一個例子,手機發燙太厲害,怎么找出問題?
首先我們寫一個程序com.tianxia.test,死循環,核心代碼如下:

復制代碼 代碼如下:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    while(true) {
        System.currentTimeMillis();
    }
}

這個應用打開后會一直獲取系統時間,因為在主線程,肯定導致應用ANR,也會一直浪費系統cpu,手機發熱,我們運行它。
假設我們不知道上述代碼,我們來找到這個問題:
(1).找到發燙的應用。
使用top命令:

top -m 5 -t

一看是com.tianxia.test占用85%的cpu,原來是這家伙在搗鬼。進程ID是644,這個后面我們有用。
(2).分析發燙的應用進程在干嘛
需要用到linux下的strace命令,但是android是沒有集成這個命令的,android版本的下載地址:
http://benno.id.au/android/strace
下載完成后,上傳到手機中:
我們adb push strace /system/bin,在模擬器上是上傳到/system/bin會報out of memory錯誤,我們也可以上傳到/data目錄下,如果沒有執行權限,還需要chmod 777 strace.
strace命令有很多參數,直接執行strace會顯示使用說明:


其中-p參數輸入的就是進程號,第一步中我們找到com.tianxia.test的進程ID是644,我們看看這個應用占用這么高的cpu在干嘛?

strace -p 644

輸出如下:


它的系統調用一直是gettimeofday,一直輸出這個,顯然哪里一定進入死循環了,而且是獲取時間的死循環,然后結合logcat和代碼,定位這段代碼(就是前面我們給出的那段代碼了)解決這個bug。

7.采集手機的cpu運行情況.
有時使用日志我們很難針對性的獲取我們想要的信息,我們可能需要寫一些最簡單的腳步放在手機里面執行。
如監控cpu占用的記錄cpu_log.sh:

復制代碼 代碼如下:

# !/system/bin/sh
#這個腳步比較粗糙,是這么個意思
file=/sdcard/cpu/cpu_info.log
rm $file
until [ 1 -gt 10000 ]
do
echo -e "/n/n/n/n/n---------------">>$file
date >> $file
top -m 5 -n 1 >> $file
sleep 3
done

每隔3s中就會把手機的cpu的信息寫到sdcard的cpu目錄下的cpu_info.log文件中,方便我們后續分析。
 ps:使用方法是 push到data目錄下,賦予可執行權限,在shell下執行即可。

8.采集某個應用的內存數據
這個實踐和上面的腳本類似,只是命令不一樣我另外單獨列出來,因為這個有時候很有用。
比如,我們要采集com.tianxia.test的內存使用情況,分析它是不是會內存泄露,腳步類似:

復制代碼 代碼如下:

# !/system/bin/sh
#這個腳步比較粗糙,是這么個意思
file=/sdcard/cpu/mem_info.log
rm $file
until [ 1 -gt 10000 ]
do
echo -e "/n/n/n/n/n---------------">>$file
date >> $file
dumpsys meminfo com.tianxia.test >> $file
sleep 3
done

使用方法也是一樣。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx黑人| 成人网在线免费观看| 一区二区成人av| 日韩欧美在线视频日韩欧美在线视频| 欧美另类极品videosbest最新版本| 亚洲图片欧洲图片av| 欧美激情一区二区三区久久久| 美女福利视频一区| 中文字幕久久精品| 色噜噜狠狠狠综合曰曰曰| 欧美俄罗斯乱妇| 国产精品亚洲自拍| 91国产精品视频在线| 51ⅴ精品国产91久久久久久| 美女啪啪无遮挡免费久久网站| 成人黄在线观看| 在线精品播放av| 日韩国产精品视频| 欧美日韩国产二区| 久久久噜久噜久久综合| 亚洲第一福利视频| 国产在线视频2019最新视频| 亲爱的老师9免费观看全集电视剧| 成人日韩av在线| 亚洲精品videossex少妇| 97在线观看视频国产| 日韩二区三区在线| 国产精品亚洲片夜色在线| 久久精品久久久久久国产 免费| 一区二区欧美激情| 欧美激情亚洲自拍| 亚洲国产精品推荐| 国语自产精品视频在线看一大j8| 国产精品va在线播放我和闺蜜| 国产精品美女主播在线观看纯欲| 亚洲欧美国产日韩天堂区| 欧美二区在线播放| 18一19gay欧美视频网站| 欧美整片在线观看| 久久网福利资源网站| 亚洲图片欧洲图片av| 亚洲色图35p| 欧美激情小视频| 欧美日韩国产色| 中文字幕精品影院| 精品亚洲国产成av人片传媒| 久久精品99国产精品酒店日本| 国产精品视频免费在线观看| 久久精品夜夜夜夜夜久久| 亚洲午夜国产成人av电影男同| 欧美午夜激情小视频| 欧美大片免费观看在线观看网站推荐| 久久伊人精品一区二区三区| 欧美性在线观看| 97激碰免费视频| 国产日韩精品在线播放| 欧美日韩电影在线观看| 中文字幕日韩视频| 国产www精品| 韩国三级日本三级少妇99| 久久99精品久久久久久青青91| 欧美在线观看网址综合| 国产香蕉97碰碰久久人人| 日韩视频免费大全中文字幕| 45www国产精品网站| 欧美中文字幕视频在线观看| 超碰精品一区二区三区乱码| 国产不卡av在线| 欧美成人午夜激情| 欧美亚洲另类制服自拍| 成人激情视频网| 欧美插天视频在线播放| 国产精品自产拍在线观看| 日韩av影院在线观看| 国产亚洲一区二区精品| 中国日韩欧美久久久久久久久| 亚洲成人网在线| 91wwwcom在线观看| …久久精品99久久香蕉国产| 亚洲r级在线观看| 97国产成人精品视频| www.久久撸.com| 欧美精品videofree1080p| 国模视频一区二区| 欧美人与物videos| 亚洲人午夜色婷婷| 美女福利视频一区| 欧美华人在线视频| 欧美精品videossex88| 国产精品久久久久久久久久久久| 亚洲免费人成在线视频观看| 欧美尺度大的性做爰视频| 日韩美女在线观看一区| 国产精品一区=区| 久久99热精品| 懂色av一区二区三区| 国产情人节一区| 成人免费高清完整版在线观看| 日韩视频永久免费观看| 国产成人+综合亚洲+天堂| 久久久久久亚洲精品不卡| …久久精品99久久香蕉国产| 亚洲国产小视频在线观看| 亚洲无av在线中文字幕| 亚洲视频在线视频| 亚洲精品成a人在线观看| 精品福利樱桃av导航| 91精品国产91久久久久久不卡| 欧洲午夜精品久久久| 91精品久久久久久久久久久| 欧美做受高潮电影o| 日韩经典中文字幕在线观看| 国产精品流白浆视频| 欧美性在线观看| 亚洲人成在线免费观看| 成人福利视频网| 精品一区精品二区| 国产成人精品在线观看| 国外成人在线直播| 97色在线播放视频| 久久精品男人天堂| 国产精品免费看久久久香蕉| 久久成人国产精品| 色琪琪综合男人的天堂aⅴ视频| 中文字幕亚洲自拍| 欧美裸体视频网站| 精品一区二区三区四区| 久久久久久这里只有精品| 国产欧美在线看| 91国产视频在线播放| 亚洲国产精品大全| 日韩一区视频在线| 国产精品成人免费视频| 国产亚洲美女久久| 96国产粉嫩美女| 亚洲自拍小视频免费观看| 国产亚洲精品久久久优势| 亚洲跨种族黑人xxx| 自拍亚洲一区欧美另类| 日本高清+成人网在线观看| 91精品久久久久久综合乱菊| 国产精品久久精品| 亚洲精品电影在线| 国产精品亚洲аv天堂网| 韩国三级电影久久久久久| 免费91麻豆精品国产自产在线观看| 久久福利视频网| 国产日韩视频在线观看| 国产精品美女999| 日韩中文有码在线视频| 欧美日韩国产成人在线| 欧洲精品在线视频| 久久久成人精品视频| 91免费观看网站| 国产精品老牛影院在线观看| 国产精品www网站| 久久视频在线播放| 日韩人在线观看| 欧美激情奇米色| 欧美另类在线播放| 亚洲国产成人在线播放| 一本大道久久加勒比香蕉| 欧美极品少妇与黑人| 国产一区二区三区丝袜|