导航:首页 > 操作系统 > android异常检测

android异常检测

发布时间:2022-12-26 02:16:11

Ⅰ 如何检测 android Cursor 泄漏

简介:
本文介绍如何在 Android 检测 Cursor 泄漏的原理以及使用方法,还指出几种常见的出错示例。有一些泄漏在代码中难以察觉,但程序长时间运行后必然会出现异常。同时该方法同样适合于其他需要检测资源泄露的情况。

最近发现某蔬菜手机连接程序在查询媒体存储(MediaProvider)数据库时出现严重 Cursor 泄漏现象,运行一段时间后会导致系统中所有使用到该数据库的程序无法使用。另外在工作中也常发现有些应用有 Cursor 泄漏现象,由于需要长时间运行才会出现异常,所以有的此类 bug 很长时间都没被发现。
但是一旦 Cursor 泄漏累计到一定数目(通常为数百个)必然会出现无法查询数据库的情况,只有等数据库服务所在进程死掉重启才能恢复正常。通常的出错信息如下,指出某 pid 的程序打开了 866 个 Cursor 没有关闭,导致了 exception:
3634 3644 E javaBinder: *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
3634 3644 E JavaBinder: android.database.: Cursor window allocation of 2048 kb failed. # Open Cursors=866 (# cursors opened by pid 1565=866)
3634 3644 E JavaBinder: at android.database.CursorWindow.(CursorWindow.java:104)
3634 3644 E JavaBinder: at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
3634 3644 E JavaBinder: at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:147)
3634 3644 E JavaBinder: at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:141)
3634 3644 E JavaBinder: at android.database.CursorToBulkCursorAdaptor.getBulkCursorDescriptor(CursorToBulkCursorAdaptor.java:143)
3634 3644 E JavaBinder: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:118)
3634 3644 E JavaBinder: at android.os.Binder.execTransact(Binder.java:367)
3634 3644 E JavaBinder: at dalvik.system.NativeStart.run(Native Method)

1. Cursor 检测原理
在 Cursor 对象被 JVM 回收运行到 finalize() 方法的时候,检测 close() 方法有没有被调用,此办法在 ContentResolver 里面也得到应用。简化后的示例代码如下:
1 import android.database.Cursor;
2 import android.database.CursorWrapper;
3 import android.util.Log;
4
5 public class TestCursor extends CursorWrapper {
6 private static final String TAG = "TestCursor";
7 private boolean mIsClosed = false;
8 private Throwable mTrace;
9
10 public TestCursor(Cursor c) {
11 super(c);
12 mTrace = new Throwable("Explicit termination method 'close()' not called");
13 }
14
15 @Override
16 public void close() {
17 mIsClosed = true;
18 }
19
20 @Override
21 public void finalize() throws Throwable {
22 try {
23 if (mIsClosed != true) {
24 Log.e(TAG, "Cursor leaks", mTrace);
25 }
26 } finally {
27 super.finalize();
28 }
29 }
30 }

然后查询的时候,把 TestCursor 作为查询结果返回给 APP:
1 return new TestCursor(cursor); // cursor 是普通查询得到的结果,例如从 ContentProvider.query()

该方法同样适合于所有需要检测显式释放资源方法没有被调用的情形,是一种通用方法。但在 finalize() 方法里检测需要注意
优点:准确。因为该资源在 Cursor 对象被回收时仍没被释放,肯定是发生了资源泄露。
缺点:依赖于 finalize() 方法,也就依赖于 JVM 的垃圾回收策略。例如某 APP 现在有 10 个 Cursor 对象泄露,并且这 10 个对象已经不再被任何引用指向处于可回收状态,但是 JVM 可能并不会马上回收(时间不可预测),如果你现在检查不能够发现问题。另外,在某些情况下就算对象被回收 finalize() 可能也不会执行,也就是不能保证检测出所有问题。关于 finalize() 更多信息可以参考《Effective Java 2nd Edition》的 Item 7: Avoid Finalizers
2. 使用方法
对于 APP 开发人员
从 GINGERBREAD 开始 Android 就提供了 StrictMode 工具协助开发人员检查是否不小心地做了一些不该有的操作。使用方法是在 Activity 里面设置 StrictMode,下面的例子是打开了检查泄漏的 SQLite 对象以及 Closeable 对象(普通 Cursor/FileInputStream 等)的功能,发现有违规情况则记录 log 并使程序强行退出。
1 import android.os.StrictMode;
2
3 public class TestActivity extends Activity {
4 private static final boolean DEVELOPER_MODE = true;
5 public void onCreate() {
6 if (DEVELOPER_MODE) {
7 StrictMode.setVMPolicy(new StrictMode.VMPolicy.Builder()
8 .detectLeakedSqlLiteObjects()
9 .detectLeakedClosableObjects()
10 .penaltyLog()
11 .penaltyDeath()
12 .build());
13 }
14 super.onCreate();
15 }
16 }

对于 framework 开发人员
如果是通过 ContentProvider 提供数据库数据,在 ContentResolver 里面已有 CloseGuard 类实行类似检测,但需要自行打开(上例也是打开 CloseGuard):
1 CloseGuard.setEnabled(true);

更值得推荐的办法是按照本文第一节中的检测原理,在 ContentResolver 内部类 CursorWrapperInner 里面加入。其他需要检测类似于资源泄漏的,同样可以使用该检测原理。
3. 容易出错的地方
忘记调用 close() 这种低级错误没什么好说的,这种应该也占不小的比例。下面说说不太明显的例子。
提前返回
有时候粗心会犯这种错误,在 close() 调用之前就 return 了,特别是函数比较大逻辑比较复杂时更容易犯错。这种情况可以通过把 close() 放在 finally 代码块解决
1 private void method() {
2 Cursor cursor = query(); // 假设 query() 是一个查询数据库返回 Cursor 结果的函数
3 if (flag == false) { // !!提前返回
4 return;
5 }
6 cursor.close();
7 }

类的成员变量
假设类里面有一个在类全局有效的成员变量,在方法 A 获取了查询结果,后面在其他地方又获取了一次查询结果,那么第二次查询的时候就应该先把前面一个 Cursor 对象关闭。
1 public class TestCursor {
2 private Cursor mCursor;
3
4 private void methodA() {
5 mCursor = query();
6 }
7
8 private void methodB() {
9 // !!必须先关闭上一个 cursor 对象
10 mCursor = query();
11 }
12 }

