android

标签: android

Android ANR日志分析

ANR介绍和类型 当Android应用程序的UI线程被阻塞太久时,会触发一个“应用程序没有响应”(ANR)错误。如果app在前台,系统会向用户显示一个对话框,如图1所示。ANR对话框为用户提供了强制退出应用程序的机会。 https://developer.android.com/topic/performance/vitals/anr 出现ANR的一般有以下几种类型:搜索ANR in 可以查看抛出ANR日志线程 1: KeyDispatchTimeout input事件在5S内没有处理完成发生了ANR。 logcat日志关键字:Reason: Input dispatching timed out (Waiting because the focused window has not finished processing the input events that were previously delivered to it.) 2:

阅读全文...

Android - Kotlin 实践

语法糖 不用写分号 println("hello world") 变量 // 定义可变变量 var name: String = "hello world" // 定义不可变变量,相当于 Java -> final val useVal: Int = 1000 var tmpId = 1 //类型推导 三元运算符 // java int code = isSuccessfully? 200: 400; // kotlin int code = if(isSuccessfully) 200 else 400 import 别名 import cn.jasonmarzw.User as Person // 添加User别名为Person

阅读全文...

那些不常用的adb命令

显示当前activity adb shell dumpsys window w | grep \/ | grep name= | cut -d = -f 3 | cut -d \) -f 1 打开应用详情 adb shell am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d package:com.baidu.hi 清空应用信息 shell pm clear com.baidu.hi 多语言选择 adb shell am start -a android.settings.LOCALE_SETTINGS

阅读全文...

targetSdkVersion < 22 下权限适配

android 在 6.0 (android M) 引入动态权限,应用在安装时不会授予危险权限(危险权限列表),应用在运行的时候动态申请,用户确认后才可以拿到权限。 这一套在targetSdkVersion >= 23 的情况下没有任何问题,23以下呢?应用安装的时候默认授予所有权限,但是不(keng)幸(die) 的是 在运行6.0及以上的手机上用户可以主动关闭权限,而且应用还拿不到任何通知。 华为手机取消时界面如下: 下面总结了下不同版本权限的影响: targetSdkVersion/手机系统 不小于6.0 小于 6.0 小于23 安装时默认授予权限,用户可以取消权限(取消时手机会弹出提醒"取消可能导致无法运行"),app不能动态申请 安装时默认授予权限,且用户不能取消 不小于23 安装默认不授予权限,需要app动态申请权限, 或者用户主动设置 安装时默认授予权限,且用户不能取消 现在的问题是targetsdkversion <= 22

阅读全文...