您的位置:首页 > 其它

ADB常用命令和logcat

2014-11-17 13:37 393 查看
一 adb常用命令

1. 查看设备

adb devices      //当前连接的设备, 连接到计算机的android设备或者模拟器将会显示处理

2. 安装软件 卸载软件

adb install xxx.apk               //安装软件

adb install -r xxx.apk            //重新安装该软件

adb uninstall apk包名.apk         //卸载apk软件 

3. 登录设备shell

adb shell                //进入手机的超级终端Terminal

adb shell <command命令>  //直接shell运行设备命令, 相当于执行远程命令

4. 从PC上发送文件到手机

adb push <本地路径> <远程路径>
adb push D:\xxx.apk system/app/

//A[system/app/]为手机路径,B[D:\xxx.apk]为电脑路径,,把文件从电脑复制到手机上

5. 从手机上下载文件到PC

adb pull <远程路径> <本地路径>
adb pull system/app/xxx.apk D:\

//A[system/app/xxx.apk]为手机路径,B[D:\]为电脑路径,,把文件从手机中复制到电脑上

6. 其他

adb remount           //重新挂载文件系统

adb reboot            //重启手机

adb reboot recovery   //重启到Recovery界面

adb reboot bootloader //重启到bootloader界面

二 log使用

android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。

根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。

1、Log.v 的调试为黑色,任何消息都会输出

2、Log.d 的输出为蓝色,仅输出debug调试信息

3、Log.i 的输出为绿色,一般提示性消息information,无v和d的信息,会显示i、w和e的信息

4、Log.w 的意思为橙色,warning信息,需要我们注意优化Android代码,会输出e的信息。

5、Log.e 为红色错误信息,分析查看栈信息。

三 adb logcat过滤

1. 只显示需要的输出,白名单

最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp:
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小写。

2 保存log

使用-d参数,可以在读完所有log后返回,而不会一直等待,在自动化较有用。例如:
adb logcat -d -s xxx > xxx.log //得到filter为xxx的日志,存入xxx.log,然后返回。

3 其他

adb logcat -s TAG名称             //显示某一TAG的日志信息:
adb logcat -v time -s videocamera //打印出 log 信息中时间,以及包含关键字 "videocamera" 的所有 log

四 系统调用命令

1.查看进程的memInfo
adb shell dumpsys meminfo 进程名   //在该命令的后面要加上进程的名字,以确定是哪个进程。
adb shell dumpsys meminfo com.android.mms将得到com.android.mms进程使用的内存信息:

Applications Memory Usage (kB):

Uptime: 495867 Realtime: 3319185

** MEMINFO in pid 2362 [com.android.mms] **

                         Shared  Private     Heap     Heap     Heap

                   Pss    Dirty    Dirty     Size    Alloc     Free

                ------   ------   ------   ------   ------   ------

       Native        0        0        0     3072     2939      117

       Dalvik     6594    11816     6236    15047    14308      739

       Cursor        0        0        0

       Ashmem        0        0        0

    Other dev        4       32        0

     .so mmap      879     1240      500

    .jar mmap        0        0        0

    .apk mmap      141        0        0

    .ttf mmap      119        0        0

    .dex mmap     1185        0        0

   Other mmap      127       20      124

      Unknown     1840      344     1836

        TOTAL    10889    13452     8696    18119    17247      856

 Objects

               Views:       44         ViewRootImpl:        1

         AppContexts:        3           Activities:        1

              Assets:        4        AssetManagers:        4

       Local Binders:       24        Proxy Binders:       38

    Death Recipients:        0

     OpenSSL Sockets:        0

 SQL

         MEMORY_USED:        0

  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0
2.adb shell top

top命令是Linux下常用的性能分析工具,可实时显示系统中各个进程的资源使用情况,有点像Windows的任务管

理器。
3.adb shell cat /proc/meminfo

只能得出系统整个内存的大概使用情况

可以用来查看剩余的空间,通常系统的剩余空间量为:MemFree + Cached

N:\>adb shell cat /proc/meminfo

MemTotal:         908816 kB

MemFree:          347540 kB

Buffers:           17440 kB

Cached:           148340 kB

SwapCached:            0 kB

Active:           243316 kB

Inactive:         128280 kB

如上剩余空间为 347540 kB + 148340 kB
4.adb shell procrank

查看所有进程的内存使用情况,哪些app/进程占用内存过多。

一般以PSS栏为参考,关注PSS值较大的进程。

N:\>adb shell procrank

  PID      Vss      Rss      Pss      Uss  cmdline

  383   72900K   61928K   30386K   27472K  system_server

  643   62996K   57472K   26467K   24092K  com.android.phone

  699   89816K   49876K   19985K   18116K  com.android.launcher

  503   49708K   44444K   14833K   12904K  com.android.systemui

  789   42392K   42184K   13735K   11648K  android.process.acore

  583   41864K   41568K   12369K   10584K  com.android.settings

 2362   51204K   40140K   11098K    9540K  com.android.mms

 1118   38668K   38452K   10775K    9484K  com.aspire.mmservice

  802   37892K   37656K   10604K    9384K  com.android.contacts

 1391   33760K   33560K    7168K    6004K  cn.emagsoftware.gamehall:b

 1343   32480K   32256K    6277K    5200K  cn.wps.moffice_eng

  550   32908K   32684K    5649K    4300K  android.process.media

 1152   31628K   31412K    5018K    3992K  cmccwm.mobilemusic

 

五、adb启动 应用程序

(1)查看app包名:
进入android操作系统
adb shell
在root@android:/ # 后边,输入
cd data/data
然后输入ls
这样就能看见android系统上安装的安装包 包名:
例如:
cn.com.conversant.swiftsync.android
com.android.backupconfirm
com.android.browser
com.android.calculator2
com.android.calendar
com.android.camera

...
(2)adb启动 应用程序

adb shell a
4000
m start -n cn.com.conversant.swiftsync.android/cn.com.conversant.swiftsync.android.main.SplashActivity

备注:adb shell am start -n包名/Activity类的类名
包名和Activity类的类名一定要输入正确,可以用re-sign工具(在最后的弹出信息框会显示出包名和Activity类名)。
六、adb停止 应用程序
adb shell am force-stop  cn.com.conversant.swiftsync.android
备注:cn.com.conversant.swiftsync.android为包名。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: