Android 实战进阶
文章平均质量分 95
以源码为例,解读Android背后的故事。
帅次
CSDN博客专家、华云云享专家、阿里云专家博主、软件设计师,深耕移动开发领域多年,分享一些你需要的小知识点!
展开
-
Android 电量优化概览
三大耗电模块:1.显示;2.网络;3.CPU。其他:1 GPS优化。2 精简冗余的服务(Service), 避免长时间执行耗电操作。3 避免与服务器建立长连接。4 减少 CPU 资源使用(滑动或动画)。5 减少 View 的 background 使用,特别是不明显的 background。增加性能、也减少功耗。原创 2023-11-21 06:00:00 · 604 阅读 · 0 评论 -
Android 屏幕适配
由于Android系统的开放性,OEM厂商、运营商都可以对Android进行定制,于是导致运行 Android 的设备多种多样,它们有着不同的屏幕尺寸和像素密度。尽管系统可通过基本的缩放和调整大小功能使界面适应不同屏幕,但你应做出进一步优化,以确保界面能够在各类屏幕上美观地呈现。例如UI以375px宽度来设计,如果你直接使用1dp=1px的这种方式来写代码,那么在不同屏幕的手机上面的显示可能是不一样的,这就需要你来做适配。原创 2023-11-18 06:00:00 · 970 阅读 · 0 评论 -
Android Framework 启动流程必知必会
system server 也就是 SystemServer。SystemServer也是一个进程,包括ActivityTaskManagerService、ActivityManagerService、PackageManagerService、WindowManagerService等92种服务。原创 2023-03-06 07:00:00 · 1530 阅读 · 2 评论 -
Android 手把手带你搭建一个组件化项目架构
组件化基于可重用的目的,将应用拆分成多个独立组件,以减少耦合、加快编译速度、提高开发效率、代码复用。原创 2021-11-24 10:30:26 · 2894 阅读 · 27 评论 -
Android OkHttp+Retrofit+Rxjava+Hilt实现网络请求框架
本文通过OkHttp+Retrofit+Rxjava+Hilt实现一个网络请求框。 最终代码特别省事。原创 2021-11-17 18:17:10 · 3432 阅读 · 27 评论 -
Android IPC 之 AIDL 使用
仅当你允许来自不同应用程序的客户端访问你的 IPC 服务并希望在您的服务中处理多线程时,才需要使用 AIDL。 如果是多进程单线程那么使用 Messenger 就可以了。原创 2021-10-29 11:41:14 · 1489 阅读 · 2 评论 -
Android IPC 之 Messenger使用
多进程、单线程用Messenger。多进程、多线程用AIDL。原创 2021-10-24 08:00:00 · 601 阅读 · 24 评论 -
Android Binder 原理图文分析
Binder 是 Android 系统中进程间通信机制(IPC)的一种方式,它是这些进程间通讯的桥梁。正如其名"粘合剂"一样,它把系统中各个组件粘合到了一起,是各个组件的桥梁。原创 2021-10-22 12:26:51 · 1253 阅读 · 55 评论 -
❤️Android 12 高斯模糊-RenderEffect❤️
Android 12 高斯模糊-新功能: RenderEffect 将模糊、色彩滤镜等效果应用于 RenderNode 或 View。原创 2021-10-21 10:40:07 · 5920 阅读 · 31 评论 -
❤️Androd 性能优化之布局优化❤️
性能优化之布局优化,减少嵌套,多布局复用(和)和使用ViewStub。原创 2021-10-20 10:41:18 · 811 阅读 · 22 评论 -
Android APK瘦身
Android Studio 的 APK Analyser;Matrix中 的 ApkChecker(传送);Lint查找无用文件;启用压缩、混淆和优化功能;文件优化。原创 2021-09-10 18:23:56 · 1506 阅读 · 28 评论 -
❤️Android 性能优化之启动优化❤️
应用启动慢,轻则被鄙视,重则直接卸载你的应用。本文就是来了解应用的启动内部机制和怎么有优化启动速度。原创 2021-10-18 12:38:18 · 805 阅读 · 29 评论 -
❤️Android 进程与线程 ❤️不好不要钱
进程:程序运行的基本单元。系统资源分配和调度的基本单位。有自己独立的地址空间。多个进程可并发执行。---线程:程序执行的最小单位。CPU调度和分派的基本单位。没有独立的地址空间,多个线程共享地址空间。多个线程可并发执行,某一个线程可以创建和撤销另外的线程。原创 2021-10-12 19:05:52 · 3823 阅读 · 20 评论 -
❤️ Android startActivity源码分析(含启动新应用) ❤️
❝源码版本:Android 11(SDK 30)❞概念 ActivityStack:Activity在ATMS的栈管理,用来记录已经启动的Activity的先后关系,状态信息等。通过ActivityStack决定是否需要启动新的进程。 ActivitySupervisor:管理 activity 任务栈。 ActivityThread:ActivityThread 运行在UI线程(主线程),App的真正入口。 ApplicationThread:原创 2021-10-10 09:00:00 · 1844 阅读 · 28 评论 -
❤️ Android 应用是如何启动的?❤️
作为多年的 Android 开发,写了不少应用,但是一个App到底是怎么启动起来的?你要说桌面点一下就启动了,那也对。但是它的启动过程呢?带着这样的疑问,咱们来一步步学习。Android 启动过程一般在任何平台上,都会逐步加载和执行以下组件: Boot loader U-boot (optional) Kernel Android Android进程有以下顺序: Init Zygote System Server S原创 2021-09-30 18:00:39 · 2265 阅读 · 19 评论 -
❤️Android 从源码解读 Apk 的安装过程 ❤️
App安装过程:源码:Android SDK 30。当我们点击某一个 App 安装包进行安装时,首先会弹出一个系统界面指示我们进行安装操作。这个界面是 Android Framework 中预置的一个 Activity>PackageInstallerActivity.java。故事就从这里开始了。原创 2021-09-24 18:04:01 · 2444 阅读 · 36 评论 -
❤️Android Apk 的打包过程 ❤️ 只需两幅图
在分析安装过程之前,需要先了解一下 Android 项目是如何经过编译->打包生成最终的 .apk 格式的安装包。谷歌有一张官方图片来描述 apk 的打包流程,如下图所示。Android 应用模块的构建过程(如上图所示)遵循以下一般步骤: 1、编译器将你的源代码转换为 DEX(Dalvik 可执行文件)文件,其中包括在 Android 设备上运行的字节码,以及其他所有内容到编译资源中。 2、APKPackager将DEX文件和编译后的资源组合成一个APK。但是,在将你的原创 2021-09-17 10:48:02 · 3128 阅读 · 36 评论 -
Android 彻底掌握 Handler 看这里就够了
Handler 有两个主要用途:1、安排消息和可运行对象在将来的某个时间执行;2、将要在与您自己的线程不同的线程上执行的操作排入队列。原创 2021-09-11 18:10:27 · 1660 阅读 · 30 评论 -
Android 深入了解 Window 、Activity、 View 三者关系
Window、Activity、View都经常用到,但三者关系还是没有系统的理清,今天咱们就开始整理整理这三者的关系:Window:顶级窗口外观和行为策略的抽象基类。唯一实现是 PhoneWindow类。Activity:四大组件之一,它提供一个界面让用户点击和各种滑动操作。View:代表用户界面组件的基本构建块,UI 组件。源码:Android SDK 30Activity.setContentView...原创 2021-09-08 17:50:16 · 3632 阅读 · 16 评论 -
Android RecyclerView 绘制流程及Recycler缓存
RecyclerView本质上也是一个自定义控件,因此我们可以沿着分析其 onMeasure -> onLayout -> onDraw 这 3 个方法的路线来深入研究。缓存复用是 RecyclerView 中另一个非常重要的机制,这套机制主要实现了 ViewHolder 的缓存以及复用。原创 2021-09-02 11:04:09 · 1394 阅读 · 42 评论 -
Android OkHttp使用和源码详解
OkHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。对于 Android App 来说,OkHttp 现在几乎已经占据了所有的网络请求操作,RetroFit + OkHttp 实现网络请求似乎成了一种标配。因此它也是每一个 Android 开发工程师的必备技能,了解其内部实现原理可以更好地进行功能扩展、封装以及优化。原创 2021-09-08 10:37:03 · 1432 阅读 · 20 评论 -
Android Touch事件分发(源码分析)
源码分析:Activity事件分发机制;ViewGroup事件分发机制;View事件分发机制。原创 2021-07-28 18:32:55 · 1223 阅读 · 12 评论 -
Android Glide 缓存机制及源码全解
Glide 会在开始一个新的图片请求之前检查以下多级的缓存:活动资源 (Active Resources) - 现在是否有另一个 View 正在展示这张图片?内存缓存 (Memory cache) - 该图片是否最近被加载过并仍存在于内存中?资源类型(Resource) - 该图片是否之前曾被解码、转换并写入过磁盘缓存?数据来源 (Data) - 构建这个图片的资源是否之前曾被写入过文件缓存?原创 2021-08-31 13:47:09 · 2031 阅读 · 24 评论