自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021 届字节、百度、腾讯、阿里校招面经以及薪资大比拼你们酸了吗?

字节一面(1hour):自我介绍handler机制,sendMessage和post(Runnable)的区别。ThreadLocal原理,底层实现HashMap底层,扩容,LinkedHashMapService的onBind和onStart差别Activity启动生命周期,A跳转BAndroid持久化方案,SharedPreference是否可以跨进程通讯。ContentProviderClassLoader机制,双亲委派。如果我要写一个Activity类,那怎么保证加载的是我自己

2021-06-17 16:56:03 7851 15

原创 Android中高级开发进阶必备资料(附:PDF+视频+源码笔记)

Android的发展趋势让很多人寻找到了新的发展机遇,很多程序员纷纷转型Android开发,大批零基础人员参加培训进入Android开发领域,学习Android开发有效的学习方法能够迅速提升技能。Android开发学习过程中要掌握好基础知识,特别是java语言的应用,然后逐步提升开发者在学习过程中遇到的一些细致化的问题,把一些难点进行解决,在开发过程中把容易出现的一些难点进行合理化控制,避免在程序生成产品后出现问题,从而导致崩溃,这是非常重要的一点。这里分享一份由几位大佬一起收录整理的 Android学

2021-06-15 14:54:20 14453 22

原创 探讨 Kotlin 协程中 suspendCoroutine 的最佳实践与优化

Kotlin 协程为异步编程提供了强大而灵活的工具,而`suspendCoroutine` 或者 `suspendCancellableCoroutine`(下面统称`suspendCoroutine`)函数则是其核心之一。它允许我们将传统的回调风格的异步操作转换为挂起函数,从而使代码更加简洁和易于理解。然而,正确使用`suspendCoroutine`并不容易,需要遵循一些最佳实践和优化技巧。

2024-05-22 08:30:00 294

原创 Android菜鸟如何快速学习Android Framework?

在当今的Android开发领域,初级程序员的数量虽众,但市场对高级开发者的渴求却日益增长。究其根本,高级开发者不仅能够熟练运用技术解决复杂问题,更能深入底层,掌握Framework层面的知识,为应用性能优化、功能创新提供强大支撑。随着鸿蒙生态的兴起,不仅为Android开发者开辟了新的职业道路,同时也对开发者提出了更高的技术要求,尤其是对Android Framework的掌握成为了跨越初级与高级之间的一块重要跳板。对于有志于成为高级程序员的初级开发者来说,制定一个合理的学习路线并利用好学习资料至关重要!

2024-05-20 09:00:00 840

原创 Kotlin版本的Gradle全局配置及参考文档

直接在`.gradle`文件夹下添加文件`init.gradle` / `init.gradle.kt` for kotlin dsl.如果同时存在`init.gradle`和`init.gradle.kt`,则优先按照`init.gradle`中的配置,除非手动指定初始化脚本`--init-script`

2024-05-20 08:00:00 328

原创 Android开发者必读,从初级菜鸟蜕变为高级大牛

所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack。只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。:小程序介绍+UI开发+API操作+微信对接。

2024-05-17 09:30:00 787

原创 Android 获取手机内的所有小组件

为了获取手机内的所有小组件(App Widgets),你可以使用 `AppWidgetManager` 类的 `getInstalledProviders` 方法。这个方法返回一个包含所有已安装小组件信息的列表。你可以在自定义 Launcher 中使用这个方法来展示所有可用的小组件,并允许用户选择添加到桌面。

2024-05-17 08:30:00 822

原创 Android开发想要升职加薪,Framework这关你过了没?

在Android开发领域,如果你想在职场上更进一步,实现升职加薪的梦想,那么掌握Android Framework层面的知识就显得尤为重要。不仅如此,随着华为鸿蒙操作系统(HarmonyOS)的崛起,对Framework的深入理解更是成为了开发者技能必不可少的一项!!Android Framework是Android操作系统的核心组成部分,它提供了一系列的API和服务,使得开发者能够构建功能丰富的应用程序。

2024-05-15 09:00:00 921

原创 Android logFgsBackgroundStart源码分析

