
面试
文章平均质量分 74
Jeled
敲敲代码,寻找灵感,发发呆,然后Ctrl + C, Ctrl + V, 完美!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021 最新Android知识体系
???? 2021 最新Android知识体系 - 掘金2021 年中:Android各大厂面试题汇总 - 掘金2021大厂Android面试最火问题,成功跳槽阿里! - 掘金原创 2021-12-02 11:50:20 · 1806 阅读 · 0 评论 -
Android 面试准备进行曲-Android 基础知识
基础部分Activity生命周期onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy()图片简要说明启动 onCreate -> onStart -> onResume 被覆盖/ 回到当前界面 onPause -> / -> onResume 在后台 onPause -> onStop 后退回到 onRestart ->转载 2021-12-02 11:47:11 · 243 阅读 · 0 评论 -
Android面试——>Android基础进阶
View相关View的绘制流程自定义控件: 1、组合控件。这种自定义控件不需要我们自己绘制,而是使用原生控件组合成的新控件。如标题栏。 2、继承原有的控件。这种自定义控件在原生控件提供的方法外,可以自己添加一些方法。如制作圆角,圆形图片。 3、完全自定义控件:这个View上所展现的内容全部都是我们自己绘制出来的。比如说制作水波纹进度条。View的绘制流程:OnMeasure()——>OnLayout()——>OnDraw()第一步:OnMeasure():测量视图大小。从顶层父V原创 2021-12-02 11:39:26 · 236 阅读 · 0 评论 -
Handler机制简介
一文掌握Android Handler消息机制核心代码 - 掘金Android知识点之Handler - 掘金面试再也不怕 Handler 了,消息传递机制全解析 - 掘金Android Handler解读 - 简书Android的Handler消息传递机制 - 简书原创 2021-11-30 10:07:31 · 960 阅读 · 0 评论 -
数据库GreenDao简介
1、GreenDao简介:greenDAO是一个开源的Android ORM,它让SQLite数据库的开发再次变得有趣。它使开发人员免于处理低级数据库要求,同时节省了开发时间。SQLite是一个很棒的嵌入式关系数据库。尽管如此,编写SQL和解析查询结果仍然是非常繁琐且耗时的任务。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),greenDAO使您摆脱了这些麻烦。这样,您可以使用简单的面向对象的API来存储,更新,删除和查询Java对象。 ...原创 2021-11-29 14:28:42 · 2243 阅读 · 0 评论 -
Android JetPack之——Room
room简介:在JetPack系列中,Room是一个非常重要的组件。作为一个ORM库,其在原生的SQLite数据库上面进行了封装,以便更好的提供服务Room的三个注解:@Entity:@Entity用来注解实体类,其代表的是一张数据库表,通常情况下@Entity注解中我们传入了一个参数 tableName用来指定表的名称,如果不传默认类名为表名。(1)@PrimaryKey注解用来标注表的主键,并且使用autoGenerate = true 来指定了主键自增长。(2)@ColumnInfo注解用原创 2021-11-29 13:56:12 · 2063 阅读 · 0 评论 -
自定义View简介
在Android中,所有的控件都是继承基类View的。我们通常在实现自定义View中,有几种方式自定义组合控件:就是将经常使用的UI封装成一个View,比如我们页面的标题 继承View:不复用系统控件逻辑,自定义实现自己需要的功能,比如贝塞尔曲线 继承ViewGroup:比如继承FrameLayout、RelativeLayout、LinearLayout,在原有的逻辑功能上扩展其他功能 继承View: 比如TextView、Button等,在原有的逻辑功能上扩展其他功能 继承View.原创 2021-11-29 10:57:14 · 219 阅读 · 0 评论 -
Retrofit网络请求介绍
Retrofit源码流程图:Retrofit是Square开源的一款适用于Android网络请求的框架。Retrofit底层是基于Okhttp实现的,与其他网络框架不同的是,它更多使用运行时注解的方式提供功能Retrofit优缺点:优点可以配置不同httpclient来实现网络请求,如OKhttp、httpclient等 请求的方法参数注解都可以定制 支持同步、异步和RxJava 超级解耦 可以配置不同的反序列化工具来解析数据,如json、xml等 使用非常方便灵活 框..原创 2021-11-24 10:53:25 · 1735 阅读 · 0 评论 -
Okhttp网络请求工具介绍
1.Okhttp请求流程:Okhttp内部的大致请求流程图如下所示:使用方式:public class OkHttpUtils { private static String TAG = "OkHttpUtils"; private static String url = "http://www.baidu.com"; //OkHttp 异步get请求 public static void OkHttpEnqueue() { OkHttp.原创 2021-11-23 16:04:21 · 3513 阅读 · 0 评论 -
RecycleView的复用、优化、缓存
1、RecycleView四级缓存:1.1、从上图中看出:RecycleView的缓存从上到下分为四层:scrap、cache、ViewCacheExtension、RecycleViewPool1.2、RecycleView缓存的对象是ViewHolder,而RecycleView复用的对象也是ViewHolder1.3、Recycler负责管理和缓存所有的ViewHolder。2、四级缓存介绍:2.1、scrap:从图中可以看出,scrap是用来缓存正在显示的ViewH.原创 2021-11-22 10:41:49 · 2166 阅读 · 0 评论 -
Glide知识简介
首先Glide是Google为我们推荐的一个快速高效的图片加载库,使用简单。第一步:添加依赖://glide的依赖 implementation 'com.github.bumptech.glide:glide:4.9.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'简单使用:一行代码即可搞定://一行代码搞定的方法Glide.with(上下文).load(url地址).into(im...原创 2021-11-19 11:19:16 · 2396 阅读 · 0 评论 -
HashMap、HashTable、HashSet简介
Hash是Map接口的实现Hash允许空的key_value键值对,HashMap被人认为是Hashtable加强版,HashMap非线程安全,所以当多个线程对同一个HashMap进行操作时,需要加同步锁,可以是Collections.synchroniredMap(new HashMap)来创建一个线程安全的Map,如果想构造线程安全的Map可以考虑ConcurrenHashMap。因为HashMap是无序的,因为HashMap无法保证内部存储的键值对的有序性。HashMap的底层数据结构是数组原创 2021-11-18 17:47:03 · 1009 阅读 · 1 评论 -
LiveEventBus、EventBus、RxBus的简介和区别
LiveEvenBus是一款Android的消息总线,基于LiveData,具有生命周期感知能力,支持Sticky,支持Androidx,支持跨进程,支持跨app优点:1.生命周期感知消息随时订阅,自动取消订阅 告别消息总线造成的内存泄露 告别生命周期造成的奔溃2.范围全覆盖的消息总线解决方案进程内消息发生 APP内,跨进程消息发送 APP之间的消息发送2.使用2.1添加依赖:implementation 'com.jeremyliao:live-event-bus原创 2021-11-18 16:21:31 · 2863 阅读 · 0 评论 -
LiveData介绍
LiveData是一种可观察监听的数据存储类,当生命周期发生、数据有更新时,observer可感知监听到。LiveData是最好跟ViewModel配合使用,而MutableLiveData继承LiveData,所以使用时可以直接用MutableLiveDataLiveData只有观察者的生命周期处于活跃状态时才会去通知观察者,比如started,resumed不会发生内存泄漏: observer会在LifecycleOwner状态变为DESTROYED后自动remo...原创 2021-11-18 15:28:29 · 670 阅读 · 0 评论 -
Service两种启动模式的区别
说明:service是一种服务,运行在主线程上,需要依托Android程序运行,不能做耗时操作1.startService生命周期:onCreate()—— onStartCommand() —— onDestory()启动完之后该service就在后台运行,其生命周期跟启动它的context没有关系,也不能跟context通讯2.bindService生命周期:onCreate()—— onBind()—— onUnbind() —— onDestory()启动完之后生命周期跟它的原创 2021-11-18 11:39:19 · 1936 阅读 · 0 评论 -
Activity 启动流程
Activity 启动的整体流程普通 Activity 的启动普通 Activity 的启动就是通过调用 startActivity 函数启动一个新的 Activity。总体流程如下图:其中涉及了两个进程,App 进程和 AMS 进程。整体步骤是:启动者 Activity 向 Instrumentation 请求启动目标 Activity; Instrumentation 通过 AMS 在 App 进程的 IBinder 接口(IActivityManager),访问 AMS,此时 A原创 2021-07-30 14:01:11 · 1565 阅读 · 0 评论 -
集合(面试可用)
ArrayList和LinkedList的区别: ArrayList和LinkedList分别是基于数组和双向链表实现的线性表。由于实现原理的不同,ArrayList和LinkedList在随机查询和插入、删除时的效率存在着差异。ArrayList随机查询快插入、删除慢,适用于查询频繁、修改少的场景。LinkedList随机查询慢插入、删除慢,适用于查询少、修改频繁的场景。1.ArrayListArrayList 是基于数组实现的、可以自动扩容的、地址连续的线性表 Arrayl...原创 2021-07-28 11:59:40 · 112 阅读 · 0 评论 -
面试必备-线程中的锁
VolatileVolatile有两个作用:1 保证内存可见性内存可见性指的是: 一个线程修改了这个变量的值,另一个线程能立刻看到。2 禁止指令重排(有序性)由于cpu在运行时,可能会根据上下文信息对指令做一些重排序,导致执行的顺序和我们期望的不一样,加了volatile之后,cpu将会取消对该变量的重排优化,保证运行顺序和我们代码期望的一样。volatile最常用在DCL单例中,volatile修饰的变量读操作跟普通的变量几乎没有区别,但是写操作效率会低一些(因为需要加内原创 2021-07-23 16:06:41 · 196 阅读 · 0 评论