注意:曾经遇到过有人对 mCursor 感到疑惑,明明是同一个变量为什么还需要先关闭?首先 mCursor 是一个 Cursor 对象的引用,在 methodA 时 mCursor 指向了 query() 返回的一个 Cursor 对象 1;在 methodB() 时它又指向了返回的另外一个 Cursor 对象 2。在指向 Cursor 对象 2 之前必须先关闭 Cursor 对象 1,否则就出现了 Cursor 对象 1 在 finalize() 之前没有调用 close() 的情况。
异常处理
打开和关闭 Cursor 之间的代码出现 exception,导致没有跑到关闭的地方:
1 try {
2 Cursor cursor = query();
3 // 中间省略某些出现异常的代码
4 cursor.close();
5 } catch (Exception e) {
6 // !!出现异常没跑到 cursor.close()
7 }

这种情况应该把 close() 放到 finally 代码块里面:
1 Cursor cursor = null;
2 try {
3 cursor = query();
4 // 中间省略某些出现异常的代码
5 } catch (Exception e) {
6 // 出现异常
7 } finally {
8 if (cursor != null)
9 cursor.close();
10 }

Ⅱ 怎么检测安卓手机中毒

病毒查杀默认开启。随时全盘扫描设备,轻松查杀隐藏病毒,净化使用环境。

以华为P50手机为例:

一、查看手机安全状态

进入手机管家,点击病毒查杀,可查看设备当前的安全状态。

二、开启或关闭联网病毒查杀

进入手机管家>齿轮,点击防病毒软件更新和联网查杀,选择以下任一状态:

Ⅲ Android中TCP客户端怎么可以及时判断与服务端的异常断开呀 我想在客户

直接用BufferedReader
如果readLine() 返回为null的话, 表示socket已经断开连接了, 因为readLine() 是阻塞的, 就是等服务器的数据输出, 一直等到返回了回车换行, 才会继续执行。

Ⅳ 笔记本检测到 Android手机 设备异常 无驱动怎么办,,我解决不了

1.电脑端安装91助手安卓版。(注意,不要安装安卓苹果兼容版的91助手)
2.打开91助手。
3.把手机用数据线连接到电脑上
4.91助手会提示你安装驱动,按照步骤安装就可以了

Ⅳ 陌陌是怎么检查设备异常,安卓模拟器陌陌防封技术

陌陌一登录就提示设备信息存在异常怎么办?

如果你在陌陌注册或者登录的时候系统提示你的设备信息存在异常,这就可以肯定的是陌陌风控系统已经把你的手机设备判定为异常的,就是你之前已经在这台手机上注册过多个账号或者之前有过违规封号的记录这些陌陌都会保存,平台已经把你这台手机设备列入黑名单,所以提示设备存在异常,即使你根据提示进行解除也是一样不能解决或者权重会很低。设备异常通过硬改手机硬件底层数据可以解决这个问题,解决的办法就是手机硬改,从手机底层修改所有硬件信息改成一台全新的能过平台检测的设备,这种方法是可以同一部手机无限次的硬改,一台手机当无数台手机使用。这种问题可以找行业内技术比较好的飞哥技术来解决,这个技术是现在比较成熟的方案。

青少年心理在步入成熟期时,存在着情感的波动和青春的迷茫,同时表现得强烈,更需要在心里表达思想,并渴望得到更多的支持。年轻人在许多成人关系占主导地位的社交场合表现出了巨大的压力。通过算法和操作,为青少年提供社交平台,可以帮助青少年找到“同好”;Soul通过算法匹配内容与用户建立高质量的关系;而B站和鲱鱼罐头并不强调建立关系,但同样会使用算法进行内容分发,让用户获得更多支持与认同。

而且是社交复杂.资讯过多,头像太多,年轻人发表任何东西都要再三考虑,要顾及长辈.同事.领导与同学的感受,表达得不够轻松,难以得到广泛的价值认同。

再加上满足群体社交的需要,而不是单点社交。

Facebook所倡导的社会网络基础是“六度人脉”,这一点在传统社会平台上被强调。如今社会交往比较平淡,对年轻人而言,点对点的连接不再是社会交往的前提或说服力。年轻人社交的价值也许就是消遣寂寞.获得乐趣和寻求认同,并不必然与认识人有任何联系,如弹幕.clubhouse.直播连麦等多对多社交活动都体现出这一点,这一Party社交方式正在逐渐成为网络社会的一种流行方式,因此,应引起年轻人的社交应用:关系并非起点,也不是终点,关联是可选择的。

第三,注重内容这一社交媒体。

青少年有一种“没有内容就没有社交”的感觉。那一年QQ聊天室“为聊天而聊天”,探求这种左右滑动“为约会而约会”的社交方式,越来越难吸引年轻人。在手机社交市场上,以00后为主导的新一代在中国手机社交市场中占据主导地位,而年轻用户则倾向于轻装,趣味性社会,有43.6%以上的受访者每天会使用3-4种社交软件,内容社区类应用仅次于IM。这一比例为46.7%,远远超过泛娱乐(15.3%)和陌生人(11.5%)。年轻人社交内容日益增多的趋势,B站、soul、鲱鱼罐头三款产品,我们都看到了强烈的“内容”属性。

写在最后:

如今,为什么在2019年有了一大批新的社交应用?身为第一代因特网原住民,00后已经长大成人,成了消费中坚者,不管是品牌还是社交平台,都意识到了这波用户群带来的巨大变化。““得年青者得天下”,腾讯、陌陌、微博等老牌社交平台,以及B站、soul、keep、鲱鱼等都在努力抓住00后。那么,中国年轻人的社交软件到底是什么样子?也不知道,但是我相信如此不同的00后00后,肯定会有自己的社交平台。

一天的大众点评直播界面几乎全是预告,很少直播。现场直播内容多为商店自播,店内人员介绍店内情况,有的只是对着店内或者招牌打开直播功能。也许是因为大多数商家都难以输出内容。而且商家端有内容能力的第一选择大概率是抖音,只是把大众点评作为视频分发平台。

小红书直播几乎是淘宝直播的翻版,而且入口比较隐蔽,需要在下拉页面才能看到,内容多为商品/美容师/舞蹈健身/育儿类,流量和带货人气数据平平,可以打赏的薯币不过百元,但是主播的直播功能和打赏方式也很丰富。

而网络贴吧则更像是秀场直播,点开界面是清一色的美女主播,也有连麦PK功能,但大部分人都用它来求“关注”,求“榜一哥”。总之,在这里,很难看到网络贴吧过去的调性。

