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

有没有办法在构建apk时排除xxxhdpi资源?

在构建apk时排除xxxhdpi资源的方法是通过在项目的build.gradle文件中进行配置。具体步骤如下:

  1. 打开项目的build.gradle文件。
  2. 在android节点下添加splits节点,并在splits节点下添加density节点。
  3. 在density节点下添加exclude节点,并指定要排除的资源密度,例如"xxxhdpi"。
  4. 保存文件并重新构建项目。

以下是一个示例的build.gradle文件配置:

代码语言:txt
复制
android {
    // 其他配置项...
    
    splits {
        density {
            exclude "xxxhdpi"
        }
    }
}

这样配置后,在构建apk时,系统会自动排除xxxhdpi资源,只打包其他密度的资源。这可以减小apk的大小,并且适配不同屏幕密度的设备。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动应用托管服务:提供了一站式的移动应用托管解决方案,帮助开发者快速构建、部署和运营移动应用。详情请参考腾讯云移动应用托管服务
  • 腾讯云移动推送服务:为开发者提供高效、稳定的移动消息推送服务,支持Android和iOS平台。详情请参考腾讯云移动推送服务

请注意,以上推荐的腾讯云产品仅供参考,具体选择还需根据实际需求进行评估和决策。

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

相关·内容

通过Gradle为APK瘦身

本文选自《Gradle for Android 中文版》,将研究如何设置Gradle 构建配置文件中的几个属性,以缩小APK 文件。...除了缩减Java 代码外,还可以缩减使用过的资源。 缩减资源 当给App 打包,Gradle 和Gradle 的Android 插件可以构建期间删除所有未使用的资源。...如果设置该属性为true,则Android 构建工具将自动判定哪些资源没有被使用,并将它们排除APK 外。使用此功能有一个要求,即必须同时启动ProGuard。...--info 标志,来获得APK 缩减资源的概览: $ gradlew clean assembleRelease –nfo 当你使用该标志,Gradle 会打印出许多关于构建过程的额外信息,包括最终构建不会输出的每个资源...如果你的应用只支持一两种语言,那么最终的APK 中,包含所有语言的文件就会浪费许多资源。这时你就可以使用resConfigs 属性来配置你想保留的资源,将其余部分删除。

75520

【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

, 将矢量图自动添加到项目中 , 同时 build.gradle 中 , android / defaultConfig 层级下 , 配置 generatedDensities 选项 , 之后进行项目构建..., Gradle 会创建不同分辨率的 PNG 图片 , 这些分辨率 generatedDensities 中指定 , ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi...) 中 , res/drawable 资源目录下 , 生成了一张矢量图 ; build.gradle 中进行上述配置之后 , 编译应用 ; 分析生成的 apk 文件 , apk 的不同分辨率的资源目录中..., 分别生成了不同分辨率的 ic_plane.png 图片 ; build.gradle 构建脚本中 , 设置了 ‘hdpi’, ‘mdpi’, ‘xhdpi’, ‘xxhdpi’, ‘xxxhdpi...’ 这几个分辨率 , 那么生成 APK , 就会在对应上述 5 个分辨率对应的资源文件中生成该矢量图对应的 PNG 位图 ; // ★ 矢量图生成 PNG 配置 generatedDensities

