
面试专题
文章平均质量分 84
小图包
这个作者很懒,什么都没留下…
展开
-
Android 源码分析 (十) 启动广播的发送和接收过程
广播的发送和接收过程广播的发送和接收分为 2 个阶段来分析,通过应用进程到 AMS SystemServer 进程的调用,然后 AMS 所在的进程通知应用进程的调用,下面我们先来分析应用程序进程到 AMSContextImpl 到 AMS 的调用过程广播发送多种类型的广播,比如 无序、有序、粘性广播,这里以最简单的广播无序广播来讲解,也就是发送一个普通广播,它的实现也是在 ContextWrapper 中直接来看 ContextWrapper 的 sendBroadcast 方法,代码如下:原创 2022-01-02 12:34:08 · 3051 阅读 · 0 评论 -
Android源码分析 (九) BroadcastReceiver 注册过程
广播的注册过程首先,想要使用广播就得通过 registerReceiver 方法注册一个广播,最终也是在 Activity 的父类 ContextWrapper 中实现,代码如下://ContextWrapper.java /** * 应用调用注册广播的函数 * @param receiver The BroadcastReceiver to handle the broadcast. * @param filter Selects the Intent broa原创 2022-01-02 11:37:53 · 1718 阅读 · 0 评论 -
根Activity启动过程中涉及的进程
在Activity启动过程中间会涉及4个进程 分别是Zygote进程、Launcher进程、AMS所在进程(SystemServer进程)、应用进程。他们关系如下首先Launcher进程向AMS请求请求创建根Activity,AMS 判断根Activity 所需的应用进程是否存在并启动,如果不存在就会请求Zygote进程创建应用程序,应用程序进程启动后,AMS会请求创建应用程序进程并启动Activity .步驟2 采用的Socket通信 步骤1 和步骤4 采用的Binder通信 时序图可以总结如下.原创 2021-08-16 13:33:38 · 227 阅读 · 0 评论 -
Bitmap占用内存大小的准确计算公式
一、已经持有了Bitmap对象,怎么知道它占用的内存大小 bitmap类本身 就有这个方法, bitmap.getByteCount()就行。它内部是计算方式:每一行的字节大小 * 总行数(即高度)android.graphics.Bitmap.java 源码 public final int getByteCount() { if (mRecycled) { Log.w(TAG, "Called getByteCount() on a rec...转载 2021-08-06 09:41:28 · 2635 阅读 · 0 评论 -
Android卡顿优化 | 基于AndroidPerformanceMonitor源码简析
目录1. 监控周期的 定义2. dump模块 / 关于.log文件3. 采集堆栈周期的 设定4. 框架的 配置存储类 以及 文件系统操作封装5. 文件写入过程(生成.log文件的源码)6. 上传文件7. 设计模式、技巧1. 【监控周期的 定义】blockCanary打印一轮信息的周期,是从主线程一轮阻塞的开始开始,到阻塞的结束结束,为一轮信息;这个周期我们也可以成为BlockCanary的监控周期/监控时间段;2. 【dump模块 / 关于.log文件】这一个周期的信息,除了展转载 2021-07-18 11:54:09 · 544 阅读 · 0 评论 -
Tinker 源码解析-代码修复和资源修复
之前对于热修复的原理了解过,现拿项目中使用的Tinker进行分析,加深理解记忆Tinker 流程图如下Tinker 将 old.apk 和 new.apk 做了 diff,生成一个 patch.dex,然后下发到手机,将 patch.dex 和本机 apk 中的 classes.dex 做了合并,生成新的 classes.dex,然后加载。一Tinker代码修复原理先从ThinkerApplication看public abstract class TinkerAppli.原创 2021-06-24 15:59:59 · 819 阅读 · 1 评论 -
Android 源码分析 (二) Launcher 启动
在看进阶解密Launcher 启动过程,记录加深后续的理解记忆系统启动的最后一步时启动一个应用程序用来显示系统中已经安装的应用程序,这个应用程序就叫做Launcher。Launcher在启动过程中会请求PackageManagerService返回系统中已经安装的应用程序的信息,并将这些信息封装成一个快捷图标列表显示在系统屏幕上,这样用户可以通过点击这些快捷图标来启动相应的应用程序。...原创 2021-06-02 22:10:54 · 708 阅读 · 4 评论 -
Android进程间通信方式
一IntentActivity,Service,Receiver 都支持在 Intent 中传递 Bundle 数据,而 Bundle 实现了 Parcelable 接口,可以在不同的进程间进行传输。 Bundle bundle = new Bundle(); bundle.putString("test", "来自A"); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.原创 2021-05-18 16:27:32 · 403 阅读 · 0 评论 -
HashMap源码分析及原理分析
一 HashMap设计思路为了让大家更好的理解HashMap的实现原理,下面会先介绍其设计思路。为了实现高效的查询,插入,删除元素,HashMap底层采用数组+链表+红黑树的数据结构。数组的特点:查询操作效率较高,根据索引查询只需要一次,但插入和删除操作效率较低,会移动整个数组。链表的特点:查询操作效率较低,需要遍历整个链表,但插入删除的效率较高,只需要改变其next引用即可。为了高效的执行查询,插入和删除操作,HashMap采用了数组+链表配合使用的方式,并在一定条件下将链表转化为原创 2021-05-06 23:36:57 · 344 阅读 · 1 评论 -
Android(2017-2018)BAT面试题整理(java篇,含答案)
Android(2017-2018)BAT面试题整理(Java篇,含答案)版权声明:本文为博主原创文章,未经博主允许不得转载。原文链接:http://blog.youkuaiyun.com/huangqili1314/article/details/79448187**个人面试经历总结文章:Android2017-2018最新面试题(3-5年经验个人面试经历)**BAT面试系列文章:一、...转载 2019-03-13 09:06:34 · 16841 阅读 · 0 评论 -
Android(2017-2018)BAT面试题整理(Android篇,含答案)
Android(2017-2018)BAT面试题整理(Android篇,含答案)版权声明:本文为博主原创文章,未经博主允许不得转载。原文链接:https://blog.youkuaiyun.com/huangqili1314/article/details/79824830**个人面试经历总结文章:Android2017-2018最新面试题(3-5年经验个人面试经历)**BAT面试系列文章:...转载 2019-03-13 09:02:46 · 357 阅读 · 0 评论 -
2018Android面试知识架构整理(转)
Android面试系列2018总结(全方面覆盖Android知识结构) 拿到一份offer比什么都重要,所以笔者专门花了近一个月的时间整理好了一份专门为Android面试而生的总结,注意的是笔者仅仅对面试技术方面的题目进行的总结,至于如何去和面试官去聊,怎么聊,聊得嗨,这里笔者就不谈了,因为这方面并不是笔者擅长的。闲话不多说,如果你好好看笔者总结的这些Android面试系列文章,不管你是小白,还...转载 2018-05-25 15:19:08 · 484 阅读 · 0 评论 -
一篇文章,全面总结Android面试知识点
篇文章的所有知识点是亲身经历十余家一二线互联网企业面试后总结产出,包含应聘Android开发岗位的各个方面的高频知识点,主要针对但不局限于Android应届面试。以下所有知识点都整理发布在Github/Gitbook,方便大家整理学习,文末附有链接。JavaJava基础Java集合框架Java集合——ArrayListJava集合——LinkedListJava集合——Hash转载 2017-12-11 14:00:57 · 426 阅读 · 0 评论 -
Android 开发工程师面试指南 LearningNotes
第一部分:Android(安卓)Android基础知识Android内存泄漏总结Handler内存泄漏分析及解决Android性能优化ListView详解RecyclerView和ListView的异同AsyncTask源码分析插件化技术自定义控件事件分发机制ANR问题Art和Dalvik的区别Android关于OOM的解决方案FragmentActivity&Fragment转载 2017-09-12 09:04:02 · 351 阅读 · 0 评论 -
推荐一些值得订阅的 Android 技术专栏
Android 的入门资料在互联网上可以用泛滥来形容。如果你有计算机基础,想快速学习 Android,做几个界面很轻易就能做到。然而移动创业热潮退去后,对 Android 开发者的能力要求也越来越高。当一个已经入门的开发者,想要成为一个更好的 Android 开发者的时候,就会发现互联网的资料太琐碎,而且资料的好坏也难辨。常常都会困惑我要如何提高自己,哪里有好的学习资料。1转载 2017-09-15 09:57:17 · 666 阅读 · 0 评论