
问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出
问题原因:一些rom默认关闭logcat
问题说明:ddms中设备名字显示为问号不影响,即adb
get-serialno显示为问号不影响
解决方法:
1需要root权限(部分rom不需要)
2打开logcat,并设置level,执行命令如下(android
升级之后
adb
在
platform-tools中,不在tools中)
adb
shell
echo
1
>
/sys/kernel/logger/log_main/enable
说明:将1写入日志开关文件,1为开,0为关
echo
2
>/sys/kernel/logger/log_main/priority
说明:将代表level的2写入优先级文件
3重启adb,如果使用eclipse,先关闭eclipse,再重启adb,再启动eclipse
adb
kill-server
adb
start-server
4此时logcat应该可以工作了,如果仍旧不工作,则更新adb
android
update
adb
5重复第三步,此时logcat应该可以工作了,如果仍旧不工作,找到个人主目录下的android目录,如C:Documents
and
SettingsAdministratorandroid
找到这个目录下的adb_usbini文件,其内容默认只有三行,全为注释,在后面添加一行,内容为0x12d1
6重复第三步,此时logcat应该可以工作了
log文件分为实时打印的,还有状态信息的两种
实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump, QXDM Log
状态信息的有:adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport
实时log:
adb logcat -b events -v time 打印系统事件的日志,比如触屏事件
tcpdump 是很有用的,对于TCP/IP协议相关的都可以使用这个来抓,
adb shell tcpdump -s 10000 -w /sdcard/capturepcap,
比如抓mms下载的时候的UA profile,browser上网的时候,使用proxy的APN下载,streaming的相关内容包括UA profile等。
状态log:
其实一个就够了,那就是bugreport(命令adb bugreport>bugreportlog)。
里面包含有dmesg,dumpstate和dumpsys;
dmesg(命令adb shell dmesg > ldmesg_kernellog)是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)
dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等;
dumpsys这个是关于系统所有进程Process的内容都在这个里面,adb shell dumpsys 这个命令还有更详尽的用法,
比如adb shell dumpsys meminfo system是查看system这个process的内存信息。
dumpsys [options]
meminfo 显示内存信息
cpuinfo 显示CPU信息
account 显示accounts信息
activity 显示所有的activities的信息
window 显示键盘,窗口和它们的关系
wifi 显示wifi信息
通过adb logcat/bugreport可以实时的查看系统的log,以及系统的状态信息;
如何将Log存储下来,保存当时系统运行的情况呢?
可以通过一些脚本或者执行可执行程序来保存log信息,以便分析问题;
2 抓取实时log
123456789101112131415161718192021222324 int main(int argc, char argv[]) { …… //抓取main log char path[] = "/xxx/xxx/app_mainlog"; sprintf(cmd,"logcat -v time > %s",path); fd = open(path, O_WRONLY|O_TRUNC|O_CREAT, 0777); <STRONG>system</STRONG>(cmd); //radio log …… sprintf(cmd,"logcat -b radio -v time > %s",path); <STRONG>system</STRONG>(cmd); //kernel …… sprintf(cmd,"cat /proc/kmsg > %s",path); <STRONG>system</STRONG>(cmd); //bluetoolth log sprintf(cmd,"hcidump -w %s","/data/btlog"); <STRONG>system</STRONG>(cmd); …… }
3 抓取状态log
123456789101112131415161718192021 int main(int argc, char argv[]) { //panic log 需要判断/proc/apanic_console是否存在 sprintf(cmd,"cp -R %s %s",from_dir,to_dir); <STRONG>system</STRONG>(cmd); //anr log /data/anr/ sprintf(cmd,"cp -R %s %s",from_dir,to_dir); <STRONG>system</STRONG>(cmd); //tombstones log /data/tombstones/ <STRONG>modem重启复位等</STRONG> sprintf(cmd,"cp -R %s %s",from_dir,to_dir); <STRONG>system</STRONG>(cmd); //mdm log /data/tombstones/mdm/<STRONG>modem重启复位</STRONG> sprintf(cmd,"cp -R %s %s",from_dir,to_dir); <STRONG>system</STRONG>(cmd); …… }
panic log:
它表示Linux kernel走到了一个不知道该怎么走下一步的状况,
>
android如何通过adb命令获取手机的IMEI, 请教各位高手,怎么通过adb命令行获取和修改bluestacks的IMEI
java获得android的imei号步骤:
1、权限添加:
<uses-permission android:name="androidpermissionREAD_PHONE_STATE" />
TelephonyManager telephonyManager = (TelephonyManager) this
getSystemService(ContextTELEPHONY_SERVICE);
String IMEI = telephonyManagergetDeviceId();
2、adb命令获得:
adb shell dumpsys iphonesubinfo
如何通过adb命令获取手机型号与设备信息1、在命令行中输入“adb shell”
2、进入shell之后,再输入“cat /system/buildprop | grep "product"”
其实,设备信息,主要是存放在“/system/buildprop”文件,通过“cat”命令就可以查看了。
1、手机先要有root权限,这是前提。
2、获取root权限后,adb devices可返回设备信息
#06#
如何通过adb root 手机 命令权限提取,一种是连接电脑刷入破解文件;另一种则是在手机上运行破解软件。注意:获取Root权限过程有风险,后果自负 Universal Androot 手机上运行破解软件(Z4ROOT,KINGROOT,) 这类获取Root权限的软件效果因“机型”而异,而且成功率不高,想想也知道了:在一个没有Root的手机上以普通权限运行软件妄图取得Root权限,难度可想而知。常见的此类软件有: Universal Androot 官网 z4root 官网 这两个软件都是软件开发爱好者开发的,放在同一个论坛上,“官网”就是一个帖子。注册论坛后可以下载。也可以到掌上应用汇搜索下载 连接电脑刷入破解文件 这种办法成功率非常高,用电脑对付手机还不是小菜一碟!这种方法,对大部分机型同样适用。知名的该类软件是:SuperOneClick 官网,或用第三方刷机工具(甜椒,卓大师,刷机精灵等等),效果一样。ROOT之后,必须安装SUPERUSER哦,这个用于权限分配的软件
如何通过adb命令安装app到安装终端准备工作
确信 \Android-sdk-windows\tools\下有 adbexe AdbWinApidll AdbWinU Apidll 三个文件,如果没有从\android-sdk-windows\platform-tools\ 下面拷贝到tools下(android sdk 30 以上版本一些工具默认不放在tools下,作为可选配置放在platform-tools下)
安装apk到手机:adb install c:\HA_drocap2_JOY3Gapk。
启动所安装的程序,手机要是root权限并且进入到data\app目录下,# am start -n vsp/vspStartActivty。
查看相应的日志
adb logcat -s wele:i
怎样通过adb命令来root手机
首先,这个真的无需内核是否支持,与内核无关,即原生的就行;
1,手机拥有可以 ROOT 授权的工具,比如: SuperSu;
2,手机打开“开发者选项”
2,PC 命令行 / Linux、Mac 终端:
命令:adb shell
命令:su
同时注意观察手机有两个提示需要确认:
1,是否允许设备连接到手机;
2,SuperSu Root 授权确认;
如何获取android app的Activity
作为开发人员和测试人员接触到的android的app开发,都是要使用activity的,而测试人员接触的app测试人员常常要获取activity,进行相关测试,可以作为测试人员是常常无法获取开发原始码,只能通过自己方法进行获取activity的。那么如何获取android app的activity的呢。
:jingyanbaidu/article/93f9803f090197e0e56f5552
工具/原料
app
android手机
资料线
方法/步骤
需要配置好android的开发环境后,开启cmd命令视窗
在命令视窗中输入,adb logcat>D:/loglog,输入D盘下
执行手机上app应用程式,需要获取到app应用程式
然后停止执行获取手机上logcat的档案,停止是直接按Ctrl+c
开启输出的档案
通过抓取到log的日志,找到相应activity的应用程式。
android app 的apk其实就是一个压缩档案,你找到apk档案,然后用winrar这样的压缩软体开启,就看到里面的原始档了。
app的activity是在android中 androidManifestxml中定义的, 自己去档案中检视即可
其它app应用中的 activity是无法获取的
1,重新命名ContactManagerapk为ContactManagerzip并解压得到档案classesdex;
2,解压dex2jar-00915zip,并从命令列进入该资料夹;
3,执行命令
d2j-dex2jarbat path_to\classesdex
在当前资料夹下得到classes-dex2jarjar;
4,解压jd-gui-036windowszip得到档案jd-guiexe;
5,使用jd-guiexe开启classes-dex2jarjar;
支持安卓23至43版本抓log,可以抓取 logcat,radio,event,kernal,ANR,BT,WIFI & QXDM 等。
1抓取部分log需要手机有root权限(debug 版本 或者可以通过adb root 来获取)
2如果要抓取QXDM log 需要安装并激活QXDM,并安装activeperl,否则无法抓取
3支持手机截图,抓取后会放到log文件夹,有时提示没有抓到但仍然可以在文件夹中找到。
4首先要选择安卓版本,再点击按键选择抓取的种类,点击开始并提示开始后既开始抓取,点击停止会停止抓取,log 会放到 log path 下,直接点击即可进入
5支持通过电脑输入字符至手机,先要在手机上选择到编辑框,再在电脑上输入,不支持黏贴输入
6我们平时工作都会用到,很方便
以上就是关于Android手机在开发调试时logcat不显示输出信息的办法全部的内容,包括:Android手机在开发调试时logcat不显示输出信息的办法、安卓手机上WEB页面报错怎么获取LOG、android如何通过adb命令获取手机的IMEI等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)