作者 :万境绝尘  转载请著名出处

eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志;

1. 解析 adb logcat 的帮助信息

在命令行中输入 adb logcat --help 命令, 就可以显示该命令的帮助信息;

  1. octopus@octopus:~$ adb logcat --help
  2. Usage: logcat [options] [filterspecs]
  3. options include:
  4. -s              Set default filter to silent.
  5. Like specifying filterspec '*:s'
  6. -f <filename>   Log to file. Default to stdout
  7. -r [<kbytes>]   Rotate log every kbytes. (16 if unspecified). Requires -f
  8. -n <count>      Sets max number of rotated logs to <count>, default 4
  9. -v <format>     Sets the log print format, where <format> is one of:
  10. brief process tag thread raw time threadtime long
  11. -c              clear (flush) the entire log and exit
  12. -d              dump the log and then exit (don't block)
  13. -t <count>      print only the most recent <count> lines (implies -d)
  14. -g              get the size of the log's ring buffer and exit
  15. -b <buffer>     Request alternate ring buffer, 'main', 'system', 'radio'
  16. or 'events'. Multiple -b parameters are allowed and the
  17. results are interleaved. The default is -b main -b system.
  18. -B              output the log in binary
  19. filterspecs are a series of
  20. <tag>[:priority]
  21. where <tag> is a log component tag (or * for all) and priority is:
  22. V    Verbose
  23. D    Debug
  24. I    Info
  25. W    Warn
  26. E    Error
  27. F    Fatal
  28. S    Silent (supress all output)
  29. '*' means '*:d' and <tag> by itself means <tag>:v
  30. If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
  31. If no filterspec is found, filter defaults to '*:I'
  32. If not specified with -v, format is set from ANDROID_PRINTF_LOG
  33. or defaults to "brief"

adb logcat 命令格式 : adb logcat [选项] [过滤项], 其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的;

(1) 选项解析

选项解析 :

-- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;

--"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;

--"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;

--"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;

--"-v"选项 : 设置日志的输出格式, 注意只能设置一项;

--"-c"选项 : 清空所有的日志缓存信息;

--"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;

--"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;

--"-g"选项 : 查看日志缓冲区信息;

--"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;

--"-B"选项 : 以二进制形式输出日志;

.

输出指定标签内容 :

-- "-s"选项 : 设置默认的过滤器, 如 我们想要输出 "System.out" 标签的信息, 就可以使用adb logcat -s System.out 命令;

  1. octopus@octopus:~$ adb logcat -s System.out
  2. --------- beginning of /dev/log/system
  3. --------- beginning of /dev/log/main
  4. I/System.out(22930): GSM -91
  5. I/System.out(22930): SignalStrength issssssssss : -91
  6. I/System.out(22930): GSM -91
  7. I/System.out(22930): SignalStrength issssssssss : -91
  8. I/System.out(22930): Supervisor Thread
  9. I/System.out(22930): Got run mode

输出日志信息到文件 :

-- "-f"选项 : 该选向后面跟着输入日志的文件, 使用adb logcat -f /sdcard/log.txt 命令, 注意这个log文件是输出到手机上,需要指定合适的路径。

  1. octopus@octopus:~$ adb logcat -f /sdcard/log.txt

这个参数对对不能一直用电脑连着手机收集日志的场景非常有用,其实android shell下也有一个相同参数的logcat命令。使用如下命令可以执行后断开PC和手机持续收集LOG。

  1. shell@pc$ adb shell
  2. shell@android$ logcat -f /sdcard/log.txt &   #这里的&符号表示后台执行,别少了。
  3. shell@android$ exit

注:

(1)以上shell@pc$ 指在pc的shell终端执行后边的命令, shell@android$ 表示在手机shell中执行后边的命令l

(2)一定注意合适的时候需要停止掉以上命令,否则再次使用相同命令的时候,就会有两个logcat写同一个文件了

停止方法:  adb shell kill -9 <logcat_pid>

其中logcat_pid 通过 如下命令获取

adb shell ps | grep logcat          # linux 平台

adb shell ps | findstr "logcat"    #Windows平台

-- ">"输出 : ">" 后面跟着要输出的日志文件, 可以将 logcat 日志输出到文件中, 使用adb logcat > log 命令, 使用more log 命令查看日志信息;

  1. octopus@octopus:~$ adb logcat > log
  2. ^C
  3. octopus@octopus:~$ more log
  4. --------- beginning of /dev/log/system
  5. V/ActivityManager(  500): We have pending thumbnails: null
  6. V/ActivityManager(  500): getTasks: max=1, flags=0, receiver=null
  7. V/ActivityManager(  500): com.android.settings/.Settings: task=TaskRecord{42392278 #448 A com.android.settings U 0}
  8. V/ActivityManager(  500): We have pending thumbnails: null

-- " -d -f <log>" 组合命令:可以将日志保存到手机上的指定位置,对不能一直用电脑连着手机收集日志的场景非常有用。

  1. adb logcat -d -v /sdcard/mylog.txt

指定 logcat 的日志输出格式 :

-- "-v"选项 : 使用adb logcat -v time 命令, 可以啥看日志的输出时间;

使用adb logcat -v threadtime 命令, 可以啥看日志的输出时间和线程信息;

-- "brief"格式 : 这是默认的日志格式" 优先级 / 标签 (进程ID) : 日志信息 ", 使用adb logcat -v prief 命令;

  1. octopus@octopus:~$ adb logcat -v brief
  2. --------- beginning of /dev/log/system
  3. D/PowerManagerService(  500): handleSandman: canDream=true, mWakefulness=Awake
  4. D/PowerManagerService(  500): releaseWakeLockInternal: lock=1101267696, flags=0x0

-- "process"格式 : " 优先级 (进程ID) : 日志信息 ", 使用adb logcat -v process 命令;

  1. octopus@octopus:~$ adb logcat -v process
  2. --------- beginning of /dev/log/system
  3. D(  500) MobileDataStateReceiver received: ACTION_ANY_DATA_CONNECTION_STATE_CHANGED_MOBILE [wap]  (MobileDataStateTracker)
  4. V(  500) Broadcast: Intent { act=android.intent.action.ANY_DATA_STATE_MOBILE flg=0x10 (has extras) } ordered=true userid=0  (ActivityManager)
  5. D(  500) wap: Intent from SIM 0, current SIM 0, current DataState DISCONNECTED  (MobileDataStateTracker)
  6. D(  500) wap: wap setting isAvailable to false  (MobileDataStateTracker)
  7. D(  500) wap: Received state=DISCONNECTED, old=DISCONNECTED, reason=dataDetached  (MobileDataStateTracker)
  8. D(  500) BDC-Calling finishReceiver: IIntentReceiver=41c46ba0  (ActivityThread)

-- "tag"格式 : " 优先级 / 标签 : 日志信息", 使用adb logcat -v tag 命令;

  1. octopus@octopus:~$ adb logcat -v tag
  2. --------- beginning of /dev/log/system
  3. I/PowerManagerService: setBrightness mButtonLight 0.
  4. D/PowerManagerService: updateScreenStateLocked: mDisplayReady=true, newScreenState=2, mWakefulness=1, mWakeLockSummary=0x1, mUserActivitySummary=0x1, mBootCompleted=true
  5. D/PowerManagerService: handleSandman: canDream=true, mWakefulness=Awake

-- "thread"格式 : " 优先级 ( 进程ID : 线程ID) 标签 : 日志内容 ", 使用adb logcat -v tag 命令;

  1. octopus@octopus:~$ adb logcat -v thread
  2. --------- beginning of /dev/log/system
  3. V(  500: 2141) getTasks: max=1, flags=0, receiver=null
  4. V(  500: 2141) com.lewa.launcher/.Launcher: task=TaskRecord{41dccc20 #425 A com.lewa.launcher U 0}
  5. V(  500: 2141) We have pending thumbnails: null
  6. V(  500: 2140) getTasks: max=1, flags=0, receiver=null

-- "raw"格式 : 只输出日志信息, 不附加任何其他 信息, 如 优先级 标签等, 使用adb logcat -v raw 命令;

  1. octopus@octopus:~$ adb logcat -v raw
  2. --------- beginning of /dev/log/system
  3. notifications are enabled for com.kindroid.security
  4. Assigned score=0 to Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])
  5. Native set alarm :Alarm{41e1ca00 type 3 com.kindroid.security}
  6. reset poweroff alarm none

-- "time"格式 "日期 时间 优先级 / 标签 (进程ID) : 进程名称 : 日志信息 ", 使用adb logcat -v time 命令;

  1. octopus@octopus:~$ adb logcat -v time
  2. --------- beginning of /dev/log/system
  3. 04-25 17:18:13.019 V/ActivityManager(  500): Broadcast sticky: Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) } ordered=false userid=-1
  4. 04-25 17:18:13.157 V/NotificationService(  500): enqueueNotificationInternal: pkg=com.kindroid.security id=1020 notification=Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])
  5. 04-25 17:18:13.158 V/NotificationService(  500): notifications are enabled for com.kindroid.security
  6. 04-25 17:18:13.158 V/NotificationService(  500): Assigned score=0 to Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])
  7. 04-25 17:18:13.555 V/ActivityManager(  500): getTasks: max=1, flags=0, receiver=null