1. 如果前台Service从后台启动的,则将相关信息输出到日志。2. 输出到日志的内容有两类,一类是wtf,一类是普通的日志。3. 不重复记录启动信息。

2024-05-15 08:30:00 928

原创 2024年,Android程序员如何提升竞争力,应对就业压力?

2024年,Android开发者的就业市场面临着巨大的压力。大厂裁员,大批人才涌入市场,高校毕业生人数更是达到了1179万的历史新高。在这个形势下,Android程序员该如何提升自身竞争力,应对就业压力呢?我们要认识到,在当前形势下,仅仅具备基本的Android编程技能已不足以应对市场的竞争。从下面的招聘需求不难看出,现在精通等底层技术显然成为企业招聘的标杆但是大多数Android开发者,基本上每日的工作内容就是调用接口、画页面上和应付后端,妥妥的“缝合怪”,代码可读性还不如java,简直是开倒车。

2024-05-11 17:55:15 850

原创 在Android Native层实现Try/Catch异常处理机制

首先,我们定义一个结构体,用于保存线程的异常处理信息。这个结构体包括一个sigjmp_buf类型的变量ctx,用于保存setjmp的上下文;一个标志位ctx_is_set,表示上下文是否已经被设置;以及其他与异常处理相关的信息。int code;int line;int alarm;

2024-05-11 14:16:16 722

原创 现在学Android开发找工作难不难?市场是不是人满为患了啊?

市场确实是有点儿饱和,特别对那些刚入门的小伙伴,学了个基础就想找份工作,可能得碰壁头破血流了。因为现在遍地都是基础开发者,门槛低,活儿也多,竞争就大了。你得肯下苦工,往高精里学,多学几招,找个好方向钻进去,这碗饭还是有得吃的。再者说,现在这年头儿,各行各业都要APP,你得挑个方向,比如医疗、教育、智能家具这些,往里头钻,专门干,你就是专家了,饭碗儿就硬了。知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

2024-05-09 17:51:00 447

原创 ANR logcat&trace文件分析流程

发生ANR的时候,系统会产生一份anr日志文件(手机的/data/anr 目录下,文件名称可能各厂商不一样,业内大多称呼为trace文件),内含如下几项重要信息。

2024-05-09 15:12:38 241

原创 App开发和Framework开发走那个方向比较好呢,求解?

相比之下,Android Framework开发乃至更广泛的系统级开发,虽然技术门槛较高,但因其专业性和稀缺性,能够为开发者提供更为稳定且薪酬丰厚的职业机会。另一方面,由于应用数量的爆炸式增长,新应用要想脱颖而出,除了创意新颖,还需强大的市场推广和资金支持,这对于独立开发者或小型团队来说,门槛日益提高。而且掌握Android Framework的开发者,其技术栈在一定程度上具有较强的通用性,即便未来Android市场出现变化,也能较为容易地转向其他操作系统,如。同时,这些领域也伴随着更高的。

2024-05-07 18:38:33 741

原创 实用指南:如何规避 Android 开发中的内存泄漏陷阱?

通过本文的介绍与示例,相信大家已经对Android内存泄漏问题有了更深入的理解,并掌握了一些有效的优化技巧。在日常开发中,务必要重视内存泄漏问题,及时发现并解决潜在的内存泄漏隐患,以提升应用程序的性能和稳定性。

2024-05-07 17:49:30 964

原创 Android应用保活攻略

Android应用保活是一个老生常谈的话题,本文尽可能收集市面上的保活手段,希望能对你有所帮助。在Android系统中,保活(保持应用进程一直存活)就是为了让应用在后台持续运行,来实现某些特定的功能,如实时消息推送、定位服务等。然而,由于Android系统为了节省资源和保护用户隐私,通常会限制后台应用的运行。因此,我们需要采取一些策略来实现保活。以下是30个常见的Android保活手段,帮助你突破后台限制。保活策略可能会导致系统资源消耗增加、用户体验下降,甚至引发系统限制或用户卸载应用。

2024-05-05 19:03:00 923

原创 Android开发进阶学习路线指南,最详资料解析

