自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 技术为本,才是Android程序员在行业变迁中保持竞争力的秘诀

在信息爆炸的时代,技术岗位的热度与冷暖时常成为人们热议的话题。不论是Android开发、Java编程、大数据分析,还是人工智能,每当行业出现波动,总有人忧心忡忡,质疑其前景,发出“XX凉了?”的感叹。然而,拨开现象看本质,问题的根源往往并不在于行业本身,而在于个人的技术实力与市场适应性。

2024-07-13 17:51:09 803

原创 Android程序员如何从初学者到技术大牛,持续学习与目标设定是关键

程序员这个行业,如同一条永不停歇的河流,技术体系更新速度快,新技术和新框架层出不穷。在这个行业中,所有的技术都像是一个无底洞,当你学得越多,就会发现不懂的越多,而不懂的越多,需要学习的就更多。因此,一旦选择了这个行业,就意味着你必须不断学习,才能跟得上大家的脚步。而要想成为一名优秀的程序员,更是需要通过正确的方法,设定正确的目标来进行不断地学习。因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。

2024-07-10 17:57:53 469

原创 从初级到专家:Android开发者如何规划自己的学习路径?

在Android开发领域,从初级到专家级的成长路径是一条充满挑战和机遇的道路。随着市场的饱和和技术的不断更新,初级和中级市场的竞争日益激烈,而高级市场的需求却日益增长。因此,对于真心想学习Android的开发者来说,弄清整个流程,明确自己的学习目标,是非常重要的。学习Android开发是一个长期的过程,需要持续的努力和热情。只有通过系统的学习和实践,才能在竞争激烈的市场中脱颖而出。因此,对于真心想学习Android的开发者来说,弄清整个流程,明确自己的学习目标,是非常重要的。

2024-07-05 17:53:54 1013

原创 Android技术体系深度解析:应用开发与系统层开发的职业路径

Android技术体系的庞大性和复杂性是众所周知的。对于初学者来说,面对如此庞大的知识体系,往往感到无所适从。大部分开发者都是从应用层开发入门,然后逐步深入到Framework层,甚至是系统层的驱动开发。然而,很多开发者在达到Framework层时便止步不前。在Android开发领域,有两条主要的职业发展路径:应用开发和系统层开发。应用开发方向对于应用开发者来说,他们更关注于用户界面的设计和功能的实现。随着经验的积累,他们可能会转向应用架构的方向,专注于应用的设计模式和架构设计。

2024-07-02 17:46:29 987

原创 Android Framework开发,高薪岗位的突破口

在软件开发的广阔宇宙中,有一个概念如同建筑师手中的蓝图,它为应用的构建指引方向,这就是Framework。那么,Framework究竟是什么呢?简而言之,Framework就像一座房子的框架,它提供了一套既定的运作模式和结构,为开发者预留了可以自由填充的空间,但所有的构建活动都在这个框架允许的范围内进行。换句话说,你的代码实际上是在被Framework的代码调用,而非反过来。对比之下,Library则更像是一个工具箱,里面装满了各种便利的方法和工具,供开发者按需调用,以实现特定的功能。

2024-06-27 22:06:27 1009

原创 Android程序员找不到工作,真的是因为市场饱和了吗?

在探讨Android程序员就业难的问题时,我们不能简单地归咎于市场饱和这一单一因素。诚然,随着移动互联网的飞速发展,Android开发一度成为技术领域的热门岗位,吸引了大量人才涌入。随着时间的推移,市场对Android开发者的数量需求确实有所调整,但这只是问题的一个侧面。更深层次的原因,其实涉及到技术迭代、行业细分、个人能力以及职业规划等多方面的因素。

2024-06-24 20:40:57 683

原创 Android开发从平凡中提炼不平凡,提升技术实力

许多人对Android开发有着误解,认为学习简单,做个App就能上手,工作机会多,毕业后容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。然而,真正进入职场后,会发现现实并非如此。工作初期,大多数时间确实是按照业务需求实现App页面的功能,按照设计师的设计稿实现页面的效果。然而,在这个过程中,会遇到各种需求,如调整字体大小、颜色,解决崩溃等问题。这些问题看似简单,但实际上,解决这些问题需要深厚的技术功底。

2024-06-19 16:51:29 547

原创 AndroidFramework,高手进阶,技术精进的黄金跳板

在移动互联网时代,Android操作系统凭借其开放性和灵活性,已成为全球最流行的移动平台之一。随着Android市场的持续扩张,应用数量呈爆炸性增长,对Android开发者的技能要求也在不断提升。在这之中,Android Framework开发以其独特的重要性与技术挑战性,正逐渐成为开发者职业生涯中的一片蓝海。Android Framework开发不仅是Android生态系统不可或缺的一部分,更是技术深度与创新精神的体现。

