自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(502)
  • 收藏
  • 关注

原创 史上最全的2023年最新版Android面试题集锦(含答案解析)

2023年最新的Android面试题合集

2023-03-28 19:54:08 6022

原创 Android Input系统分析和调试手段介绍

背景中讲述了输入事件的源头是位于下的设备节点,而输入系统的终点是WMS管理的某个窗口。最初的输入事件为内核生成的原始事件,而最终交付给窗口的则是KeyEvent或对象。因此Android输入系统的主要工作就是读取设备节点中的原始事件,将其加工封装,然后派发给一个特定的窗口以及窗口中的控件。这个过程由(以下简称IMS)系统服务为核心的多个参与者共同完成。Linux内核,接受输入设备的中断,并将原始事件的数据写入设备节点中。设备节点,作为内核与IMS的桥梁,它将原始事件的数据暴露给用户空间,以便IMS。

2024-05-24 14:27:40 396

原创 Android低代码开发 - MenuPanel的源码剖析和基本使用

由于它仿RecyclerView的布局,它可以实现少量固定数量的item的高效创建,但不适应于大量item的场景。根据代码我们可以得知,它是一个ScrollView,通常我们宽高都设置成match_parent,上面放一个titlebar,这样就填满了整个内容视图。这里面有addMenu()、addMenuGroup()和addCustomView()三种添加子控件的方法,只有前两种会受框架的约束。这两个方法都是用来更新菜单数据的,它们的区别在于前者是拿item的具体某一个子控件,后者是拿item本身。

2024-05-22 11:42:41 588

原创 解锁Android Framework奥秘:你的开发秘籍在此!

想必大家都知道,现在的移动开发不像以前那么火了,完全没有了几年前Android 开发那种火热的势头,与此同时,目前AI人工智能现在是火热半边天。此时就有了很多言论都说Android 开发凉了、不行了、没有前景了等此类的言论话题。其实目前这个阶段Android 还行,只是初级开发没有之前那么吃香了,。

2024-05-22 10:40:42 696

原创 Compose Desktop 写一个 Android 提效工具

是支持windows和mac的,并且支持浅色模式和暗黑模式,下面的截图都是在暗黑模式下。目的:都是为了减少重复性工作,节省开发者时间。简化Hprof文件管理:轻松一键导出、管理和分析Hprof文件,全面支持LeakCanary数据处理。内存泄漏分析:对 Hprof 文件进行内存泄漏分析,快速定位问题根源。位图资源管理:提供位图预览、分析和导出功能。Deep Link快速调用:管理和测试Deep Link,提高开发和调试速度。开发者选项快捷操作:包含多项开发者选项的快捷操作。

2024-05-18 16:30:39 882

原创 独家揭秘!全网最详细的Android车载开发学习资料

众所周知,近年来互联网行业的发展并不愉快,从开年到现在的五月份,网上裁员的信息源源不断,导致互联网行业就业形势不太理想,“。

2024-05-18 15:24:40 429

原创 Android WebRTC 视频的裁剪与缩放

设备间传输视频画面最优解是两个设备是两个设备尺寸分辨率一样,或者是设备尺寸不一样宽高比一样也可,但是实际情况往往有很多出入:webrtc 视频传输如何去处理设备间屏幕或者宽高比差异有以下三种方式保留原输出宽高比,保留所有内容可见,会存在黑边 (默认处理方式)填充满屏幕,保持原输出宽高比,但是会损失部分画面内容填充满屏幕,保留所有内容可见,但是会视觉呈现拉伸效果如果你看到了这里,觉得文章写得不错就给个赞呗?更多Android进阶指南 可以扫码 解锁更多Android进阶资料。

2024-05-17 16:46:48 559

原创 kotlin泛型:逆变与协变

泛型中涉及到的概念也不少,型变(Variance)、逆变(Contravariance)、协变(Covariance)、不变(Invariant).在 kotlin 中还有三个关键字inoutwherereified等,在java中同样也有?extends?super?这些概念是啥意思嘞?引用点概念说明型变(Variance)、协变(Covariance)、逆变(Contravariance)和不变(Invariant)是相关但不同的概念.