直到直播带货兴起,秀场直播才是社交产品的王牌,曾经孵化了一大批互联网巨头,也成了一些企业的“命门”。

2015年6月,陌陌刚刚在美股上市半年后就提出了私有化提议,但一直没有进展。最终,正是直播业务让陌陌“一夜回归”。

2016年Q2,陌陌直播业务收入超过会员收入,成为其最主要的收入来源。但是从2018年的Q3开始,陌陌选择了不在财报中公布支付的直播打赏费率、ARPPU值。有一种共识认为,随着陌陌用户增长放缓,其直播业务也开始逐渐疲软。

Ⅵ Android P 系统稳定性问题分析方法总结

Android系统最开始是为手机设计的,在机顶盒,电视,带屏音箱等大屏上运行后,芯片厂家做些适配,产品厂家也会做系统客制化,有时候还要适配第三方应用..等待
这种适配容易引人系统的稳定性问题,系统稳定性对于用户体验至关重要,很多问题也都比较类似,android系统对系统性能,稳定性分析工具也比较多,下面根据工作中遇到的问题做个总结。

从表现来看有: 死机重启, 自动关机, 无法开机,冻屏,黑屏以及闪退, 无响应等情况;

从技术层面来划分无外乎两大类: 长时间无法执行完成(Timeout) 以及异常崩溃(crash). 主要分类如下:

ANR(Application Not responding),是指普通app进程超过一定时间没有执行完,系统会弹出应用无响应对话框. 如果
该进程运行在system进程, 更准确的来说,应该是(System Not Responding, SNR)

ANR产生的原因可能是各种各样的,但常见的原因可以分为:

1.logcat日志
2.trace文件(保存在/data/anr/traces.txt)
从logcat里可以看到死锁的打印
从traces.txt可以看到线程的函数调用栈

10-16 00:50:10 820 907 E ActivityManager: ANR in com.android.systemui, time=130090695
10-16 00:50:10 820 907 E ActivityManager: Reason: Broadcast of Intent { act=android.intent.action.TIME_TICK flg=0x50000114 (has extras) }
10-16 00:50:10 820 907 E ActivityManager: Load: 30.4 / 22.34 / 19.94
10-16 00:50:10 820 907 E ActivityManager: Android time :[2015-10-16 00:50:05.76] [130191,266]
10-16 00:50:10 820 907 E ActivityManager: CPU usage from 6753ms to -4ms ago:
10-16 00:50:10 820 907 E ActivityManager: 47% 320/netd: 3.1% user + 44% kernel / faults: 14886 minor 3 major
10-16 00:50:10 820 907 E ActivityManager: 15% 10007/com.sohu.sohuvideo: 2.8% user + 12% kernel / faults: 1144 minor
10-16 00:50:10 820 907 E ActivityManager: 13% 10654/hif_thread: 0% user + 13% kernel
10-16 00:50:10 820 907 E ActivityManager: 11% 175/mmcqd/0: 0% user + 11% kernel
10-16 00:50:10 820 907 E ActivityManager: 5.1% 12165/app_process: 1.6% user + 3.5% kernel / faults: 9703 minor 540 major
10-16 00:50:10 820 907 E ActivityManager: 3.3% 29533/com.android.systemui: 2.6% user + 0.7% kernel / faults: 8402 minor 343 major
......
10-16 00:50:10 820 907 E ActivityManager: +0% 12832/cat: 0% user + 0% kernel
10-16 00:50:10 820 907 E ActivityManager: +0% 13211/zygote64: 0% user + 0% kernel
10-16 00:50:10 820 907 E ActivityManager: 87% TOTAL: 3% user + 18% kernel + 64% iowait + 0.5% softirq

发生ANR的时间 00:50:10 ,可以从这个时间点之前的日志中,还原ANR出现时系统的运行状态
发生ANR的进程 com.android.system.ui
发生ANR的原因 Reason关键字表明了ANR的原因是处理TIME_TICK广播消息超时
CPU负载 Load关键字表明了最近1分钟、5分钟、15分钟内的CPU负载分别是30.4、22.3、19.94.CPU最近1分钟的负载最具参考价值,因为ANR的超时限制基本都是1分钟以内, 这可以近似的理解为CPU最近1分钟平均有30.4个任务要处理,这个负载值是比较高的
CPU使用统计时间段 CPU usage from XX to XX ago关键字表明了这是在ANR发生之前一段时间内的CPU统计,类似的还有CPU usage from XX to XX after关键字,表明是ANR发生之后一段时间内的CPU统计
各进程的CPU使用率
以com.android.systemui进程的CPU使用率为例,它包含以下信息:
总的CPU使用率: 3.3%,其中systemui进程在用户态的CPU使用率是2.6%,在内核态的使用率是0.7%
缺页次数fault:8402 minor表示高速缓存中的缺页次数,343 major表示内存的缺页次数。minor可以理解为进程在做内存访问,major可以理解为进程在做IO操作。 当前minor和major值都是比较高的,从侧面反映了发生ANR之前,systemui进程有有较多的内存访问操作,引发的IO次数也会较多
CPU使用汇总 TOTAL关键字表明了CPU使用的汇总,87%是总的CPU使用率,其中有一项iowait表明CPU在等待IO的时间,占到64%,说明发生ANR以前,有大量的IO操作。app_process、 system_server, com.android.systemui这几个进程的major值都比较大,说明这些进程的IO操作较为频繁,从而拉升了整个iowait的时间

traces.txt 如下
----- pid 29533 at 2015-10-16 00:48:29 -----
Cmd line: com.android.systemui
DALVIK THREADS (54):
"main" prio=5 tid=1 Blocked
| group="main" sCount=1 dsCount=0 obj=0x75bd5818 self=0x7f8549a000
| sysTid=29533 nice=0 cgrp=bg_non_interactive sched=0/0 handle=0x7f894bbe58
| state=S schedstat=( 289080040422 93461978317 904874 ) utm=20599 stm=8309 core=0 HZ=100
| stack=0x7fdffda000-0x7fdffdc000 stackSize=8MB
| held mutexes=
at com.mediatek.anrappmanager.MessageLogger.println(SourceFile:77)