2024-06-15 17:51:35 585

原创 框架解析2-Retrofit

get方法返回的是CallAdapter接口的匿名实现类,其中adapter方法最终返回的ExecutorCallbackCall(executor, call)OkHttpCall.enqueue发起请求,获取response响应并完成数据解析。Retrofit是一个框架,它封装了网络请求功能,将网络请求的一整套流程都封装好了。该接口封装了所有需要发起的请求。

2024-04-10 13:52:19 838

原创 在onCreate post的message 与onResume究竟谁先执行

有一个朋友A在面试中被问到了这个问题,由于项目框架原因,很少与Activity打交道,今天我来一探究竟。

2024-04-10 13:46:17 280

原创 2024年学习Flutter有“钱”途吗?

学习并掌握Flutter的各种Widgets,包括基础Widgets(如Button、Text、Image等)和布局Widgets(如Row、Column、Stack等)。Flutter是谷歌于2017年创建的用户界面工具包,它是一个开源框架,提供完整的小部件、工具等包,可以用于开发各种应用程序,包括移动、web、桌面和嵌入式设备。Flutter的官方文档是一个很好的起点,其中包含了关于Flutter的详细介绍和教程。学习Flutter中的导航和路由机制,包括页面之间的跳转、传递参数等。

2024-04-10 13:39:34 1679

原创 Compose之主题

项目的theme文件中LightColorScheme/DarkColorScheme会给MaterialTheme的colorScheme重新赋值,若LightColorScheme/DarkColorScheme未定义surface和onSurface,则使用系统默认的颜色。Surface 的color 默认值是MaterialTheme.colorScheme.surface,contentColor的color 默认值是MaterialTheme.colorScheme.onSurface。

2024-04-08 14:12:09 519

原创 Android程序员心酸又励志!工龄二十年,但却被裁员!

希望大家无论什么时候都有从头再来的勇气,也有重新开始的能力,无论什么时候,要保持继续学习和向上的心。在这里为大家整理了一份面试资料,有需要的朋友可以扫描二维码,免费领取!

2024-04-08 14:08:14 426

原创 Chromium Video 是如何播放的

本文基于Android平台简单梳理了Chromium在打开一个视频资源时背后所发生的逻辑与源码调用流程。

2024-04-03 13:38:24 878

原创 ART虚拟机中的InlineCache

解释器在执行一条字节码时,需要获取一些隐含的信息作为该条字节码的输入,比如invoke指令需要知道方法的入口地址,或者需要知道对象某个字段的偏移地址。由于动态特性这些信息无法像C/C++那样在编译期就能确定,所以解释器的一个任务就是动态的解析出这些信息,这也是解释器性能无法达到机器码那么高效的一个原因。如果每次执行到同一条字节码时都去动态解析那些隐含的信息,那解释器花在动态解析上的时间可能是真正执行时间的数倍,这显然是不可接受的。到这里大家可能有个疑问,缓存是什么时候填充的呢?那具体的运行机制如何呢?

2024-04-03 11:43:16 250

原创 Android程序员的天敌是谁?

学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。,甚至能够自主查找并修复代码中的Bug。同时,Devin还能自行训练和微调自身的AI模型,实现智能化的持续优化升级。面对AI程序员的出现,我们能做的就是不断的创新,保持学习和自身的优势,不断提升自身的竞争能力,在面对挑战的同时也是在面对机遇。从某些程度上来说,Devin可能会取代一部分基层的程序员,也同时可以省掉中高级程序员的枯燥写代码过程。被淘汰的程序员,或许已经从事了和AI高度相关的工作,或者是其他一些AI无法取代的工作。

2024-04-03 11:39:47 1126

原创 Android 一种简单的线程阻塞检测方法

检测阻塞和卡顿本身就是开发需要注意的事项,另外关于VMStack,从Android 9 到Android 14版本依然在使用。不过它本身也是@hide类和方法,后续如何走向我们仍然需要注意,不过就目前为止,显然我们不用再去纠结native获取锁信息或者synchronized字节码插庄,直接使用java api就能实现。

2024-04-01 09:58:34 1115

原创 为什么很少看到老Android程序员?

