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

创建apk文件时,我应该选择多少种支持的架构

在创建APK文件时,您可以选择支持的架构种类。架构是指计算机系统的基本结构和组织方式,不同的架构适用于不同类型的设备和处理器。选择适当的架构可以优化应用程序的性能和兼容性。

常见的Android应用程序架构包括以下几种:

  1. ARMv7:适用于大多数Android设备,包括智能手机和平板电脑。它提供了良好的性能和广泛的兼容性。推荐使用腾讯云的云服务器CVM,产品介绍链接:https://cloud.tencent.com/product/cvm
  2. ARM64:适用于64位ARM架构的设备,如一些高端智能手机和平板电脑。它提供更好的性能和更高的内存访问能力。推荐使用腾讯云的云服务器CVM,产品介绍链接:https://cloud.tencent.com/product/cvm
  3. x86:适用于基于x86架构的模拟器和一些x86架构的Android设备。它可以提供更好的性能和兼容性,特别是在模拟器上进行应用程序测试时。推荐使用腾讯云的云服务器CVM,产品介绍链接:https://cloud.tencent.com/product/cvm
  4. x86_64:适用于64位x86架构的设备,如一些高端平板电脑和台式机。它提供更好的性能和更高的内存访问能力。推荐使用腾讯云的云服务器CVM,产品介绍链接:https://cloud.tencent.com/product/cvm

根据您的应用程序的目标受众和需求,您可以选择支持一个或多个架构。通常建议至少选择ARMv7和ARM64两种架构,以覆盖大多数Android设备。

请注意,以上推荐的腾讯云产品链接仅供参考,具体选择应根据您的实际需求和预算进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

安卓so库你应该注意的事

下面就来扯一下安卓cpu 早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!...Android应用支持的ABI取决于APK中位于lib/ABI目录中的.so文件,其中ABI可能是上面说过的七种ABI中的一种。...但你不应该从你的应用程序中读取它,因为 Android包管理器安装APK时,会自动选择APK包中为对应系统ABI预编译好的.so文件,如果在对应的lib/ABI目录中存在.so文件的 话。...你应该为每个ABI目录提供对应的.so文件。 当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。...作为一个经验法则,当只有一个.so文件时,静态编译C++运行时是没问题的,否则当存在多个.so文件时,应该让所有的.so文件都动态链接相同的 C++运行时。

1.2K20

android开发 加载so库的解析和出现的各种错误分析

一.android目前有几种cpu架构? 早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!...Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014...但你不应该从你的应用程序中读取它,因为Android包管理器安装APK时,如果在对应的lib/ABI目录中存在.so文件的话,会自动选择APK包中为对应系统ABI预编译好的.so文件。...六.不同的开发环境so库应该放在哪里?...七.为什么一般的项目中只看到armeabi文件夹? 因为所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件。