Android系统中,有硬件WatchDog用于定时检测关键硬件是否正常工作,类似地,在framework层有一个软件WatchDog用于定期检测关键系统服务是否发生死锁事件。
watchdog 每过30s 检测一次, 如果要监控的线程30s 后没有响应,系统会mp出此进程堆栈,如果超过60s 没有相应,会触发watchdog,并重启系统
10:57:23.718 579 1308 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.server.am.ActivityManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on ActivityManager (ActivityManager)
10:57:23.725 579 1308 W Watchdog: android.fg annotated stack trace:
10:57:23.726 579 1308 W Watchdog: at com.android.server.am.ActivityManagerService.monitor(ActivityManagerService.java:26271)
10:57:23.727 579 1308 W Watchdog: - waiting to lock <0x0bb47e39> (a com.android.server.am.ActivityManagerService)
10:57:23.727 579 1308 W Watchdog: at com.android.server.Watchdog DeliveryTracker.alarmTimedOut(AlarmManagerService.java:4151)
10:57:23.733 579 1308 W Watchdog: - waiting to lock <0x00aaee38> (a java.lang.Object)
......
10:57:23.736 579 1308 W Watchdog: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:838)
10:57:23.739 579 1308 W Watchdog: ActivityManager annotated stack trace:
10:57:23.740 579 1308 W Watchdog: at com.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(ActivityStack.java:405)
10:57:23.740 579 1308 W Watchdog: - waiting to lock <0x0bb47e39> (a com.android.server.am.ActivityManagerService)
10:57:23.740 579 1308 W Watchdog: at android.os.Handler.dispatchMessage(Handler.java:106)
10:57:23.741 579 1308 W Watchdog: *** GOODBYE!
分析:
提示 ActivityManagerService的android.fg,main,ActivityManager 线程Block了,但logcat里只能看到
android.fg等待0x0bb47e39 锁,main 等待0x00aaee38锁,ActivityManager等待0x0bb47e39锁,无法进一步分析,需要看traces.txt
Cmd line: system_server
......
"main" prio=5 tid=1 Blocked

当出现应用闪退,可以从两个方面查看:
1、是否应用崩溃:
可以通过logcat –s AndroidRuntime DEBUG过滤日志,查看应用奔溃的具体堆栈信息。
其中AndroidRuntime的TAG打印java层信息,DEBUG的TAG打印native层的信息。
2、是否被lowmemorykiller杀掉:
可以通过 logcat –s lowmemorykiller 过滤日志,注意adj 0是代表前台进程。例如:
03-08 04:16:58.084 310 310 I lowmemorykiller: Killing'com.google.android.tvlauncher' (2520), uid 10007, adj 0
发生这种情况,需要mpsys meminfo 查看当前内存状态,是否有进程内存泄漏,导致系统内存不够,出现前台进程被杀,造成闪退。

测试过程中,经常遇到屏幕闪烁的现象,需要排除是OSD层闪烁,还是video层闪烁。
1、先通过android原生方法:screencap截图, screenrecord 录制视频,这里都是截取的OSD层,查看是否有闪屏现象。
2、OSD没有问题,就需要从更底层的显示模块分析,一般需要芯片厂家提供debug手段,不同芯片厂家方案不一样。
3, 有时候输出不稳定,hdmi/mipi信号干扰,输出频率异常等也会导致闪屏,这种情况需要硬件协助分析。
如果OSD层也闪烁,则需从系统和应用层面分析。如曾遇到在开机向导界面,有个应用不断被唤起,导致走开机向导时出现连续闪灰屏的现象。

黑屏分UI黑屏,视频播放黑屏但UI正常等,2种场景

1、screencap截屏,排查OSD层图形是否正常,
2、如果OSD图形正常,需要排查显示输出模块是否异常。
3、电视机里面屏显是单独控制,如果屏参配置错误会导致整改黑屏。
OSD异常,需要排查顶层activity是否黑屏,window是否有异常等.

1,排查视频图层或者window是否创建成功。
2,排查解码是否有异常,不同的应用youtube,netflix,iptv解码方式不一样,需要具体问题具体分析。

