Android进阶
文章平均质量分 86
科小喵
Be myself~
展开
-
Jetpack常用库的简单使用(一)
写在前面我们经常被面试官问到,你的项目用的什么架构模式呀,MVC、MVP、MVVM ? 其实这些都是我们开发者自己设计的架构模式,非谷歌官方解决方案,我们有时候也很难把控最佳架构模式。 出于这个原因,Google官方给我们提供了Jetpack。初识JetpackJetpack是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码,并编写可在各种 Android 版本和设备中一致运行的代码,让开发者集中精力编写重要的业务代码。说白了就是谷歌官方给我们开发者提供了一套解决方案,让我们的代原创 2022-03-12 08:28:41 · 4442 阅读 · 0 评论 -
Handler核心源码分析
目录Handler的使用Handler初始化发送消息处理消息MessageQueue的阻塞和唤醒阻塞唤醒Handler对我们开发者的启发亮点一亮点二Looper什么时候推出Handler常见面试题前言对于一名开发者来说,阅读源码是一项必修的课程。在学习源码的过程中,我们可以了解到设计模式与源代码开发者的开发习惯。而在阅读源码的过程中,我一直秉承着郭霖大神的那句话“抽丝剥茧、点到即止”,我们没有必要完全深入每一行代码,通常我们可能只需要知道这...原创 2022-03-06 21:16:39 · 3157 阅读 · 0 评论 -
Android屏幕适配
为什么Android就得做屏幕适配由于Android系统是开源的,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,导致运行Android的设备多种多样,它们屏幕尺寸和像素密度都不甚相同。尽管我们通过基本的缩放和调整大小能使界面适配不同屏幕,但还是需要进一步优化,来确保所有界面能在不同设备上美观地展现出来。怎么做屏幕适配几个重要的概念屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米 比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.原创 2022-03-01 05:36:53 · 4888 阅读 · 0 评论 -
Retrofit中的注解、反射与动态代理
本篇博文所有涉及代码已上传至码云:https://gitee.com/zhangningke/java-basis.git代理模式代理模式是通过给某个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗来讲,代理模式中的代理对象就像我们生活中常见的中介, 比如你想租房,一般在各种租房软件上找房子,联系到的都是中介,而不是房东。代理模式的目的在于,一方面是通过引用代理对象的方式间接访问目标对象,防止直接访问目标对象给系统代理不必要的复杂性;另一方面是可以通过代理对象对访问进行控制。代理模原创 2022-02-27 17:59:16 · 631 阅读 · 0 评论 -
Kotlin学习笔记(五)
定义类针对我们定义的每一个属性,Kotlin都会产生一个field、一个getter和setter,field用来存储属性数据,我们不能直接定义field,Kotlin会封装field,保护它里面的数据,只暴露给getter和setter使用。属性的getter方法决定如何读取属性值,每个属性都有它的getter方法,setter方法决定你如何给属性赋值,所以只有可变属性才会有setter方法,尽管Kotlin会自动提供默认的getter和setter,但在需要控制如何读取属性数据时,我们也可以自定义原创 2021-11-08 00:28:59 · 2166 阅读 · 0 评论 -
Kotlin学习笔记(四)
集合集合可以方便我们处理一组数据,也可以作为值参传递给函数,和我们学过的其他变量类型一样,List、Set和Map类型的变量也分为两类,只读和可变。List创建与获取元素getOrElse是一个安全索引取值函数,它需要两个参数,第一个是索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来代替异常。...原创 2021-11-04 08:23:42 · 586 阅读 · 0 评论 -
Kotlin学习笔记(三)
null在Java中 NullPointerException对于我们开发者已经司空见惯,带给我们太多不必要的麻烦,Kotlin对此做了改良,Kotlin更多地把运行时可能会出现 null问题,以编译时报错的方式,提前在编译期强迫我们重视起来,而不是等到运行时报错,防患于未然,提高了程序的健壮性。对于 null值问题,Kotlin反其道而行之,除非另有规定,否则不允许变量为 null,这样一来,因为 null问题导致的运行时崩溃就从根源上得到了解决。如果我们给变量赋值为 null,编译器会.原创 2021-10-19 08:55:49 · 1770 阅读 · 0 评论 -
Kotlin学习笔记(二)
匿名函数我们在定义函数时,不给他名字,这个函数就是匿名函数了。匿名函数通常用法是作为参数传递给其他函数或者被其他函数返回。Kotlin因有了匿名函数,我们开发者就可以轻松实现对kotlin标准库内置函数的定制。案例:fun main() { val a = "luffy".count() var b = "luffy love honey".count({ letter -> letter.equals('y') }) println("a == " + a)原创 2021-10-12 08:43:02 · 806 阅读 · 0 评论 -
NDK开发C语言基础(第一天)
环境准备可以选择使用 VS2013开发,但是这个家伙比较重量级,所以我们还有一个选择就是使用Clion,如果只使用 Clion需要配置MinGW环境。VS2013下载链接:https://pan.baidu.com/s/1uOMk6LEAazBG5YQf_R6Ssg 提取码:3ts6ClionJetbrains旗下产品之一,主要用来开发C/C++,软件相比VS来说轻巧很多,官方下载链接:http://www.jetbrains.com/clion/?fromFooter...原创 2021-02-27 18:20:58 · 580 阅读 · 4 评论