
Android
文章平均质量分 79
jason_mai
这个作者很懒,什么都没留下…
展开
-
android应用后台常驻内存优化(二) 类重命名
一些app业务需要在后台长时间运行,比如音乐播放,文件下载。这些任务一般都是按单独进程和service的形式进行,如果进程占用内存过高,则更容易被android系统杀掉,导致业务受影响,所以一个好的后台服务,常驻内存越低越好。原创 2023-10-17 22:54:32 · 402 阅读 · 0 评论 -
android应用后台常驻内存优化(一) dex重排
一些app业务需要在后台长时间运行,比如音乐播放,文件下载。这些任务一般都是按单独进程和service的形式进行,如果进程占用内存过高,则更容易被android系统杀掉,导致业务受影响,所以一个好的后台服务,常驻内存越低越好。原创 2023-10-16 22:13:13 · 983 阅读 · 0 评论 -
Android输入系统梳理
Android最常见的输入设备是触摸屏,然而除了触摸屏,安卓还支持其他输入设备如鼠标、游戏手柄、键盘等。当输入设备可用时,Linux内核会在/dev/input/下创建对应的名为event0~n或其他名称的设备节点。而当输入设备不可用时,则会将对应的节点删除。在用户空间可以通过ioctl的方式从这些设备节点中获取其对应的输入设备的类型、厂商、描述等信息。原创 2023-02-01 23:39:42 · 931 阅读 · 0 评论 -
Android点击事件被丢弃的类型与原因
InputDispatcher处理点击事件是单线程串行处理的,如果队列前面的点击事件一直无法处理,会导致后续点击事件迟迟无法响应,给用户的感知就是手机卡顿,所以在一些场景下,InputDispatcher必须丢弃一些未处理完成的点击事件。原创 2023-02-01 22:57:52 · 552 阅读 · 0 评论 -
ViewPager+Fragment首页布局的加载优化
本文通过设置ViewPager的setOffscreenPageLimit参数和提供适配ViewPager的Fragment来优化加载耗时。原创 2022-04-15 16:38:15 · 1605 阅读 · 0 评论 -
View 基础知识
View 基础知识View关键历程measure、layout、draw是view的三个流程ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。measure过程决定了View的宽/高,Measure完成以后,可以通过getMeasuredWidth和getMeasuredHeight方法来获取到View测量后的宽/高,在几乎所有的情况下它都等同于View最终的宽/高,但是特殊情况除外,原创 2022-04-13 21:56:28 · 359 阅读 · 0 评论 -
Android自定义View
android自定义View自定义View的常见方法1.继承View重写onDraw方法这种方法主要用于实现一些不规则的效果,即这种效果不方便通过布局的组合方式来达到,往往需要静态或者动态地显示一些不规则的图形。很显然这需要通过绘制的方式来实现,即重写onDraw方法。采用这种方式需要自己支持wrap_content,并且padding也需要自己处理。2.继承ViewGroup派生特殊的Layout这种方法主要用于实现自定义的布局,即除了LinearLayout、RelativeLayout、Fram原创 2022-04-13 21:52:48 · 2658 阅读 · 0 评论 -
android冷启动优化方案汇总
列举了app冷启动优化的9种方案,总有一种适合你原创 2022-04-11 23:45:04 · 4213 阅读 · 0 评论 -
android多个项目使用独立gradle缓存的办法
android多个项目使用独立gradle缓存的办法背景所在项目组做android开发,为了提高编译速度和代码解耦,把部分模块的代码打包成aar形式发布到maven上,每次开发拉取主干代码后,首次编译利用gradle的参数–refresh-dependencies从maven仓拉取更新aar文件,从而达到减少代码量和提高编译速度的目的。问题场景开发有时候需要在本地下载多份代码,我们设为项目A和项目B,A、B的代码基本是一致的,而依赖的aar是一样的,开发操作如下:下载A代码,gradle编译ap原创 2022-04-07 22:24:02 · 2881 阅读 · 0 评论 -
多线程调用LiveData的postValue如何保证只展示最新值
多线程调用LiveData的postValue如何保证只展示最新值LiveData简介LiveData是一个数据持有类,它可以通过观察者模式被android的Activity和Fragment等监听,当LiveData的数据发生变化时,会通过onChanged方法通知页面更新数据。LiveData的优势在于可以感知组件的生命周期,只有在组件是活跃状态时才会通知组件更新(observe方法),当组件被destroy后,就算LiveData发生了变化也不会回调通知,且destroy后自动取消了组件的监听,原创 2021-02-03 22:35:49 · 1718 阅读 · 0 评论 -
Android 监听双卡信号强度(更新到android10
Android 监听双卡信号强度(更新到android10背景介绍Android一开始设计并没有考虑双卡的情况,很多APi都是对默认的sim卡做操作,需要监听两张sim卡的信号强度,必须采用一些特殊的方式,比如反射。该文章基于android10的源代码做分析,对网上一种通过反射改PhoneStateListener中mSubId的方法(点这了解)做了修正,使其适应android10版本相关Android类android.telephony.PhoneStateListenerandroid.te原创 2020-05-15 17:53:11 · 2734 阅读 · 1 评论