如下,ActivityManager因为空对象引用而挂掉,导致system_server重启
*** [FATAL EXCEPTION IN SYSTEM PROCESS: ActivityHanager [
^ava.lang.NullPointerException: Attempt to invoke virtual method 'void co®.android.internal.os.KernelSingleUidTimeReader.iBarkDataAsStale(boolean)' on a null object reference
at com.android.internal.os.BatteryStatsIiaplSConstants.(BatteryStatslnpl.java:13355)
at com.android.internal.os.BatteryStatsInplSConstants.upddteConstants(BatteryStatsImpl.java:13330)
at com.android.internal-o-batteryStatslMpl$Constants-onChange(BatteryStatsInpl-java:13316)
at android.database.Contentobserver.onChange(ContentObserver.java:145)
解决方法:修复空指针

DEBUG : pid: 296, tid: 1721, name: Binder:296_4 >>> /system/bin/surfaceflinger <<<
DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr ------
DEBUG : Abort message: 'status.cpp:149] Failed HIDL return status not checked: Status(EXTRANSACTIONFAILED):
DEBUG : r0 00000000 rl 000006b9
DEBUG : C4 00000128 r5 000006b9
r2 00000006 r3 a5c5d620
r6 a235d60c r7 0000010c
DEAD_OB3ECT:
DEBUG : r8 00000019 r9 0000015d
DEBUG : ip a6ablbec sp a235d5f8
rlO a568f090 rll a620dce9
Ir a5be901d pc a5be0da2
/system/lib/libc.so (abort+62)
/system/lib/libbase.so (android::base::DefaultAborter(char const )+6)
backtrace:
/system/lib/libsurfaceflinger.so
/system/lib/libsurfaceflinger.so
/system/lib/libsurfaceflinger.so
/system/lib/libsurfaceflinger.so
/system/lib/libbase.so (android::base::LogMessage::~LogMessage()+502)
/system/lib/libhidlbase.so (android::hardware::details::return_status::~return_status()+184)
(android::Hwc2::impl::Composer::getActiveConfig(unsigned long long, unsigned int
)+56)
(HWC2::Display::getActiveConfig(std::_1::shared_ptr<HWC2::Display::Config const>*) const+38)
(android::HWComposer::getActiveConfig(int) const+64)
(android::SurfaceFlinger::resyncToHardwareVsync(bool)+64)
可以根据backtrace来进行定位异常崩溃的地方。Android P上, backtrace使用Java上下文来显示,省去使用addr2line来转换的一个过程,方便调试分析问题。但是实际场景中,
有些native进程崩溃只有pc地址,而无函数信息,或者需要定位到具体的某个文件某个函数,则可借助堆栈分析工具addr2line。
addr2line:根据堆栈定位具体函数和文件
addr2line -e libsurfaceflinger.so -f 00071a09
addr2line -e libsurfaceflinger.so -f 00071a09
_
frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp:1229
需注意两点:
1、需用带debug信息的LINK目录里面的so库,机顶盒上的so库是无法定位的:
out/target/proct/xx/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/LINKED/libsurfaceflinger.so
或者:out/target/proct/xx/symbols/system/lib/libsurfaceflinger.so
2、定位的文件,必现和机器上出现问题的版本一致,否则定位不准确
debuggerd:打印当前进程实时堆栈:debuggerd –b pid

主要可以分为以下3类
1)Data abort
Unable to handle kernel NULL pointer dereference at virtual address...
Unable to handle kernel paging request at virtual address...
Unhandled fault...at...
Unhandled prefetch abort...at...
2)BUG/BUG_ON
Oops - BUG...
例如:
Out of memory and no killable processes...
rbus timeout...
...
PS:WARN_ON只mp stacks,kernel还是正常
3)bad mode
Oops - bad mode...
日志打印:
〃错误类型原因
[214.962667] 08:14:19.315 (2)-0488 Unable to handle kernel paging request at virtual address 6b6b6cl7
[214.973889] 08:14:19.326 (2)-0488 addr:6b6b6c17 pgd = d0824000
[214.980132] [6b6b6c17J •pgd=O000eO0e
〃Oopsttl误码序号
[214.983865] 08:14:19.336 (2)-0488 Internal error: Oops: 805 [#1] PREEMPT SMP ARM
[214.9914S3] Moles linked in: 8192eu ufsd(PO) jnl(O) fusion(O)
〃发生也错误的CPU序号
(215.001878] 08:14:19.354 (2)-0488 CPU: 2 PID: 488 Comm: system_server Tainted: P 4.4.3+ #113
(2)-0488 Hardware name: rtd284x
[215.011865] 08:14:19.364
〃当前PC指针 98:14:19.377 (2)-0488 PC is at mutex_unlo<k+0xc/0x38
(21S.024846] 08:14:19.383 (2)-0488 LR is at storage_pm_event+0xb4/0xe8
(21S.031026]
//Registers 08:14:19.390 (2)-0488 :[<ceb78ffc>] Ir : [<C0542034>] psr: 200f0013
I 215.037644] sp : ccf79e38 ip : eceoeeee fp : 9b34648c
I 215.037644]
08:14:19.404 (2)-0488 rlO: 00000080 r9 :Cl8b3864 r8 : oeeeeeoe
215.051370]
215.058692] 08:14:19.411 (2)-0488 P7 : C1293a98 P6 :C1293940 r5 : C1293940 r4 :C1293a80
21S.067345]
[ 215.076014] 08:14:19.420 (2)-0488 r3 : 00000033 r2 :00000000 ri : 000^000 re :6b6b6c07
[ 215.085307]
08:14:19.428 (2)-0488 Flags: nzCv IRQs on FIQs on Mode SVC 32 ISA ARM Segment user
08:14:19.438 (2)-0488 Control: 10c5383d Table: 1082406a DAC: 00000055
//Process.不 ,定是该process的错误,只是发生错误时,刚好在运行该process
[215.093168]
//Stacks 08:14:19.446 (2)-0488 Process syste«i_server (pid: 488, stack limit = 0xccf78218)

(21S.101827] 08:14:19.454 (2)-0488 Stack: 0xccf79e38 (Oxccf79d7。 to 0xccf7a08Q) - par(0xcf796d4)

---[ end trace 45d55384id6a0974 ]--- Kernel panic not syncing: Fatal exception
[217.359794] 08:14:21.712 (0)-0488
解决方案: kernel异常一般找芯片原厂协助分析。

系统卡顿时,一般先分三步走:
1、查看当前系统的CPU,IO等参数,输入top、iotop命令: (如:iotop -s io -m 9)
如果有异常飙高的进程,kill掉后会发现系统恢复正常。
之前项目上遇到过某些U盘IO性能比较差,媒体中心又在后台扫描媒体问题,导致系统各种卡顿,io wait时间比较长。
2、系统进程卡住,触发Watchdog:ps –A |grep system_server,一般而言,system_server正常的进程号是200多,如果发现进程号变成几千,则可能出现重启,结合tombstone和 /data/anr下的trace文件分析重启原因
3、当前应用出现卡顿,造成ANR。输入logcat | grep ANR,如果有ANR打印,再去/data/anr下面查看相应进程的traces文件
有时在应用里面操作卡顿,按键响应延迟,但是却没有生成ANR,此时如果退出该应用(如果无法退出,在抓取足够信息的情况下,可以串口直接kill掉卡顿的应用),则一切正常,可能是应用自身实现问题,或者调用了其它接口导致(例如曾遇到应用调用了中间件、mediaplayer某些接口导致操作严重卡顿,按键响应延迟),这种情况则需应用和相应接口的实现者去排查。

系统完全卡死,一般分三种情况
1,串口无响应,大概率kernel panic,
2,串口日志狂输出,把系统堵塞, 优化日志输出,关注关闭后压测。
3,Input系统完全堵塞,导致任何输入都无响应。

Ⅶ 华为手机出现android怎么解决

如果您在开机过程中出现开机卡死或者无法开机的现象,请您长按电源键,尝试强制重启手机,如果能正常重启,请您在开机以后备份手机重要数据。

如果您的手机在开机过程中频繁出现异常情况,有可能是手机系统异常,建议您备份数据以后将手机恢复出厂设置。

您可以通过以下方式:

长按音量上键+电源键检查是否能进入Recovery模式,如果可以,选择“恢复出厂设置”格式化进行修复。

通过华为手机助手修复或通过eRecovery 恢复手机系统版本。

如果您已经恢复过出厂设置,现象仍然存在,建议您前往华为售后服务中心检测是否硬件异常

Ⅷ android app测试的基本要点有哪些需要特别注意的地方