-- "long"格式:" [ 日期 时间 进程ID : 线程ID 优先级 / 标签] 日志信息 ", 输出以上提到的所有的头信息, 使用adb logcat -v long 命令;

  1. octopus@octopus:~$ adb logcat -v long
  2. --------- beginning of /dev/log/system
  3. [ 04-25 17:21:18.118   500:0x2fe V/ActivityManager ]
  4. We have pending thumbnails: null
  5. [ 04-25 17:21:18.696   593:0x251 W/ActivityThread ]
  6. Content provider com.android.providers.telephony.TelephonyProvider already published as telephony
  7. [ 04-25 17:21:19.119   500:0x396 V/ActivityManager ]
  8. getTasks: max=1, flags=0, receiver=null

清空日志缓存信息 : 使用 adb logcat -c 命令, 可以将之前的日志信息清空, 重新开始输出日志信息;

将缓存日志输出 : 使用 adb logcat -d 命令, 输出命令, 之后推出命令, 不会进行阻塞;

输出最近的日志 : 使用adb logcat -t 5 命令, 可以输出最近的5行日志, 并且不会阻塞;

  1. octopus@octopus:~$ adb logcat -t 5
  2. --------- beginning of /dev/log/system
  3. --------- beginning of /dev/log/main
  4. W/ADB_SERVICES(10028): adb: unable to open /proc/10028/oom_adj
  5. D/dalvikvm(23292): threadid=11: created from interp
  6. D/dalvikvm(23292): start new thread
  7. D/dalvikvm(23292): threadid=11: notify debugger
  8. D/dalvikvm(23292): threadid=11 (Thread-24538): calling run()
  9. octopus@octopus:~$