2024-05-15 19:03:58 822

原创 Android程序员想要年薪从20W到50W需要做什么?

无论您是刚刚开始学习Android开发,还是已经有一定经验的开发者,亦或是想要进阶和突破20~30K薪资范畴。学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这里分享一份涵盖了从基本的Android开发到高级知识内容的《Android八大模块进阶笔记》,包括车载开发、UI设计,Android Framework底层原理等方面。这份学习笔记不仅深入浅出,而且非常实用,让大家系统而高效地掌握Android开发的各个知识点。

2024-05-15 17:00:18 697

原创 Android源码目录结构介绍

Android源码包含比较多的文件,比如Android系统的所有页面,里面的所有app程序,还包含了sdk,各种镜像img等等。完整Android源码基本在200多G左右,而且这还是比较初始的设计板,里面几个基本功能的app程序。Android源码编译得到镜像文件img并不是很大,一般1-2G,把这几个镜像烧录到我们的Android设备上,Android设备就可以运行起来,就像我们正常使用的手机那样。

2024-05-11 10:48:54 874

原创 Android 逆向实践

五一放假回来,人有点颓废了,最近对Android的逆向有点兴趣,研究了下,顺便写篇文章记录下吧。

2024-05-11 10:40:25 591

原创 2024Android面试官常问面试题及答案整理6【持续更新】

一个性能不佳的程序可能会导致用户流失,甚至给企业带来经济损失。因此,面试官在面试中通常会关注候选人对于性能优化的理解和处理能力。。在软件开发中,数据是非常重要的资产,因此如何确保数据在系统崩溃或重启后不会丢失是开发人员必须考虑的问题。数据持久化技术可以帮助我们将内存中的数据保存到磁盘或其他持久化存储介质中,以确保数据的安全性和可靠性。

2024-05-11 10:31:18 531

原创 Android View 生命周期

结合上文可以考虑在 onWindowFocusChanged(true) 里去获取当前 View 的宽高尺寸。可以考虑在 onWindowFocusChanged 开始或停止动画。

2024-05-08 10:29:42 385

原创 2024Android面试官常问面试题及答案整理5【持续更新】

开源框架提供了大量的预构建和库,能够加速开发过程,提高代码质量,还可以减少技术风险,具有一定的可扩展性和灵活性。许多公司在开发过程中都会使用到各种开源框架,且开源框架涵盖了广泛的技术领域和复杂的细节。所以开源框架也是作为面试官常问的面试题,可以体现出求职者技术的深度和广度。

2024-05-08 10:17:52 938

原创 ConstraintLayout中设置负值的margin失效了?不妨换一种思路来实现!

在某些场景下,我们可能需要实现两个View的压盖效果,比如常见的气泡、小红点等等,如下所示:如果父布局是RelativeLayout,那么实现起来比较简单,只要给目标View设置负值margin,就能实现我们的效果;而如果父布局是ConstraintLayout,会发现设置负值margin不起作用,那么此时我们可以选择其他的方式来实现,针对这两种情况分别来实现一下。注:实现上述效果不止这两种方案,这里主要为了说明如何在ConstraintLayout中实现对应效果。

2024-05-05 10:04:46 278

原创 如何让find/grep提升工作效率?

不知各位掘友日常开发中搜索本地磁盘上某个文件或者某个重要字符内容,但又不知道在哪里,又或不知道是哪个文件,诸位是如何解决的?这样场景很多。今天就把以前在运维同事学到的小技巧分享给掘友,前运维同事,那指法了得,find, grep, vim, cat… 常用快捷键+命令,让人眼花缭乱,工作效率杠杠的。在前同事的影响下,我的日常search习惯也慢慢转变为命令行,即使开发平台是Windows, 我依然设法使用类Linux环境 —MINGW使用find/grep去查找文件或者关键字内容。