总结了几个比较重要的,希望对你有帮助
App测试问题一:用户体验
用户体验是一个app成功与否的关键。App商店中app评分可以反映用户体验,差评说明销售亏损。所以用户体验在移动app测试中是一个重要问题。因为体验具有主观性,所以它无法直接被测出。但你要知道,我们在测试过程中,必须要从一些关键影响因素入手,去解决用户体验问题。
而好的用户体验的成功因素包括吸引人的设计,积极的互动性和可用性。
而针对这个问题,我们的测试要从真人体验测试、各个功能的深度测试以及Bug探索与崩溃分析这几个方面着重入手,才能够涵盖完善用户体验所需的测试点。
APP测试问题二:app对于移动设备的兼容性
目前,安卓类的移动设备正在急剧增加,手机碎片化异常严重。并且因为显示屏大小和现状、操作系统版本和基本设备特点等限制因素的不一致,致使几乎没有开发者会花费大量金钱去购买市面上存在的主流手机,那么这些因素叠加起来,最终就很大程度上导致普通的质量管理很难进行。而如果不全面地进行兼容性测试,那么app的生存空间又在哪里呢?
同时还有一点,设备制造商的(安卓)操作系统的设备特殊定制,应明确地在设备上进行测试。测试时,有必要限制将会被app支持的设备。必须要标明系统组合(硬件/操作系统)和向下兼容性。为了最大化系统组合的覆盖,就必须要有灵活的策略来与足够的机型来执行测试。
兼容性问题当然是进行兼容性测试,而在所有的兼容性测试中,使用真机进行测试,是最好的测试方式。但由于上文已提及到众多企业无力购置大量机型,那么,这样的需求就只有委托给第三方的测试机构来完成
APP测试问题三:app的网络连接情况
网络连接是移动app测试的另一大问题。理想状态下,app的网络连接将在单独的线程中实现,这样就不会彼此干扰。此外,一个app必须适当地应对网络中断、延迟、变更和信号弱等情况。如果说不能够将这些测试点进行到底,那么在app在运行过程中将很有可能出现由于网络问题而导致的app运行中断,如果这样的问题出现在金融或证券领域的app中,那么就很可能在当下环境中让用户无法完成挂单、卖出买入或者确认等操作,造成不可挽回的损失。
对于网络问题,一般是进行模拟网络情况的测试,比如TestBird提供的弱网模拟测试和它们的中断测试
APP测试问题四:服务器的承载能力测试
任何开发者都不能够拍胸脯确认自己的app能够获取多少用户,并且能够明确指出同时在线的用户能有多少,如果不关注服务器的承载能力,那么很可能在突然的情况下,服务器就被大量涌入的用户给冲爆,导致瘫痪。
如此,用户自然会流失,同时服务器的宕机,也会给当时正在进行重要操作的用户造成损失,这样的情境,我们依然可以考虑到金融与证券的方向。
服务器的压力测试已经是常见的测试项目了,但是进行全面、专业的压力测试才是保证明确需测服务器承载力的必要条件。
TestBird

Ⅸ 安卓开发参考文献

安卓开发参考文献

按照字面的意思,参考文献是文章或着作等写作过程中参考过的文献。下面是我帮大家整理的安卓开发参考文献,仅供参考,希望能够帮助到大家。

安卓开发参考文献1

[1]郭志宏.Android应用开发详解[M].电子工业出版社.2010.

[2]杨丰盛.Android应用开发揭秘[M].机械工业出版社.2010.

[3]Frank Ableson.Introction to Android development[J].developerWorks,2009,10(7).

[4]余志龙,陈昱勋,郑名杰,陈小凤,郭秩均.Google Android SDK开发范例大全[M].人民邮电出版社.2009.

[5]李宁.Android/OPhone开发完全讲义[M].中国水利水电出版社.2010.

[6]Ed Burnett, Hello, Android: Introcing Google’s Mobile Development Platform[J]. PRAGMATIC BOOKSHELF,2010.7:10-11.

[7]Rick Rogers, John Lombardo.Android Application Development[M].O’Reilly Media,Inc.2009.

[8]胡伟.Android系统架构及其驱动研究[J].广州广播电视大学学报.2010,10(4).

[9]Steve Guo.Binder[OL].http://iremnant tistory.com/entry/Android-JAVA-Binder-IPC-System,2010/03/18.

[10]靳岩,姚尚朗.Google Android开发入门与实践[M].人民邮电出版社.2009.

[11]陈建伟.基于Android的三维物体的触摸控制[J].硅谷,2009,(23):76.

[12]E2ECloud工作室.深入浅出Google Android[M].人民邮电出版社.2009.

[13]傅曦,手机游戏开发精粹[M],北京:人民邮电出版社.2009.

安卓开发参考文献2

[1]周雅翠.基于Android平台的个人事务管理系统设计[J].吉林建筑大学学报,2015,06:67-68.

[2]吴亚林.浅析基于Android的天气预报系统设计与实现[J].山东工业技术,2015,24:123.

[3]王毅.Android平台并行计算研究[J].电子制作,2015,24:26.

[4]王冬.基于Android的天气预报软件的设计与实现[J].电子制作,2015,24:32.

[5]林煌,杨秀芝.基于Android机顶盒的节目管理方案设计[J].有线电视技术,2015,12:69-71.

[6]简靖韡.Android智能手机信息安全问题与对策分析[J].通讯世界,2015,24:33.

[7]邓昌友,肖遥,马小月,夏利,曾俊.基于Android智能手机数据安全的研究[J].福建电脑,2015,12:5-6.

[8]勾通.基于Android平台的远程视频监控系统设计[J].电脑编程技巧与维护,2015,24:60-61.

[9]石翠.PS制作Android智能手机界面技巧解析[J].电脑编程技巧与维护,2015,24:53-54+66.

[10]傅伟.基于Android的校园通系统设计--以江苏财经职业技术学院为例[J].廊坊师范学院学报(自然科学版),2015,06:24-29.

[11]吴新华,万强.基于Android平台的手机游戏开发[J].萍乡学院学报,2015,06:66-69.

[12]杨平.基于Android的移动外勤系统设计与开发[J].信息通信,2015,12:145-146.

[13]陈崇辉.基于Android手机的健康调理手环设计[J].计算机测量与控制,2015,12:4145-4148.

[14]田甜,林筑英.基于云存储的Android手机视频监控和流量共享系统设计[J].电子设计工程,2015,24:190-193.

[15]牟式标,楼越升.基于工程项目的Android设计研究[J].数字技术与应用,2015,12:75-76.

[16]刘晓明.Android应用异常检测方法研究[J].无线互联科技,2015,24:121-122.

[17]郝波.基于Android的海南自助旅游系统开发[J].中国新通信,2015,24:74-75.

[18]张儒侠,付姗姗.基于Android智能手机的志愿服务信息查询系统设计[J].首都师范大学学报(自然科学版),2016,03:63-70.

[19]金永奎,袁圆,颜爱忠.基于Android的高效节水灌溉远程监控系统设计及实现[J].中国农机化学报,2016,04:202-206.

