Android 项目一般使用 Gradle 作为构建打包工具,随着业务需求的不断迭代,代码量提升的同时,Gradle 编译耗时也在不断的增长,而编译速度会直接决定开发流程效率的高低,影响面主要涉及到开发和测试阶段。 对于火车票项目,经过长期的迭代过程导致模块众多工程庞大,优化前一次干净的全量编译时间可达到10m39s,造成开发和测试都需要长时间等待编译出包,严重影响到开发和测试的效率。因此对火车票 App 进行编译速度优化是件亟待解决的事情。 本次编译速度优化采用的方案是模块AAR方案, 优化目标为: 优化后一次干净的全量编译时间缩减为原来编译时间的50%以下。
对于 Android 客户端开发者来说,Activity 是我们再熟悉不过的一个组件了。它是 Android 四大组件之一,是一个直接与用户交互的展示型 UI 组件。在开发过程中,启动并创建一个 Activity 流程非常简单,而在系统底层实际上做了大量的工作,之所以使用这么简单,得益于系统底层对于 Activity 的良好封装。本篇内容我们着重来分析一下 Framework 层 Activity 的启动与创建的过程。
本文介绍了 Android 插件化框架中,插件使用宿主资源时资源错乱的问题,以及错乱的原因、业界通用解决方案、我们提出的优化方案。 本文将按照如下顺序,循序渐进地进行讲解: 简单介绍 Android 插件化中资源部分的动态化。 简单介绍 Android 中的资源的一些基础知识、使用方式及其编译原理。 介绍插件化场景下出现的资源错乱问题及业界通用的解决方案。 介绍一种新的方案——免资源固定方案,用于解决资源错乱问题。 单独介绍一下免资源固定方案中的一个技术点:修改 apk 中的资源文件。
移动互联网进入存量时代,随着人口红利减退,充分盘活、经营现有流量便成为了各行各业全新的机遇与挑战。各大公司都在内卷发力,对 App 包大小、启动速度、性能做持续优化。 App 包体积和用户转换率成负相关,包体积越小、用户下载时长越短,用户转换率越高。而随着国内用户的增量见顶,越来越多的应用选择出海,开发对应的海外版,Google Play 应用市场目前强制要求超过 100MB 的应用只能使用 AAB 扩展文件方式上传,Google Play 会为我们的应用托管 AAB 扩展文件,进行自定义分发和动态交付。