
Android基础
文章平均质量分 65
Android基础知识梳理
惜许
读书养才气,勤奋养运气,宽厚养大气,淡泊养志气。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈对于Android CMakeLists文件的理解
浅谈对于Android CMakeLists文件的理解。原创 2023-11-22 19:19:10 · 409 阅读 · 0 评论 -
浅谈Linux epoll机制
epoll是一种当文件描述符的内核缓冲区非空的时候,发出可读信号进行通知,当写缓冲区不满的时候,发出可写信号通知的机制;ღ( ´・ᴗ・` )原创 2023-05-06 13:47:48 · 685 阅读 · 0 评论 -
Android序列化的一些理解
在系统底层,数据的传输形式是以简单的字节序列形式传递,因此在底层,系统是不认识对象,只认识字节序列,为了达到进程通讯目的,需要先将数据序列化,而序列化就是将对象转化字节序列的过程;将数据结构或对象转换成二进制串的过程;(java中二进制串对应的就是byte[])将在序列化过程中生成的二进制串转换成数据结构或对象的过程;原创 2023-04-14 10:58:00 · 602 阅读 · 0 评论 -
理解Android虚拟机dex指令
内存结构CPU不可以直接操作堆区数据,需要通过中间高速缓存区进行相关数据操作;ღ( ´・ᴗ・` )原创 2023-03-21 16:04:43 · 586 阅读 · 0 评论 -
Android如何计算一张图片加载到内存中的大小?
一张 500 x 600 的图片,把它放到 drawable-xhdpi 目录下,使用4.95 英寸的1920*1080分辨率的手机进行加载,那它占用的内存是多大呢?ldpimdpihdpixhdpixxhdpixxxhdpi分辨率240x320320x480480x800720x12801080x19202160x3840系统dpi120160240320480640基准比例0.7511.5234ღ( ´・ᴗ・` )原创 2022-12-09 10:58:04 · 1396 阅读 · 0 评论 -
Android Hook View的创建流程
前面我们对setContentView的源码进行了深入的分析Android最全的setContentView源码分析,那了解了View的创建流程,我们可以做些什么呢?答案就是我们可以通过拦截View的创建流程去解析View对应的属性(如textColor、src、background等),然后进行APP的换肤!原创 2022-11-23 14:48:22 · 828 阅读 · 0 评论 -
Android最全的setContentView源码分析
我们在开发过程中,在布局文件里添加TextView,代码运行起来就可以看到对应文字显示出来,那系统是如何把我们的TextView加载并显示出来的呢?通过对的源码分析,了解了View是如何添加到当前界面上的,对于插件换肤方案有很大的帮助!ღ( ´・ᴗ・` )原创 2022-11-21 17:54:37 · 1218 阅读 · 0 评论 -
Android使用Builder建造者模式打造通用导航栏
实际项目开发中,每个界面对应的头部导航栏样式都大差不差,如果通过布局文件include的方式添加显示,当需求改动时,就不是很方便,那我们能不能打造一套通用的导航栏,通过代码来进行约束实现呢?/*** 绑定布局ID* 给View设置参数。原创 2022-11-18 14:02:31 · 337 阅读 · 0 评论 -
Android自定义全局异常捕获类统一处理App异常
Android自定义全局异常捕获统一处理类原创 2022-11-17 16:15:09 · 958 阅读 · 0 评论 -
Android Kotlin使用注解和反射实现View绑定以及点击事件
本文主要练习Kotlin中自定义注解以及反射的使用,加深注解和反射的印象,废话不多说,直接上代码;ღ( ´・ᴗ・` )原创 2022-11-16 20:15:04 · 749 阅读 · 0 评论 -
Android动态权限申请探索
Google在 Android 6.0 开始引入了权限申请机制,将所有权限分成了正常权限和危险权限;App每次在使用危险权限时需要动态的申请并得到用户的授权才能使用。系统权限分为两类: 和 。正常权限不会直接给用户隐私权带来风险。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。危险权限会授予应用访问用户机密数据的权限。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。如果您列出了危险权限,则用户必须明确批准您的应用使用这些权限。以下权限为系统危险权限权限申请权限申请相关方法解释原创 2022-07-07 22:08:08 · 1086 阅读 · 0 评论 -
Android中的线程池
一、使用线程池的优点。1、重用线程池中线程,避免因为线程的创建和销毁带来的性能开销。2、能有效控制线程池的最大并发数,避免大量的线程之间因为互相抢占资源而导致的阻塞现象。3、对线程进行简单的管理,提供定时执行以及指定间隔循环执行。以下是 ThreadPoolExecutorded的构造方法ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue原创 2022-07-01 16:24:48 · 4089 阅读 · 0 评论 -
Android线程间通信原理以及多线程
本文要介绍的内容主要分为如下几块1.Thread.stop与Thread.interrupt的区别2.Thread.wait、notify、notofyAll的用法3.Thread.join与yieldHandler原理解析前言Handler对于大家再也熟悉不过了,在开发中可以说是无处不在,可见其重要性,因此在掌握Handler的使用的情况下,理解其工作原理也是十分有必要的。构造方法是一个类的入口,首先让我们来看看Handler都有哪些构造方法吧!其中参数CallBack为用于处理消息的回调接原创 2022-07-01 16:21:53 · 744 阅读 · 0 评论 -
RemoteViews的作用和工作原理
RemoteViews,根据字面意思应该是一种远程的View,其实RemoteView表示的是一个View结构,它可以在其他进程中显示,由于它在其他进程中显示,为了能够更新它的界面,RemoteViews提供了一组基础的操作用于跨进程更新它的界面。通过上面的简介,我们也大致了解RemoteViews主要用于实现跨进程更新界面,在实际开发中,RemoteViews主要用于通知栏和桌面小部件的开发。接下来,我们就以一些简单的案例来走进RemoteViews。首先,我们看一下RemoteView在通知栏上的应原创 2022-07-01 16:20:30 · 977 阅读 · 0 评论 -
ThreadLocal的作用以及实现原理
ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只能在指定的线程中获取存储的数据,对于其他线程来说则是无法获取到的。Looper、ActivityThead以及AMS中都用到了TheadLocal。一、某些数据是以线程为作用域并且不同线程具有不同的数据副本。比如 Handler,它需要获取当前线程的Looper,Looper的作用域就是线程并且不同线程对应不同的Looper,此时可以通过ThreadLocal实现Looper在线程中的存取。二、复杂逻辑下原创 2022-07-01 16:18:33 · 4903 阅读 · 0 评论 -
Android中如何加载显示大尺寸图片不发生OOM
前言:当加载高清大图时,系统给每个应用分配的内存是有限的,如果一个资源图片太大,加载到内存中后,占用的内存空间也会很大,这样就会造成OOM。那在Android开发中如何正确加载高清大图呢?BitmapFactory这个类提供了多个解析方法(decodeByteArray, decodeFile, decodeResource等)用于创建Bitmap对象,我们应该根据图片的来源选择合适的方法。这些方法会尝试为已经构建的bitmap分配内存,这时就会很容易导致OOM出现。为此每一种解析方法都提供了一个可选的B原创 2022-07-01 16:17:51 · 983 阅读 · 0 评论 -
Android开发中的MVC、MVP和MVVM的优缺点以及适用场景
简介:MVC是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。Android中的MVC模型层(M):针对业务模型,建立的数据结构以及相关的类,例如对数据库的操作,对网络数据的操作以及业务中的计算等操作应该放在该层。视图层(V):Android中的xml文件可以理解为视图层。控制层(C):Andr原创 2022-07-01 16:16:38 · 2447 阅读 · 0 评论 -
Android四大组件中每个组件的作用是什么?它们都可以开启多进程吗?
作用:主要用于界面的展示以及和用户之间的交互。启动方式:通过Intent显式或者隐式的启动。显示明确指向一个activity,隐式则是指向一个或者多个目标activity。生命周期:正常情况下oncreate->onstart->onresume->onpause->onstop->ondestory。有一次设备突然断电重进activity,打印生命周期如下:oncreate->onresume->onpause->onresume,不知为何。启动模式:standard:标准模式,每次启动都会创建原创 2022-07-01 16:15:50 · 210 阅读 · 0 评论 -
Android开发艺术探索之初探AIDL(一)
一、前言 最近在学习Android开发艺术探索一书,因为也是开发刚入门,刚学习到AIDL这部分的时候,即使对着书本敲还是遇到许多书上没有总结的问题,故写此篇防止后忘,同时,也希望可以帮助初学的小伙伴贡献自己的一份力量吧。二、概述 那什么情况下才需要使用到AIDL呢?Android中IPC通信方式其实有很多啊,比如可以使用bundle、文件共享原创 2017-09-16 20:03:12 · 672 阅读 · 0 评论