无论你是二十五岁,还是三十五岁,又或者是四十五岁。不必焦虑程序员这个身份,程序员不是吃青春饭的。作为程序员,无论哪个年龄阶段,我们只需要保持自身的竞争优势,在岗位上不断提升自己并且持续更新自己的知识库!无论您是刚刚开始学习Android开发,还是已经有一定经验的开发者,亦或是想要进阶和突破20~30K薪资范畴。学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈如果你没有方向,这里分享一份涵盖了从基本的Android开发到高级知识内容的《Android十大模块进阶笔记。

2024-04-01 09:55:21 574

原创 ThreadLocal

中的引用类型有四种,根据引用强度的由强到弱,分别是: 强引用、软引用、弱引用、虚引用;13、Android多媒体应用开发实战详解:图像、音频、视频、2D和3D-2。在线程生命周期内不会再次被访问,如果线程是复用的,那么该。14、Android高级UI开源框架进阶解密(1)无水印版。10、Android 音视频开发进阶指南-无水印(1)24、高级Android插件化强化实战(附源码)25、高级Android组件化强化实战(附源码)的初始值,此方法的第一次调用发生在,线程通过。

2024-03-30 13:57:20 956

原创 鸿蒙开发到底需要学什么?

想要成为鸿蒙工程师,到底该如何学习?在这里为大家准备了系统的整套鸿蒙学习资料,希望能帮助到大家全面的学习有需要的朋友可以扫描下方二维码,免费领取!

2024-03-30 13:51:51 1672

原创 一文快速实战Kotlin协程与Flow

不知道大家有没有跟我一样的感受:即使自己用心在网上学过协程和Flow了,但过了一段时间就又忘掉了。这大部分的原因其实是因为我们缺少实战。我平时工作里根本就接触不到协程和Flow,自己又不敢硬往上写,万一出问题了咋整?所以一直就处于理论学习阶段,导致我学了就跟没学一样。今天就带大家一起来解决这个问题,通过几个简单的Demo和实战,巩固我们Kotlin协程和Flow的知识体系,从而能更有信心地用到实际项目中去。

2024-03-28 14:57:56 947

原创 Android程序员真的会被AI(Devin)所取代吗

Devin等AI程序员的兴起并不意味着传统程序员将被完全取代,而是需要程序员具备更高的专业技能和创新能力。同时Devin也改变了程序员的工作方式,程序员需要手动编写代码,而Devin则可以通过学习和分析大量的数据和算法,自动生成代码。Devin的出现也催生出新的需求和岗位,例如对AI程序员的定制、配置、维护等工作,这为程序员提供了新的职业发展方向。在整个行业来说,Devin的诞生是极大的促进,可以告别繁琐的重复工作,人类工程师可以将更多的时间投入到创新和策略性任务中。另一方面,以Devin的能力,

2024-03-28 14:54:48 912

原创 大公司如何做 APP:背后的开发流程和技术

所谓他山之石,可以攻玉。在这篇文章中,我只是选取了几个自己印象深刻的技术点,零零碎碎地写了很多,比较散。对于有这方面需求的人,会有借鉴意义。如果你看到了这里,觉得文章写得不错就给个赞呗?更多Android进阶指南 可以扫码 解锁更多Android进阶资料1、《Android性能优化实战篇》2、《音视频精编源码解析》3、24种设计模式介绍与6大设计原则4、360°全方面性能调优5、2021最新版数据结构与算法面试题手册 16、2023年Android中高级最全面试真题答案解析。

2024-03-27 14:23:35 968

原创 大专毕业,我是如何从外卖员成为Android程序员的?

对于转行做程序员,我能成功靠什么?如果你下定决心,做了选择,就一定要坚持到最后。如今我已成功转行,现在在这个行业只算得上一个新人,但随着岁月增长,我会慢慢成为一名“老猿”,但我也会依然把自己这颗学习的心保持到老。同样的,我也希望你在青春迷茫时,能不要放弃,因为每个人,都有柳暗花明的那一刻。

2024-03-27 14:13:55 668

原创 Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

在上一篇博文中介绍了一种轻量级的跨进程通讯方案-Messenger,Messenger实现起来非常简单,其底层原理也是AIDL,更像是一个简易版的AIDL,但简单的东西往往也有其局限性,Messenger的主要作用是传递消息,它无法实现RPC功能也就是无法让我们在客户端本地就能调用远程的方法,而且Messenger是以串行的方式处理,无法同时处理多个请求,只能一个一个的处理。而AIDL就可以很好弥补Messenger的不足,虽然实现起来相对复杂一些,但它功能强大,无疑是跨进程通讯的首选方案。

2024-02-20 07:45:00 1516

原创 Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身