近年来,不少人对Android行业发展趋势表达了关注。从宏观视角看,每个行业都会经历从初期爆发到成熟稳定的周期。Android开发领域在经历了2011年至2013年的迅猛扩张后,已步入了其成熟阶段。这一时期,企业对Android岗位的需求变得更加精细化,不再是仅凭基础技能就能轻松获得工作机会的时代。对于新手而言,此时入行看似时机稍晚,但实际上,市场对于拥有深厚技术功底和丰富经验的高级Android开发者的需求仍然迫切,呈现出一种“高手难求”的局面。

2024-05-05 18:56:37 294

原创 同样是安卓程序员,为什么别人成长那么快?

经过十余年的安卓开发生涯,从最初的App开发到现今深耕于Framework层面,我亲身经历了安卓行业的高潮起伏,直至现在的平稳但仍在持续发展的阶段。即便如此,安卓开发作为一个领域,仍然要求从业人员不断学习与进步。

2024-05-02 08:45:00 760

原创 在React Native中构建自适应用户界面

在`React Native`中构建自适应用户界面需要深入了解可用工具和技术。通过利用 `Dimensions API`、`useWindowDimensions`钩子、`SafeAreaView`组件和平台特定的编码策略,您可以创建响应式和自适应的`UI`,为不同的设备和平台提供最佳的用户体验。

2024-04-29 21:55:58 794

原创 Android 程序猿如何继续深入的研究技术层的知识?

个人自学Android开发,目前从事Android开发工作,独立完成过一个App 十万行代码左右,现在在想要更加深入的学习些东西,但是不知道从何处着手,目前的能力是,了解大部分官方文档中Android 开发中的技术,能够根据客户需求搭配出合理的技术组合(但是部分技术并不熟,开发时可查阅资料独自完成 PS:不是纯拷贝前人代码),了解Android开发的流程,但是因为小公司,目前尚无完整的测试流程。我现在还是,战战兢兢地学,小心翼翼地吹,能谨慎发表的意见,才不怕更高深的人揭短。”时,意气风发的答,有十万行。

2024-04-29 21:33:56 534

原创 高性能高安全性的最佳选择:Kotlin Immutable Collection 及纯函数的思考

在纯函数中,我们会非常频繁的使用 Immutable collection 的特性,也会非常频繁的使用或其他操作来合并两个列表,通过 MyPersistentList,我们便能够做到通过持有引用来实现一个伪 List,而不需要真的拷贝一个新数组,这种方式能够较好提高程序的运行效率,也能减少内存拷贝情况的发生,以至于 MyPersistentList 的合并性能可以超越原生 list 使用可变性做到的的 flatten 操作。

2024-04-26 17:49:38 637

原创 Android开发系统学习Android Framework全方位进阶攻略

学习Framework意味着能够深入理解Android系统的工作原理,从四大组件(Activity、Service、BroadcastReceiver、ContentProvider)的生命周期管理,到UI渲染流程、数据存储机制、网络通信方式等核心概念。首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!

2024-04-26 17:36:37 785

原创 Android 本地/远程数据源 object 改造

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。

2024-04-24 18:02:28 306

原创 Android Framework学习指南在线分享,Android内卷不是问题

随着移动互联网的飞速发展,Android开发市场一度呈现爆发式增长,吸引了大量人才涌入。然而,随着市场逐渐成熟,增量空间缩小,竞争加剧,导致僧多粥少的局面。大量开发者争夺有限的优质岗位,使得入职门槛提高,再加上现在Android平台的技术迭代迅速,新框架、新工具、新特性层出不穷。开发者需要不断学习新知识、掌握新技术以保持竞争力,而这种持续学习的压力和追赶潮流的紧迫感,内卷现象随之产生。

2024-04-24 17:46:27 701

原创 Android关于ViewPager你所不知道的一些优化

提到ViewPager想必各位同学一点都不陌生,它是Android中最常用的组件之一,一般配合Fragment一起使用。网上关于它的基本使用和常规优化方式也有很多,在这里我就不一一赘述,而是直接进入这篇文章的主题--**ViewPager一些新的优化方式**。

