![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 73
双木青橙
这个作者很懒,什么都没留下…
展开
-
Service学习笔记03- 前台服务实战
Service学习笔记03- 前台服务实战原创 2022-06-05 12:16:01 · 322 阅读 · 1 评论 -
Service学习笔记02-实战 startService 与bindService
启动服务通过绑定服务的方式可以在客户端获取对应Service的引用,从而完成与Service的交互。主要过程如下图所示:首先,在继承Service的自定义服务中新建一个继承自IBinder的内部类,在IBinder中获取myService的引用在服务的onBinder()方法中将Service中的IBinder对象注入(这个方法会在绑定服务成功的时候被调用,客户端可以通过这个方法获得IBinder对象,进而获取Service的引用)在客户端声明一个ServiceConnection 对象,在Ser原创 2022-06-05 12:14:50 · 660 阅读 · 0 评论 -
Service学习笔记01-启动方式与生命周期
Service 学习笔记01 -启动方式与生命周期原创 2022-06-05 12:07:32 · 443 阅读 · 0 评论 -
adb 命令学习笔记
01 获取系统版本adb shell getprop ro.build.version.release02 获取SDK版本号adb shell getprop ro.build.version.sdk原创 2022-05-29 11:24:51 · 165 阅读 · 0 评论 -
Android Handler消息机制02-Looper源码学习
1.源码本文主要是对Looper类的源码进行解析学习,用于更深入的理解Handler消息机制Looper的源码路径为:android.os.Looper1.2 典型案例如下展示了一个源码中提供的典型实例class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare(); mHandler = new Handler()原创 2022-05-11 23:35:39 · 601 阅读 · 0 评论 -
【转载】ProGuard
目的目的是为了将部分频繁一起调用类指定为同一个包名,目的为是减少.dex mmap的大小依据来源是:根据对Dex数据的观察,我们发现Dex文件中数据基本是按类名的字母顺序进行排列的,这样同样包名的类会排在一起。但在实际程序执行中,同一个package下的类并不会全部一起调用,而是和很多其他package下的类进行交互,但mmap加载了整个页面(4K),可能会有很多无用数据。为了减少这样的情况,我们在生成文件时要尽量将使用到的数据内容排布在一起。在APK的编译流程中,Proguard混淆工具正好是能够翻译 2022-04-08 00:02:53 · 170 阅读 · 0 评论 -
【学习笔记】Android进程调度及优化
ADJ算法如何查询应用当前adj值应用进程生命周期与ADJADJ级别ADJ级别定义在com.android.server.am.ProcessList.java中,oom_adj划分为16级,分别如下所示(Android 11)在AndroidADJ级别Android 以上取值android以下取值解释UNKNOWN_ADJ100116一般指将要会缓存进程,无法获取确定值CACHED_APP_MAX_ADJ99915不可见进程的adj最大值CACH原创 2022-04-05 22:14:23 · 809 阅读 · 0 评论 -
【Android 内存优化】dumpsys meminfo PID 查看单进程内存信息详解
【Android 内存优化】dumpsys meminfo PID 查看单进程内存信息详解原创 2022-04-05 21:56:18 · 8953 阅读 · 1 评论 -
Android Handler消息机制01-Message源码学习
1. 背景背景是在实际开发中,有一个Message消息在主线程接收到了后,将Message切换到子 线程去处理,但是出现了Message.obj被串改或者被置空,导致出现NullPointException或者ClassCastException,此时正好从源码分析下出现的原因和优化方法。2. Message几个关键点2.1 recycle什么时候会被调用recycle被调用也即意味着这个消息对象会清空,并重新加入到消息池中等待调用。这就意味着某个Message对象在回收之后再使用此消息会出现空指针原创 2022-03-27 23:19:08 · 1992 阅读 · 0 评论 -
Android学习笔记-Broadcast01-详解广播机制
前言广播是一个消息通知机制,Android提供了一套完整的API,允许应用程序自由地发送和接收广播。就是我们常说的Android 四大组件之一的广播接收器(Broadcast Receiver).广播机制说明广播类型广播常分为两种类型,标准广播(Normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都在会同一时间收到这条广播消息,之间也没有任何先后顺序可言,并且也无法被截断。有序广播(Ordered broadcasts)则是一个同步执行的广播,在广播原创 2021-07-18 22:05:10 · 222 阅读 · 0 评论 -
Android-View是否可见设置
三种模式VISIBLE三种状态的定义都是在android.view.View中定义的,VISIBLE 说明View是可见的可以通过代码中setVisibility(View.VISIBLE)来设置或者通过layout中通过android:visibility来设置INVISIBLE表示View不可见,但是依然占用了视图的布局空间GONE表示View不可见,并且不占用视图的布局空间,一般来说,不可见采用这种...原创 2021-07-13 08:42:40 · 1331 阅读 · 0 评论 -
Activity 学习笔记02-生命周期
Android Activity 生命周期和实战验证原创 2021-07-10 10:23:35 · 227 阅读 · 1 评论 -
AsyncTask学习与实战
前言Android 系统默认会在主线程(UI 线程)执行任务,但是如果有耗时程序就会阻塞 UI 线程,导致页面卡顿。这时候我们通常会将耗时任务放在独立的线程,然后通过 Handler 等线程间通信机制完成 UI 的刷新。很多时候我们也许只是想执行一个简单的任务,为此写一套 Handler 线程通信就会显得比较复杂,不用担心,Android 系统为我们提供了一个专门用于执行异步任务的工具——AsyncTask在Android的android.os.AsyncTask的类前注释(2021-05),对Asyn原创 2021-05-23 21:21:59 · 780 阅读 · 6 评论