[20]李成吉,雷灵光,林璟锵,高能.安全的Android移动终端内容保护方案[J].计算机工程与设计,2016,03:591-596.

[21]刘洪伟,戴芬,李璐.Android手机手工恢复文件方法研究[J].信息通信,2016,03:133-134.

[22]吴志霞.基于Android平台的“战斗士”游戏软件案例设计及实现[J].九江学院学报(自然科学版),2016,01:67-69+76.

[23]胡全,莫秀良,王春东.基于Markov链模型的Android平台恶意APP检测研究[J].天津理工大学学报,2016,02:27-31.

[24]邝家瑞.android系统用户体验下的可视化交互界面设计[J].现代装饰(理论),2016,04:124.

[25]黄晓先.基于Android的掌上校园交流系统设计与实现[J].开封教育学院学报,2016,03:280-281.

[26]丘增富,秦裕德,陆科宏,马柏林,陆家卓.基于Android平台的互联网+云超市软件[J].电脑编程技巧与维护,2016,07:36+45.

[27]徐强,周倩,成敏,宋占伟.基于Android平台的物流信息采集系统[J].吉林大学学报(信息科学版),2016,02:196-203.

[28]柳淑婷,傅梓怡,范亚芹.基于Android的僵尸网络设计与实现[J].吉林大学学报(信息科学版),2016,02:182-185.

[29]王庆磊.Android移动数据安全探析[J].福建电脑,2016,03:101+109.

[30]陈屴.Android云终端的系统备份与还原方案[J].福建电脑,2016,03:130-131+157.

[31]沈丽云,尹孟征,郭凤仙,严佳玲,刘鹏.基于Android的康复医疗机器人控制系统设计与实现[J].装备机械,2016,01:37-41.

[32]李赫,赵晋睿.基于Android系统的地籍调查平台[J].中国新技术新产品,2016,09:30-31.

[33]陈红梅.基于Android的科目三模拟考试系统[J].智能计算机与应用,2016,02:55-57.

[34]胡伟峰,辛向阳.智能手机iOS&Android系统功能交互行为对比研究[J].装饰,2016,04:82-83.

[35]徐昕军,袁媛,苏剑臣,杨峰.基于Android平台的行为分析系统研究[J].计算机应用与软件,2016,04:223-226.

[36]李永宝,崔广章,陈琛,李岱英.基于Android的校园订餐系统[J].物联网技术,2016,04:71-75+78.

[37]王慧兰.基于Android平台的图书管理系统手机客户端开发[J].中外企业家,2016,11:204.

[38]祁洋,曹红根,朱长水,陈佳鑫.基于Android平台家校通的设计与实现[J].软件工程,2016,04:33-35.

[39]徐雪丽.基于Android平台的虚拟试衣关键技术研究[J].西安文理学院学报(自然科学版),2016,02:47-51.

[40]牛嘉祥,张红雨.基于Android平台的GPS防盗器软件设计[J].电子质量,2016,04:30-35+39.

[41]韦江华,李福章,林川.基于Android平台定位系统的客户端设计[J].信息系统工程,2016,04:102-103.

[42]吴成玉,吴飞青,章丽姣.Android系统上基于图像颜色特征的检索研究[J].安徽电子信息职业技术学院学报,2016,02:1-4.

[43]柳迪,章国宝.基于Android的网购药品应用的设计与实现[J].工业控制计算机,2016,04:121-122+134.

[44]葛艺潇,闵富红.基于Android和Arino的蓝牙考勤系统实现[J].信息通信,2016,04:109-110.

[45]江丽.基于android平台的实时互动远程教育系统设计与实现[J].信息通信,2016,04:121-122.

[46]杨世淼.基于Web Server和Android平台的智能幼儿园管理系统[D].浙江大学,2016.

[47]刘权,刘红,韦启旻,徐强,杨思晨,孙非凡.基于Android移动终端局域网通信设计[J].数码世界,2016,04:52-53.

[48]周兵.基于Android网络图片上传与下载的研究[J].河北工程技术学院教学与研究,2015,04:40-43+46.

[49]张跃骞.Android APP保护及破解[J].中国教育网络,2016,Z1:44-46.

[50]许瑾.第一次开发Android程序的历程[J].科技资讯,2014,29:20.

[51]张中伟,苏静.基于云平台的Android移动学习系统设计[J].民营科技,2014,09:100+59.

[52]王柯,马宏斌.一种基于Android平台数据采集系统的设计与实现[J].测绘与空间地理信息,2014,10:29-32.

[53]郭瑾,杨武年,易鹏.基于Google Android平台手机局域地图的实现[J].地理空间信息,2014,05:158-161+13.

[54]曹海英,元元.基于Android系统的'移动校园信息平台设计[J].赤峰学院学报(自然科学版),2014,21:11-12.

[55]林伟铭,张源梁.基于Android平台的家庭灯光控制系统[J].中国新通信,2014,22:97-98.

[56]张生财.基于Android教务信息管理系统开发[J].科技创新与应用,2014,34:72.

[57]潘晓东,费军,张益明.基于安卓终端的呼叫系统设计与应用[J].医疗卫生装备,2014,11:52-53+88.

[58]徐剑,武爽,孙琦,周福才.面向Android应用程序的代码保护方法研究[J].信息网络安全,2014,10:11-17.

[59]吴轶群,朱亚东,王明敏.基于Android平台的多屏互动系统设计[J].计算机应用与软件,2014,10:234-238.

[60]余彦达.基于Android的校园卡查询系统[J].价值工程,2014,20:201-202.

[61]赵振峰,董日壮.基于安卓的手机校园导航应用系统[J].电脑知识与技术,2014,30:7050-7052.

[62]李骏,陈小玉,Android驱动开发与移植实战详解,北京:人民邮电出版社,2012:87-105.

[63]韩超,梁全,Android系统原理及开发要点详解,北京:电子工业出版社,2009:16-102.

[64]李刚.疯狂Android讲义[M].北京:电子工业出版社,2013:25-42.

[65]杨丰盛.Android技术内幕[M].北京:机械工业出版社,2011:77-89.

[66]杨云君.Android的设计与实现[M].北京:机械工业出版社,2013:45-49.

[67]柯元旦.Android内核剖析[M].北京:电子工业出版社,2011:59-70.

[68]丰生强.Android软件安全与逆向分析[M].北京:人民邮电出版社,2013:78-90.

[69]余成锋,李代平,毛永华.Android3.0内存管理机制分析[M].计算机应用与软件,2013:55-80.

