文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Android 应用安装后 , 出现两个相同的启动图标 , 其中一个可以启动 , 另外一个启动后 , 直接崩溃 ; 卸载其中一个 , 会将整个应用卸载...; 二、解决方案 ---- 出现上述问题的直接原因就是在 AndroidManifest.xml 清单文件中 , 配置了多个 android.intent.category.LAUNCHER 的 Activity...> android:name="android.intent.action.MAIN" /> android...:name="android.intent.category.LAUNCHER" /> 一般情况不可能在...AndroidManifest.xml 清单文件中故意配置多个启动项 , 最大的可能是在引入的第三方库中 , 有该配置 ; 尤其是在组件化中 , 如果要引入一个独立的第三方应用 , 如果配置不对 , 就会出现上述报错
手机上莫名显示我们的app,“XXX正在运行,触摸即可了解详情或停止应用”,我去,这不是让用户知道我们在后台偷偷运行了,什么情况?...排查后发现是如下代码导致: startForeground(111, new Notification()); 其实就是调用startForeground导致的,解决方法就是再开一个service将这个通知取消掉
交叉编译动态库时设置 -fstack-protector 参数 在交叉编译动态库时 , 设置 -fstack-protector 参数 ; 这样编译出来的动态库 利用堆栈缓冲区溢出 的难度会增加 ; 2、Android.mk...配置 在 Android.mk 脚本中配置 LOCAL_CFLAGS := -Wall -O2 -U_FORTIFY_SOURCE -fstack-protector-all 参数 , -Wall :...U_FORTIFY_SOURCE : 取消 _FORTIFY_SOURCE 的定义 , 这是用于增强安全性的宏定义 ; -fstack-protector-all : 启用所有 堆栈保护 措施 ; 完整配置示例如下 : # Android.mk
上图是正在下载镜像 (如果第3步执行完之后不小心关闭了)启动镜像(前面已经下载过镜像了,这条命令就直接启动了,同样执行对应的一条就行) docker run -d -p 9999:9999 bhaavan...连接手机,打开调试模式 Android 7.0和更高版本的开发设备获取错误报告: adb bugreport bugreport.zip 对于6.0或更低版本的设备: adb bugreport > bugreport.txt...记载这里我遇到一个坑,就是文件上传后,submit提交按钮不显示 原因:本质是web某些资源没有加载出来,其中的一些资源需要访问google服务器,但是这些资源被墙了,无法访问。...当系统组件处于活动状态时,每行显示彩色条形段,从而从电池中汲取电流。该图表并未显示该组件使用了多少电,只是该应用程序处于活动状态。...采集报告前将battery统计状态重置,重置命令结束后断开usb,测试结束后用获取报告命令导出统计文件包: adb shell dumpsys batterystats --reset 执行上面两条命令后
超时的原因一般有两种: 1.当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时的完成或者looper被某种原因阻塞住了); 2.当前的事件正在处理,但没有及时完成。.../anr/traces.txt ~/Desktop/ 2.分析关键信息 以每行的重点内容没准,每行自带时间戳 Process:anr发生的时间和进程,和生成traces文件的时间 CPUusage...... ago :cpu在anr发生前的使用情况 CPUusage ...later: cpu在anr后的使用情况 ABI: 手机的cpu架构 HEAP: 堆的内存信息 ANR...iowait** 04-0113:12:15.872 E/ActivityManager( 220): **CPUusage from 3697ms to 4223ms later**:-- ANR后CPU...,则会导致后续broadcast的失败,出现ANR,导致系统无法唤醒。
图2-5 Avaliable Software选择框 (3)选择“Simplified Chinese”语言包后,点击 “Install… ”按钮,等待Eclipse处理。...处理完成后会出现“Install”对话框,这时会提示你选择要安装的语言包。根据提示,很容易完成后面的操作,这里就不再赘述了。 安装完毕后,重新启动Eclipse即可完成全部汉化过程。...(2)点击“OK”,这时可能会出现如图2-11所示的错误。...一旦找到错误发生的位置,你可能想知道在程序崩溃之前它在做什么。一种方法是单步执行程序的每行语句,直到运行到可疑的那一行。有时候最好只运行一段代码,在可疑处停止运行,检查数据。...希望读者能够根据不同的错误采取不同的方式进行调试,使错误能快速地出现在眼前。
记录方式将以三级标题是问题,其下内容为答案的模式,简单明了。 本篇博文将不定时更新,每次更新会将博文时间提到修改之时。 如若各位有任何问题和看法,请及时评论或者[at]我微博讨论交流。...您的问题和答案采取后也可以出现在本篇微博中,会注明您的姓名和链接,为您带来流量。 ---- 正文开始 ---- [No.001] ubuntu(linux)下查看Gtk版本(version)信息?...打开终端,输入命令: sudo gedit /etc/bash.bashrc (ubuntu13.04以上版本)在打开的文件中搜索以下代码,并修改为以下样子(就是将之前每行开头的#删除),保存退出问题解决...源码的jdk问题 在最新版本的Ubuntu下编译Android源码,由于Ubuntu16.04默认舍弃了openjdk-7-jdk,所以在编译的时候会提示如下错误: Checking build tools...错误了。
本文是介绍 Android 协程系列中的第三部分,这篇文章通过发送一次性请求来介绍如何使用协程处理在实际编码过程中遇到的问题。...在 Android 的应用中您可以用这种方式解决很多问题,比如对数据的查询、存储或更新,它还很适用于处理列表排序问题。...当出现某个新事件时,sortProductsBy 会启动一个新的协程对列表进行排序,当排序完成后更新 LiveData。...花点时间让您了解一次性请求的模式是值得,它在 Android 协程中是比较通用的模式,您会一直用到它。...第一个 bug 出现了 在经过测试后,您部署到了生产环境,运行了几周都感觉良好,直到您收到了一个很奇怪的 bug 报告: 标题: ? — 排序错误!
据外媒Wired报道,在近日旧金山的GitHub Universe大会上,GitHub宣布将发布官方的Android和iOS应用程序,使开发人员能够回复用户的问题,阅读错误报告,并通过手机将问题分配给其他开发人员...、阅读错误报告并通过手机将问题分配给其他开发人员以尽快优化代码。...由于移动版GitHub是作为原生应用程序构建的,它可以自动适应不同的屏幕尺寸,甚至可以根据你的系统偏好适配黑暗模式。 移动版GitHub现在推出了iOS的Beta版,并且即将在Android上推出。...移动设备上的 GitHub 将允许用户收到正在进行的开源或私有项目通知,合并拉取请求,提交新问题,或向存储库添加代码。...GitHub 客户端还将提供改进的通知体验,以帮助开发人员快速处理请团队合作请求。 ?
作者:荣华谢后 地址:http://www.jianshu.com/p/314f203459f2 声明:本文是荣华谢后原创,已获其授权发布,未经原作者允许请勿转载 先说说两者的关系,DataBinding...是一个实现数据和UI绑定的框架,而MVVM是一种架构模式,实现MVVM模式需要借助DataBinding来完成。...本文将以《Android 谈谈我所理解的MVP》中的例子为基础,使用MVVM模式重新实现一下。...// 显示Loading progressDialog = new ProgressDialog(this); progressDialog.setMessage("正在获取快递信息...到这里,MVVM模式就学习完了,DataBinding确实很强大,但有个致命的问题,就是出现问题的时候不好debug,因为UI更新都在布局文件中完成了,而且不论出现什么错误,都会提示找不到Binding
正在传输的类型由Content-Type加以标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。...:服务器收到请求,但是拒绝提供服务 500 Internal Server Error:服务器发生不可预期的错误 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常...消息头由键值对组成,每行一对,关键字和值用英文冒号“:”分隔。...通用报头 既可以出现在请求报头,也可以出现在响应报头中 Date:表示消息产生的日期和时间 Connection:允许发送指定连接的选项,例如指定连接是连续的,或者指定“close”选项,通知服务器,在响应完成后...,关闭连接 Cache-Control:用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制) 请求报头 请求报头通知服务器关于客户端求求的信息
后台限制 Android P新增后台限制功能,若应用出现 Android Vitals 内所描述的不良行为,系统将提醒用户限制该应用访问设备资源。 3....省电模式的优化 Android P 优化了现有的省电助手功能,在启用该功能后,系统将对所有应用的后台运行实施加以限制。 4....应用待机模式下共有以下五类群组: 1. 活跃 (Active): 应用正在被使用 2. 工作 (Working set): 应用使用频率很高 3....如果您错误的将没有与用户进行互动的 FCM 消息设置为高优先级,这种标记不当的行为可能会导致其他不良后果,比如:在应用耗尽高优先级消息额度之后,系统会把真正紧急的 FCM 消息当做“普通优先级”消息来处理...进一步信息,请查阅《对低耗电模式和应用待机模式进行针对性优化》。 测试和错误排查 新的电量管理特性会影响在 Android P 上运行的所有应用,不论应用是否以 Android P 为目标平台开发。
一般情况下自定义适配器继承自BaseAdapter就够用了,当然Android为了方便懒人,专门扩展了两种简单易用的适配器,如ArrayAdapter用于每行只显示文本的情况,而SimpleAdapter...用于每行显示左图标右文本的情况。...该属性在API17后增加,即Android4.2.2以上版本才支持。代码中对应的方法是setTextAlignment。 ListView ListView是列表视图,用于分行显示列表信息。...stretchMode : 指定拉伸的模式。...实际开发中有时需要设置网格之间表格线的颜色,可惜GridView并未直接给出相应的属性和方法,那得变通处理一下。
生成错误报告:获取当前设备日志文件的副本以与某人共享。当您获得错误报告已准备就绪的通知时,点按此通知即可共享。...而在 Android 10 中这个模式出现了三条水平线,这很可能意味着后续将支持更高刷新率的屏幕。...这是错误的,要修复它们。 GPU呈现模式分析 可以选择使用条形图还是线型图显示,选择哪种显示方式显示结果都是类似的。...绿色的横线表示每一帧渲染时间的阈值,值为16ms,这是因为Android流畅运行的帧率为60fps,如果每一帧的渲染时间超过16ms,帧率就降低到小于60fps,会出现丢帧的情况,直观的感受就是页面出现卡顿...如果我们对页面恢复的处理不当,就有可能导致页面的重建出现异常,因为毕竟系统没有智能到帮我们保存所有必要的数据,有些还是需要我们自己手动来保存的。
FILE 中读取匹配模式(每行一个) -i, --ingore-case 不区分大小写(grep 默认区分) -v, --invert-match 返向搜索(输出不匹配模式行) -w, --word-regexp...Tab 后对齐输出当同时含有 -H, -n, -b 选项时,由于前缀的不等长,该选项则显得非常有用 -Z, --null 在文件名输出后紧跟着输出一个全零字节(ASCII NUL 字符),取代原来的文件名后紧随的字符...-U, --binary 将文件视为二进制文件处理 -z, --null-data 将输入输出数据视为行串处理,每行以一个全零字节符(ASCII NUL)而不是换行符结束(类似 -Z, --null 选项...退出状态 正常情况下,有任一行匹配返回退出状态 0,没有任何行匹配返回退出状态 1,有错误出现返回退出状态 2 。...当指定 -q, --quiet, --silent 选项时,有错误出现也返回退出状态 0 。
sed 编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先 sed 把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。...3.1 sed 命令 命令 功 能 a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。...只有当命令存在语法错误时,sed 的退出状态才不是 0。 5.正则表达式元字符 与 grep 一样,sed 也支持特殊元字符,来进行模式查找、替换。...如果出现My的行不止一行,则在出现My的各行后都读入introduce.txt文件的内容。...执行脚本时,sed 先将输入文件中第一行复制到模式缓冲区,然后对其执行脚本中所有的命令。每一行处理完毕后,sed 再复制文件中下一行到模式缓冲区,对其执行脚本中所有命令。
HTTP协议的主要特点 支持C/S(客户/server)模式。 简单高速:客户向server请求服务时,仅仅需传送请求方法和路径。请求方法经常使用的有GET、HEAD、POST。...正在传输的类型由Content-Type加以标记。 无连接:无连接的含义是限制每次连接仅仅处理一个请求。server处理完客户的请求。并收到客户的应答后,即断开连接。採用这样的方式能够节省传输时间。...可是拒绝提供服务 500 Internal Server Error:server发生不可预期的错误 503 Server Unavailable:server当前不能处理client的请求。...消息头由键值对组成,每行一对。关键字和值用英文冒号“:”分隔。...或者指定“close”选项,通知server,在响应完毕后,关闭连接 Cache-Control:用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现)。
这里我们需要提供一个图片数据保存位置的文件引用,以及一个在图片成功保存或者出现错误时使用的 Listener。...) { // 处理错误 } }) 当拍摄视频出现错误是,ImageCaptureUseCase.UseCaseError 将会给我们返回以下的某一错误状态: UNKNOWN_ERROR FILE_IO_ERROR...这个回调用来监听图片被捕捉(或者出现了错误),然后开发者可以根据情况处理结果数据。前面的 takePicture 使用更简单,但这个 takePicture 提供了更多的灵活性。...) { // 处理图片捕获错误 } }) 我们可能也想使用 CameraView 来录视频。...我们也有 onError 方法用来处理错误状态,在我们的 UI 上根据情况 作出对应的反馈。
您可以使用Monkey以随机但可重复的方式对您正在开发的应用程序进行压力测试。...同时,Monkey还会对测试系统进行监测,当出现以下三种情况时会进行特殊处理: 如限定了Monkey运行在特定包上,当监测到试图转到其他包的操作,将对其进行阻止。...如果应用程序发生了程序无响应(application not responding)的错误,Monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。...Monkey启动步骤 连接移动设备 连接成功后输入命令 adb shell 进入到指定目录 cd /system/bin 4.输入 monkey命令看到如下提示则说明启动成功。...: $ adb shell monkey [options] [options] 是指monkey可传入的参数,是可选项(如果不指定options,Monkey将以无反馈模式启动
Android不能中止正在执行Native的线程。如果正在进行垃圾回收,或者调试器已发出了中止请求,Android会在下一次调用JNI函数的时候中止线程。...如果与一个类加载器(ClassLoader)相关的所有类都能够被垃圾回收,但是这种情况在Android上是罕见甚至不可能出现,只有这时类才被卸载。...一种常见的错误情况是,从文件或者网络流中读取出的字符数据,没有过滤直接使用NewStringUTF处理。...另一个常见的错误(在示例代码中出现过)是认为当isCopy是false时你就可以不调用Release。实际上是没有这种情况的。...Android也提供了一种模式,叫做CheckJNI,这当中JavaVM和JNIEnv函数表指针被换成了函数表,它在调用标准实现之前执行了一系列扩展检查的。
领取专属 10元无门槛券
手把手带您无忧上云