摘要:
目前谷歌应用市场已经强制我们提交的App必须包含64位的native库,并且使用目前Android Studio 4.0开发的时候,也会看到在Build项目的时候,提示如下的内容: build.gradle: This app only has 32-bit [armeabi-v7a,x86] na 阅读全文
摘要:
在进行Android NDK开发的时候, 因为代码编写导致崩溃的问题时有发生,但是问题在于,Native层的崩溃日志,如果只看LogCat输出的内容,我们会发现,根本无法进行分析和处理,因为日志内容中都是一大堆的内存地址信息。 原始错误日志: 2020-08-20 18:04:01.149 2712 阅读全文
摘要:
一、DataBinding开启配置修改 升级到AS 4.0以后,出现如下的预警: DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataB 阅读全文
摘要:
在到Androidx之前我们使用support提供的Fragment的懒加载机制,基本上使用的是在setUserVisible + onHiddenChanged 这两个函数。但是在Androidx下setUserVisible已经被Google官方弃用了,推荐我们使用Fragment.setMax 阅读全文
摘要:
一、DeepLink 技术介绍 DeepLink,即为深度链接技术,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app,节省用户的注册成本。 DeepLink 通常运用于App社交分享、App广告引流、App裂变活动、Web to App 阅读全文
摘要:
一、什么是屏幕刷新机制 屏幕的刷新包括三个步骤: CPU 计算屏幕数据 GPU 进一步处理和缓存 Display 将缓存中(buffer)的屏幕数据显示出来。 屏幕刷新机制包含以下几点要素,需要我们了解和掌握: View 发起刷新的操作时,最终是走到了 ViewRootImpl 的 schedule 阅读全文
摘要:
一、Service的启动方式 Service的启动方式主要是:startService、bindService。 binderService和startService的区别: binderService不会触发应用端的onStartCommand函数。 二、startService的流程 流程分为两 阅读全文
摘要:
顾名思义,UI线程就是刷新UI所在的线程。 我们知道UI是单线程刷新的,那么UI线程是哪个线程?换一个问法:UI线程==主线程吗? 这里我们提出两个方法:Activity.runOnUiThread(Runnable)、View.post(Runnable)。 我们先看一下runOnUiThread 阅读全文
摘要:
一、Activity启动步骤 Activity的启动流程为:创建Activity对象 ==> 准备好Application ==> 创建ContextImpl ==> attach应用上下文 ==> 生命周期onCreate回调。 Activity的mWinodw对象就是在attach方法执行的时候 阅读全文
摘要:
一、Looper检测卡顿 熟悉Handler机制的话,我们会知道Looper是给线程提供处理消息能力的类,在Android Framework启动的时候,就会创建一个Main Looper即主线程对应的Looper,Looper中会维护一个MessageQueue,负责接收Handler发送过来的消 阅读全文