本课程收集汇总来一些Android面试常见的问题,主要分为这几个方面:性能优化、Android Framework、View相关等知识。
关于自定义View,我们一般会重写onDraw方法来实现视图绘制,而很少重写onMeasure方法,但是其实onMeasure也同样重要
在自定义普通View时,会重写onDraw和onMeasure,不会重写onLayout,因为它主要是用于布局子View用的,只有在自定义ViewGroup时才会用到
在Android开发中,我们经常使用Handler去实现一些延时任务,非常的方便,但是如果使用不当,或者说考虑不够周全就会引起一些bug甚至是崩溃
MotionLayout是安卓新推出的一种布局,它是ConstraintLayout的子类,不仅拥有自适应的能力,还能实现组件的一些动画和运动效果
和Activity一样,View也有自己的生命周期,在其渲染到屏幕上之前会经过一系列生命周期函数,每个生命周期函数都有不同的使命
在Android中,触摸事件产生后会封装成一个MotionEvent对象进行传递,MotionEvent包含触摸事件的动作类型,坐标等信息
如果你曾经关注过Flutter和React Native,你应该了解React Native的组件最终会转化为对应平台的组件,比如Android和IOS,而Flutter有一套基于skia库的渲染引擎,Flutter的组件是通过这一套引擎进行渲染
软件测试是评估和验证软件产品和应用程序是否达到预期效果的重要环节,通过测试能够提升稳定性,验证软件功能是否完整,为用户提供更好的产品服务。
随着业务扩展、团队的扩大,APP的逻辑也变得越来越复杂,没有单元测试很难保证开发新功能或者协作开发不会影响到APP的正常运行
在多模块的Android项目中,我们需要在gradle中定义一些通用的参数、方法或者任务,然后提供给各个子模块使用
虽然自定义注解处理器是Java1.5发布的特性了,但是仍然十分强大,我们将学习什么是注解处理器以及如何使用注解处理器和代码生成库来一些好用的功能
RxJava在Android开发中主要用来管理多线程任务的调度,因为其简洁的链式调用以及方便的线程切换而被广泛开发者喜爱
委托属性是kotlin一个非常好用的特性,它可以让我们通过类来封装控制属性的set和get方法,通过这种方式来复用代码,能让代码更加简洁
随着项目的模块的增加,项目中的gradle配置文件也越来越多,但是这些配置中有很多项其实是相同的,比如说一些sdk相关的版本、lint的配置、packaging的配置等等
作为一个Android开发者,我们大部分时间可能都在调试代码,下面分享几种在Android Studio上的调试小技巧,帮助我们快速修复问题
对于大多数人来说,代码review非常的枯燥,也经常被忽略,但是它却是软件开发中非常重要的一项流程,它可以让我们提前发现代码的问题
compileSdkVersion和targetSdkVersion是在Android开发中常见的配置,而且这两个配置的一般都是同一个版本,那他们之间有什么区别呢?
SOLID是由五个原则的首字母组成,这五个原则分别是单一职责原则(Single Responsibility),开闭原则(Open-Closed),里氏替换原则(Liskov Substitution),接口隔离原则(Interface Segregation)和依赖反转原则(Dependency Inversion)
现在Android 12已经正式发布,很多应用都已经适配Android 12了,今天我们就来看看适配Android 12需要注意的地方