在Android中进程间通信是比较难的一部分,同时又非常重要,针对进程间通信,博主会用四篇文章来介绍,本篇文章为IPC系列的开篇,主要介绍一些IPC中用到的一些概念、基础等,目的是让读者朋友们在学习IPC之前对一些必要的知识有一个大体的把握。在Android中进程间通讯的方式有很多种,在后续的三篇中会分别介绍每一种方式的实现过程已经各自的优缺点。

2024-02-20 07:00:00 699

原创 Android查缺补漏(线程篇)-- IntentService的源码浅析

在Android中有两个比较容易弄混的概念,Service和Thread,我们都知道这两个东西都可以执行后台任务,但要注意的是Service是跑在主线程中的,如果不做特殊处理是会阻塞主线程的,而IntentService正好弥补了这一点.本篇博文会将对IntentService的原理做一个简单的分析。

2024-02-05 08:15:00 517

原创 Android查缺补漏(线程篇)-- AsyncTask的使用及原理详细分析

在上面的源码中可知,最终getHandler()方法最终是为sHandler,而sHandler是一个静态的Handler对象,sHandler的作用是将执行环境切换到主线程中,所以这就要求sHandler要在主线程中被初始化,而由于静态成员会在类加载时被初始化,这就又要求了AsyncTask类必须在主线程中加载,否则该进程中的AsyncTask任务都无法正常工作。从上面源码我们可以看到,一个AsyncTask实例任务只能运行一次,只有是在PENDING状态下,任务才能正常运行,否则就会抛出异常。

2024-02-05 08:15:00 1053

原创 3分钟搞定,学会Android滑动冲突解决技巧

如果你看到了这里,觉得文章写得不错就给个赞呗?更多Android进阶指南 可以扫码 解锁《Android十大板块文档》1.Android车载应用开发系统学习指南(附项目实战)2.Android Framework学习指南,助力成为系统级开发高手3.2023最新Android中高级面试题汇总+解析,告别零offer4.企业级Android音视频开发学习路线+项目实战(附源码)5.Android Jetpack从入门到精通,构建高质量UI界面6.Flutter技术解析与实战,跨平台首要之选。

2024-01-30 07:45:00 1239

原创 Android大图监测的这三种实现方式,你最喜欢哪种?

如果你看到了这里,觉得文章写得不错就给个赞呗?更多Android进阶指南 可以扫码 解锁《Android十大板块文档》1.Android车载应用开发系统学习指南(附项目实战)2.Android Framework学习指南,助力成为系统级开发高手3.2023最新Android中高级面试题汇总+解析,告别零offer4.企业级Android音视频开发学习路线+项目实战(附源码)5.Android Jetpack从入门到精通,构建高质量UI界面6.Flutter技术解析与实战,跨平台首要之选。

2024-01-30 07:45:00 1800

原创 Android Lifecycle 深度解剖:三大类、五种状态、七大事件全面解读!

如果你看到了这里,觉得文章写得不错就给个赞呗?更多Android进阶指南 可以扫码 解锁《Android十大板块文档》1.Android车载应用开发系统学习指南(附项目实战)2.Android Framework学习指南,助力成为系统级开发高手3.2023最新Android中高级面试题汇总+解析,告别零offer4.企业级Android音视频开发学习路线+项目实战(附源码)5.Android Jetpack从入门到精通,构建高质量UI界面6.Flutter技术解析与实战,跨平台首要之选。

2024-01-19 08:30:00 875

原创 HarmonyOS NEXT开发体验的测试版本,纯血鸿蒙越来越近了

华为官方正式宣布鸿蒙生态千帆启航仪式将于1月18日在深圳举办,届时,将见证鸿蒙生态的新里程。在本次仪式上,备受期待的“纯血鸿蒙”——HarmonyOS NEXT开发者预览版有望公布最新进展。招募开启,一个实名账号具有 5 次机会,通过要求为 100 分(即满分)。HarmonyOS NEXT 开发者预览版是在正式版本发布前,为更全面地验证产品的功能以及保障产品的质量,在现网环境下招募真实的开发者参与开发体验的测试版本,面向一部分开发者,名额有限。

2024-01-19 08:00:00 784

原创 【Android】HttpURLConnection接口

如果你看到了这里,觉得文章写得不错就给个赞呗?更多Android进阶指南 可以扫码 解锁《Android十大板块文档》1.Android车载应用开发系统学习指南(附项目实战)2.Android Framework学习指南,助力成为系统级开发高手3.2023最新Android中高级面试题汇总+解析,告别零offer4.企业级Android音视频开发学习路线+项目实战(附源码)5.Android Jetpack从入门到精通,构建高质量UI界面6.Flutter技术解析与实战,跨平台首要之选。

