标签:Android

包含 10 篇文章

Android的clipToXXX

最近处理工作bug的过程中,有一个需求是这样的,两层view,父view包含着子view,然后子view能显示出的区域,要以父view的背景来过滤。没看懂是不是?参考下图:

Intent.FLAG_ACTIVITY_***解密

最好先看这一篇[Launch Mode](/android/LaunchMode.html)。 我们将重点针对FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY...

发布Android库到MavenCentral教程

JCenter已经宣布,即将在2020年5月1日,停止新的库的提交,在2022年2月21号以前,连库的解析服务也停止,所以,把以前的库或者未来的新库替换到MavenCentral是当务之急了。 我参考的教程来自以下两篇文章: Publishing your first Android library...

LaunchMode

此文是阅读《Android 面试黑洞——当我按下 Home 键再切回来,会发生什么?》一文后的总结,视频地址Bilibili、Youtube。 演示代码: 在正式讲解launchMode前,先要理解三个概念:ActivityStack, TaskRecord, ActivityRecord。 gr...

Binder机制分析

参考文章:写给 Android 应用工程师的 Binder 原理剖析 实验代码:TheBinder Binder机制可以说是Android的核心。提到Binder,可能会让你想到,通过bindService与Service进行通信(也可能是跨进程的通信),实际上,Android中Binder的使用可...

ASM库介绍与使用

原文 前面几篇文章介绍了 .class 文件的结构、JVM 如何加载 .class 文件、JVM 中如何执行方法的调用和访问者模式,其实前面几篇文章都是为这篇文章做铺垫的,如果不知道 .class 文件结构、也不知道在 JVM 中 .class 文件中的方法是如何被执行的,这篇文章中的有些部分可...

App保活术

为什么要保活? 因为Android的Low memory killer机制,在系统内存不足的情况下,系统开始根据自身的一套进程回收机制结束一些进程,以便腾出内存给需要的进程。 如何判断内存不足? 判断的阈值在不同手机上是不一样的,一旦低于该阈值,系统就会杀死对应优先级的进程。 在adb shell下...

Apk瘦身术

Apk瘦身主要从三方面入手:资源文件、源代码和第三方类库。 一、资源文件1.1 删除无用资源文件1.1.1 Lint工具菜单 -> Analyze -> Run Inspection by Name,然后输入Unused resources便可以执行查找无用资源文件。自己根据需要进行删除...

AMS启动流程

AMS是ActivityManagerService的简称,看名字,似乎是Activity的manager,实际上,它管理的可不只是Activity。 系统启动流程 graph TD; style A fill:#fff style F fill:#5befb9 Z&#123...

Activity启动流程

原文参考:Activity 启动流程分析(Android10) graph TD; A(启动Activity) --> B[通过Binder调用AMS的startActivity方法] --> C[通过Intent获取到目标Activity] --> D{目标Activity是否启动&#...