查看日志缓冲区信息 : 使用 adb logcat -g 命令;

  1. octopus@octopus:~$ adb logcat -g
  2. /dev/log/main: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b
  3. /dev/log/system: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b
  4. octopus@octopus:~$

加载日志缓冲区 : 使用 adb logcat -b 缓冲区类型 命令;

-- Android中的日志缓冲区 : system缓冲区 - 与系统相关的日志信息, radio缓冲区 - 广播电话相关的日志信息, events缓冲区 - 事件相关的日志信息, main缓冲区 - 默认的缓冲区;

  1. octopus@octopus:~$ adb logcat -b radio -t 5
  2. D/PHONE   (23599): [GeminiDataSubUtil] UAPP_C6-4
  3. D/GSM     (23599): [GDCT][simId1]apnType = default
  4. D/GSM     (23599): [GDCT][simId1]isDataAllowed: not allowed due to - gprs= 1 - SIM not loaded - desiredPowerState= false
  5. D/GSM     (23599): [GDCT][simId1]isDataPossible(default): possible=false isDataAllowed=false apnTypePossible=true apnContextisEnabled=true apnContextState()=IDLE
  6. I/MUXD    (23591): [gsm0710muxd] 3426:main(): Frames received/dropped: 18242/0
  7. octopus@octopus:~$
  8. octopus@octopus:~$ adb logcat -b main -t 5
  9. D/NotificationService(  500): notification.sound=null
  10. D/NotificationService(  500): mDmLock=false
  11. I/ATCIJ   (16576): Couldn't find 'atci-serv-fw' socket; retrying after timeout
  12. W/ADB_SERVICES(  246): create_local_service_socket() name=shell:export ANDROID_LOG_TAGS="" ; exec logcat -b main -t 5
  13. W/ADB_SERVICES(16815): adb: unable to open /proc/16815/oom_adj
  14. octopus@octopus:~$
  15. octopus@octopus:~$ adb logcat -b system -t 5
  16. D/PowerManagerService(  500): updateScreenStateLocked: mDisplayReady=true, newScreenState=0, mWakefulness=0, mWakeLockSummary=0x1, mUserActivitySummary=0x0, mBootCompleted=true
  17. D/PowerManagerService(  500): handleSandman: canDream=false, mWakefulness=Asleep
  18. V/NotificationService(  500): enqueueNotificationInternal: pkg=com.kindroid.security id=1020 notification=Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])
  19. V/NotificationService(  500): notifications are enabled for com.kindroid.security
  20. V/NotificationService(  500): Assigned score=0 to Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])
  21. octopus@octopus:~$
  22. octopus@octopus:~$ adb logcat -b event -t 5
  23. Unable to open log device '/dev/log/event': No such file or directory
  24. octopus@octopus:~$ adb logcat -b events -t 5
  25. I/notification_cancel(  500): [com.kindroid.security,1026,NULL,0,0,64]
  26. I/notification_enqueue(  500): [com.kindroid.security,1020,NULL,0,Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])]
  27. I/notification_cancel(  500): [com.kindroid.security,1026,NULL,0,0,64]
  28. I/notification_enqueue(  500): [com.kindroid.security,1020,NULL,0,Notification(pri=0 contentView=com.kindroid.security/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null])]
  29. I/notification_cancel(  500): [com.kindroid.security,1026,NULL,0,0,64]
  30. octopus@octopus:~$

