
Android
文章平均质量分 87
小涂Ss
这个作者很懒,什么都没留下…
展开
-
80%的大厂(阿里,腾讯,华为)面试官都喜欢问的点?
## 前言**Android Framework** 应该是每个Android 开发都需要熟知的知识点,不仅在开发中需要用到这方面的技术,面试中也是**面试官最喜欢问的点**,也是用来衡量 Android 开发级别的关键。今年以来,Android就业形势愈发严峻,各公司对开发人员的要求也是逐渐提高,在筛选Androi原创 2023-03-16 15:18:03 · 113 阅读 · 0 评论 -
【实战】Flutter开发环境搭建以及安装
【实战】Flutter开发环境搭建以及安装原创 2023-03-14 15:40:08 · 509 阅读 · 0 评论 -
一个高薪的Android开发工程师需要具备什么能力?
一个高薪的Android开发工程师需要具备什么能力?原创 2023-03-13 13:38:14 · 456 阅读 · 0 评论 -
Android Framework源码——Activity启动流程
Android Framework源码——Activity启动流程原创 2023-03-10 10:35:44 · 2854 阅读 · 0 评论 -
Java高级动态编程技术原理——反射的基本概念与class详解
java架构师之路上,反射是避不开的一点,今天就来讲解一下反射的一些基本概念,希望能帮助大家加深对反射的理解。原创 2023-03-08 17:56:35 · 169 阅读 · 0 评论 -
Kotlin相对于Java的有那些优势
Kotlin相对于Java的有那些优势原创 2023-03-08 17:01:20 · 1411 阅读 · 0 评论 -
一份好的简历到底能帮你拿到多少offer
一份好的简历到底能帮你拿到多少offer原创 2023-03-07 17:37:24 · 199 阅读 · 0 评论 -
flutter没学会?因为没看这个(超详细flutter解析,带免费资料源码)
flutter超详细解析,资料免费领取原创 2023-03-06 16:37:06 · 236 阅读 · 0 评论 -
今天终于知道了,阿里巴巴 P8、P9 及以上到底是什么水平?
做人做事不能万事向钱看,但是钱这个东西很多时候都反映了事物的价值以及一个人的能力水平。比如阿里P8、P9 这些拿着高薪的程序员他们的技术水平就一直是大家好奇的。今天在逛某乎的时候就恰好看见了一个几百万人关注的问题原创 2023-02-27 20:15:32 · 15445 阅读 · 1 评论 -
泛型使用方法
泛型又叫参数化类型,其主要描述的是在进行类,接口,方法的定义时,使用抽象的数据结构或者进行简单的约束,其真实装载的数据结构或对象关系由开发者在创建该类,接口,方法时实现,Android开发中最典型的泛型应用就是Gson解析后端返回数据的场景。原创 2023-01-27 17:09:59 · 752 阅读 · 0 评论 -
通知栏的那些奇技淫巧
综上,如果第三方应用的通知栏UI是自定义View的话,那么这里的方案是可以直接使用;如果第三方应用的通知栏UI使用的是系统主题,那么按照这个思路应该也可以通过反射实现。接入第三方轮子bypassHiddenApiRestriction(PS:远程依赖的时候使用并未成功,我将项目clone下来打包为aar,导入项目后使用正常!),并初始化:在中注册,然后启动服务}else{3.在监听通知栏) {sbn?:return// 获取通知// 点击事件容器// 点击事件容器对象// 强转。原创 2023-01-25 22:53:07 · 392 阅读 · 0 评论 -
MediaPlayer的核心-NuPlayer
之前整理过[Android MediaPlayer源码分析],知道MediaPlayer的核心是NuPlayer实现视频的解码、渲染、同步、输出,这篇深入分析NuPlayer相关的知识体系原创 2023-01-14 11:09:48 · 1380 阅读 · 0 评论 -
Android asm字节码插桩点击防抖以及统计方法耗时
Transform API 是 AGP1.5 就引入的特性,Android在构建过程中回将Class转成Dex,此API就是提供了在此过程中插入自定逻辑字节码的功能,我们可以使用此API做一些功能,比如无痕埋点,耗时统计等功能。不过此API在AGP7.0已经被废弃,8.0会被移除,取而代之的是Transform Action如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。原创 2023-01-13 11:06:09 · 1498 阅读 · 0 评论 -
从Android官方文档中寻找获取超广角的灵感
Android 9之后有逻辑摄像头的概念,这也是为什么之前计算视图角不能准确确定超广角摄像头的原因获取的焦距是数组,之前的方案是直接拿第1位计算,可能会存在不准确的地方。如果顺利获取到超广角进行预览、拍照了,还需要处理畸变的问题。所有的这一切看起来都很美好,但是在笔者实测发现:小米、OPPO的系统(ps:这里不清楚和系统版本是否有直接关系)是_无法通过Camera2读取到多摄像头_的,也就是说这个方案会直接gg。所以说等待手机厂商推出自己的方案可能才是正途,只是这个可能比较难。。。原创 2023-01-12 10:19:09 · 1211 阅读 · 0 评论 -
使用 Jetpack Compose 做一个年度报告页面
刚刚结束的 2022 年,不少应用都给出了自己的 2022 年度报告。趁着这股热潮,我自己维护的应用[译站] 也来凑个热闹,用 Jetpack Compose 写了个报告页面。效果如下:原创 2023-01-11 10:39:03 · 261 阅读 · 0 评论 -
Jetpack Compose : 一学就会的自定义下拉刷新&加载更多
一个成熟Androider的标志是自定义下拉刷新&加载更多😁因为我这个人比较懒(其实就是菜),所以直接拿Compose自带的下拉刷新来修改。这里先上效果图,第一张是Compose自带的下拉刷新,第二张是我们想要的下拉刷新。列表跟随手指滑动指示器样式修改//refreshing:下拉刷新状态//onRefresh:下拉刷新回调方法//设置下拉刷新//列表//...省略部分代码...//下拉刷新指示器想要让列表跟随手指滑动,咱们很容易就能联想到指示器。原创 2023-01-07 21:30:41 · 1753 阅读 · 0 评论 -
RxJava2 事件分发&消费绑定逻辑 简析
重温RxJava2源码,做个简单的记录,本文仅分析事件的发射与消费简单逻辑,从源码角度分析被观察者(上游事件)是如何与观察者(下游事件)进行关联的。如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。原创 2023-01-05 21:46:04 · 271 阅读 · 0 评论 -
Android自定义ViewGroup的交互,往往都是侧滑菜单开始
前文我们理解了ViewGroup的测量与布局,但是并没有涉及到多少的交互逻辑,而 ViewGroup 的交互逻辑说起来范围其实是比较大的。从哪开始说起呢?我们暂且把 ViewGroup 的交互分为几块知识区,1. 事件的拦截。2. 事件的处理(内部又分不同的处理方式)。3. 子View的移动与协调。4. 父ViewGroup的协调运动。原创 2023-01-04 22:04:25 · 243 阅读 · 0 评论 -
照着 Hugo 实现一个监控方法耗时的插件
到目前为止就实现了一个本地的 gradle 插件。目前存在的问题是,HugoPlugin 文件中引用的都是远程的代码,即}因此我们改动这两个 module 并没有什么用。解决办法是上传这两个 module,然后在 HugoPlugin 中引用我们上传的 module。完成这一步也就可以完成 gradle 插件上传远端了。作者:咋啦又原文链接:https://juejin.cn/post/7182499783037157437。原创 2022-12-30 21:07:43 · 315 阅读 · 0 评论 -
RecyclerChart动态属性(一)
如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。原创 2022-12-29 21:55:02 · 177 阅读 · 0 评论 -
一种Android应用耗电定位方案
Keep}!) {}}}!) {}}}}!) {}}}同时我们把需要记录的数据放在一个map中,为了不产生内存泄漏,我们可以直接存入对象的hashcode作为key,同时value为我们自定义的需要采集的数据。// acquire 方法调用次数// 释放次数// 最终持有唤醒的时间 = 最后release - startHoldTime// 开始唤醒的时间// 是否采用了引用计数// 针对调用acquire(long timeout)却不调用release 的场景。原创 2022-12-27 22:03:22 · 1040 阅读 · 0 评论 -
Android代码静态检查(lint、Checkstyle、ktlint、Detekt)
CheckStyle不支持kotlin,Ktlin和Detekt两者对比Ktlint它的规则不可定制,Detekt工作得很好并且可以定制,尽管插件集成看起来很新。虽然输出的格式都支持html,但显然Detekt输出的结果的阅读体验更好一些。以上相关的插件因为都支持命令行运行,所以都可以结合Git 钩子,它用于检查即将提交的快照,例如,检查是否有所遗漏,确保测试运行,以及核查代码。不同团队的代码的风格不尽相同,不同的项目对于代码的规范也不一样。原创 2022-12-26 22:00:13 · 921 阅读 · 1 评论 -
LinkedHashMap源码分析
HashMap元素插入是无序的,为了让遍历顺序和插入顺序一致,我们可以使用LinkedHashMap,其内部维护了一个双向链表来存储元素顺序,并且可以通过accessOrder属性控制遍顺序为插入顺序或者为访问顺序。本节将记录LinkedHashMap的内部实现原理,基于JDK1.8,并且用LinkedHashMap实现一个简单的LRU。原创 2022-12-22 16:35:52 · 251 阅读 · 0 评论 -
HashSet & HashMap 源码解析
之所以把_HashSet_和_HashMap_放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说_HashSet_里面有一个_HashMap_(适配器模式)。因此本文将重点分析_HashMap_。_HashMap_实现了_Map_接口,即允许放入key为null的元素,也允许插入value为null的元素;除该类未实现同步外,其余跟Hashtable大致相同;原创 2022-12-21 16:54:48 · 104 阅读 · 0 评论 -
全网最全Android车载应用开发学习路线规划
人们的脑海中,对未来汽车形态的想象已经变了,抛弃了精密的齿轮和轰鸣的燃油发动机,转而对代码、屏幕、电动和无人驾驶伸出双手。汽车行业对人才的想象,**也从车辆设计工程师,变成了软件算法架构师*原创 2022-12-20 16:47:17 · 900 阅读 · 0 评论 -
DDMLIB的源码解析
adb是Android调试桥,可以执行各种设备操作。客户端:用来发送命令,运行在PC守护程序(adbd):用于在手机或者模拟器上执行命令服务器:用于管理客户端和adbd之间的通信在ddmlib中使用nio与服务器进行通信,这里介绍一下nio。nio是非阻塞式IO,这里的非阻塞式是指发起IO请求时,如果没有没有数据准备好,会直接返回,而不会阻塞线程。而传统IO即BIO会阻塞线程,直到有数据准备好才执行。具体可以看Java NIO浅析AndroidDebugBridge:代表adb的客户端。原创 2022-12-16 21:36:07 · 503 阅读 · 0 评论 -
Android组件化帮手——ARouter原理
在编译器的主要工作就是生成中间件的代码,在gradle中加入Arouter的依赖后在编译的时候就会在对应的module下添加。因为编译生成的类的前缀都是 Arouter,所以moudle下的完整包名就是。目录,这个目录中主要存放Arouter生成的文件,比如。,就该执行第二个核心方法了。中便有了数据,并且参数。原创 2022-12-15 20:56:13 · 1175 阅读 · 0 评论 -
Jetpack Compose - LazyColumn、LazyRow、LazyVerticalGrid全面解析
仅构成和放置当前可见项的垂直滚动列表,内容块定义了一个DSL,它允许您放置不同类型的子集内容。例如,您可以使用LazyListScope.item添加单个项目,使用LazyListScope.items添加项目列表。原创 2022-12-14 21:32:49 · 1941 阅读 · 0 评论 -
Kotlin Sealed Class 太香了,Java 8 也想用怎么办?
为避免数据在分发过程中被恶意篡改,Kotlin 将 SealedClass 参数设置为 val 即可,Java 17 以下未引入 SealedClass,且若实现 Kotlin val 同等效果,样板代码瞬间飙出许多,等于解决了数据一致性的同时,滋生了更多 “不一致” 问题,例如日后修改某字段,而忘配置构造方法等等。痛定思痛,SealedClass4Java 应运而生,通过注解自动生成 SealedClass,像 Kotlin 一样使用 SealedClass。原创 2022-12-13 21:00:13 · 309 阅读 · 0 评论 -
Android通知发送原理之Framework实现(基于Android 10)
这是一个基于 Android 10 源码,全面分析 Android通知系统实现原理 的系列,这是第三篇,全系列将覆盖:这一篇我们将全面分析通知发送在框架层(服务端)的一系列处理说明:2.通知整体发送流程:Android 通知的发送涉及到两个进程:System进程(NMS所在的进程) 和 SystemUI, 流程如下:这一篇我们分析的是服务端的实现,由于 服务端的整个处理流程非常复杂,故细分为如下几个小节:通知发送的入口是方法,所以我们从这里开始阅读源码,在我们调用发送通知后,先调用了对通知做了预处原创 2022-12-06 16:27:14 · 1830 阅读 · 0 评论 -
framework | Android系统架构
本篇作为Android系统架构的概述,必须要清晰地理解Android系统的分层,以及每一层的作用。其次就是Android系统中涉及的重要进程,比如init、Zygote进程等,理解这些进程的运行,可以更好地从动态角度理解Android系统,在后面文章中,会对这些进程都仔细分析。原创 2022-12-02 21:37:26 · 2038 阅读 · 0 评论 -
带你深入理解Flutter及Dart单线程模型
众所周知,Java 是一种多线程语言,适量并合适地使用多线程,会极大提高资源利用率和运行效率,但缺点也明显,比如开启过多的线程会导致资源和性能的消耗过大以及多线程共享内存容易死锁。而 Dart 则是一种单线程语言,单线程语言就意味着代码执行顺序是有序的,下面结合一个demo带大家深入了解单线程模型。Future 适合耗时小于 16ms 的操作可以通过 compute() 进行耗时操作Dart 是单线程原因,但也支持多线程,但是线程间数据不互通。原创 2022-11-02 21:04:21 · 567 阅读 · 0 评论 -
Android Activity共享元素动画分析
所谓共享元素动画,就是从跳转到 通过控制某些元素()从开始帧的位置跳转到 结束帧的位置,应用过度动画的共享元素动画,其动画核心是使用的记录共享元素的开始帧、结束帧,然后使用过度动画管理类调用方法 应用过度动画所以咱们先介绍一下的一些基础知识是 开始提供的一个过渡动画管理类,功能非常强大;其可应用在两个之间、之间、之间应用过渡动画有两个比较重要的类和 , 咱们先来介绍一下这两个类顾名思义就是场景的意思,在执行动画之前,我们需要创建两个场景(场景A和场景B), 其动画执行流程如下:生成场景有两种方式; 一种是原创 2022-09-19 16:38:59 · 3100 阅读 · 2 评论 -
Android layer-list 使用,并设置item的size(大小)
看起来像是Tail随着文字的长度被拉伸没了,于是又想到,资源Tail.svg应该保持原有宽高大小,然后给原创 2022-07-19 16:44:54 · 2705 阅读 · 0 评论 -
Android UI刷新机制与SurfaceView
举例一个Activity的布局文件和逻辑如下:当我们点击remove_btn时,会出现SurfaceView所在的区域会出现10s黑块的现象,这个现象在我们平时开发中用到SurafceView时常常遇到,往往在主线程同时存在耗时操作和SurfaceView detach操作的时候出现,那么为什么Surfaceview从parent view上面detach的时候容易出现黑块现象呢?开发中遇到SUrfaceView黑块问题又该如何解决呢?下面对这两个问题进行讲解。回答问题之前,我们先了解下Android原创 2022-07-13 16:22:59 · 1846 阅读 · 0 评论 -
都2022年了还不准备跳槽?Android 大厂高频面试题解析大全(持续更新中~)
2022年已经悄然到来,新的一年,对于Android开发者们,也是听到、看到了很多不太利好的消息,很多大厂也是频频冲上热搜,这也着实让大家对自己的前途感到迷茫。其实近些年来,很多人都在不断地唱衰Android的发展趋势,虽然Android热度不如从前,随着行业的发展,各大厂对于从业者的要求也越来越严格,但其实那些基础知识扎实、开发技能过硬的开发者依旧是各大厂争相抢夺的香饽饽,很多大厂对于中高级Android开发者仍旧求贤若渴。为了更好地帮助大家进行学习,在这里给大家分享一份BAT大佬整理总结出来的《2原创 2022-02-25 17:54:34 · 245 阅读 · 0 评论 -
Android大厂高频面试题解析,吃透这一篇就没有拿不到的offer......
概述感觉毕业后时间过得真快啊,从 17 年 7 月本科毕业入职后,到现在快四年了,最近金三银四期间想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,最近基本上差不多了,把部分大厂的面试经验分享给大家,祝想找工作的同学都能去自己心仪的公司!A公司一面(1.5h)自我介绍Android 生命周期中 onStart 里面干了啥?介绍一下 Activity 的四种启动模式android:style 和 android:theme 的区别http 和 https 的区别,http 组成,ht原创 2022-02-24 17:16:58 · 282 阅读 · 0 评论 -
一个大专生,从屡屡碰壁到成功入职字节,他究竟是怎样做到的?
前不久听我一个字节的朋友说了一个神转折的故事。一名大专生,异常执着地向他们公司投简历,屡战屡败,屡败屡战,前前后后向字节跳动投了九次简历。你猜后面怎么着?还真让他成功了,第九次居然拿到了offer!看到这里,不过是一个普普通通的励志故事吧,一个菜鸡凭借自己锲而不舍的精神努力奋斗,终于获得了成功。虽然有些振奋人心,但是也称不上什么神转折。关键在于这件事的后续——那个大专生居然拒绝了字节的offer,去了华为。一个大专生,从屡屡碰壁到成功逆袭,他究竟是怎样做到的?通过多方打探,我得到了他的联系方式,原创 2022-02-23 16:26:52 · 814 阅读 · 0 评论 -
热度不再,但各大厂仍对中高级Android开发趋之若鹜......
目前的就业形势越来越严峻,很多大中小厂因为业务停滞不前都选择“精简人员”,节约成本。对于Android开发来说,面试的深度和难度也是一直在不断提升。想要抓住金三银四的好机会,大家应该紧锣密鼓的开始准备起来了。之前有个大厂CTO抱怨,面试几十上百人,都招不到一个合适的人。因为虽然Android的从业者众多,但真正能达到中高级开发者水平的少之又少,很多人都只会CV,对框架、底层原理一知半解,技术深度不够,广度也不足。为了帮助大家更好的掌握好底层原理,能够更好的跟面试官对答如流,这里分享给大家一份《中高级And原创 2022-02-22 15:56:34 · 190 阅读 · 0 评论 -
2022年Android面试题及答案收集(不断更新中)
前言找工作、招人必备之良品。后期不断完善中……如何招聘人,搜集了一些知识点。如何做好应聘准备,也收集了一些主要知识点,供你参考。Android基础知识:基本涵盖Android所有知识体系,四大组件,Fragment,WebView,事件分发,View绘制…Java基础知识&高阶知识点:基础部分不谈了,高阶部分:泛型,反射,Java虚拟机…算法与数据结构:链表,堆,栈,树…Android常用框架:异步,网络,图片加载,内存优化,依赖注入,数据库等框架Android前沿技术:Andr原创 2022-02-21 17:25:25 · 13006 阅读 · 3 评论