(1)在Android系统中,printk输出的日志信息保存在/proc/kmsg中,要查看/proc/kmsg的内容 ($ dmseg)
(2)使用 adb shell getevent 查看输入事件:/dev/input/event*
(3)adb shell am
adb shell am broadcast 后面的参数有:
[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>] [<URI>]
查看所有权限的指令adb shell pm list permissions -g -d
adb shell pm [grant|revoke] <permission-name> ...
启动Activity : adb shell am start 包名/类名
启动Service : adb shell am startservice -n 包名/类名
修改SettingsProvider : adb shell settings put secure default_input_method com.android.inputmethod.pinyin/.PinyinIME
发送广播 : adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true
说明: test_*为key,后面为value,--es为String类型, --ei int类型,--ez boolean类型,--ef float类型
(4) Android日志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用-b 选项,以下是可以指定的缓冲区:
radio — 查看包含在无线/电话相关的缓冲区消息
events — 查看事件相关的消息
main — 查看主缓冲区 (默认缓冲区)
'main', 'system', 'radio','events', 'crash' or 'all'
-b 选项的用法:
[adb] logcat [-b ]
例如查看radio缓冲区:
adb logcat -b radio
(5)[linux进程的几个状态]
1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态)
2. Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal
3. Linux进程状态:D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态, 可处理signal, 有延迟
4. Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态, 不可处理signal, 因为根本没有时间片运行代码
5. Linux进程状态:Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程。不可被kill, 即不响应任务信号, 无法用SIGKILL杀死
(6)android:DDMS查看Threads
ID: 虚拟机分配的唯一的线程ID,在Dalvik里,它们是从3开始的奇数。
Tid:linux的线程ID号
Stauts:线程状态,比较多,有下面的一些
running: 正在执行程序代码
sleeping:执行了Thread.sleep()
monitor:等待接受一个监听锁。
wait::Object.wait(),等待被其他线程唤醒
native:正在执行native代码,
vmwait:等待虚拟机,(这个不是很懂,高手指教,这个状态在什么情况下发生)
zombie:线程在垂死的进程
init:线程在初始化(我们不可能看到)
starting:线程正在启动(我们不可能看到)
utime:执行用户代码的累计时间
stime:执行系统代码的累计时间
name:线程的名字
(7)Android.mk文件输出信息
LOCAL_SRC_FILES := $(call all-java-files-under, src)
Makefile & Android.mk文件中如何输出打印信息:$(warning xxxxx)或者$(error xxxxx)
输出变量方式为:$(warning $(XXX))
(8)linux操作
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` //多文件替换内容
sed -i "s/SIM Telcel/TELCEL/g" `grep "SIM Telcel" -rl yourdir` //多文件替换内容