以二进制形式输出日志 : 使用 adb logcat -B 命令;

  1. octopus@octopus:~$ adb logcat -B  -t 5
  2. O��_�3ZS�4gps_mt3326nmea_reader_parse: line = 1218GPS get accuracy failed, fix mode:1
  3. ^��_�3ZS�=gps_mt3326nmea_reader_addc: line = 1331the structure include nmea_cb address is 0x658cc8e8
  4. H��_�3ZSEGEgps_mt3326nmea_reader_addc: line = 1332nmea_cb address is 0x5d2fe279
  5. i���3ZS�)>ADB_SERVICEScreate_local_service_socket() name=shell:export ANDROID_LOG_TAGS="" ; exec logcat -B -t 5
  6. 7*E*E�3ZSo�YADB_SERVICESadb: unable to open /proc/17706/oom_adj

(2) 过滤项解析

过滤项格式 : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;

-- V : Verbose (明细);

-- D : Debug (调试);

-- I : Info (信息);

-- W : Warn (警告);

-- E : Error (错误);

-- F: Fatal (严重错误);

-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);

过滤指定等级日志 : 使用 adb logcat 10 *:E 命令, 显示 Error 以上级别的日志;

  1. octopus@octopus:~$ adb logcat *:E
  2. Note: log switch off, only log_main and log_events will have logs!
  3. --------- beginning of /dev/log/main
  4. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  5. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  6. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  7. E/dalvikvm(  756): GC_CONCURRENT freed 1809K, 27% free 19489K/26695K, paused 16ms+5ms, total 109ms
  8. E/WifiHW  (  441): wifi_send_command : SCAN ; interface index=0;
  9. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  10. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  11. E/dalvikvm(  756): GC_CONCURRENT freed 1820K, 27% free 19490K/26695K, paused 16ms+3ms, total 102ms
  12. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  13. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;

过滤指定标签等级日志 : 使用 adb logcat WifiHW:D *:S 命令进行过滤;

-- 命令含义 : 输出10条日志, 日志是 标签为 WifiHW, 并且优先级 Debug(调试) 等级以上的级别的日志;

--注意 *:S : 如果没有 *S 就会输出错误;

  1. octopus@octopus:~$ adb logcat WifiHW:D *:S
  2. Note: log switch off, only log_main and log_events will have logs!
  3. --------- beginning of /dev/log/main
  4. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  5. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  6. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  7. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  8. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  9. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  10. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;

可以同时设置多个过滤器 : 使用adb logcat WifiHW:D dalvikvm:I *:S 命令, 输出 WifiHW 标签 的 Debug 以上级别 和 dalvikvm 标签的 Info 以上级别的日志;

  1. octopus@octopus:~$ adb logcat WifiHW:D dalvikvm:I *:S
  2. Note: log switch off, only log_main and log_events will have logs!
  3. --------- beginning of /dev/log/main
  4. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  5. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  6. E/dalvikvm(  756): GC_CONCURRENT freed 1820K, 27% free 19490K/26695K, paused 17ms+2ms, total 110ms
  7. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  8. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  9. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  10. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  11. E/dalvikvm(  756): GC_CONCURRENT freed 1810K, 27% free 19489K/26695K, paused 17ms+5ms, total 108ms
  12. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  13. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;

2. 使用管道过滤日志

(1) 过滤固定字符串

过滤固定字符串 : 只要命令行出现的日志都可以过滤, 不管是不是标签;

-- 命令 : adb logcat | grep Wifi ;

  1. octopus@octopus:~$ adb logcat | grep Wifi
  2. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  3. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  4. E/WifiHW  (  441): wifi_send_command : SCAN ; interface index=0;
  5. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  6. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;
  7. E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;
  8. E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;

