- 博客(322)
- 收藏
- 关注
原创 ViewModel 使用及原理解析(1)
user.name = “name15”;mUserLiveData.setValue(user);}}}//这些东西我是引入的androidx下面的import androidx.fragment.app.FragmentActivity;import androidx.lifecycle.Observer;import androidx.lifecycle.ViewModelProviders;public class MainActivity extends FragmentActivity {pri
2024-05-17 01:01:50
531
原创 RxJava + Retrofit + MVP(看完还不明白,吐槽我。适合初学者,VIP版MVP框架!!)
}}sbf.append(“\n收到响应: code ==> " + response.code()).append(”\nResponse: " + rBody);LogUtils.i(“网络请求”, sbf.toString());return response;}}看看打印出来的效果,很清晰哦:看这一点,要打印请求参数,返回参数,head等信息还是要通过okhttp的拦截器去做。这是吐槽Retrofit封装的一点首先是我个人观点。此框架适合大型一点项目,且此框架是代码逻辑简洁,清晰,分离出视
2024-05-16 23:24:22
493
原创 Retrofit各个注解的含义及作用(1)
本人从事Android开发已经有十余年,算是一名资深的移动开发架构师了吧。根据我的观察发现,对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。所以在此将我十年载,从萌新小白一步步成长为Android移动开发架构师的学习笔记,从Android四大组件到手写实现一个架构设计,我都有一一的对应笔记为你讲解。当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。
2024-05-16 22:02:46
314
原创 OpenJDK16 ZGC 源码分析
一小段在最佳位置由 JIT 注入的代码从堆中加载一个对象引用时检查这个引用是否是 bad color如果是,则自愈由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
2024-05-16 20:38:28
277
原创 MediaPlayer使用
Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。资源持续更新中,欢迎大家一起学习和探讨。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
2024-05-16 17:30:38
299
原创 kotlin基本语法
带有两个 Int 参数、返回 Int 的函数:将表达式作为函数体、返回值类型自动推断的函数函数返回无意义的值//varName表示变量值varName 表示变量值,varName表示变量值{表达式}执行表达式Unit返回类型可以省略可变长参数函数,用 vararg 关键字进行标识:函数的变长参数可以用 vararg 关键字进行标识:print(it)vars(1,2,3,4) ,输出1234定义只读局部变量使用关键字val定义。只能为其赋值一次。
2024-05-16 16:10:27
302
原创 HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等
.loadBar{width: 600px;height: 30px;border: 3px solid #212121;border-radius: 20px;position: relative;}.loadBar div{width: 100%;height: 100%;position: absolute;top: 0;left: 0;}.loadBar div span, .loadBar div i{box-shadow: inset 0 -2px 6px rgba(0, 0, 0, .4);w
2024-05-16 13:19:34
272
原创 Glide load源码、缓存机制分析(1)
active.acquire();}return active;}// EngineResource.javavoid acquire() {if (isRecycled) {throw new IllegalStateException(“Cannot acquire a recycled resource”);}if (!Looper.getMainLooper().equals(Looper.myLooper())) {throw new IllegalThreadStateException(“Mu
2024-05-16 11:30:32
275
原创 Flutter日记--修改App图标,名称,启动页
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。还有高级架构技术进阶脑图、高级进阶架构资料帮助大家学习提升进阶,也可以分享给身边好友一起学习。一起互勉~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!564310)]一起互勉~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
2024-05-16 10:12:57
307
原创 OOP - 开闭原则(OCP)(1)
在此为大家准备了四节优质的Android高级进阶视频:架构师项目实战——全球首批Android开发者对Android架构的见解。
2024-05-16 02:05:37
323
原创 LeetCode题解(二)0100-0199(1)
现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
2024-05-16 00:21:00
733
原创 Kotlin-风险高、RxJava-不老,Android-原生开发现状分析!(1)
请允许我用 Android 开发者的背景,描述一下我这两年所经历的事情:在过去的两年里,我启动了三个项目,我一直争取,至少参与其中一个项目的开发工作。我回过头来看这些已经存在的项目,并分析这些项目前期所做的技术决定对整个项目的影响。我写了这篇文章,也制作了很多 Android 开发的高级课程,也花了很多时间在互联网上讨论 Android 相关的主题。即使这样,我今天依然感觉跟不上 Android 整个生态系统的变化。可想而知,对于那些经验不足,需要指导的 Android 开发者而言,是多么地绝望。
2024-05-15 23:11:51
870
原创 Jetpack Compose 自定义布局以及固有特性测量
我们自定义一个Modifier的扩展函数,Modifier.customCornerPosLayout。该方法的作用就是可以按我们传入的CornerPosition,去把view放置在左上角,左下角,右上角,右下角。代码如下:TopLeft,TopRight,when(pos){复制代码首先我们声明一个枚举。叫CornerPosition,枚举有四种取值,TopLeft表示左上角,TopRight右上角,BottomLeft左下角,BottomRight又下角。
2024-05-15 21:42:37
635
原创 HTML5 CSS3 精美案例 : 实现VCD包装盒个性幻灯片(1)
那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可以看看,到底要学习哪些知识才能达到年薪60万+。通过职友集数据可以查看,以北京 Android 相关岗位为例,其中 【20k-30k】 薪酬的 Android 工程师,占到了整体从业者的 30.8%!北京 Android 工程师「工资收入水平 」今天重点内容是怎么去学,怎么提高自己的技术。1.合理安排时间2.找对好的系统的学习资料3.有老师带,可以随时解决问题。
2024-05-15 19:07:57
331
原创 Glide load源码、缓存机制分析(1)
active.acquire();}return active;}// EngineResource.javavoid acquire() {if (isRecycled) {throw new IllegalStateException(“Cannot acquire a recycled resource”);}if (!Looper.getMainLooper().equals(Looper.myLooper())) {throw new IllegalThreadStateException(“Mu
2024-05-15 17:35:40
400
原创 Flutter日记--修改App图标,名称,启动页
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。还有高级架构技术进阶脑图、高级进阶架构资料帮助大家学习提升进阶,也可以分享给身边好友一起学习。一起互勉~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!043896)]一起互勉~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
2024-05-15 16:17:36
511
原创 Xml—dom4j解析以及写入xml文档时的乱码问题
题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。【Android思维脑图(技能树)】
2024-05-15 15:18:39
358
原创 Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程
希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer!如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。
2024-05-15 14:24:46
510
原创 Retrofit源码学习五:Retrofit中同步、异步请求解析
因此,当我们在使用Retrofit的时候,我们只需要将焦点放在接口的创建上,通过接口来配置方法和参数,其他的工作都由Retrofit的内部来完成。我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
2024-05-15 12:48:30
343
原创 Ormlite 基本使用(关联表)(1)
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长。而不成体系的学习效果低效漫长且无助。时间久了,付出巨大的时间成本和努力,没有看到应有的效果,会气馁是再正常不过的。所以学习一定要找到最适合自己的方式,有一个思路方法,不然不止浪费时间,更可能把未来发展都一起耽误了。如果你是卡在缺少学习资源的瓶颈上,那么刚刚好我能帮到你。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
2024-05-15 11:24:42
291
原创 Markdown语法简介
考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!注意“`跟语言类型之间有一个空格展示效果:如果要在行内插入一句代码,可以使用`code`这样的形式插入:C语言里的函数scanf()怎么使用?展示效果:C语言里的函数scanf()怎么使用?
2024-05-15 06:04:03
939
原创 Kotlin可能带来的一个深坑
再回到前面提到的谷歌开发者的《实用 Kotlin 构建 Android 应用 | Kotlin 迁移指南》系列文章中,举的例子其实很不恰当。它这里的例子中,使用了 View 这个词,并且重载的几个方法,都是 View 的构造方法,我们在自定义 View 时,经常会和这三个方法打交道。但是谷歌工程师在这里举的例子,很容易让人误会,实际上你如果在自定义 View 时,这么写一定是会报错的。例如我们自定义一个 DemoView,它继承自 EditView。= null,
2024-05-15 04:45:11
1002
原创 Jetpack:Room超详细使用踩坑指南!
=======================================================================ORM(Object Relational Mapping)关系映射库,在Sqlite上提供了一层封装,优化数据库操作的便捷性。Room的架构图如下所示: Entity:一个Entity对应于数据库的一张表。Entity类是Sqlite表结构对Java类的映射,在Java中可以被看作一个Model类。 Dao:即 Data Access Objects,数据访问对
2024-05-15 03:32:28
1066
原创 HTML5 CSS3 精美案例 : 实现VCD包装盒个性幻灯片
对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的最后,互联网不存在所谓的寒冬,只是你没有努力罢了!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!常量*/对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
2024-05-15 01:56:01
627
原创 Glide load源码、缓存机制分析(1)
active.acquire();}return active;}// EngineResource.javavoid acquire() {if (isRecycled) {throw new IllegalStateException(“Cannot acquire a recycled resource”);}if (!Looper.getMainLooper().equals(Looper.myLooper())) {throw new IllegalThreadStateException(“Mu
2024-05-15 00:22:34
331
原创 Flutter日记--修改App图标,名称,启动页
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。还有高级架构技术进阶脑图、高级进阶架构资料帮助大家学习提升进阶,也可以分享给身边好友一起学习。一起互勉~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!111617)]一起互勉~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
2024-05-14 23:05:23
771
原创 [s1e7]超详细!3小时从0开始开发一个GitHub客户端(Android)
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。4. 开源项目页、搜索页。回忆技术选型时的操作;
2024-05-14 22:20:25
693
原创 Thinkphp使用CKEditor4
在ckeditor/config.js文件中设置//工具栏设置‘/’,‘/’,//自定义//加粗 斜体, 下划线 穿过线 下标字 上标字// 数字列表 实体列表 减小缩进 增大缩进。
2024-05-14 20:39:36
701
原创 RecyclerView-的复用机制
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
2024-05-14 19:00:40
774
原创 OkHttp源码解析(小白必看,建议收藏)
进入下一个调用dispatcher().enqueue();//运行中的队列} else {//等待中的队列,可看成支线相应的对象如下://可以很明显看出是添加到了runningAsyncCalls,readyAsyncCalls中此方法的大致内容:对请求的入队做了一些限制,若正在执行的请求数量小于最大值(默认64),并且此请求所属主机的正在执行任务小于最大值(默认5),就加入正在运行的队列并通过线程池来执行该任务,否则加入准备执行队列中。
2024-05-14 17:40:58
782
原创 Kotlin(2)-泛型与集合(1)
*要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。[外链图片转存中…(img-sqal3VBh-1715669286649)]
2024-05-14 14:48:19
754
原创 ItemTouchHelper 实现交互动画
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。欢迎大家一起交流讨论啊~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!m srcPosition 拖拽的item的position@param targetPosition 目的地的Item的position@return 开发者处理了操作应该返回true,开发者没有处理就返回false。
2024-05-14 13:10:50
549
原创 IOS开发之——画板-照片(89)
二 功能实现#import typedef void(^HandleImageViewBlock) (UIImage *image);@interface HandleImageView : UIView@property (nonatomic,strong) UIImage *image;@property (nonatomic,copy) HandleImageViewBlock block;@end#import “HandleImageView.h”#import “U
2024-05-14 11:26:47
242
原创 Glide 架构设计艺术
首先我们看下总体过程:这里以从url到inputstream二进制流为例,之所以这里有三条分路,这和glide的缓存策略有关。首先有一点要澄清,这里从Request到Data其实是跳过了内存缓存的介绍,毕竟如果内存中已有bitmap缓存,我们直接取用就可以了,无需这么麻烦(详细的缓存方案后续文章会介绍)。因此,这里有三条路径主要是磁盘缓存和网络缓存,而磁盘缓存有两种:DataCache 从原始Request加载到的二进制流直接缓存,比如从url加载的原图缓存ResourceCache 将从Request获取
2024-05-14 02:03:56
266
原创 Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?(1)
Android开发该如何快速上手Flutter?当你快速搭建好环境,简单了解 Flutter 的 API 之后,学习 Flutter 主要有两个核心点:一个是响应式开发,另一个是弄懂 Widget 的背后是什么?这两点对于Android开发来说都有一定的难度。为了帮助大家快速无痛上手 Flutter,我这里给大家分享一份资料Flutter 学习笔记1这是为什么?2什么是跨平台开发?3什么是Flutter、4 Flutter的特性5 Flutter构建应用的工具6 使用Flutter构建的热门应用7构建Flu
2024-05-14 00:44:22
738
原创 [译] 如何将 Stackdriver 连接到智能家居服务器以进行错误记录
现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。
2024-05-13 21:07:13
863
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人