首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何优化您的 Android 应用(Go 版)

一个应用程序,不同的 APK。 针对 Android(Go 版)设备和其他所有设备使用相同的应用,但是有不同的体验。...创建不同的 APK; 一个 APK 针对新的 android.hardware.ram.low 尺寸 vs APK(s)定位其他所有设备。 两个应用。...请记住已经宣布安全更新:发布到 Play 控制台的新应用需要在 2018 年 8 月 1 日之前至少定位到 API 26(Android 8.0)或更高版本,而现有/已发布应用的更新将需要在 2018...使用 Android App Bundle,您可以构建一个工程,其中应用程序包含已编译代码,资源和本地库。您不再需要为多个 APK 进行构建,签名,上传和管理版本代码。...您应该把它当作您的窗口,以确保您拥有一个用户,并且不要让他们有机会在他们的手机上安装您的应用后放弃您的应用。我们总是测量冷启动时间,因为这段时间是您的应用程序与用户充分交互。

1.8K20

为什么说它对 Android 未来的发展十分重要?

回首 Android 的第一个十年 十年来,在 Android 上发布应用的流程如下: 第 1 步:在 IDE 中为您的应用编写代码,例如 Android Studio。...您可以在单个版本中为每个设备配置构建多个 APK。但当您想要针对不同屏幕尺寸和 CPU 架构进行优化,同时针对 32 位和 64 位时,情况很快就会失控——您最终可能会为每个版本构建数百个 APK。...第 6 步:在您的应用安装在设备上后,Play 也会根据需要提供额外的分拆 APK,例如,当用户更改设备语言或是想要使用动态功能时。更具体的细节将在稍后详述。 ?...Android App Bundle 是开源和向下兼容的 (对于 Android L 之前的版本,Play 会自动使用多 APK——即 Play 为每个设备配置生成一个 APK,包含所有语言资源,而不是使用分拆...需要销售功能的小部分用户群体 (即销售人员) 可以在需要时下载和访问这个功能。一些开发者还在探索动态功能,避免为仅仅是略有不同的用户群体提供为数过多的不同应用变体。

1.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    让您的应用做好准备,以符合 64 位要求

    为符合 64 位要求做准备 我们预期对大多数开发者而言,转到 64 位应该非常简单,因为许多应用完全以非原生代码 (例如 Java 编程语言或 Kotlin) 编写,所以不需要更改代码。...所有开发者: 下面简单介绍了为符合 64 位要求,您需要采取的步骤。如需详细了解此流程,请参阅我们的深入介绍文档。 检查您的 APK 或应用软件包是否使用原生代码。...您可以使用 APK 分析器检查 .so 文件,确定它们是由您自己的代码构建,还是由您使用的 SDK 或开发库中导入。...如果您的 APK 中没有任何 .so 文件,则说明您的应用已经符合 64 位要求。 启用 64 位架构并重新构建使用您自己的代码中引入的原生代码 (.so 文件) 。...我们明白迁移第三方游戏引擎是一个非常艰难的过程,需要很长的筹备时间。

    1.3K20

    如何获得更小的应用文件尺寸?来了解下 Android App Bundle

    如何针对不同的用户给出最优的安装体验,正是 Android App Bundle 所要解决的问题。本文将阐述 App Bundle 可以带来的好处,并演示如何使用这种全新的分发功能。 ?...这意味着,如果我使用的是一台 Android One 手机 (小米 A1) 而且我设置的主要语言是英文,则这台手机将获得基础 APK 以及支持英文、arm64 CPU 架构和 xhdpi 屏幕分辨率的配置...安装早于 Android Lollipop 版本的设备也可以享受安装文件体积缩小的福利,但其 APK 中将包含所有语言。 在如今,很显然构建一个统一的臃肿的 APK 的做法已经过时了。...如果您使用 Android Studio 3.2 及更高版本,那么您只需点击几下即可生成已签名的应用束,将其上传到 Play Store,即可让用户开始享受更小尺寸 APK 所带来的便利。...Google Play 会管理您的应用签名密钥,您只使用上传密钥,用于验证您的身份。自己管理应用签名密钥存在风险,因为在丢失密钥后,您将无法更新已发布的应用; 同样,您的密钥很容易被盗。

    1.9K20

    为您的应用配置 Play Feature Delivery

    您可以使用 Android Studio 来体验 "新建模块 (New Module)" 的流程,我们在这篇文章里还会介绍该流程背后的逻辑,以及之后您可以如何更改配置。...如果您需要为一个特定模块指定 API 版本,这些会非常有用。 此外,AndroidManifest 文件中的每一个 uses-feature 元素 都可以被用来作为安装条件。...您可以选择某些特定的功能模块只在特定的国家可用。这将是一个实现本地化应用非常好的方式。为了实现这个功能,您需要添加 user-countries 标签并设置两个字母的国家代码。...不含代码的模块 有时您只想分发给用户一个类似 TensorFlow 模型的大型资源文件,在这个功能模块中,您并没有任何代码,这时请确保该模块的 AndroidManifest 文件中 hasCode 的值设置为...使用按需安装节省了初始的下载时间和大小。 在 AndroidManifest 文件中,您需要设置分发选项为 on-demand。

    83520

    Gradle 与 AGP 构建 API: 进一步完善您的插件!

    在上一篇文章《Gradle 与 AGP 构建 API: 如何编写插件》中,您学习了如何编写您自己的插件,以及如何使用 Variants API。 如果您更喜欢通过视频了解此内容,请 点击此处 查看。...同时您也将进一步完善您的插件,并学习如何使用新的 Artifact API 访问各种构建产物。...Property 假设我想要创建一个插件,该插件可以使用 Git 版本自动更新应用清单文件中指定的版本号。为了达到这一目标,我需要为构建添加两个 Task。...,因为我想将它存储在一个中间文件中,从而让其他 Task 也可以读取和使用这个值。...在插件代码中,我将此 Task 注册为 "Verifier",并传入 APK 文件夹和当前变体产物的 buildArtifactLoader 对象。

    60220

    Android 应用构建速度提升的十个小技巧

    小技巧 1: 使用最新版本的 Android Gradle 插件 ?...在应用需要发布和上架的时候,我们往往会使用 “Multiple APK” 构建,它可以根据 ABI 和像素密度创建不同版本的应用,使包体积降低等。...当您的应用包含大量本地化资源或者为不同像素密度加入了特别的资源时,您可能需要应用这个小技巧来提高构建速度——最小化开发阶段打包进应用的资源数量。...构建系统默认会将声明过或者使用过的资源全部打包进 APK,但在开发阶段我们可能只用到了其中一套而已,针对这种情况,我们需要使用 resConfigs() 来指定构建开发版本时所需要用到的资源,如语言版本和屏幕像素密度...即使您不是特别在意这些性能损耗,但是它仍然是有风险的——依赖库的版本更新会让您的构建充满不确定性,可能两周之后您就在构建一个完全不一样的工程了,因为依赖库代码的更新对开发者们是不可见的。

    95730

    Android 应用构建速度提升的十个小技巧

    小技巧 1: 使用最新版本的 Android Gradle 插件 ?...在应用需要发布和上架的时候,我们往往会使用 “Multiple APK” 构建,它可以根据 ABI 和像素密度创建不同版本的应用,使包体积降低等。...当您的应用包含大量本地化资源或者为不同像素密度加入了特别的资源时,您可能需要应用这个小技巧来提高构建速度——最小化开发阶段打包进应用的资源数量。...构建系统默认会将声明过或者使用过的资源全部打包进 APK,但在开发阶段我们可能只用到了其中一套而已,针对这种情况,我们需要使用 resConfigs() 来指定构建开发版本时所需要用到的资源,如语言版本和屏幕像素密度...即使您不是特别在意这些性能损耗,但是它仍然是有风险的——依赖库的版本更新会让您的构建充满不确定性,可能两周之后您就在构建一个完全不一样的工程了,因为依赖库代码的更新对开发者们是不可见的。

    93230

    Android Q 开发者常见问题 | FAQ・第二期

    64-bit Q: 为应用添加 64 位架构支持会带来 APK 的体积增大,但 Google Play 只允许上传最大 100MB 的 APK,这种情况应该如何解决?...如: 当用户首次下载您的应用时,基础 APK 加上为特定设备而构建的 APK 之和不超过 150MB。除了 Android App Bundle 方式,您也可以为不同架构发布不同的 APK 文件。...让开发者无需更改任何代码,便可有效缩短应用的启动时间,减少内存消耗。...A: 在 Android 8.0 或以上的版本中,可以考虑使用 SSAID (Settings.Secure.ANDROID_ID),因为它的生成是基于设备用户安装应用签名的密钥。...该页面列举了如何从 OEM 厂商获取并安装 Beta 版本。 Permissions Q: 为什么扫描蓝牙及 Wi-Fi 热点也需要申请地理位置权限?

    23410

    学(kao)习(bei)官方关于64k异常处理 ^_^

    通过 ProGuard 移除未使用的代码 为版本构建启用代码压缩以运行 ProGuard。启用压缩可确保交付的 APK 不含有未使用的代码。...解决Android 64k 要解决Android64k,你需要将你的应用项目设置为使用 Dalvik 可执行文件分包配置,其次需要对项目进行以下修改,具体取决于应用支持的最低 Android 版本。...该情况不应出现在直接从应用代码访问的代码上,因为构建工具能识别这些代码路径,但可能在代码路径可见性较低(如使用的库具有复杂的依赖项)时出现。...对于发布定制,将 minSdkVersion 设置为适于您的实际最低支持级别。此设置生成的 Dalvik 可执行文件分包 APK 可兼容更多设备,但构建时间更长。...提示:由于有适用于不同 Dalvik 可执行文件分包需求的不同构建变体,因此也可以为不同变体提供不同清单文件(这样,只有适用于 API 级别 20 和更低版本的清单文件会更改 标记名称),或者为每个变体创建不同的

    97520

    Multidex记录一:介绍和使用

    Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...因此,如果您的 minSdkVersion为 21 或更高值,则不需要 Dalvik 可执行文件分包支持库。...配置您的应用进行 Dalvik 可执行文件分包 将您的应用项目设置为使用 Dalvik 可执行文件分包配置需要对您的应用项目进行以下修改,具体取决于应用支持的最低 Android 版本。...方案的应用可能不能在低于Android 4.0 (API level 14) 机器上启动,这个主要是因为Dalvik linearAlloc的一个bug ; 采用MultiDex方案的应用因为需要申请一个很大的内存...该情况不应出现在直接从应用代码访问的代码上,因为构建工具能识别这些代码路径,但可能在代码路径可见性较低(如使用的库具有复杂的依赖项)时出现。

    1.7K10

    重要变更: Android App Bundle 的未来计划

    APK,以针对不同设备配置和语言进行分发。...您可以使用通用的应用签名密钥或使用针对不同渠道的唯一应用签名密钥,包括面向 Google Play 的唯一应用签名密钥。...很快,Play 管理中心将帮助您更加轻松地进行首次发布应用,只要在第一次发布到开放渠道之前,您都可以更改应用签名密钥。...若想使用 Play 应用签名,您需要提供应用签名密钥的副本,因为 Google Play 需要使用此签名副本进行签名,并向您的现有用户提供版本更新。...不过,要做到这一点,当您上传 App Bundle 时,您还需要上传使用旧密钥签名的原 APK,这样一来,Google Play 即可继续向现有用户推送更新。 Q:我可以更改我的应用签名密钥吗?

    1.1K40

    Android Study 之学(kao)习(bei)官方关于64k异常处理 ^_^

    前言 随着APP的一次又一次迭代,APP的体积也越来越大,这时候,会引发这么一个问题,早期的错误异常如下: ? 较新版本的 Android 构建系统虽然显示的错误不同,但指示的是同一问题: ?...通过ProGuard移除未使用的代码 为版本构建启用代码压缩以运行 ProGuard。启用压缩可确保交付的 APK 不含有未使用的代码。...解决Android 64k 要解决Android64k,你需要将你的应用项目设置为**使用 Dalvik 可执行文件分包配置,其次需要对项目进行以下修改,具体取决于应用支持的最低 Android 版本。...对于发布定制,将 minSdkVersion 设置为适于您的实际最低支持级别。此设置生成的 Dalvik 可执行文件分包 APK 可兼容更多设备,但构建时间更长。...提示:由于有适用于不同 Dalvik 可执行文件分包需求的不同构建变体,因此也可以为不同变体提供不同清单文件(这样,只有适用于 API 级别 20 和更低版本的清单文件会更改 标记名称),或者为每个变体创建不同的

    83410

    Jetpack Compose 使用前后对比

    下面,让我们看看具体指标… 指标 针对下列的每一个指标,我们都对比了应用的三个不同版本: 接入 Compose 前 : 回到 2020 年 2 月,这是我为 Tivi 添加 Comepse 支持的第一个...此时的 Tivi 已经完全基于 Compose (版本 1.0.0-beta05) 了,同时在整个应用中都没有 Fragment。 APK 尺寸缩减 您的用户最为关心的指标,莫过于 APK 大小。...在使用了 Compose 后,我们发现 APK 大小缩减了 41%,方法数减少了 17% 这一数字表明,当您需要保留所有 View 类,以防出现需要在布局文件中使用它们的情况时,压缩工具的作用十分有限。...代码行数 我知道在比较软件项目时,计算源代码行数不是特别有用的统计方式;但这种方式能够提供一个视角,帮助我们了解事物是如何变化的。 为了进行测试,我使用了 cloc 工具。...而其他版本使用了较旧的 Hilt 版本,其使用了不同的机制,会严重拖慢生成 dex 文件的时间。

    1.1K30

    Android Studio 4.2 现已发布!

    如果您在使用这些功能并正在寻找下一个稳定版本的 Android Studio,那么您可以立即下载 Android Studio 4.2!...通过使用 Android Studio 4.2,您现在可以自动补全 Directions Args 的代码,并实现从源到 XML 的代码导航。点击这里 了解更多详情。...在 Android Studio 4.2 中,我们扩展了与 Apply Changes 相兼容的大量更改,当在 Android 11 以上版本的设备或模拟器上运行时,我们可添加资源 (占需要完全重启的更改的...其次,我们已将默认的 Java 编程语言更新为版本 8。最后,我们为 APK v3 和 APK v4 签名格式添加了支持。您可以查看 相关文档 详细了解其他 AGP 更新。...需要注意的是,如果您向多个设备部署测试,系统可能会提示您启用此行为。

    1.6K20

    Android Studio 3.2新功能特性

    当您使用Refactor to AndroidX命令或创建一个minSdkVersion设置为“P” 的新项目时,这两个标志都会设置为true。...Google Play的新应用服务模型称为动态投放,然后使用您的应用捆绑软件为每个用户的设备配置生成并提供优化的APK,因此每个用户只下载运行您的应用所需的代码和资源。...通过动态交付,用户可以根据需要下载和安装应用的动态功能。 要构建一个包,请选择Build> Build Bundle(s)/ APK(s)> Build Bundle(s)。...如果在新变体上运行lint,则会发出警告 Lint现在记录了一个基线记录的变体和版本,并且如果您在与创建基线的变体不同的变体上运行它,lint会警告您。...您可以通过在项目gradle.properties文件中包含以下内容来开始使用R8的预览版本: android.enableR8 = true 修改了默认的abi 当建立多个APK每个目标不同的ABI

    5.5K10

    Kotlin 语言入门宝典 | Android 开发者 FAQ Vol.5

    导语: 官方出的 FAQ ,kotlin是兼容 java 6.0 的 jvm 语言,此篇 FAQ 中,大概需要重点关注的大概是 APK 的影响吧: Kotlin 在运行时可能会在您的 debug APK...中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。...Kotlin 在未来的发展方向? 我们使用 Kotlin 的一个原因是因为 JetBrains 公司在设计这门语言时十分周到和有启发性的工作。...Kotlin File/Class” 窗口提供了一些文件的选择,因为在您更改了类型之后,Kotlin 会自动转换文件类型,所以您选择什么都不重要。...Kotlin 在运行时可能会在您的 debug APK 中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。

    2.6K60
    领券