过滤字符串忽略大小写 : adb logcat | grep -i wifi ;

(2) 使用正则表达式匹配

分析日志 : 该日志开头两个字符是 "V/", 后面开始就是标签, 写一个正则表达式 "^..ActivityManager", 就可以匹配日志中的 "V/ActivityManager" 字符串;

  1. V/ActivityManager(  574): getTasks: max=1, flags=0, receiver=null

正则表达式过滤日志: 使用上面的正则表达式组成命令 adb logcat | grep "^..Activity" ;

adb logcat 命令行用法的更多相关文章

  1. adb环境配置+常用adb命令+Logcat命令的用法+手动进行文件比对的方法+批量挪bug

    1. adb环境配置:下载adb环境变量包:打开计算机属性-高级系统设置-环境变量:新建变量adb,值为刚才的环境变量包路径:编辑path值,在最后面加上;%adb%;确定就妥了 2. 常用adb命令 ...

  2. Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看

    Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...

  3. adb logcat 命令

    转自:http://blog.csdn.net/tumuzhuanjia/article/details/39555445 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb log ...

  4. adb logcat命令查看并过滤android输出log

    cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中断输出log记录. logcat日志中的优先级/tag标记: android输出的每一条日志都 ...

  5. 【android】 adb logcat命令查看并过滤android输出log

    cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中断输出log记录. logcat日志中的优先级/tag标记: android输出的每一条日志都 ...

  6. adb logcat命令

    1.http://blog.csdn.net/tumuzhuanjia/article/details/39555445 2.http://blog.csdn.net/xyz_lmn/article/ ...

  7. 【Android测试】【第五节】LogCat——命令行

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4684123.html 前言 上一篇将的是如果在eclips ...

  8. Android NDK 开发中 adb logcat 命令的使用

    一.LogCat 存储在一个叫做 circular memory buffers 的缓冲中. 平时常用的都是通过eclipse 自带的 logcat 插件查看 logcat ,其实也可以通过命令来导出 ...

  9. Android 手机 ADB FastBoot 命令基本用法

    adb用法: 准备: 1.在电脑上安装相应的USB驱动,在各分区置顶帖子有下载链接 2.手机进入设置->开发人员选项->勾选USB调试 adb devices 查看是否有设备 adb sh ...

随机推荐

  1. viminfo: 无效的启动字符

    当自己进入一个用户,使用vi打开一个文件时,出现以下情况: [gexd@localhost ~]$ vi test.c E575: viminfo: 无效的启动字符 位于行: int main() . ...

  2. poj 1068 Parencodings(栈)

    题目链接:http://poj.org/problem?id=1068 思路分析:对栈的模拟,将栈中元素视为广义表,如 (((()()()))),可以看做 LS =< a1, a2..., a1 ...

  3. 【甘道夫】使用HIVE SQL实现推荐系统数据补全

    需求 在推荐系统场景中,假设基础行为数据太少,或者过于稀疏,通过推荐算法计算得出的推荐结果非常可能达不到要求的数量. 比方,希望针对每一个item或user推荐20个item,可是通过计算仅仅得到8个 ...

  4. 我写的一个 Qt 显示图片的控件

    Qt 中没有专门显示图片的控件.通常我们会使用QLabel来显示图片.可是QLabel 显示图片的能力还是有点弱.比方不支持图像的缩放一类的功能.使用起来不是非常方便. 因此我就自己写了个简单的类. ...

  5. [javascript]在浏览器端应用cookie记住用户名

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)

    虽然是一道还是算简单的DP,甚至不用滚动数组也能AC,数据量不算很大. 对于N个数,每个数只存在两个状态,取 和 不取. 容易得出状态转移方程: dp[i][j] = dp[i - 1][j ^ a[ ...

  7. HDU 3909 DLX

    http://blog.csdn.net/sr_19930829/article/details/39756513 http://www.kuangbin.net/archives/hdu4069-d ...

  8. tabbar动画切换

    效果1: UIViewController *vc = self.viewControllers[self.selectedIndex]; CATransition *animation =[CATr ...

  9. Cannot drop the database ‘XXX’ because it is being used for replication.

    删除订阅数据库的时候出现下面的错误: Cannot drop the database ‘XXX’  because it is being used for replication. 数据库的状态为 ...

  10. freemarker序列的拆分

    freemarker序列的拆分 1.简易说明 序列的拆分能够是数组.字符串.布尔值等等 2.实现源代码 <#--freemarker序列的拆分--> ${"hudjfkskhd你 ...