首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在库中使用时从ICU4J中剥离数据文件

在库中使用时从ICU4J中剥离数据文件
EN

Stack Overflow用户
提问于 2018-03-06 13:20:09
回答 1查看 552关注 0票数 5

我有一个内部库,包含在不同的android应用程序中。这个库依赖于ICU4J。这意味着我们在最终的APK中添加~10 to。

库使用ICU4J的一个子集,因此我想删除所有不必要的数据文件。

来自ICU文件

目前,ICU4J没有提供任何工具来显示数据文件之间的这些依赖关系,因此直接在ICU4J项目中修剪数据是一件偶然的事情。删除数据时的关键是确保删除该数据的所有依赖项。

我想删除数据文件时,应用程序是建立。

有关StackOverflow的一个问题是:从aar dep中排除特定资源。不幸的是,exploded-aar目录已不复存在。

您知道我可以在哪一步从ICU4J依赖项中删除文件吗?下面是我试图删除cjdict.dict文件的内容:

代码语言:javascript
复制
tasks.create("excludeTask") << {
    ["java/com/ibm/icu/impl/data/icudt60b/brkitr/cjdict.dict"]
            .collect { "${getGroup()}/${getName()}/${getVersion()}/${it}"}
            .each {
        // Question 2. From which dir should I remove the files?
        File file = file("${buildDir}/intermediates/exploded-aar/${it}")
        println("Excluding file " + file)
        if (file.exists()) {
            file.delete();
        }
    }
}

tasks.whenTaskAdded({
    // Question 1. Before which task should I inject my excludeTask?
    if (it.name.matches(/^transformClassesAndResources.*$/)) {
        it.dependsOn excludeTask
    }
})
  • 问题1:我应该在哪个任务之前注入我的excludeTask
  • 问题2:我应该从哪个部门删除这些文件?

我知道ICU4J可以在Android7.0中使用,而不需要所有这些开销,但我想让APK尽可能轻一些,用于老旧的设备。

Proguard/收缩的资源对此不起作用(除非我错过了什么?)

EN

回答 1

Stack Overflow用户

发布于 2018-06-22 22:35:17

一个更好的分割ICU区域数据的机制是一个常见的特性请求,因此我们正在努力在即将发布的ICU版本中推出这一功能(取决于事情的进展情况)。同时,免费为我们的设计文档贡献:

https://docs.google.com/document/d/1Lt9sHy7VbMLA2KbbEpg-TgNAI8bqtetwM767enWjcUg/edit#

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49131848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档