• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar

陈文管的博客

分享有价值的内容

  • Android
  • Affiliate
  • SEO
  • 前后端
  • 网站建设
  • 自动化
  • 开发资源
  • 关于

Android NDK版本配置和编译

2020年2月11日 | 最近更新于 上午12:39

项目上需要把功能下沉到C++去实现来降低性能上的损耗,N年不碰C++的重操旧业,首先就是要配置NDK编译环境,以下记录Android NDK版本配置和编译遇到的坑。

一、NDK版本下载

NDK最新版本下载地址:

https://developer.android.google.cn/ndk/downloads/

NDK历史版本下载地址:

https://developer.android.google.cn/ndk/downloads/older_releases.html

在Mac上测试android-ndk-r10d和最新的android-ndk-r20b版本都存在问题,编译中会出现找不到编译模块,或者参数引用找不到[……]

【阅读全文 ▽ 】

Android 8(Oreo)后台启动Service限制解析

2019年10月25日 | 最近更新于 上午12:48

本文针对Android 8(Oreo)开始对于后台启动Service限制做一个解析,一个是startService限制,另一个是startForegroundService启动服务之后5s内必须调用startForeground(),并提供对应异常的适配解决方法。

一、Android Oreo后台启动服务异常

从Androidxref上的源码来看,这个异常机制是从8.1.0版本开始引入的,在8.0.0的源码上还未引入这个限制。

1. 使用startService在后台启动服务

从Android 8.1.0开始,不允许在后台运行服务,应用处于后台的时候,使用startService启动后台服务会抛异常。

相应的异常日志信[……]

【阅读全文 ▽ 】

Android ANR详解

2019年9月24日 | 最近更新于 上午12:51

ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。本文内容包括ANR的类型说明,ANR的原理解析,ANR四种检测方案介绍和常见ANR问题的分析解决方法。

一、ANR的类型

1. InputDispatching Timeout

超时时间:谷歌平台默认5s,MTK平台8s

原因:对输入事件(例如按键或屏幕轻触事件)没有响应

2. Broadcast Timeout

超时时间:前台广播10s,后台广播60s

原因:在特定时间内无法处理完成[……]

【阅读全文 ▽ 】

Android 子线程更新UI详解

2019年9月6日 | 最近更新于 上午12:56

本文内容介绍子线程操作UI抛出的CalledFromWrongThreadException异常解析,子线程操作UI的几种方法,及几种在子线程中操作UI导致的异常现象说明。

一、子线程中操作UI一定会报错?

不一定,如果是在onCreate中子线程操作UI控件,不会发生异常,可以正常更新UI,下面看下源码。

1. 首先是ViewRootImpl抛异常的地方

void checkThread() {
    if (mThread != Thread.currentThread()) {
        throw new CalledFromWrongThreadException(
[......]

【阅读全文 ▽ 】

Android Home键之后后台启动Activity延迟5秒

2019年9月1日 | 最近更新于 上午12:54

在客户反馈中遇到一个问题,Home键把应用置于后台,外部通过对接协议广播的方式,应用内接收到广播之后通过startActivity把应用从后台调起到前台,只是普通的逻辑调用,但是应用在后台停留了10S之后,应用才回到前台,并先出现了黑屏,之后才显示应用界面的问题。

从Activity的生命周期Log分析,在调用了startActivity之后,已经走到了onResume,但是过了5S之后,应用才显示出来。

一开始是怀疑系统方的问题,系统方分析之后,单单startActivity就花费了3S时间,之后还有应用内的Activity切换又耗费额外的2S,这5S时间可以看作是主线程的卡顿导致。但另外的5S是在onResume之后[……]

【阅读全文 ▽ 】

  • « Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Page 5
  • Next Page »
博客公众号
博客公众号

GitHub

https://github.com/wenguan0927

近期文章

  • Android平台动画类型详解
  • Kotlin null 详解
  • Android 残影数字动画实现详解
  • Android 卡片旋转切换动效实现详解
  • Android 心率动画自定义控件实现

友情链接

崔庆才的个人博客

Trinea  (codeKK)

Piasy

Paincker

wanandroid

陈祖杰的BLOG

闽ICP备18001825号-1 · Copyright © 2023 · Powered by chenwenguan.com