Android开发中ANRNative Crash问题的解决方法

Android开发中ANRNative Crash问题的解决方法,第1张

Android ANR

Application Not Responding:即应用无响应

如果应用程序主线程在超时时间内对输入事件没有处理完毕,或者对特定 *** 作没有执行完毕,就会出现ANR

(主线程在特定的时间内没有做完特定的事情)

Android ANR或Crash的定位、检测和避免

Android Native Crash

Native 程序是指可以直接运行在 *** 作系统上,并且处理器直接执行机器码的程序,比如 “/system/bin” “/system/lib” 目录下的文件,这些应用程序都是由GCC(c/c++)编译生成,这些程序的崩溃统称为Native Exception,比如空指针,非法指针,程序跑飞,内存踩坏等。

Native Crash都是进程收到信号引起的.

Android开发中Bug的捕获/定位和避免方法的完整文档,请访问如下地址:

https://mp.weixin.qq.com/s/AQkHoLl0_xt6xbluYX0CTQ

https://mp.weixin.qq.com/s/_eeIeChNX7n2ZxjonGAv3A

在Android里面,init程序会解析 Init.rc文件,然后启动很多Native Service。如何查看这些service的状态呢,查看init的源代码,发现所有的native service的信息都会保存到系统属性里面。这样就可以用下面的命令查看各个Service的状态。

# getprop |grep init.svc

getprop |grep init.svc

[init.svc.servicemanager]: [running]

[init.svc.vold]: [running]

[init.svc.netd]: [running]

[init.svc.debuggerd]: [running]

[init.svc.omsril-daemon]: [running]

[init.svc.sdm]: [running]

[init.svc.zygote]: [running]

[init.svc.media]: [running]

[init.svc.dbus]: [running]

[init.svc.installd]: [running]

[init.svc.keystore]: [running]

[init.svc.lapisrv]: [running]

[init.svc.console]: [running]

[init.svc.tcmd-autolaunch]: [stopped]

[init.svc.tel]: [stopped]

[init.svc.pxa920-setup]: [stopped]

[init.svc.logcat]: [running]

[init.svc.logcat-radio]: [running]

[init.svc.dnsmasq]: [running]

[init.svc.powerpolicy]: [stopped]

[init.svc.adbd]: [running]

[init.svc.telserver]: [stopped]

[init.svc.bootanim]: [stopped]

[init.svc.fmradiod]: [stopped]

[init.svc.wpa_supplicant]: [running]

[init.svc.dhcpcd]: [running]


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

原文地址: http://outofmemory.cn/yw/7928914.html

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

发表评论

登录后才能评论

评论列表(0条)

保存