【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)

文章目录

一、自动移除无用资源 ( 不推荐使用 )

二、直接引用资源与动态获取资源

1、直接引用资源

2、动态获取资源 id

三、Lint 检查资源

四、参考资料





一、自动移除无用资源 ( 不推荐使用 )


自动移除无用资源 :


Android Studio 重构工具中 , 给出了一个自动移除无用资源的工具 , 可以一键移除没有被引用的资源 ;


" 菜单栏 / Refactor / Remove Unused Resources " 选项 ,

【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)



点击后弹出如下对话框 , 选择 " Refactor " 按钮 , 即可一键移除无用资源 ;

【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)




这种方法只能移除没有直接使用的资源 , 使用 R.xxx.xxx 等方式引用了该资源 , 表示该资源被直接使用了 ;


动态引用的资源不包括在上述情况中 , 如果移除了动态引用资源 , 运行时会崩溃 ;






二、直接引用资源与动态获取资源




1、直接引用资源


直接引用图片示例 : 只要使用 R.drawable.ic_plane , 就算直接使用 ;


Java 代码中使用 :
// 动态获取图片
var drawable: Drawable = resources.getDrawable(R.drawable.ic_plane)


布局文件中使用 :

 

<ImageView
        android:id="@+id/first_image"
        android:layout_width="100dip"
        android:layout_height="100dip"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0"
        app:srcCompat="@drawable/ic_plane"/>




2、动态获取资源 id


动态获取图片资源示例 : 该获取的资源值就是 R.drawable.ic_plane 值 , 是 int 类型 ;


     

// 动态获取图片资源 int
        var drawable2: Int = resources.getIdentifier(
                "ic_plane",
                "drawable",
                "kim.hsl.svg");






三、Lint 检查资源


选择 " 菜单栏 / Analyze / Run Inspection by Name … " 选项 ,



【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)


执行指定名称的 Lint 检查 , 在弹出的输入框中输入 " unused resources " , 执行该 Lint 检查 ,

【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)



按下回车键 , 即可执行 Lint 检查 , 弹出如下对话框 ,


【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)

上一篇:最强缓存!阿里云重磅发布云数据库Redis企业版(Tair)系列及专属主机组服务


下一篇:【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留/移除资源配置 | 资源压缩效果 )