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

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. 用200行Python代码“换脸”

    介绍 本文将介绍如何编写一个只有200行的Python脚本,为两张肖像照上人物的“换脸”. 这个过程可分为四步: 检测面部标记. 旋转.缩放和转换第二张图像,使之与第一张图像相适应. 调整第二张图像的 ...

  2. django在视图中使用模板

    在视图中使用模板   在学习了模板系统的基础之后,现在让我们使用相关知识来创建视图. 重新打开我们在前一章在 mysite.views 中创建的 current_datetime 视图. 以下是其内容 ...

  3. OpenStack导入镜像后Launch不起来的几个问题

    Dashboard上显示state为error 没有其他报错 用nova list找到虚拟机的id 然后nova show,可以得到fault详细信息 也可以查看下面两个log /var/log/no ...

  4. 配置SecureCRT连接Linux CentOS

    链接地址:http://f.dataguru.cn/thread-144513-1-1.html 环境:Linux:centos5.8虚拟机:VirtualBox本机:windows至于怎么安装Cen ...

  5. set--常见成员函数及基本用法

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器. set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. ...

  6. centos6.5 gsoap安装过程+ php添加soap扩展

    参考博客: CentOS编译安装gSOAP Linux C实现webservice调用 安装gsoap流程  里面提到make时可能碰到的问题 还没有用到 1.从官网下载最新的版本:http://so ...

  7. 面向对象程序设计-C++ Class & Object & Friend Function & Constructor & Destructor【第五次上课笔记】

    大家可以下载后用Vim 或者 Sublime Text等文本编辑器查看 以下代码均已折叠,点击“+“即可打开 一开始老师用C语言大作业的例子,写了个 Student 的结构以及相关操作 #includ ...

  8. iOS开发之计算动态cell的高度并缓存

    项目中有个类似微博那样的动态cell,文字和图片的多少都不是确定的 刚开始使用autolayout,结果很多问题,最后我发现了一个框架 FDTemplateLayoutCell 写的很好,自动布局ce ...

  9. c# 数据库编程(通过SqlCommand 执行DML语句)

    原来一直是java,python等语言,最近用c#语言,并编写数据库访问代码.使用了之后,这里总结下,分享下c#如何操作数据库. 在java等其它语言中,有一套标准的api来完成数据库访问,并且一般都 ...

  10. thinkphp 分组、页面跳转与ajax

    本节课大纲: 一.多应用配置技巧 二.使用分组 三.页面跳转 $this->success('查询成功',U('User/test')); $this->redirect('User/te ...