48110
  • 如何在10分钟内让Android应用大小减少 60%?

    六、混淆 1 构建多个版本 gradle中的buildTypes中增加不同的构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本同一设备上运行 创建...,因此您应该尽可能避免调试构建中使用。...每次构建 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。...类上添加@Keep可原样保留整个类。方法或字段上添加它可完整保留方法/字段(及其名称)以及类名称。请注意,只有使用注解支持库,才能使用此注解。...请注意,您每次使用 ProGuard 创建发布构建都会覆盖mapping.txt文件,因此您每次发布新版本都必须小心地保存一个副本。

    1.6K10

    如何在10分钟内让Android应用大小减少 60%?

    六、混淆 1 构建多个版本 gradle中的buildTypes中增加不同的构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本同一设备上运行 创建...,因此您应该尽可能避免调试构建中使用。...每次构建 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。...类上添加@Keep可原样保留整个类。方法或字段上添加它可完整保留方法/字段(及其名称)以及类名称。请注意,只有使用注解支持库,才能使用此注解。...请注意,您每次使用 ProGuard 创建发布构建都会覆盖mapping.txt文件,因此您每次发布新版本都必须小心地保存一个副本。

    85520

    (转载非原创)Android系统Bitmap内存分配原理与优化

    但也不排除相反的可能:将小图加载到大ImageView里面。这时Glide默认采用的内存策略是存在不足的:它采用目标ImageView的尺寸作为最终的宽和高。...四、drawable目录下图片加载方式 项目的资源目录下,一般都有drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi...,与图片本身分辨率、在哪个drawable目录下没有直接关系; 由于xxxhdpi密度是xhdpi密度的两倍,故屏幕密度属于xxxhdpi的Nexus 6P设备上,drawable-xxxhdpi...可以初始化Glide进行这样的配置。需要留意的是不要对含透明区域的图片采用这种优化方案。...多图的场景(比如RecyclerView)注意及时释放图片资源; 使用占据内存更小的图片格式; 图片源文件尺寸应当与目标ImageView相近; 优先满足xxhdpi、xxxhdpi

    69020

    Android系统Bitmap内存分配原理与优化

    一、前言 笔者最近致力于vivo游戏中心稳定性维护,分析线上异常,发现有相当一部分是由OutOfMemory引起。...但也不排除相反的可能:将小图加载到大ImageView里面。这时Glide默认采用的内存策略是存在不足的:它采用目标ImageView的尺寸作为最终的宽和高。...四、drawable目录下图片加载方式 项目的资源目录下,一般都有drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi...可以初始化Glide进行这样的配置。需要留意的是不要对含透明区域的图片采用这种优化方案。...多图的场景(比如RecyclerView)注意及时释放图片资源; 使用占据内存更小的图片格式; 图片源文件尺寸应当与目标ImageView相近; 优先满足xxhdpi、xxxhdpi的图片资源需求;

    1.2K20

    Android图片相关

    程序里的drawable目录详解 自己DIY过APK程序的达人们肯定会对于android中放置图片的地方drawable—hdpi、drawable—mdpi、drawable—ldpi等感到好奇。...分辨率低于480*800把图片放在drawable—mdpi中是不会有什么影响,但是当分辨率为420*800或高于它就会出问题了。...现在还有drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 区别: drawable-xxxhdpi里面存放?高分辨率的图片,(1080x?)...72*72 mdpi:48*48 ldpi:36*36 dp是虚拟像素,不同的像素密度的设备上会自动适配,比如: 320×480分辨率,像素密度为160,1dp=1px 480×800分辨率,像素密度为...要让程序界面保持一个方向,不随手机方向转动而变化的处理办法AndroidManifest.xml里面配置一下就可以了。

    71730

    Gradle For Android(9)--自定义构建

    : $ gradlew clean assembleRelease --info 当使用这个Flag的时候,Gradle会打印出在构建过程中的很多其他信息,包括最终没有打入APK包中的每一个资源。...启用后,会在第一次启动构建的时候启动一个后台进程。当后续的构建启动,都会使用这个后台进程,因此会节省一些启动的开销。这个进程会在你使用Gradle期间一直存在,而在空闲3个小时后关闭。...以下为一个执行完多Module的构建任务的Report: ? Profile Report 这个Profile Report展示了每个阶段执行任务所消耗的时间。...执行完density分割后的构建结果中: app-hdpi-release.apk app-universal-release.apk app-xhdpi-release.apk...app-xxhdpi-release.apk app-xxxhdpi-release.apk 如果你希望把这些APK发布到Google Play上的话,你就需要确保每个APK都有不同的版本号。

    67910

    【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )

    文章目录 一、resources.arsc 资源映射表 二、配置国际化资源 三、完整 build.gradle 构建脚本示例 四、参考资料 一、resources.arsc 资源映射表 ---- 分析...Android 应用打包后的 APK 文件 , 打开 resources.arsc 文件 , 该文件是 Android 应用的资源映射表 , 点击 string , 查看字符串资源 , strings.xml...中定义的字符串 , 都在打包在了该位置 ; 资源映射表中的 string 字符串 , 包含了所有语言类型 , 浪费了很多不必要的空间 ; 这些字符串很多都是国际化时用的 , 查看项目源码 , 发现...; 二、配置国际化资源 ---- build.gradle 构建脚本中的 " android / defaultConfig " 层级配置 resConfigs ‘en’ , 配置后只打包默认资源与英文资源...resConfigs 'en' } } 配置完毕后 , 选择 " 菜单栏 / Build / Build Bundle(s)/APK(s) / Build APK(s) " , 再次编译生成 APK

    1.6K30

    【Android Gradle 插件】Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )

    include 'x86', 'armeabi-v7a' universalApk true } density { enable true // 排除 xhdpi...的打包 apk exclude 'xhdpi' } } } 使用效果 : 编译 apk 文件 , 会为每个 屏幕像素密度 生成独立的 apk 文件 ; 如 : 为 xhdpi 生成一个专门...hdpi xxhdpi xxxhdpiapk 文件 ; 二、DensitySplitOptions 配置简介 ---- DensitySplitOptions ( build.gradle#android...构建系统是否应根据参考资料中的“language-*”文件夹确定拆分。 compatibleScreens A list of compatible screens. 兼容屏幕列表。...Methods Method Description exclude(excludes) excludes some values 排除某些值 include(includes) includes

    57520

    Android 减包 - 减少APK大小

    构建过程中,首先proguard移除了未使用的代码,然后gradle移除未使用的资源。 译注:lint工具还能够检查出未使用的类、类中未使用的方法或变量。...Gradle通过传递resConfigs和defaultConfig给构建系统,构建系统会防止不支持的配置出现在APK中,从而减少APK大小。...代码方式绘制图像不需要任何空间因为你不再需要在APK中存储图像文件。 压缩PNG文件 AAPT工具能够构建过程中通过无损压缩优化res/drawable/中的图片资源。...避免抽取Native库 APK中存储未压缩的so文件,并且Manifest文件的中设置android:extractNativeLibs为false,这会防止安装PackageManager...这种方式能够让设备不获取设备不需要的资源。比如,如果设备是hdpi的,那么他就不需要xxxhdpi资源

    1.7K60

    Android减包 - 减少APK大小

    构建过程中,首先proguard移除了未使用的代码,然后gradle移除未使用的资源。 译注:lint工具还能够检查出未使用的类、类中未使用的方法或变量。...Gradle通过传递resConfigs和defaultConfig给构建系统,构建系统会防止不支持的配置出现在APK中,从而减少APK大小。...代码方式绘制图像不需要任何空间因为你不再需要在APK中存储图像文件。 压缩PNG文件 AAPT工具能够构建过程中通过无损压缩优化res/drawable/中的图片资源。...避免抽取Native库 APK中存储未压缩的so文件,并且Manifest文件的中设置android:extractNativeLibs为false,这会防止安装PackageManager...这种方式能够让设备不获取设备不需要的资源。比如,如果设备是hdpi的,那么他就不需要xxxhdpi资源

    1.8K100

    【连载】聊聊 APK(三) —— Android 资源编译的秘密

    在这种场景下,假设我们给定的 id 是 x 值,那么当下业务需要使用这个资源的时候,手机的状态就是 y 值,有了(x,y),一个表里面就能迅速的定位到资源文件的具体路径了。...注意,此处的输入是多个 flat 的文件 和 AndroidManifest.xml,外部资源,输出是只包含资源apk(如果你曾经研究过的话,你会发现它的后缀名是 ap_)和 R.java。...查看编译后的资源 除了是用 Android Studio 去查看 resources.arsc,我们还可以直接使用 aapt2 dump 出我们的 apk 信息的方式来查看资源相关的 ID 和状态,比如执行这个命令...再对比下我们上面放出的图,结论就非常清楚了,比如我们想要提供我们的资源,那么首先为我们的资源打上 PUBLIC 的标记,然后 xml 中引用你的包名,比如:@com.gemini.app:color/...资源共享的应用在插件化的框架中是最多的,平常我们不一定用的到。我们最主要是了解到 aapt 怎么工作,以及产物 APK 中是怎么样的方式存在即可。 如果还有不明白的地方,非常欢迎互相交流。

    1.3K20

    Android Gradle实用技巧(四) | 自动瘦身APK文件

    要清理这些无用的资源,第一个办法是我们开发的过程中,把不再使用的资源清理掉,这个靠开发人员的自觉以及对程序代码逻辑的了解成都,而且清理成本也比较大。...针对以上情况,Android Gradle为我们提供了构建打包自动清理掉未使用资源的方法,这个就是Resource Shrinking。...他是一种构建,打包成Apk之前,会检测所有资源,看看是否被引用,如果没有,那么这些资源就不会被打包到Apk包中....因为是在这个过程中(构建),Android Gradle构建系统会拿到所有的资源,不管是你项目自己的,还是引用的第三方的,它都一视同仁的处理,所以这个时机点可以控制哪些资源可以被打包,所以能解决第三方不使用的资源的问题...,Android Gradle就会自动的处理未使用的资源,不把他们打包到生成的Apk中,我们可以我们构建输出的日志中看到处理结果,以我们当前的示例代码为例,我们运行.

    89520

    优化| APK瘦身最佳实践

    APK瘦身也是anroid领域比较关注的技术之一,开始对APK进行正式的减肥之前,我们先来了解一下APK包的构成,这样才好对症下药嘛。知己知彼方能百战不殆。 ?...Java代码 我们可以使用Proguard,在编译对Java代码进行混淆,优化和压缩。...Lint检查完成后,会提供一份详细的资源文件清单,并且将没有用到的资源 UnusedResources:Unused resources 区域。...以一张常用的 点赞 图标为例, Android中使用 Vector 矢量图,大小为: ? 而它对应的xxxhdpi的png格式,大小为: ?...其他 别忘了最简单,也最容易忽视的,去除重复的依赖,或者是引用更加轻量级的库,也可以达到apk瘦身的效果。 Release版本中,去除那些只会在debug才会出现的代码。

    98730

    Android drawable微技巧,你所不知道的drawable的那些细节

    大家都知道,Android项目当中,drawable文件夹都是用来放置图片资源的,不管是jpg、png、还是9.png,都可以放在这里。...192 * 192 然后我们引用mipmap的方式和之前引用drawable的方式是完全一致的,资源中就使用@mipmap/res_id,代码就使用R.mipmap.res_id。...但是,如果drawable-xxhdpi文件夹下没有这张图, 系统就会自动去其它文件夹下找这张图了,优先会去更高密度的文件夹下找这张图片,我们当前的场景就是drawable-xxxhdpi文件夹,然后发现这里也没有...不过本篇文章到这里还没结束,下面我准备讲一讲我们实际开发当中会遇到的场景。根据Android的开发建议,我们准备图片资源尽量应该给每种密度的设备都准备一套,这样程序的适配性就可以达到最好。...就目前来讲,最佳放置图片资源的文件夹就是drawable-xxhdpi。那么有的朋友可能会问了,不是还有更高密度的drawable-xxxhdpi吗?干吗不放在这里?

    2.5K80

    【Android 安装包优化】Android 中使用 SVG 图片 ( 使用 appcompat 支持库兼容 5.0 以下版本的 Android 系统使用矢量图 )

    一、使用 appcompat 支持库兼容 5.0 以下版本的 Android 系统使用矢量图 ---- 参考 Android 官方文档 : 添加多密度矢量图形 使用支持库添加对矢量图资源的支持 : com.android.support...androidx.test.runner.AndroidJUnitRunner" // 生成 PNG 图片配置 //generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi...> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/<em>apk</em>.../res/android" xmlns:app="http://schemas.android.com/<em>apk</em>/res-auto" xmlns:tools="http://schemas.android.com...developer.android.google.cn/studio/build/shrink-code SVG 语法格式 : https://www.runoob.com/svg/svg-tutorial.html 博客<em>资源</em>

    64620

    【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

    中 开启 Proguard , 在编译 , 会自动进行如下一系列优化 : 压缩 Shrink : 检查 并 删除 没有使用的类 , 字段 , 方法 , 属性 ; 这里要注意 , 如果通过反射使用一个类...配置了两个文件, 其中 proguard-android-optimize.txt 是默认的混淆配置文件 , 由系统自动生成 ; proguard-rules.pro 是用户自己配置的混淆配置文件 , 进行打包...安装包 : \rm 3.6 MB 混淆后编译的 APK 安装包 : \rm 1.7MB 四、build.gradle 完整配置文件 ---- 完整的 build.gradle 构建脚本 ; plugins...androidx.test.runner.AndroidJUnitRunner" // 生成 PNG 图片配置 //generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi..., 只打包默认资源与英文资源 resConfigs 'en' } // 开启混淆 buildTypes { debug {

    3.9K20
    领券