2 天前 / xF0rk
本文选自「抖音 Android 性能优化」系列文章。 「抖音 Android 性能优化」系列文章是由抖音 Android 基础技术部门技术专家倾力打造的技术干货内容,和大家分享基础技术团队在打造极致用户体验的抖音的过程中,收获的性能优化方法论、工具和实践,与各位技术同学一起交流成长。 用户交互响应的耗时,作为 Android 用户日常感知最深的一项性能指标,在日常开发中有着非常重要的意义。而抖音 Android 基础技术团队为打造极致的交互响应体验,一直在致力于极致性能的探索,其中就包括如何打造极致的耗时检测工具。
5 天前 / Android_开发者
写文章 Android Studio 4.1 中的本地内存分析谷歌开发者已认证的官方帐号 9 人赞同了该文章本文是 Android Studio 4.1 中 Profiler 有哪些新增特性 的第二部分。之前的文章侧重于介绍 Android Studio 中 System Trace 的新增功能。 我们从大家的反馈了解到使用 C++ 调试本地内存非常困难,尤其在开发游戏的时候。在 Android Studio 4.1 中,Memory Profiler ( 内存分析器) 可以记录本地内存分配的调用栈。本地内存记录基于 Perfetto 后端实现,它是 Android 的新一代性能工具和问题追溯解决方案。
5 天前 / Android_开发者
写文章全新的 Fragment: 使用新的状态管理器谷歌开发者已认证的官方帐号 29 人赞同了该文章相比其它大多数 Android API,Fragments 近几年的变化要更大一些。最初它作为 Android 平台的一部分,后来成为 Android Support Library 的一部分,现在又以 AndroidX Fragments 的形式独立成为了 Jetpack 的一部分。 提示 : 您不应该再需要使用 Android 框架里的 Fragment。除了它会在 Android 10 中被弃用以外,在弃用之前的这段漫长的时间里尘封于框架中,不会有任何更新和漏洞修复,同时也不会针对旧型号的设备或者旧版本的系统进行兼容性适配。
7 天前 / 琥珀川
首发于 Android 之道写文章 VirtualAPP 源码解析 -Native Hook 技术琥珀川58 同城 Android 工程师 6 人赞同了该文章前言本篇文章主要介绍 VirtualAPP 使用的 Native Hook 技术,不是很深入,因为涉及很多 C++,ELF 和指令集相关的知识点,很多知识还没有融会贯通,目前只是停留在名词的概念上。后续理解了在进行补充。 应用背景 VirtualAPP 中使用了 Native Hook 技术,主要用于虚拟 APP 的文件访问重定向。这句话怎么理解和为什么这么做呢,我们先回顾一下 VirtualAPP 的大致原理。
13 天前 / Android_开发者
写文章使用 Jetpack DataStore 进行数据存储谷歌开发者已认证的官方帐号 17 人赞同了该文章作者 / Android 开发技术推广工程师 Florina Muntenescu 与 Google 软件工程师 Rohit Sathyanarayana 欢迎使用 Jetpack DataStore,这是一个经过改进的全新数据存储解决方案,旨在替代原有的 SharedPreferences。Jetpack DataStore 基于 Kotlin 协程和 Flow 开发,并提供两种不同的实现: Proto DataStore 和 Preferences DataStore。其中 Proto DataStore,可以存储带有类型的对象 ( 使用 protocol buffers 实现);Preferences DataStore,可以存储键值对。
15 天前 / 李斯维
前言 众所周知,Android 适用于众多类型的设备,从手机到平板电脑和电视都能搭载使用。为了能在所有这些设备上顺利运行,Android 系统在应用到设备上时,必不可少的需要处理与 Android 应用的兼容性问题。这里就牵扯出两个概念:设备兼容性与应用兼容性。设备兼容性:设备能够正常运行我们编写的 Android 应用。 应用兼容性:针对市面上千奇百怪的 Android 设备,应用是否兼容每一种可能的设备配置。 对于 Android 应用开发者来说 ,我们无需担心设备是否兼容 Android,而是更加关注于我们开发的应用能够在尽可能多的 Android 设备上正常运行,即...
19 天前 / kafeidou
阿里妹导读:APP 启动速度的重要性不言而喻。高德地图是一个有着上亿用户的超级 APP,本文从唤端技术、H5 启动页、下载速度、APP 加载、线程调度和任务编排等方面,详解相关技术原理和实现方案,分享高德在启动优化上用到的手段和思考,希望对同学们有所启发。 一 通过 Universal Links 和 App Links 优化唤端启动体验 App 都会存在拉新和导流的诉求,如何提高这些场景下的用户体验呢?这里会用到唤端技术。
20 天前 / Android_开发者
写文章使用 R8 压缩您的应用谷歌开发者已认证的官方帐号 9 人赞同了该文章作者 / Google 软件工程师 SrenGjesse 和 Christoffer Adamsen 人们更倾向于安装并保留较小和安装占用空间更小的应用,在新兴市场中尤为明显。有了 R8 编译器,您可以通过压缩、混淆和优化,更全面的缩小应用体积。 本文我们将对 R8 的特性进行一个简要的介绍,并介绍可预期的代码缩减程度以及如何在 R8 中启用这些功能。 R8 的压缩特性 R8 通过下面 4 项特性来减少 Android 应用大小: 摇树优化 (Tree shaking): 使用静态代码分析来查找和删除无法访问的代码和未实例化的类型;优化...
30 天前 / Android_开发者
写文章 Android Studio 4.1 中 Design Tools 的改进谷歌开发者已认证的官方帐号 7 人赞同了该文章 Android Studio 中的 Design Tools Suite 提供了一整套开发工具包,使得开发者们能高效地进行 UI 设计、原型设计、构建和调试代码。这些工具包括 Layout Editor ( 排版编辑器)、Navigation Editor (Navigation 编辑器)、Motion Editor ( 动作编辑器)、Resource Manager ( 资源管理器) 和 Layout Inspector ( 布局检查器) 等。
36 天前 / 虞大胆
内存作为计算机程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。抖音作为一款用户使用广泛的产品,需要在各种机器资源上保持优秀的流畅性和稳定性,内存优化是必须要重视的环节。 本文从抖音 Java OOM 内存优化的治理实践出发,尝试给大家分享一下抖音团队关于 Java 内存优化中的一些思考,包括工具建设、优化方法论。
42 天前 / 道箜
主要内容 1.Thumb 指令集详解 2.Thumb 直接访问的寄存器 3.Thumb 指令集组成部分详解 4.Thumb 和 arm 状态切换 5.Thumb 的常见应用场景 1.Thumb 指令集详解ARM 处理器支持两种指令集:ARM 指令集和 Thumb 指令集。ARM 指令集指令长度为 32 位,Thumb 指令集指令长度为 16 位。在 16 位外部数据总线宽度下,ARM 处理器上使用 Thumb 指令的性能要比使用 ARM 指令的性能更好。存在 Thumb 指令的意义:兼容数据总线宽度为 16 位的应用系统。
42 天前 / 虞大胆
摘要 Tailor[1]是西瓜视频 Android 团队开发的一款内存快照裁剪压缩工具,广泛用于字节跳动旗下各大 App 的 OOM 治理及异常排查,收益显著,在西瓜视频上更是取得 OOM 降低 95% 以上的好成绩。Tailor 工具现已开源,本文将通过原理、方案和实践来剖析 Tailor 的相关细节。 背景稳定性治理一直是个老生常谈的话题,过去我们调查稳定性问题只能依靠堆栈和源码,但很多时候堆栈是远远不够的,对于严重依赖的数据只能临时增加埋点后再次上线搜集,这期间还会遇到能不能搜集到和怎么搜集的问题,使得我们治理稳定性问题时常常过于局限和被动。
42 天前 / Android_开发者
写文章 Constraint Layout 2.0 用法详解谷歌开发者已认证的官方帐号 27 人赞同了该文章 Constraint Layout 是最受欢迎的 Jetpack 库之一,它的 2.0 正式版本也发布啦 ( 目前最新版本 2.1.0-alpha1)!也许您已熟悉了 Constraint Layout 1.1 版本中的功能,并开始用它来快速构建复杂的页面布局,而新版本除了包含 1.1 版本中的所有功能之外,还在 Android Studio 中集成了可以直接预览 XML 的工具,甚至可以直接在预览界面中对布局进行编辑。
44 天前 / Android_开发者
写文章 Android Studio 和 Gradle 插件使用全新版本编号谷歌开发者已认证的官方帐号 11 人赞同了该文章作者 / Jamal Eason, Product Manager 第一版 Android Studio Arctic Fox (2020.3.1) 以及 Android Gradle 插件 (AGP) 的 7.0.0-alpha01 版双双在 Canary 通道已正式发布。在此版本中,我们调整了 Android Studio 和 Gradle 插件的版本编号方案。此项变更将 Gradle 插件从 Android Studio 的版本编号方案中剥离,并使 Android Studio 的每个版本对应于哪个年份和 IntelliJ 版本变得更加清晰。
49 天前 / 携程技术
作者简介 禹昂,携程机票移动端资深工程师,Kotlin 中文社区核心成员,图书《Kotlin 编程实践》译者。 一、前言 1.1 技术背景与选型 自 2017 年 Google IO 大会以来,经过三年的发展,Kotlin 已成为 Android 平台无争议的首选开发语言。但是相比语言本身,Kotlin 1.2 版本后进入 stable 状态的协程(coroutines)的行业采用率仍然较低。 协程的优势主要有: 更简单的异步并发实现方式(近似于同步写法) 更便捷的任务管理 更便捷的生产者 - 消费者模式实现 更高效的 cold stream 实现(即 Flow,根据官方数据...