2024-05-05 09:59:23 646

原创 2024最全Android面试题及答案整理4【持续更新】

每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示,完整版可直接下方扫码领取。第一章 算法和数据结构面试题汇总第二章 Java核心基础面试题汇总第三章 Java深入泛型与注解面试题汇总第四章 Java并发编程面试题汇总第五章 Java虚拟机原理面试题汇总第六章 Java反射类加载与动态代理面试题汇总第七章 网络编程面试题汇总第九章 高级UI面试题汇总。

2024-05-05 09:48:19 1411

原创 2024最全Android面试题及答案整理3【持续更新】

每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示,完整版可直接下方扫码领取。第一章 算法和数据结构面试题汇总第二章 Java核心基础面试题汇总第三章 Java深入泛型与注解面试题汇总第四章 Java并发编程面试题汇总第五章 Java虚拟机原理面试题汇总第六章 Java反射类加载与动态代理面试题汇总第七章 网络编程面试题汇总第九章 高级UI面试题汇总。

2024-05-02 11:45:00 455

原创 Android T 窗口层级其一 —— 容器类 Android安卓

窗口在App端是以PhoneWindow的形式存在,承载了一个Activity的View层级结构。这里我们探讨一下WMS端窗口的形式。可以通过来看窗口显示的层级。

2024-05-02 11:30:00 2

原创 解决Android Studio不能创建aidl文件问题

仔细看其实就是配置文件的问题,在build.gradle(:app)下的配置添加。如图,在准备创建aidl文件时选项置灰。

2024-04-30 09:32:32 217

原创 2024最全Android面试题及答案整理2【持续更新】

每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示,完整版可直接下方扫码领取。第一章 算法和数据结构面试题汇总第二章 Java核心基础面试题汇总第三章 Java深入泛型与注解面试题汇总第四章 Java并发编程面试题汇总第五章 Java虚拟机原理面试题汇总第六章 Java反射类加载与动态代理面试题汇总第七章 网络编程面试题汇总第九章 高级UI面试题汇总。

2024-04-30 09:25:37 409

转载 Android Perfetto 监控应用启动耗时

