Android Parcelable与Parcel.md
Parcelable与SerializableSerializable是Java为我们提供的一个标准化的序列化接口。
Parcelable是Android为我们提供的序列化的接口。
比较:
Parcelable相对于Serializable的使用相对复杂一些。
Parcelable的效率相对Serializable也高很多。Serializable是使用IO流完成的,Parcelable 通过对象指针共享内存,指针挪动。
Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable在外界有变化的情况下不能很好的保证数据的持续性。尽管Serializable效率低点,但此时还是建议使用Serializable。存储到设备或者网络传输上选择Serializable。
Parcelable是Android为我们提供的序列化的接口,Parcelable相对于Serializable的使用相对复杂一些,但Parcelable的效率相对Serializable也高很多,这一直是Google工程师引以为傲的,有时间的可以看一下Parcelable和Serializable ...
Android Parcelable与Parcel.md
Parcelable与SerializableSerializable是Java为我们提供的一个标准化的序列化接口。
Parcelable是Android为我们提供的序列化的接口。
比较:
Parcelable相对于Serializable的使用相对复杂一些。
Parcelable的效率相对Serializable也高很多。Serializable是使用IO流完成的,Parcelable 通过对象指针共享内存,指针挪动。
Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable在外界有变化的情况下不能很好的保证数据的持续性。尽管Serializable效率低点,但此时还是建议使用Serializable。存储到设备或者网络传输上选择Serializable。
Parcelable是Android为我们提供的序列化的接口,Parcelable相对于Serializable的使用相对复杂一些,但Parcelable的效率相对Serializable也高很多,这一直是Google工程师引以为傲的,有时间的可以看一下Parcelable和Serializable ...
智能家居与串口编程.md
— root root 2021-07-14 06:00 driver-r–r–r– root root 0 2021-07-14 06:00 drivers 【此文件就是 串口的配置清单】dr-xr-xr-x root root 2021-07-14 06:00 ldisc-r–r–r– root root 0 2021-07-14 06:00 ldiscs
root@generic_x86:/proc/tty # cat drivers 【cat清单】/dev/tty /dev/tty 5 0 system:/dev/tty/dev/console /dev/console 5 1 system:console/dev/ptmx ...
Glide图片加载框架.md
— ##################### 1总结:第一次的时候,去网络下载图片,保存到磁盘缓存中(/sd/disk_lru_cache_dir/key)第二次的时候,直接再活动缓存中,找到了资源第三次的时候,直接再活动缓存中,找到了资源第N次的时候,直接再活动缓存中,找到了资源
把Activity给返回回去的时候,进行释放,活动缓存的释放又一次加载的时候,从内存缓存中获取了下一次加载的时候,就是从活动缓存获取了第二次的时候,直接再活动缓存中,找到了资源第三次的时候,直接再活动缓存中,找到了资源第N次的时候,直接再活动缓存中,找到了资源
把App给杀掉整个活动缓存,整个内存缓存,都没有了 (运行内存缓存)首次冷启动 所以从磁盘缓存中获取第二次的时候,直接再活动缓存中,找到了资源第三次的时候,直接再活动缓存中,找到了资源第N次的时候,直接再活动缓存中,找到了资源
—— ##################### 2LUR – DiskLruCache,LruCache
—— ##################### 3为什么有了 内存缓存 还需要 活动 ...
Android 增量更新.md
前言 在前几年,整体移动网络环境相比现在差很多,加之流量费用又相 对较高,因此每当我们发布新版本的时候,一些用户升级并不是很 积极,这就造成了新版本的升级率并不高。而 google 为了解决了 这个问题,提出了 Smart App Update,即增量更新(也叫做差分升级)。 尽管现在网络环境有了很大的提升,但一个不争的事实就是应用越 做越大,因此,增量更新在目前的仍然是一种解决 APP 更新包过 大的有效方案。今天,我们就来聊聊增量更新。
什么是增量更新? 增量更新的关键在于如何理解增量一词。来想想平时我们的开发过程,往往都是 今天在昨天的基础上修改一些代码,app 的更新也是类似的:往往都是在旧版本 的 app 上进行修改。这样看来,增量更新就是原有 app 的基础上只更新发生变 化的地方,其余保持原样。 与原来每次更新都要下载完整 apk 包的做法相比,这样做的好处显而易见:每次 变化的地方总是比较少,因此更新包的体积就会小很多。比如“师父说”安装包的 体积在 6m 左右,如果不采用增量更新,用户每次更新都需要下载大约 6m 左右 的安装包,而采用增量更新这种方案之后每次只需要 ...
Android 热修复.md
热修复是什么 ?热修复无疑是这 2 年较火的新技术,是作为安卓工程师必学的技能之一。在热修复出现之前,一个已经上线的 app 中如果出现了 bug,即使是一个非常小的 bug,不及时更新的话有可能存在风险,若要及时更新就得将 app 重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验,当热修复出现之后,这样的问题就不再是问题了。目前较火的热修复方案大致分为两派,分别是:
阿里系:spohix、andfix:从底层二进制入手(c 语言)。
腾讯系:tinker:从 java 加载机制入手
热修复基本原理
下发补丁(内含修复好的 class)到用户手机,即让 app 从服务器上下载(网络传输)。
app 通过**”某种方式”**,使补丁中的 class 被 app 调用(本地更新)。
tinkertinker原理tinker源码分析
Android 热修复.md
热修复是什么 ?热修复无疑是这 2 年较火的新技术,是作为安卓工程师必学的技能之一。在热修复出现之前,一个已经上线的 app 中如果出现了 bug,即使是一个非常小的 bug,不及时更新的话有可能存在风险,若要及时更新就得将 app 重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验,当热修复出现之后,这样的问题就不再是问题了。目前较火的热修复方案大致分为两派,分别是:
阿里系:spohix、andfix:从底层二进制入手(c 语言)。
腾讯系:tinker:从 java 加载机制入手
热修复基本原理
下发补丁(内含修复好的 class)到用户手机,即让 app 从服务器上下载(网络传输)。
app 通过**”某种方式”**,使补丁中的 class 被 app 调用(本地更新)。
tinkertinker原理tinker源码分析
Android 进程保活.md
前言进程保活的关键点:
进程优先级, 优先级越高存活几率越大 。
弄清楚哪些场景会导致进程会 kill 。
所以,关键点在于提高进程的优先级,在进程被 kill 之后能够唤醒 。
进程优先级 Android 一般的进程优先级划分:
前台进程 (Foreground process)
可见进程 (Visible process)
服务进程 (Service process)
后台进程 (Background process)
空进程 (Empty process)
这是一种粗略的划分,进程其实有一种具体 的数值,称作 oom_adj,注意:数值越大优先级越低 。如何查看某个进程的 oom_adj 数值呢? oom_adj 存储在 proc/PID/oom_adj 文 件中,其中 PID 是进程的 id,直接 adb shell 进入手机根目录查看这个文件即可。
进程被 kill 的场景点击 home 键使 app 长时间停留在后台,内存不足被 kill 。处理这种情况前提是你的 app 至少运行了一个 service,然后通过Service.st ...
Android 进程保活.md
前言进程保活的关键点:
进程优先级, 优先级越高存活几率越大 。
弄清楚哪些场景会导致进程会 kill 。
所以,关键点在于提高进程的优先级,在进程被 kill 之后能够唤醒 。
进程优先级 Android 一般的进程优先级划分:
前台进程 (Foreground process)
可见进程 (Visible process)
服务进程 (Service process)
后台进程 (Background process)
空进程 (Empty process)
这是一种粗略的划分,进程其实有一种具体 的数值,称作 oom_adj,注意:数值越大优先级越低 。如何查看某个进程的 oom_adj 数值呢? oom_adj 存储在 proc/PID/oom_adj 文 件中,其中 PID 是进程的 id,直接 adb shell 进入手机根目录查看这个文件即可。
进程被 kill 的场景点击 home 键使 app 长时间停留在后台,内存不足被 kill 。处理这种情况前提是你的 app 至少运行了一个 service,然后通过Service.st ...
自定义View.md
自定义属性