• ARTICLE
  • STRING
  • CONVERTER
  • ENCRYPT
  • NETWORK
  • MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
  • ARTICLE
    STRING
    CONVERTER
    ENCRYPT
    NETWORK
    MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
logo Online Tools
All Chinese English Newest Hottest
40 search results

近3个月,抖音 Android 版面临一个多次触发线上报警的崩溃问题,全量版本和灰度版本的异常数据激增,该问题不仅容易触发报警,更成为了 Java Top 1 崩溃问题,带来巨大困扰,急需攻坚解决。 本文展现了具体的分析过程、优化思路和解决方案,同时提供了已集成该方案的实用工具。

181 Technology lddgo Shared on 2023-11-29

相信移动端高度普及的现在,大家或多或少都会存在电量焦虑,拥有过手机发热发烫的糟糕体验。而发热问题是一个长时间、多场景的指标存在,且涉及到端侧应用层、手机 ROM 厂商系统、外界环境等多方面的影响。如何有效衡量发热场景、定位发热现场、以及归因发热问题成为了端侧应用层发热监控的面前的三座大山。本文通过得物 Android 端侧现有的一些监控实践,不深入功耗计算场景无法自拔,优先聚焦于发热场景本身,希望能给大家一些参考。

46 Technology lddgo Shared on 2023-10-23

安卓音视频开发中的一个环节是摄像头采集数据,而 Android 平台上摄像头采集的 API 有两套,camera1 和 camera2。本文主要讲的是 camera2 这套 API 在采集数据并指明 YUV420_888 格式时,获取到的摄像头 YUV 数据格式具体是怎么样的。

38 Technology lddgo Shared on 2023-10-12

得物App在包体积优化方面已经进行了诸多尝试,收获也颇丰,已经集成的方案有图片压缩、重复资源删除、ARSC压缩等可移步至得物 Android 包体积资源优化实践。本文将主要介绍基于 XML 二进制文件的裁剪优化。 在正式进入裁剪优化前,需要先做准备工作,我们先从上层的代码看起,看看布局填充的方法。方便我们从始到终了解整个情况。

175 Technology lddgo Shared on 2023-09-18

冷启动指标是App体验中相当重要的指标,在电商App中更是对用户的留存意愿有着举足轻重的影响。通常是指App进程启动到首页首帧出现的耗时,但是在用户体验的角度来看,应当是从用户点击App图标,到首页内容完全展示结束。 将启动阶段工作分配为任务并构造出有向无环图的设计已经是现阶段组件化App的启动框架标配,但是受限于移动端的性能瓶颈,高并发度的设计使用不当往往会让锁竞争、磁盘IO阻塞等耗时问题频繁出现。如何百尺竿头更进一步,在启动阶段有限的时间里,将有限的资源最大化利用,在保障业务功能稳定的前提下尽可能压缩主线程耗时,是本文将要探讨的主题。 本文将介绍我们是如何通过对启动阶段的系统资源做统一管控,按需分配和错峰加载等手段将得物App的线上启动指标降低10%,线下指标降低34%,并在同类型的电商App中提升至Top3。

49 Technology lddgo Shared on 2023-08-30

Android架构模式飞速演进,目前已经有MVC、MVP、MVVM、MVI。到底哪一个才是自己业务场景最需要的,不深入理解的话是无法进行选择的。这篇文章就针对这些架构模式逐一解读。重点会介绍Compose为什么要结合MVI进行使用。希望知其然,然后找到适合自己业务的架构模式

180 Technology lddgo Shared on 2023-07-27

包体积优化中,资源优化一般都是首要且容易有成效的优化方向。资源优化是通过优化APK中的资源项来优化包体积,本文我们会介绍得物App在资源优化上做的一些实践。

34 Technology lddgo Shared on 2023-07-19

目前字节 Android 的一些超大型项目均从原来的多仓二进制的研发模式切换到了 Monorepo 全源码,并在研发效能方面取得了较大的收益。关于 Monorepo 全源码模式下的一些技术挑战及解决方案后续会有文章单独阐述。在全源码改造的过程中,作为 build 方向的基建团队,我们也不断克服了很多 Gradle 生态的问题与挑战,对构建系统方面有了更进一步的理解。 提到超大型仓库的 Monorepo,就不得不提到 Bazel 构建系统。Google 内部使用 Bazel 作为超大仓(TB 级别)的构建系统,足以证明 Bazel 构建系统优异的性能表现。目前字节内服务端、iOS 端均采用 Bazel 作为构建系统来演进 Monorepo,业界关于 Bazel 的原理文章也很多,但大部分都围绕在工程改造方面或者在单一阐述 Bazel 的设计。

197 Technology lddgo Shared on 2023-07-06

什么是Perfetto?Perfetto是Android 10中引入的全新平台级跟踪工具。这是适用于Android、Linux和Chrome的更加通用和复杂的开源跟踪项目。与Systrace不同,它提供数据源超集,可让您以protobuf编码的二进制流形式记录任意长度的跟踪记录。您可以在Perfetto界面中打开这些跟踪记录。Perfetto是一款比较强大的安卓性能分析工具(它还可以用于分析其他系统),其功能涵盖了对CPU的追踪、电池耗电追踪、系统调用的追踪,内存分配与释放的追踪。除了性能数据记录还,它还有自带的分析工具,分析工具包括:通过自定义追踪功能来拼接命令行,用SQL方式筛选数据,将数据转换成其他格式方便自定义数据处理,Web形式的火焰图(Web可离线),以及Web上的ADB功能(有bug)。

186 Technology lddgo Shared on 2023-06-08

2016年,我们对美团Android热更新方案Robust的技术原理做了详细介绍。近几年,Google 推出了新的代码优化混淆工具R8,Android 热修复补丁制作依赖二次构建包和线上包对比,需要对Proguard切换到R8提前进行适配和改造,本文分享 Robust 在适配 R8 以及优化改进中的一些思路和经验,希望能对大家有所帮助或者启发。

42 Technology lddgo Shared on 2023-05-18