[70]佐冰冰.Android平台下Launcher启动器的设计与实现[D].哈尔滨工业大学,2012:108-150.

[71]杜吉志,徐明昆.Android系统内存管理研究及优化[J].软件,2012,24(5):69-80.

[72]马越.Android的架构与应用[D].北京:中国地质大学,2008:330-357.

[73]姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008,77(11):99-111.

[74]高巍.Android操作系统软件自动化测试方案的设计与实施[D].北京:北京邮电大学,2012:440-479.

[75]孙剑.Android系统上应用程序按需加载机制的设计与实现[M].北京大学,2011:99-110.

[76]卢娜.基于Android平台的手机桌面资讯系统的设计与实现[M].西安电子科技大学,2011:290-300.

[77]高焕堂.Google Android应用框架原理与程序设计36计[M].Misoo,2010:8-13

[78]杨云君.Android的设计与实现[M].北京:机械工业出版社,2013:5-65.

[79]柯元旦.Android内核剖析[M].北京:电子工业出版社,2011:67-98.

[80]李刚.疯狂Android讲义[M].北京:电子工业出版社,2013:12-87.

[81]陈最.基于Android平台移动终端透明加密系统的研究与实现[D].重庆理工大学,2012:108-150.

[82]王春雷,柴守霞,袁杰,雷美容.基于Android智能手机的移动护士工作站[J].中国数字医学,2013,05:85-87.

[83]李铮.基于Android的位置跟踪系统设计与实现[J].承德石油高等专科学校学报,2013,05:33-36.

[84]孙亚非,曾成,伍萍辉.基于Android平台的智能低压配电终端[J].低压电器,2013,21:59-63.

[85]沈泽,周丽娴,梁昌银.Android语音备忘录程序的设计与实现[J].现代电信科技,2013,10:37-42+47.

[86]吴立勇,丁作文.基于Android系统振动测试仪研究[J].工业控制计算机,2013,12:10-11.

[87]朱生,牟星亮,单康康.基于Android平台的应用程序开发研究[J].网络安全技术与应用,2013,10:46-47+64.

[88]郝俊寿,丁艳会.基于Android系统的影音播放器研究与实现[J].硅谷,2013,22:20-21.

[89]赵晓影.Android应用开发中的UI设计[J].劳动保障世界(理论版),2013,12:111.

[90]郑洲.基于Android平台的快捷查询软件设计[J].中国新通信,2013,23:123.

[91]王楠.基于Android手机平台的互联网应用探析[J].数字化用户,2013,10:3.

[92]高志新,李春云,仇治东,于泳波.基于二维码和android应用的智能控制系统的研究[J].数字技术与应用,2013,11:13-14.

拓展:安卓开发就业前景

Java工程师的就业前景不是一层不变的,而是随着市场变化而变化的,当我们大量需要的时候Java工程师就业前景就会比较明朗,相反我们不需要了,Java程序员的就业前景还会好吗,今天我们来分析一下2017年Java就业前景。

一,整体就业环境

网络依靠编程堆积起来,所以互联网时代编程语言必不可少。有专业人士阐述了下一代编程语言的要具备的特性:介于静态语言与动态语言之间的语言,有特定领域功能,有注解功能,是面向过程语言等等,无论未来编程语言如何发展,学编程开发都不会失业,所以选一个自己喜欢的语言去编程吧。Java作为编程语言之手,可以优先选择。

据业内人才预测,2017年我国将新增10000家IT企业,这些企业将强势拉动IT人才的需求。而且现在80%互联网公司基本都在使用Java,维护项目运行也需要大量人力,所以在未来几年Java依旧是炙手可热的技术,就业市场依旧很大。

二,Java发展空间

Java应用无处不在,例子不枚胜举,在过去十年,Java为整个IT届带来的影响已经无法准确评估,现在Java向着高精尖方向而且,进一步说明了Java的时髦性。

现在Java非常普及,普及到在美国要求每一位人员都要会编程,巨大的Java社区需要很长时间才会接受新的编程语言,所以在未来几年Java就业市场依旧光明。

Java技能是目前为止被招聘人员,高层人员甚至乔布斯都称赞过的热门技能,高度可移植性目前还没有一门编程语言超过,所以不可避免,Java将继续影响下一代程序员。

三,Java就业情况

根据郑州达内12月份就业数据显示,不论是就业速度,就业质量,薪资待遇,Java依旧领先其他专业,总体就业薪资在6000-9000之间,可见Java就业就业市场依旧光明。

作为Java程序员一定要让自己有价值,如果你很容易被替代,那么你的价值就很低廉。如果你能负责的工作,只有20%的人能超越你,那么价值立刻凸显,就不愁找不到高薪工作了。Java新技术层出不穷,内核精髓变化不大,作为程序员一定要多掌握精髓东西,向深度发展,另外尽量抽时间向广度发展,这样才能在Java行业屹立不倒。

;

安卓系统程序出现异常正在收集日志怎么办

1.清除软件数据:设置-查找“应用程序管理器”-(全部)-查找软件名称-(存储)-清除数据(注意备份软件中的重要数据)。
2.部分机器支持应用程序权限设置:设置-应用程序-(应用程序管理器)-查找并点击不能使用的软件名称-权限-将需要的权限开启。
3.若无效,将设备关机重启尝试。
4.若是自行下载的软件,建议卸载该软件并重新安装(建议下载该软件最新版本尝试),可能是由于软件与手机新系统存在兼容性。
5.若是系统自带软件无法使用,请您携带购机发票、包修卡和机器送到三星服务中心,由专业的售后工程师帮助检测。

阅读全文

与android异常检测相关的资料

热点内容
单片机的原理概述 浏览:506
火控pdf 浏览:267
如何复制云服务器centos环境 浏览:984
债权pdf 浏览:299
红色番字的app怎么下载 浏览:876
云服务器流程教课 浏览:702
中国农业银行app怎么没有网 浏览:997
几率表算法 浏览:902
程序员理工科 浏览:708
企业邮箱登录收件服务器地址 浏览:558
计算机思维与算法设计的重要性 浏览:664
linux刷新磁盘命令 浏览:76
我的世界如何查看服务器种子pc 浏览:284
linuxlamp编译安装 浏览:609
枚举算法ppt 浏览:184
cmd查看进程命令 浏览:956
手机内怎么删除APP 浏览:834
鱼群和鸟群算法区别 浏览:93
pdf尺寸设置 浏览:211
android访问本地服务器 浏览:512