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

安卓应用告别APK格式

在Android平台中,dalvikvm的执行文件被打包为apk格式,最终运行时加载器会先解压,然后获取编译后的androidmanifest.xml文件中的permission声明对安全访问的限制,要知道仍然存在很多安全限制...那么这究竟是怎么做到的? 分拆 APK (在 Lollipop 中引入) 是从给定的 Android App Bundle 生成的,其行为与单个 APK 无异。...开发者可以把这些用途或功能添加到他们的应用中,Google Play 会按需提供这些动态功能模块,而不是在安装时统一添加,从而进一步减少应用下载体积。...当用户下载应用程序安装包时,Google Play 会自动识别用户的语言和 CPU 架构,自动将对应平台 SO 和资源的 APK 下发给用户。...除了压缩体积外,ABB在“ 防二次打包”一类安全性上也有所表现,可安卓这一次改动真是技术更迭的推动又或者为了给用户更好的使用体验吗?

1.5K40

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

64-bit Q: 为应用添加 64 位架构支持会带来 APK 的体积增大,但 Google Play 只允许上传最大 100MB 的 APK,这种情况应该如何解决?...A: 我们强烈建议您使用 Android App Bundle,这是 Android 所支持的一种官方发布格式,可让您以更高效的方式开发和发布应用。...当您发布 Android App Bundle 文件到 Google Play 时,如果 Google Play 分析并发现任何一个可能设备的下载包超过 150MB 时,将会拒绝这个 App Bundle...如: 当用户首次下载您的应用时,基础 APK 加上为特定设备而构建的 APK 之和不超过 150MB。除了 Android App Bundle 方式,您也可以为不同架构发布不同的 APK 文件。...此外,我们还在应用的系统启动映像中加入了更多信息,例如类,并借助线程管理加快映像文件的加载速度。

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

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

    在 Android Studio 中构建 App Bundle 与构建 APK 的过程大致相同。使用 Unity 的游戏开发者也可以在 Unity 的 2018.3 测试版及更高版本中构建应用束。...Android App Bundle 是开源和向下兼容的 (对于 Android L 之前的版本,Play 会自动使用多 APK——即 Play 为每个设备配置生成一个 APK,包含所有语言资源,而不是使用分拆...使用 Android App Bundle 的开发者的 APK 大小平均比之前采用的“完整 APK”小 3.5% (“完整 APK”是指一个 APK 包含了 Android App Bundle 支持的所有设备配置和语言所需的一切...在 Android M 之前,您的应用中包含的任何本地代码库都必须从 APK 中解压缩。这意味着每个设备上都安装了两个代码库副本:APK 中的压缩副本和未压缩的副本。这会导致空间浪费。...从 Android M 开始,您可以直接以未压缩的状态从 APK 中读取代码库。Play 在下载过程中对 APK 的压缩通常比压缩 APK 中的本地代码库更有效,因此整体下载体积也更小。

    1.7K20

    【Jetpack】Navigation 导航组件 ⑤ ( NavigationUI 类使用 )

    可能已经覆盖 ) : https://github.com/han1202012/Navigation NavigationUI 类支持一些系统自带的控件 , 配置后 , 自动跳转 Fragment...开发中 , NavigationUI 是 用于构建 和 管理应用程序导航界面 的重要工具 , 可以极大地提高开发效率 ; 一、NavigationUI 类简介 NavigationUI 是 Google...(Blank) " 选项 , 在弹出的界面中 , 输入 Fragment 名称 , 创建新的 Fragment ; 创建 Fragment 时 , 会自动生成对应的 布局文件 : 注意 : 该操作比较坑..., 生成 Fragment 时 , 会自动添加 Kotlin 语言插件的 Gradle 依赖 , 必要时可以删除该依赖 ; 自动生成的依赖没有配置 Maven 源 , 会报错 ; buildscript...app:layout_constraintTop_toTopOf="parent" /> b、处理 Navigation 导航逻辑 ( 重点 ) 首先 , 获取 NavController , 从布局文件中定义的

    96340

    浅谈Android App Bundle

    我们和上架国内的应用市场一样提供了一个apk,收到了如下的提示: Google 给出的描述中,提到通过 Android App Bundle来进行优化。...文件),之后用户在下载应用时,Google Play应用服务会针对下载用户的设备配置生成并提供经过优化的 APK,因此他们只需下载运行应用所需的代码和资源,不需要下载原先apk中的所有资源文件,从而让用户获取到最轻量的...下图中为.aab中的内容: 展开后如下: 编译 Android App Bundle 文件 编译Android App Bundle 需支持以下条件: 1 Android Studio 3.2 或者更高版本...同时有两种方式可以编译Android App Bundle文件 : Android Studio中可视化界面操作: Build -> Build Bundle(s)/APK(s) -> Build...有以下两种方式: 使用 bundletool 在本地测试 Android App Bundle 在Google Play中通过网页分享的形式 这里介绍第一种方式进行测试 1、先从github 下载

    1.6K10

    Android动态化框架App Bundles

    Android App Bundles 在今年的Google I/O大会上,Google向 Android 引入了新 App 动态化框架(即Android App Bundle,缩写为AAB),与Instant...现在只须在 Android Studio 中构建一个应用束 (app bundle),就可以将应用所需的全部内容 (适用于所有设备) 都涵盖在内:所有语言、所有设备屏幕大小、所有硬件架构。...,将一个apk拆分成多个apk,按需加载(包括加载C/C++ libraries),这样开发者可以随时按需交付功能,而不是仅限在安装过程中。...Android App Bundle 通常会包括以下几个文件: Base Apk:首次安装的apk,公共代码和资源,所以其他的模块都基于Base Apk; Configuration APKs:native...Build Bundle(s) Android App Bundle提供一种全新编译产物格式文件aab,使用Android Studio提供的App Bundle即可。

    1.6K40

    打造您的首个 app bundle | MAD Skills

    在这篇文章中,我们会详细介绍如何构建您的第一个 app bundle、如何通过 Play Console 上传 app bundle 以及深入理解一些配置选项。...Play Console 中高亮的 (绿色) 部分是为了上传 app bundle 准备的 Bundle 文件上传之后,Play 商店会根据用户的设备配置来优化 APK 文件。...同时这一步也会缩小下载和安装的尺寸。...在 app bundle explorer 中打开的过滤下拉菜单 下载应用 bundle 并在本地安装 在 app bundle explorer 页面的末尾有一个 "Download" 按钮可以下载一个...即便如此,使用 Android App Bundle 还可以提供给您按需加载功能模块的方法,而这一方法可以帮助您的应用避免安装那些只有一小部分用户可能使用的功能模块。

    91020

    React Native热更新方案

    你可以使用switchVersion函数立即切换版本(此时应用会立即重新加载),或者选择调用 switchVersionLater,让应用在下一次启动的时候再加载新的版本。...发布安卓应用 Android打包的流程和原生打包apk的流程一样,然后在android文件夹下运行..../gradlew assembleRelease,你就可以在android/app/build/outputs/apk/app-release.apk中找到你的应用包。...pushy uploadApk android/app/build/outputs/apk/app-release.apk 发布热更新版本 你可以尝试修改一行代码(譬如将版本一修改为版本二),然后生成新的热更新版本...return builder.build(); } ... } 注:由于采用加载文件系统下的 bundle 文件的形式,在测试过程中发现通过此形式加载的 bundle 文件,图片加载时不能读取到

    9.5K70

    Android App瘦身新姿势——Android App Bundle

    概述 Android App Bundle是Google最新推出的Apk动态打包,动态组件化的技术,与Instant App不同,AAB是借助Split Apk完成动态加载,使用AAB动态下发方式,可以大幅度减少应用体积...再说的直白一点就是,比如,项目中可能会xxhdpi,xhdpi各有一套图,或者x86,armeabi的又各有一套so库,以前的安装方式,是把这些全部装进用户的手机中,使用App Bundle,假设你是一个...x86,xxhdpi的手机,那么App Bundle会帮你拼装好一个apk,这个apk的资源只有xxhdpi的,而且so库只有x86,其他无关的都会剔除。...authuser=2 如何使用App Bundle 1.将你的Android Studio升级为3.2及其以上版本 2.添加对Dynamic Delivery的支持 其实就是一些基础apk需要东西...Enable on-demand: 是否启用按需下载,如果不启用,会直接打进Apk Fusing:熔断操作,是否安装到不支持按需下载的设备中 Module title: 模块标题 对于动态组件的一些使用场景

    1.2K10

    Android App Bundle:动态功能模块

    本文并不是介绍Android App Bundle,因为它不是新的事物,相关的文章也有很多了,本文重点介绍的是Android App Bundle中“动态功能模块”的实际应用。...Android App Bundle Android App Bundle是基于google play的分发技术,可以有效的减少apk的大小。...Android App Bundle可以自动将不同的分辨率、语言、平台(CPU)的资源分别打包,这样当安装时只根据当前设备安装对应的资源,这样大大的节省了内存空间。...默认情况下,Android Studio 不会使用 app bundle 部署您的应用,而是由 IDE 构建针对部署速度(而非 APK 大小)进行了优化的 APK,并将其安装到设备中。...此外,在下载并安装您的应用时,系统会随该应用的基本 APK 自动下载并安装支持免安装体验的功能模块。因此,IDE 还会在支持免安装体验的功能模块中添加以下内容。

    2.3K20

    Deferred Components-实现Flutter运行时动态下发Dart代码

    01  引言 在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!...这样带来的好处是显而易见的,可以将一些不常用功能放到单独的so文件中,当用户使用时再去下载,可以大大降低安装包的大小,提高应用的下载转换率。...java -jar bundletool.jar build-apks --bundle=app_project_dir>/build/app/outputs/bundle/release/.../flutter/wiki/Deferred-Components) 从官方的实现方案中可以知道,只有调用了loadLibrary方法后,才会去真正执行deferred components的下载与安装工作...loadDartLibrary:主要是负责找到so文件的位置,并调用FlutterJNI dlopen命令打开so文件,你可以直接传入apk的位置,flutterJNI会直接去apk里加载so,避免处理解压

    2.1K10

    Flutter包大小治理上的探索与实践

    App打包时,会将配置1中的文件压缩上传到动态发布系统,并从APK中移除。 App每次启动时,向动态发布系统发起请求,请求需要下载的压缩包,然后下载到本地并解压,如果本地已经存在了,则不进行下载。...然后通过DynLoader提供的上传插件将libflutter.so、libapp.so和flutter_assets/bundle.zip从APK中移除,并上传到动态发布系统托管。...图16 Flutter 资源加载相关类图 AssetBundle为资源加载的抽象类,网络资源由NetworkAssetBundle加载,打包到Apk中的资源由PlatformAssetBundle加载。...3.2.4 字体动态加载 字体属于一种特殊的资源,其有两种加载方式: 静态加载:在pubspec.yaml文件中声明的字体及为静态加载,当引擎初始化的时候,会自动从AssetManager中加载静态注册的字体资源...动态加载:Flutter提供了FontLoader类来完成字体的动态加载。 当资源动态下发后,assets中已经没有字体文件了,所以静态加载会失败,我们需要改为动态加载。

    1.8K21

    【Android 插件化】插件化原理 ( 类加载器 )

    资源 ) 【Android 插件化】“ 插桩式 “ 插件化框架 ( 运行应用 | 代码整理 ) ---- 文章目录 Android 插件化系列文章目录 一、" 插件化 " 中的 dex 文件 二、类加载器分析...三、获取类加载器 四、双亲委派机制 一、" 插件化 " 中的 dex 文件 ---- 现在的大型 Android 项目 , 基本都是 组件化 + 插件化 开发 , 项目架构上都是 组件化 的框架 ,..." 插件 " APK 中的界面 , 首先先 下载对应的 插件 APK 文件 , 将其放在 内置存储区 中 , 然后加载该 APK 文件 , 主要是 类加载器 DEX 文件中的 Class 字节码数据..., 可以将其加载到应用中 , 并跳转到该界面中 ; 二、类加载器分析 ---- 类加载 是 通过类加载引擎 , 将字节码数据加载到 Java 虚拟机的运行期数据区 中的 Java 虚拟机栈 中 ;...ClassLoader 加载涉及到 双亲委派机制 , Android 中顶级的类加载器 ClassLoader 是 BootClassLoader , 然后其下是 PathClassLoader , PathClassLoader

    63210

    学习|Android检测并自动下载安装包(Kotlin)

    本文长度为2819字,预计阅读6分钟 Android检测并自动下载安装包 上一篇文章《学习|Android使用TTS语音合成》我们学习了Android用TTS语音合成播放声音,其中因为要播放中文,所以需要下载讯飞的语音合成包...,项目应用中的话如果让用户自己寻找并下载太麻烦,所以为了增加用户体验,这一篇我们就研究一下怎么检测是否需要下载安装包,如果需要并自动下载。...初始化TTS之前,先检测讯飞语音合成的包是否已经安装 2. 如果安装,直接进行初始化配置,如果未安装检测是否能访问外网 3. 不能访问外网直接提示初始化失败,能访问外网自动下载安装包 4....下载完成后显示点击安装按钮进行安装,再加入一个调用TTS配置按钮进行语音设置 代码实现 DownloadHelper类 这个类是从网上找的,通过AsyncTask的方式实现安装包的下载,加入了一个onDownloadInferface...的接口实现,网上的这个类是JAVA写的,这里我自己用Kotlin重新写了一篇(其实复制过来可以自己转换的),但是这样对自己学习Kotlin没有什么太大帮助,直接贴出代码,其中外部调用时在Java中的静态方法直接前面加上

    1.4K10

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

    那么这究竟是怎么做到的? ? 分拆 APK (在 Lollipop 中引入) 是从给定的 Android App Bundle 生成的,其行为与单个 APK 无异。...更棒的是,当设备配置 (如语言) 发生变化时,Google Play 会检测到它,并下载该语言的配置 APK。...开发者可以把这些用途或功能添加到他们的应用中,Google Play 会按需提供这些动态功能模块,而不是在安装时统一添加,从而进一步减少应用下载体积。...想要更好地控制从 Android App Bundle 进行拆分的方式的话,您可以从应用束的设置区块中进行精确设置: ?...开通应用签名后,Google Play 会自动生成并签署发送给用户设备的 APK。 ? 上传后,单击应用束并选择 Explore App Bundle 即可查询节省空间的大小。

    1.9K20
    领券