Android手机在开发调试时logcat不显示输出信息的办法

Android手机在开发调试时logcat不显示输出信息的办法,第1张

问题表现:连接手机与电脑后,驱动安装正确,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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9632114.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存