• 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
28 search results Contribute

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

13 Technology lddgo Shared on 2023-10-12

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

51 Technology lddgo Shared on 2023-09-18

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

25 Technology lddgo Shared on 2023-08-30

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

52 Technology lddgo Shared on 2023-07-27

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

14 Technology lddgo Shared on 2023-07-19

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

56 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)。

58 Technology lddgo Shared on 2023-06-08

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

12 Technology lddgo Shared on 2023-05-18

Android 项目一般使用 Gradle 作为构建打包工具,随着业务需求的不断迭代,代码量提升的同时,Gradle 编译耗时也在不断的增长,而编译速度会直接决定开发流程效率的高低,影响面主要涉及到开发和测试阶段。 对于火车票项目,经过长期的迭代过程导致模块众多工程庞大,优化前一次干净的全量编译时间可达到10m39s,造成开发和测试都需要长时间等待编译出包,严重影响到开发和测试的效率。因此对火车票 App 进行编译速度优化是件亟待解决的事情。 本次编译速度优化采用的方案是模块AAR方案, 优化目标为: 优化后一次干净的全量编译时间缩减为原来编译时间的50%以下。

43 Technology lddgo Shared on 2023-04-27

对于 Android 客户端开发者来说,Activity 是我们再熟悉不过的一个组件了。它是 Android 四大组件之一,是一个直接与用户交互的展示型 UI 组件。在开发过程中,启动并创建一个 Activity 流程非常简单,而在系统底层实际上做了大量的工作,之所以使用这么简单,得益于系统底层对于 Activity 的良好封装。本篇内容我们着重来分析一下 Framework 层 Activity 的启动与创建的过程。

16 Technology lddgo Shared on 2023-04-07