Android基础
文章平均质量分 92
北路向一
这个作者很懒,什么都没留下…
展开
-
Activity生命周期及启动模式详解
Activity生命周期及启动模式原创 2022-04-14 14:20:12 · 2592 阅读 · 0 评论 -
安卓面试之自定义View流程及原理
自定义View原理学习博客整理原创 2021-12-06 20:47:33 · 3200 阅读 · 0 评论 -
Android中Crash原理及监控处理
什么是Crash?在应用启动及运行中,出现闪退(崩溃),屏幕提示当前程序停止运行的弹窗,类似于windows的应用程序崩溃。为什么会出现崩溃?概括来讲,就是程序运行中有未捕获的异常,未被 try-catch,导致进程被杀。线程中抛出异常后的处理逻辑?一旦线程出现异常,并且代码中为捕获的情况下,JVM 将调用 Thread的 dispatchUncaughtException 方法把异常传递给线程的未捕获异常处理器。默认情况下,线程是没有处理未捕获异常的能力的,线程组处理未捕获异常的逻辑原创 2021-12-01 14:03:05 · 2913 阅读 · 2 评论 -
安卓BroadcastReceiver基础
1.作用用于监听 / 接收 应用发出的广播消息,并做出响应应用场景a. 不同组件之间通信(包括应用内 / 不同应用之间)b. 与 Android 系统在特定情况下的通信 如当电话呼入时、网络可用时c. 多线程通信2.原理Android中的广播使用了设计模式中的观察者模式:基于消息的发布/订阅事件模型。因此,Android将广播的发送者 和 接收者 解耦,使得系统方便集成,更易扩展模型中有3个角色:消息订阅者(广播接收者)消息发布者(广播发布者)消息原创 2021-11-30 10:44:49 · 141 阅读 · 0 评论 -
安卓自定义注解基础(一)
学习博客:https://juejin.cn/post/68449034378349117571.概念篇什么是注解先来看看Java文档中的定义An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have no direct effec.原创 2021-11-01 19:04:06 · 336 阅读 · 0 评论 -
安卓Bitmap基础
参考博客:https://juejin.cn/post/6844903641032163336Bitmap加载1.Bitmap基础说明ARGB_8888:ARGB分别代表的是透明度,红色,绿色,蓝色,每个值分别用 8bit 来记录,也就是一个像素会占用4byte,共32bit.ARGB_4444:ARGB的是每个值分别用4bit来记录,一个像素会占用2byte,共16bit.RGB_565:R=5bit,G=6bit,B=5bit,不存在透明度,每个像素会占用2byte,共16bit.A.原创 2021-11-01 16:32:46 · 283 阅读 · 0 评论 -
安卓中ThreadLocal基础
1.ThreadLocal 概念ThrealLocal 提供线程据局部变量。通过 get 和 set 方法的方法的访问都是线程私有的,独立初始化的变量副本。通俗来讲:它可以以线程为界限来存储数据,该数据存储后,只有在指定的线程中才能获取到存储的数据,对于其它线程而言该变量为默认初始值(null)。使用场景:当某些数据以线程为作用域,并且不同的线程数据互相独立的时候,就可以考虑使用 ThreaLocal2.关键类及方法ThreadLocal 是一个泛型类,ThreadLocal#get()原创 2021-10-18 16:46:33 · 278 阅读 · 1 评论 -
安卓并发编程基础
1.线程1.线程与进程的区别。进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高。线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位。同一进程中的多个线程之间可以并发执行。2.创建线程的几种方式1.通过 new Thread的方式创建,可复写 Thread#run方法,Thread.start()方式启动。2.实现Runnable.原创 2021-10-15 10:31:46 · 307 阅读 · 0 评论 -
RecyclerView与ListView区别及缓存原理
1.RecyclerView 家族类图2.RecyclerView 和 ListView的区别1.从使用上ListView:继承重写 BaseAdapter,自定义 ViewHolder 与 converView优化。RecyclerView: 继承重写 RecyclerView.Adapter 与 RecyclerView.ViewHolder。设置 LayoutManager 来展示不同的布局样式区别:ViewHolder的编写规范化,ListView是需要自己定义的,而Recycl.原创 2021-10-14 16:10:40 · 970 阅读 · 0 评论 -
Android 消息分发 Handler 面试必须知道的
1.Handler消息模型图主要包含的关键类:MessageQueue,Handler 和 Looper 这三大部分,以及 MessageMessage:需要传递的消息,可以传递数据;MessageQueue:消息队列,但是它的内部实现并不是用的队列,实际上是通过一个单链表的数据结构来维护消息列表,因为单链表在插入和删除上比较有优势。主要功能向消息池投递消息(MessageQueue.enqueueMessage)和取走消息池的消息(MessageQueue.next);Handler:.原创 2021-10-11 19:22:34 · 421 阅读 · 0 评论 -
安卓串口通讯工具库封装及使用
串口通讯引言对于安卓开发的小伙伴来说,很少用到串口通信开发。主要用来外接一些硬件设备,例如扫码器,读卡器,体温枪等一些硬件设备。这些设备与安卓之间通过串口来交换数据。如果有安卓串口开发这方面的需求,本文将会对你有所帮助。1.基本概念串口的概念: 用串行通信方式的扩展接口,指数据一位一位地顺序传送。串口操作相关参数:1.设备名(串口地址):安卓是基于Linux系统,所以通常的串口地址为:/dev/ttyS0,/dev/ttyS1… 等。可通过linux命令查看对应的串口状态。2.波特.原创 2021-10-11 15:15:29 · 1727 阅读 · 1 评论 -
安卓 Service 基础知识
1.Service种类按运行地点分类:按运行类型分类:按使用方式分类:2.生命周期OnCreate()系统在service第一次创建时执行此方法,来执行只运行一次的初始化工作。如果service已经运行,这个方法不会被调用。onStartCommand()每次客户端调用startService()方法启动该Service都会回调该方法(多次调用)。一旦这个方法执行,service就启动并且在后台长期运行。通过调用stopSelf()或stopService()来停止服务。O原创 2021-10-09 11:23:10 · 127 阅读 · 0 评论 -
安卓 BroadCastReceiver基础知识点
1.作用用于监听 / 接收 应用发出的广播消息,并做出响应应用场景a. 不同组件之间通信(包括应用内 / 不同应用之间)b. 与 Android 系统在特定情况下的通信, 如当电话呼入时、网络可用时c. 多线程通信2.原理Android中的广播使用了设计模式中的观察者模式:基于消息的发布/订阅事件模型。因此,Android将广播的发送者 和 接收者 解耦,使得系统方便集成,更易扩展模型中有3个角色:消息订阅者(广播接收者)消息发布者(广播发布者)消息中心(A原创 2021-10-09 11:04:23 · 651 阅读 · 0 评论 -
自定义View之HiSliderView商品分类展示
1.案例演示2.问题分析1.采用网格布局。2.不同的组别它的条目数量不一定能填满网格布局,这就需要最后剩余的 item 把剩下的控件占满。解决办法: 1、通过假数据填充,使得多余的部分用空白数据填充,这样就能满足每一行都能占满,正常摆放。(不采用该方案) 2、通过调整每个Group 的最后一个 item 所占用的 SpanSize 来让其占满当前行,使得下一组数据能另起一行。3.关键代码需要根据具体数据来设置不同的位置的 item 所占用的 spanSize。需要设置 Grid原创 2021-09-23 16:11:53 · 247 阅读 · 0 评论 -
自定义 View 之 InputItemLayout
1.基本样式展示2.场景分析1.分析该 View 的通用性,在哪些场景下可以使用?1.在登陆,注册等界面比较常用。2.左侧为文本,右侧也为文本的控件也可以复用。2.根据通用性,需要为这个控件定义哪些属性?1.通过分析 ==> 左侧需要显示 Title,右侧可以输入文字,支持提示等。2.该布局适合用线性布局,方向为水平方向。3.左侧 文本 跟 右侧 文本显示的文字样式 不一样,应该支持配置 text 属性 style。4.右侧为输入框,支持文本及密码等输入,应该支持: 输入类.原创 2021-09-22 21:16:19 · 160 阅读 · 0 评论 -
Kotlin中协程的使用及挂起恢复原理分析
kotlin中协程的使用及原理分析1.协程与普通方法任务调度对比1.执行串行任务1.普通方式执行在子线程中执行耗时操作后,通过接口回调来回调结果,当多个任务串行依赖的时候,就会出现 “回调地狱”object Normal{ private const val TAG = "Normal" fun startSerialTask(){ request1 { result1 -> request2(result1,callback原创 2021-09-07 20:23:29 · 750 阅读 · 0 评论 -
Android进程间通信总结
IPC IPC为 (Inter-Process Communication) 缩写,称为进程间通信或跨进程通信,指两个进程间进行数据交换的过程。安卓中主要采用 Binder 进行进程间通信,当然也支持其他 IPC 方式,如:管道,Socket,文件共享,信号量等Binder简介1.为什么使用Binder?性能方面: 在移动设备上(性能受限制的设备,比如要省电),广泛地使用跨进程通信对通信机制的性能有严格的要求,Binder相对于传统的Socket方式,更加高效。Binder数据拷贝只需要一原创 2021-09-08 18:46:02 · 7189 阅读 · 0 评论