2024-04-22 18:27:38 1007

原创 鸿蒙系统求职新趋势:Android Framework成为鸿蒙开发的关键技能

随着华为鸿蒙操作系统的日渐成熟与广泛应用,市场对鸿蒙开发人才的需求呈现出前所未有的井喷态势。然而,在这片就业蓝海中,除了鸿蒙OS的特定技能外,对Android Framework的深入理解和掌握竟成为了决胜的关键之一。众所周知,鸿蒙操作系统基于分布式软总线、面向未来AI和IoT环境设计,它的出现旨在打破设备间的边界,提供无缝的跨终端用户体验。然而,鸿蒙在初期设计与开发过程中,充分借鉴了Android的成熟技术和生态系统,并对其进行了创新改良。

2024-04-22 18:18:54 1120

原创 Android native crash sdk实现之crash捕获&tombstone信息的生成

要实现好crash捕获sdk还是比较复杂的,还有挺多地方要考虑,比如:预留一部分内存以应对oom类的crash,设置一个备用信号栈以应对stack overflow,预留一些fd以应对fd不足的crash等等。

2024-04-19 09:30:00 964

原创 精通Android Framework不仅是高级开发者必备,也是初中级进阶和面试的关键

在Android开发领域,无论是高级工程师还是处在成长阶段的初中级开发者,或是面临着求职面试的应聘者,深入理解和掌握Framework都是一项必不可少的核心技能。对于初中级开发者来说,熟练掌握Android Framework是进阶至高级工程师的必经之路。它帮助开发者建立起扎实的底层知识基础,理解Android应用的运行机制和系统资源的分配原理,从而在日常开发工作中避免常见陷阱,提高代码质量和工作效率。例如,通过对四大组件生命周期的深刻认知,开发者能够更好地组织和管理应用架构,确保应用在复杂场景下稳定运行。

2024-04-19 08:30:00 1018

原创 Android 目前最流行的网络请求框架【Retrofit】