Perfetto 可以捕获系统事件、CPU、内存、网络、GPU 等性能指标数据,并将其记录为轻量级的 Trace 文件,我们可以通过 Perfetto 的可视化界面([ui.perfetto.dev/)或者命令行工具进行查…在实际的开发过程中,做启动优化和监控单纯靠 Traceview 是不太准确的,因为 Traceview 获取的信息比较局限,而 Perfetto 能站在上帝视角来查看应用的启动过程。把应用安装到手机上,杀掉要监控的应用的进程,回到桌面,准备工作就算完成了。

2024-04-28 11:00:00 414

原创 2024最全Android面试题及答案整理1【持续更新】

每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示,完整版可直接下方扫码领取。第一章 算法和数据结构面试题汇总第二章 Java核心基础面试题汇总第三章 Java深入泛型与注解面试题汇总第四章 Java并发编程面试题汇总第五章 Java虚拟机原理面试题汇总第六章 Java反射类加载与动态代理面试题汇总第七章 网络编程面试题汇总第九章 高级UI面试题汇总。

2024-04-28 10:00:00 1129

原创 Android SytemWindow,Z轴排序问题

近期工作中遇到一个问题,就是在System级别的Window排序中遇到了一些问题,事后分析原因可能是使用方式不太符合Android的设计原则。不过在这个过程中也学习了很多东西,记录一下这过程中学习到的知识和最后的解决方案。

2024-04-25 10:42:31 275

原创 Android 14 应用适配指南

在Android 14,app可以在系统分享表中自定义行为。在分享表中,可借助ChooserAction.Builder来构建自定义ChooserAction,指定ChooserActions的列表作为使用Intent.createChooser创建的Intent的Intent.EXTRA_CHOOSER_CCUSTOM_ACTIONS。以下是创建自定义行为的一般过程**以发送多张图片为例//创建Intent//各种类型的图像//添加自定义行为的intentmContext,1,

2024-04-25 10:40:29 914

原创 面完字节、腾讯、美团、小米,总结了100+面试真题,Android程序员过来照镜子!

面试题和答案过多,全都展现出来也是不太现实的,我已经将这些资料整理成PDF版本,一共有几十万字,有需要的朋友可以扫描下方二维码,免费获取更多相关资料。

2024-04-25 10:35:14 932

原创 Android快捷键切换输入法

做为一个桌面环境,输入法是必不可少的,输入法的切换也应该按照桌面的使用方式,control + shift 或者 control + space 进行切换,对于一个安卓桌面,所以需要对其输入法的切换进行改造,笔者暂时只实现了快捷键切换系统输入法,然而实际上,安卓的输入法与桌面使用方式还有一些不同之处,包括配置,键盘,提示词等等。首先,从系统角度来认识一下安卓的输入法框架,他包含哪些内容,各模块之间又是什么关系,有了基本认识以后,再对比需求,尝试功能实现方式。

2024-04-23 10:27:43 1043

原创 人工智能会不会成为Android程序员的终结者?

无论人工智能发展到何种程度,如果我们能不断的提升自己,保持自身的竞争优势,我们就不会被这个时代所淘汰。作为一名Android程序员,我们要学习的东西太多太多,精细又繁多。所以在这里,我为大家整理了一套Android的进阶学习资料,方便大家更加系统有条理的学习Android知识,无论是转行还是进阶,都能够用得上。有需要的朋友可以扫描下方二维码,免费获取更多相关资料。

2024-04-23 10:22:38 668

原创 Android文件系统文件及其目录的基础知识

system是Android系统的核心文件目录,包含各种系统级的应用程序和文件。/storage/emulated/0是外部存储的根目录,包含公共文件和其他应用程序的数据文件。/data是用户数据的目录,也称为内部存储,只供当前用户访问和使用。

2024-04-19 14:37:03 905

原创 掌握Android framework!金三银四必备!

2、掌握关键组件:重点学习Framework层的关键组件,如Activity Manager、Window Manager、Package Manager等。掌握framework的程序员需要不断学习新技术、新知识,以适应市场的变化和技术的演进。1、深入学习Android系统架构:了解Android系统的整体架构,包括应用程序层、应用程序框架层、系统运行库层和Linux内核层。2、掌握Framework的程序员能够更好的理解软件架构,设计出更合理的系统结构,从而提升软件的质量和性能。

2024-04-19 14:25:49 647

原创 Compose编程思想 -- Compose中重组风险和优化

来看一个非常简单的例子,通过Text显示一个文案,当点击文案时,刷新为最新的数据。那么在这个过程中,当点击Text时,将name设置为新值,此时Text使用了name,那么Text所在的作用域,也就是会触发重组,当屏幕下一帧刷新的时候,重组作用域内的所有代码都会执行。接下来,我们使用Column替换,如果按照我们的之前的设想,当name发生变化时,那么在只有Column大括号内部的代码会重组,然而是这样吗?通过打印日志发现,当name发生变化之后,在Column外层的组件也发生了重组,那么为什么会这样呢。

2024-04-18 14:21:31 885

原创 为什么要学习Android framework?

2、国内的很多手机大厂,比如华为、oppo、vivo、小米等厂商都需要AF开发,更有其他APP大厂将Android framework作为 一个单独的岗位在招聘,所以学习Android Framework的前景还是有的。掌握framework可以使开发者提升自身的能力,更深入地了解应用与操作系统之间的交互,提升应用的质量和性能,优化用户体验,实现更高效和可靠的应用功能。学习framework可以使开发者具备更丰富的技术储备和解决问题的能力,提升自己在行业中的竞争力,保持自身的优势所在。

2024-04-18 14:16:07 953

原创 开发一款 SDK 需要注意哪些问题

上面这类错误相信遇到的应该不少,Java 有一套自己的 JDK 判断准则,Kotlin 也有,Kotlin metadata 的版本来自 KGP 版本,也即意味着,当你的 SDK 使用高版本的 KGP 编译时,业务方要么编译不过,要么被迫升级 KGP 版本,这会使业务方因为升级 Kotlin 而带来其他业务的不稳定性。SDK 提供抽象接口,业务方依赖接口调用,这么做的好处是,业务方面向接口调用使用简单,还能避免使用不稳定的内部实现,并且,内部实现可以进行混淆。

2024-04-16 14:46:12 1223

原创 Android--LayoutInflater

在 Android 应用中,界面是通过布局文件(通常是 XML 文件)来定义的。这些布局文件描述了界面的结构和外观,包括各种控件和它们的属性。但是,为了在应用运行时使用这些布局,我们需要将它们从 XML 文件转换成 Java 或 Kotlin 代码中的View对象。这就是的作用所在。

2024-04-16 14:39:27 785

原创 Android程序员想要一个月六万,需要达到什么样的能力?

回到主题上,如果要月入6w,第一得找对平台,比如大公司,第二得至少做到架构,而且是资深架构,业内知名大牛,或者管理方面得管一个大团队。反之,如果平台不对,比如一直在小公司,哪怕管得人再多,技术再好,估计年入30w真可能也就是个上限了。所以说,想要工资高,就得能力强。所以我为大家整理一份学习Android进阶的资料,方便大家更系统更直观的学习知识。无论您是刚刚开始学习Android开发,还是已经有一定经验的开发者,亦或是想要进阶和突破20~30K薪资范畴。

2024-04-16 14:36:08 248

原创 几行代码轻松监控Android GC 情况

不仅仅是android了,其实只要是java技术这一块的,做性能监控,gc次数/频率 肯定是要做的,服务端那边也有,只不过他们监控的手段和我们不太一样。但是目的是一样的,gc的频率是影响app流畅性的一个重要指标。

2024-04-15 14:17:33 282

原创 Android开发招聘现状!!!

面试了这么多公司,除了阿里,其他公司的每一轮都会要求做题,所以在面试之前要对各种常见面试题了解,有时间的话多去刷刷题找感觉。项目,大厂比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,这些在面试之前都要想清楚。说白了,现状是一回事儿,很多公司一边在裁员,一边也在招人。所以其实企业不是不缺人,也不是过于挑剔。而是企业需要的是有能力的人。基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。

2024-04-15 14:15:29 399

原创 kotlin中inline、noinline、crossinline

inline修饰的函数,内联函数。内联函数不仅可以内联自己函数体内部的代码,还可以内联函数体内部函数体的代码(Lambda表达式中的代码)。crossinline:局部加强内联优化,让内联函数里的函数类型的参数可以间接被调用,代价是不能在Lambda表达式里使用return。内联高阶函数的函数类型参数只能传递给内联高阶函数, 不能传递给普通高阶函数, 此时可以使用noinline禁止该lambda参数内联。noinline(非内联): 内联高阶函数的形参中,不希望内联的lambda参数。

2024-04-12 13:38:24 366

原创 【Android面经】大厂Android面经分享之哈啰

真是一场跳跃的面试啊,面试官人很nice,给我介绍业务相关啥的,明确的说给过了,过两天安排二面多家面试总结下来,考察的范围都很广,包括基础知识、项目。基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。项目,大厂比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,这些在面试之前都要想清楚。然后就是要多刷题。

2024-04-12 13:36:28 1058

原创 Compose 的 State 状态

应用中的状态是指可以随时间变化的任何值。这个定义很广泛包括数据库或类中变量的所有内容。Jetpack Compose 可帮助您明确状态在 Android 应用中的存储位置和使用方式。本指南重点介绍状态与可组合项之间的关联,以及 Jetpack Compose 提供的 API,您可以通过这些 API 更轻松地处理状态。

2024-04-11 14:36:32 911

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除