2024-01-16 07:15:00 990

原创 Android framework很多人第一步都难踏出去,真有那么难吗

直到现在,“程序员”这个词在人们心中依然与“高工资”、“好找工作”等形容词紧密相连,这些传统观念早已深入人心。然而,令人始料未及的是,2023年的计算机行业并未如人们所想的那样充满希望,而现在2024刚刚开始也是很难预料后面的情况。对于从事计算机行业的人来说,特别是Android开发领域,经济下滑、公司大规模裁员的现象屡见不鲜。那些经验丰富的老程序员面临就业困境,而刚毕业或初入行业的新人则因缺乏经验、技术水平不足等原因难以找到工作。整个Android开发领域仿佛陷入了沉寂。

2024-01-16 07:15:00 1045

原创 整理2023全年Android面试题:从面试技巧到技术要点,全方位准备!

在当前的Android面试中,要考察的内容非常广泛,包括技术素养和面试技巧的多个方面。首先,对于技术素养的考察,深入理解和掌握Android开发的核心概念和基础知识是必不可少的。这包括但不限于对四大组件的深入理解,对Android系统架构和框架层源码的熟悉,以及对于数据存储、网络通信、性能优化等方面的知识。这些都是构建一个稳定、高效应用的基石,因此对于每一个Android开发者来说都是必须掌握的。其次,面试技巧也非常重要。

2024-01-10 07:30:00 463

原创 【Android笔记】Jetpack Compose

在compose中,Modifier提供了一系列函数,使用它们可以提供很多布局上的参数,比如padding等信息,通过自定义modifier来看下它是怎么工作的。通过扩展函数来扩展Modifier中的方法,因为modifier是链式调用的,我们扩展的方法也应该符合链式调用规则,Modifier.then方法用来辅助完成链式调用,它接受一个Modifier,返回一个与这个Modifier结合后的Modifier。

2024-01-10 07:15:00 870

原创 Android插件化浅析

这个方法内主要就是通过packageManager获取已经安装在手机里的应用程序列表,然后进行判断是否是我们主应用的插件,如果是的话,就将其应用程序名字和包名存入一个map集合中,然后添加到我创建的pluginList中,值得强调的一点是,如何确定是我们应用的插件呢?插件的图片id,都拿到了,最后给背景设置一下,就可以完成切换了,到这里,本篇博客就到此结束了,这里仅仅是我目前对于插件化一些理解,插件化还有很多需要深入研究的地方,等深入研究之后,会继续和大家进行分享。该方法可以通过包名来获取对应的上下文。

2023-12-30 08:00:00 1052

原创 强大的提示控件TextInputLayout使用以及源码分析

这里出现了一个mCollapsingTextHelper,通过它可以设置文字大小的加速动画,FAST_OUT_SLOW_IN_INTERPOLATOR,快出慢进的效果,还有设置位置的加速器setPositionInterpolator,setCollapsedTextGravity设置折叠文字的Gravity,看来这个mCollapsingTextHelper的作用还是很强大的,我们后面再看它的源码,先继续往下看。说明在源码中必定有添加这个提示的逻辑,这里我们后面在讨论,先继续往下看。

2023-12-30 07:15:00 1090

原创 轻量级控件SnackBar使用以及源码分析

Snackbar的布局里面果然是使用了这个布局,如果我们要改变布局的样式,我们就修改这个文件里面的相关属性就可以了,就比如这里的textAppearance。在这里面最重要的一句就是渲染了一个R.layout.design_layout_snackbar的布局,很明显这个布局是系统自带的,很明显在这里已经写死了,所以我们想修改这个SnackBar显然是不行的,而且它还强转成了SnackbarLayout布局,我们可以查看一下这个布局的代码,这个布局在design包的layout下。

2023-12-15 07:45:00 1136

原创 Material Design系列探究之LinearLayoutCompat

beginning,middle,end属性值分别指明将在何处添加分割线。到这里,所有的LinearLayoutCompat的源码分析,就结束了,为什么要看分割线绘制的源码,因为在很多控件中并没有分割线,我们可以通过学习谷歌的源码,仿照着进行分割线的绘制,比如recyclerView就没有分割线,但我们可以自己写一个分割线,对于 recyclerView分割线设置,有很多大神的博客都有描述,这里就不在赘述了,以后的博文会陆续给大家带来Material Design其他控件的博客。

2023-12-15 07:45:00 1049

空空如也

空空如也

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

TA关注的人

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