Retrofit`可以节省老一套网络请求写那么多代码的冗杂 为开发者提供了相对简单的请求方案 作为安卓目前最流行的网络请求框架,确实名不虚传.

2024-04-16 22:24:41 482

原创 Android开发的未来发展方向是啥,难道android真的凉了吗?

近年来,Android开发领域的热度引发了业界内外的诸多讨论,不少声音甚至提出了“Android是否已经凉了”的疑问。然而,当我们深究Android生态系统的现状与未来发展潜力,结合科技发展趋势以及市场需求的变化,答案却并非如此简单。事实上,Android作为全球最为广泛应用的移动操作系统之一,其未来的生命力和发展空间依然广阔且充满活力。与其担忧Android开发的前景,不如积极应对变化,把握新时代赋予的机会,为自己在Android开发道路上书写新篇章。

2024-04-16 22:09:57 845

原创 Android checkBroadcastFromSystem 源码分析

1. 受保护的广播只能由System进程(参考isCallerSystem小节)发送,否则会报错2. System进程只能发送受保护的广播,除非有下文说的特殊情况(参考Sending non-protected broadcast小节),否则会有wtf日志打印

2024-04-14 22:19:15 1004

原创 我对深挖Android Framework“变态”Android面试官说:您看我还有机会吗?

面试,对于我们这些技术宅来说,就像是一场没有硝烟的战争。面试结束,我逃也似的离开了那个充满挫败感的房间。阳光依旧明媚,但此刻的我却像被晒蔫的叶子,满心失落。这场与“变态”面试官的Framework对决,我以惨败告终。原来,理论知识的欠缺、实战经验的不足,加上对关键知识点的浅尝辄止,都成了我在这场战役中的致命伤。我开始重新审视自己的学习过程,决定从基础做起,一点点查缺补漏,一步步深入学习Framework。总有一天可以无惧面试,成功拿捏Framework!!!

2024-04-14 22:06:30 525

原创 SharedFlow与StateFlow在Android协程中的实践

总结来说,SharedFlow和StateFlow都是Kotlin Flow库中用于处理并发数据流的强大工具,根据不同的需求场景选择合适的Flow类型,可以极大地提升我们的开发效率和代码质量。

2024-04-11 18:30:23 552

原创 安卓开发真的走向“黄昏”了吗?

近年来,全网关于安卓开发的讨论似乎弥漫着一种悲观情绪,不少声音开始唱衰安卓开发的前景。这不禁让人疑惑:曾经风光无限的安卓开发,为何如今却遭遇如此质疑?

2024-04-11 18:12:32 604

原创 遥遥领先Flutter性能优化系列|一文教你完全掌握启动速度&&渲染优化

我们可知 Flutter 的主要渲染流程:在初次渲染时,我们会根据我们自己的业务代码,分别构建 Widget、 Element 以及 RenderObject 三棵树,其次对 RenderObjective Tree 的每个节点进行**遍历**,再对发生改变的节点处进行标脏处理,执行 paint 操作,形成一个 Layer Tree,最后把形成好的 Layer Tree 发送给 GPU 线程,**GPU 线程**在接收到 Layer Tree 之后,将 Layer Tree 转成为 **GPU** 的可执行

2024-04-09 19:58:30 777

原创 今年会不会成为有史以来就业最困难的一年!!!

日趋激烈的就业竞争形势以及不断失业庞大的人群,带给人们许多的焦虑与无奈。脉脉上:高开低走,人生的旷野我走累了,彻底引爆该类话题。裁员、失业、职场35岁,萦绕在打工人心头的乌云。而在今年,高校毕业生预计超过1170万人。比起有着“史上最难就业季”之称的2023年,2024大有赶超之势。不知道今年会不会是有史以来就业最困难的一年。但是目前的感觉是今年的求职面试情况比去年更加严峻,尤其是对于普通程序员群体,难度更大。相信在你的职业生涯中,一定遇到过这样的场景:投了一两个月简历,就寥寥几个面试。

2024-04-09 19:40:45 463

原创 flutte3.0 性能优化系列|一文教你完全掌握ListView卡顿优化

为了能够方便大家快速学习Flutter, 这里整理了Flutter学习路线图以及《Flutter Dart 语言编程入门到精通》&《Flutter实战:第二版》帮助大家配置相关环境,学习Flutter 的基本语法以及最后的项目实际利用。Dart语言是Flutter的开发语言,所以我们需要掌握Dart语言的基础知识,由于内容过多,截图展示的目录及部分内容,完整文档领取方式扫描下方二维码即可免费获取!《Flutter Dart 语言编程入门到精通》10.1 自定义组件方法简介10.2 组合现有组件。

2024-04-07 18:18:29 1184

原创 3月最新Android面试题+面经分享

以下是一些在面试中可能会遇到的问题,不分公司,因为这些只是冰山一角。记住,这些问题只是基础,真正的关键在于你的基础知识是否扎实,头脑是否清晰。每个问题的答案都是站在面试官的角度整理的,从考察问题延展到考查知识点,再到如何优雅回答,一面俱全,可以说是求职必备的宝典,接下来具体展示,

2024-04-07 17:40:25 504

原创 Flutter3.0 性能优化系列|一文教你完全掌握内存优化和dark虚拟机 (内存泄露)

1). dart代码都会映射c++中对应的方法2). 对象存放在 WeakPersitentHandle中3). 根据渲染原理: 通过检测渲染树节点数量来检测内存泄漏, 对比当前帧使用的EngineLayer个数,如果内存中的EngineLayer个数长时间大于使用的个数4). 通过WeakPersitentHandle找到调用链内存泄露工具: (重点分析)内存泄露具体代码总结:1. 弱引用Expando2. 解决访问的私有属性Dart vm_service3. 判断内存泄露。

2024-04-02 17:52:41 569

原创 Android Jetpack全面解析与实战指南,“懒癌”开发者福音!

在快速发展的移动应用市场中,开发者们不断寻求提高工作效率、提升应用质量的方法。Google推出的Android Jetpack应运而生,旨在帮助开发者利用最新的Android技术,更轻松地构建出色的应用。

2024-04-02 17:27:26 1237

空空如也

空空如也

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

TA关注的人

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