2.4K10
  • 再谈Android动态链接库

    前不久,我们准备将自己开发的视频播放sdk提供给公司其他部门,在打包的时候,同事问了我一个问题,为什么我们打sdk的时候需要分别提供armeabi和arm64-v8a(ps,还有其他7种CPU架构)。...如果项目用到了NDK,Android apk文件将会到位于lib/ABI文件下读取相关.so文件。Android包管理器在安装APK文件时,会自动选择对应系统环境下预编译好的.so文件。...ABI和CPU的关系 在使用so库应该注意:很多设备都支持多于一种的ABI,当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。...但你不应该从你的应用程序中读取它,因为Android包管理器安装APK时,会自动选择APK包中为对应系统ABI预编译好的.so文件。...但是我们在使用不同环境进行编译的时候应该做到以下几点: 当只有一个.so文件时,静态编译C++运行时是没问题的 当存在多个.so文件时,应该让所有的.so文件都动态链接相同的C++运行时。

    2.5K70

    关于so文件你需要知道的知识「建议收藏」

    Android应用支持的ABI取决于APK中位于lib/ABI目录中的.so文件,其中ABI可能是上面说过的七种ABI中的一种。...但你不应该从你的应用程序中读取它,因为Android包管理器安装APK时,会自动选择APK包中为对应系统ABI预编译好的.so文件,如果在对应的lib/ABI目录中存在.so文件的话。...安装Apk时PackageManagerService选择解压so文件的策略 在Android系统中,当我们安装Apk文件的时候,lib目录下的so文件会被解压App的原生库目录,一般来说是放到/data.../data/package-name/lib目录下,而根据系统和CPU架构的不同,其拷贝策略也是不一样的,不正确地配置so文件,比如某些App使用第三方的so时,只配置了其中某一种CPU架构的so,可能会造成...倘若不正确地配置了so文件,比如某些App使用第三方的so时,只配置了其中某一种CPU架构的so,可能会造成App在某些机型上的适配问题,产生上述崩溃。

    2.9K10

    Android 调用so库全过程

    : 这里在发送消息给Zygote进程,看到这里通过ApplicationInfo中的primaryCpuAbi类型告诉Zygote改创建多少位的虚拟机,我们查看系统启动文件init.rc内容:...: 1、在NDK开发时,可以指定多种架构类型编译出多种类型的so文件。...apk文件,没有找到arm64-v8a类型的so文件,这时候应用的abi类型就是armeabi/armeabi-v7a了,这就是32位的了,就会通知32位的Zygote进程创建了一个32位的虚拟机,那么此时我的项目中通过...so文件较大的话,apk包最终也是很大的,所以这里就需要做一次选择了。...,所以理论上应该把所有架构类型的so都要提供,这样给需要接入的app进行选择即可,比如像百度地图SDK: 十四、总结 本文主要是介绍了Android中关于so的相关知识,而这些知识点都是在使用so

    6.7K21

    系统应用集成过程中的一些坑背景知识点正文埋坑后记参考资料

    应该不至于两个目录都得集成,因为三方应用安装时,从 apk 包中也只会解压一份 so 文件而已,并不会将 lib 下所有 abi 架构的 so 文件都解压。...最后,我选择了 ReLinker,发现它的源码并不多,直接将所有源码拷贝到项目中,修改了源码中某个流程的逻辑,用于解决我自己这种场景下的 so 文件加载问题,搞定,具体在下面的埋坑一节讲述。...当然,也可以另外一种集成方式: apk push 到 system/app/{自己创建的目录}/ so 文件 push 到 system/app/{自己创建的目录}/lib 中 这种方式的说明,请看后面的后记一章节...当然,解压 apk 遍历 so 文件时,如果需要的 so 文件存在于不同的 CPU 架构目录中,并不加以区分,直接拿第一个遍历到的 so 文件。...我是两种方案都做了,如果运维能够按照正常步骤集成,那么 so 文件加载异常的概率应该就不会大,即使运维哪个步骤操作失误了,方案二也可以弥补。

    1.1K20

    so库你应该知道的基础知识

    Android应用支持的ABI取决于APK中位于lib/ABI目录中的.so文件,其中ABI可能是上面说过的七种ABI中的一种。...但你不应该从你的应用程序中读取它,因为Android包管理器安装APK时,会自动选择APK包中为对应系统ABI预编译好的.so文件,如果在对应的lib/ABI目录中存在.so文件的话。...安装Apk时PackageManagerService选择解压so文件的策略 在Android系统中,当我们安装Apk文件的时候,lib目录下的so文件会被解压App的原生库目录,一般来说是放到/data.../data/package-name/lib目录下,而根据系统和CPU架构的不同,其拷贝策略也是不一样的,不正确地配置so文件,比如某些App使用第三方的so时,只配置了其中某一种CPU架构的so,可能会造成...倘若不正确地配置了so文件,比如某些App使用第三方的so时,只配置了其中某一种CPU架构的so,可能会造成App在某些机型上的适配问题,产生上述崩溃。

    11321

    armeabi-v7a架构(sv7a)

    为什么调试模式和发行模式adobe会选择不同的文件夹?...因此armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力,在AIR打包APK调试模式adobe选择的是通用性强的armeabi模式。...所以armeabi-v7a 应该是与AIR限定支持android2.2以上的条件有关。android2.2以上能让硬件发挥更大的作用。...-EOF- 在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个...现在还有x86的了,其实armeabi 、armeabi-v7a 和x86是编译 NDK 库时,可以使用三种支持的应用二进制接口(ABI):‘armeabi’ – 默认选项,将创建以基于 ARM* v5TE

    1.3K10

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

    它支持安装时交付、按条件交付和按需交付等三种模式。 Play Asset Delivery : 以动态方式交付大型资源可以减少用户等待时间,同时缩减交付成本。...对于大多数应用而言,构建 AAB 文件来替代 APK 文件仅需要少量工作。这其中的关键是在构建时选择其他选项并按常规方式进行测试。...Q:App Bundle 为何不支持扩展文件 (OBB)?为何游戏应使用 Play Asset Delivery? APK 要求使用单独的文件 (OBB) 来向用户推送更多资源。...Q:如果要发布一个新应用,我能决定我的应用签名密钥内容吗? 可以,我们会在 Play 管理中心中提供此选项。创建新应用时,您可以选择向 Google 提供应用签名密钥。...不过,要做到这一点,当您上传 App Bundle 时,您还需要上传使用旧密钥签名的原 APK,这样一来,Google Play 即可继续向现有用户推送更新。 Q:我可以更改我的应用签名密钥吗?

    1.1K40

    ndk代码支持断点调试

    这里有个误区是android studio其实是支持ndk-build和cmake两种构建方式的,但是几乎所有的博客在给教程的时候都是用的官方推荐的cmake构建方式。...两种配置方法的区别在于,配置defaultconfig中的ndk的abifilters参数,android studio会将所有的架构so打包到一个apk中,但是如果使用productflavors,将会根据不同架构打包不同的...google play是支持根据架构下发不同apk到手机上的,但是国内的应用市场不支持。因此如果要在国内上线建议还是使用abifilters参数的方式。...选择build->analyze apk,从app/build/outputs/apk/目录中选择apk并点击ok。这时候可以在lib//下看到相应的so ?...ndk-build构建方式以后可能会不支持,但是那应该也是swift发布10.0版本的时候了。

    3.9K61

    Android性能优化之APK瘦身详解(瘦身73%)

    公司项目在不断的改版迭代中,代码在不断的累加,终于apk包不负重负了,已经到了八十多M了。可能要换种方式表达,到目前为止没有正真的往外推过,一直在内部执行7天讨论需求,5天代码实现的阶段。...优化过后包大小为23.1M(优化了73%,不要说我标题党)。好了好了,我要阐述我的apk超级无敌魔鬼瘦身之心得了。 目录如下图: ? 文章主要内容从理论出发,再做实际操作。...修改lib配置: 参考资料 so文件的优化:通常我们在使用NDK开发的时候,我们经常会有如下这么一段代码: ndk { //设置支持的so库架构 abiFilters...最后我的修改代码如下: ndk { //设置支持的so库架构 abiFilters "armeabi-v7a" } 接下来说明这么做的依据...确实有点震惊,一下子包小了这么多,从87.1M到51.9M,容我好好算算少了多少M.赶快让测试帮忙测一下。基于之前的理论知识,心里还是有点底。果然,测试效果和之前是一样的。心里的石头先落下罗。 2.

    1K40

    APK安装流程详解4——安装中关于so库的那些事

    Android应用支持的ABI取决于APK中位于lib/ABI目录中的so文件,其中 ABI可能是上面说过的其中ABI的一种 (二)、关于so文件的一些补充 1、so文件的重要法则 处理so文件时有一条简单但却很重的法则...即你应该为每个ABI目录提供对应的so文件。 2、NDK兼容性 使用NDK时,一般人会倾向于使用最新的编译凭条,但实际上这样做是有问题的。因为NDK平台是不向后兼容的,而是向前兼容的。...PS:当只有一个so文件时,静态编译C++运行时是没有问题的。但是当存在多个so文件时,应该让所有so文件都动态链接相同的C++运行时。...3、 ABI支持CPU的知识点 1、大部分CPU都支持多余一种的ABI 2、 当一个应用安装在设备上,只有设备支持的CPU架构对应的.so文件会被安装。...例如:在cpu是ARMv7架构的手机上,如果检测到armeabi-v7a,就会选择安装armeabi-v7a,则armeabi下的文件,就无法安装了。

    4.3K10

    「玲珑宝塔」优化 Apk 包大小

    上图可看到默认支持了 89 种语言类型,目前的应用暂时未国际化,这块也可直接设置兼容中文即可,原谅我这个强迫症。 占比排行榜依次为:源代码、资源文件、lib。 我们先挑个软柿子玩玩。...默认语言中设置为中文,且应用也只支持了中文,少了好多东西,爽得很~ 1.2 设置支持的 CPU 架构类型(减少 1.5 MB) 话说这里的 lib 为何兼容了这么多的 CPU 架构类型???...貌似 Google 商店现在支持对应的架构模式分发对应的 Apk 包,这点爽的每个包只需要兼容一种就好了。But,ummm。...R8 每次运行时都会创建一个 mapping.txt 文件,其中列出了混淆过的类、方法和字段名称与原始名称的映射关系。此映射文件还包含用于将行号映射回原始源文件行号的信息。...1.4 开启 Zipalign 优化 这块我看的很湿懵逼,估计唯有鸡大行云流水了。简单摘自官方解释: zipalign 是一种归档对齐工具,可对 Android 应用文件进行重要的优化。

    85220

    android 应用的证书签名跟系统签名

    文件来进行签名,使用android studio生成签名文件的方式有两种,一种是使用android studio导航栏上的Build->Generate Signed Bundle/APK 上图的...Play之外的其他应用商店 不管选择创建的是Android App Bundle 文件还是APK文件,后面的流程都是一样的 既然你看到这篇博客了那就说明你还没有一个正式的keystore文件,所以还是点击...Create new按钮,如果你已经有一个正式的文件,就选择Choose existing按钮 因为这里ljl.jks文件我已经创建过了,这里新建另一个文件Gerecoc.jks,点击ok 勾选记住密码...如果前面选择创建Android App Bundle文件则这里会得到一个.aab后缀的签名文件 方法二 使用Gradle生成 编辑app/build.gradle文件 然后点击右侧的工具栏Gradle...app-debug.apk app_signed.apk 该指令对应上图的文件目录结构,应该很轻易看懂 如上,执行指令后进行系统签名,生成了app_signed.apk 下面安装该系统签名apk

    1.9K20

    Flutter-Apk 大小优化探索

    这里看到将我们编写的 Dart 代码转化为不同架构下的 so 库,以供原生调用(我是这么猜测的哈)。...针对不同 CPU 架构所代表含义,尤其 Flutter 打包 Apk 生成的三种 CPU 架构分别对应什么含义: x86_64:Intel 64 位,一般用于平板或者模拟器,支持 x86 以及 x86_...则是指定生成对应架构的 release 包; 最后的 --split-per-abi 则表示告知需要按照我们指定的类型分别打包,如果移除则直接构建包含所有 CPU 架构的 Apk 包。...所以这个命令的含义就是告诉编译器,我需要你为我针对我指定的三种不同架构分别生成对应的 Apk 包。 有的小伙伴就说了,你这空口无凭,没证据啊。...android-arm,android-arm64,android-x64 --split-per-abi 含义就是,哥,帮我针对不同 CPU 架构分别打包,别忘记混淆哈,生成的符号表文件记得帮我放在

    6.5K41

    成功逆袭:越来越胖怎么能忍,我的APK瘦身之路!

    xxxhdpi资源文件夹,可根据自己app的用户设备选择支持2-3种即可(当然一套也行) 高版本的gradle已不再支持通过resConfigs "nodpi", "hdpi", "xhdpi", "...4、如果想整体移除res下某个文件夹可以添加如下aaptOptions配置,而不用打包时手工删除,多个文件夹用:隔开 ?...架构支持 Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64...所以一般的应用完全可以根据自己业务需求选择使用armeabi或者armeabi-v7a一种支持就行。 可以通过gradle配置 ?...动态下发 比较大的so可以选择动态下发的形式延迟加载,代码上需要加一些判断逻辑。 dex文件 1、添加设置minifyEnabled true,混淆、压缩代码,这个设置现在app应该都已经添加了。

    81920

    曾老湿教你如何架设游戏服务器(天龙八部手游)

    ,apache2.2和php5.4,等咱们后面学到了架构,会教大家如何去安装这些服务  服务部署 网站代码操作 #创建游戏目录 [root@tianlong ~]# mkdir /usr/local...,GM是啥,我想玩过游戏的同学,应该都知道吧,这里就不用我多说了,  开挂吧,同学们,想给自己充多少元宝就充多少元宝,想让自己是vip就是vip。... 添加apk项目(卓的安装包都是以apk结尾的)  反编译APK,然后修改代码  反编译成功  修改代码中的IP地址   修改完之后,再将代码,编译成APK文件  然后将apk...文件,放在网站中,手机连接网站下载:  下载之后,安装apk  找到安装的游戏      OK 完成了,尽情的去享受吧 使用电脑,需要安装安卓模拟器:  ... 提示:千万不要沉迷于网游 1.你充的几百,几千,几万块钱,只是在人家的数据库中执行了一条update 2.如果你学完了架构,学完了数据库,你完全可以拥有一款属于你自己的游戏(需要源代码)

    1.8K10

    64 位适配黑科技:一键检索未适配的 so 文件

    未经作者允许禁止转载 最近,各大应用市场都在推动应用支持 64 位架构,你的 App 已经支持了吗?在这篇文章里,我将带你完成 64 位架构的的适配工作。...应用二进制接口(Application Binary Interface, ABI)定义了机器代码和操作系统的交互,与我们熟知 API 会以一个接口源码实体存在不同,ABI 更应该理解为一种规范。...时加载到内存中。如果没有查找到匹配的 so 文件,不会中断安装过程,但在运行时会崩溃。 关于加载 so 文件的过程,我们在 《说说 so 库从加载到卸载的全过程》这篇文章里已经讨论过了。...为了快速检索到项目中不支持 64 位 的 so 文件,贴心的我已经帮你实现为一个 EasyPrivacy 插件。...ndk. abiFilters 配置可以过滤出需要打包到 APK 中的 so 文件,例如以下配置将会把 armeabi-v7e 和 arm64-v8a 两种 ABI 类型的 so 文件打包到 APK

    89920

    构建更好的Docker镜像的一些技巧

    现在,使用Docker或更复杂的K8S来部署你的服务应该是主流的选择了. 而这个做法的前提是使用把你的程序用docker打包构建成Docker镜像....这样,所有需要构建的Java服务都使用这个定制基础镜像是最好的选择. 考虑更小的基础镜像 在合适的前提下, 你应该考虑使用更小的基础镜像....关于这个,我过往写过专门的文章,需要了解的可以参阅: 对Docker基础镜像的思考,该不该选择alpine 使用多平台构建 虽然服务器主流都是X64架构的, 但这并不是完全....ARM架构现在也越来越多的被使用,特别在国内, 统信主流是ARM而不是X64. 在构建你的镜像时,不要只考虑支持X64架构. 而应该考虑支持多平台, 构建一次,支持不同的架构是最佳实践....善用.dockerignore文件 如果你构建Docker镜像,都从来没有定义,甚至不知道.dockerignore的存在, 那就不应该了.

    25720

    有赞移动热修复平台建设

    1.3 热修平台定义 针对以上问题,我们认为热修平台应具备以下特点: 支持打包文件保存 定义标准的热修分支规范 支持补丁包的构建保存 支持方便的本地验证测试 支持权限审批 支持补丁全量,灰度及条件发布...构建平台,且MBD 本身已支持打包产物的自定义上传,因此借助 MBD 构建平台就可以做到保存 apk&mapping 文件。...,在App重启时检测补丁文件是否已下载,如果已下载直接加载补丁即可。...Apub 平台在发布补丁时可以选择使用条件下发,除上传补丁外,还可以填写条件语句,只有满足条件的设备才会执行修复补丁。...三、平台架构及流程 3.1 热修平台架构 上面讲的内容比较多也比较杂,可以结合热修平台架构图来看,有个全局的视角: ?

    1.3K30
    领券