【问题标题】:Android SDKs eating up my hard drive; what can I safely delete?Android SDK 占用了我的硬盘;我可以安全地删除什么?
【发布时间】:2018-08-08 11:36:25
【问题描述】:

我的应用面向 Android 4.4 及更高版本。但是我通过 Studio SDK Manager 安装了 14-25 的 SDK。我不使用模拟器,除非在极少数情况下 - 但当我通常使用 4.4 和 5 倍时。但总的来说,Android Studio 在我的系统上占用了超过 100Gb 的存储空间......我需要减小它的大小(很重要)

我可以删除哪些内容才能让我仍然以 4.4 和更新版本为目标?

这个问题已被问过很多次,但我研究的所有内容都没有提供明确的答案。

  1. 如果我删除 14-24,并仅使用 SDK 25 构建我的应用程序,我的应用程序是否仍支持 Android 4.4?还是我需要保留特定的 SDK,以便我的应用仍支持所有 Android 4.4 及更高版本?请具体一点,那里有太多模糊的答案。

  2. 我的应用程序是 cordova/ionic 应用程序 - 许多插件引用特定版本的 SDK - 通常基于插件上次更新的时间。但是这些插件经常使用 SDK 22 或 SDK 21 进行测试(主要是因为作者从未费心更新/维护插件 - 但它仍然有效) - 如果 SDK 14-24 被删除并且只有 SDK,这些插件是否仍然有效25安装了吗?

  3. 如前所述,我偶尔需要特定系统映像的模拟器;代替问题 #1 - 如果我想尝试启动 Android 4.4 模拟器,我是否还需要保留特定的 SDK 来支持这些系统映像。

  4. 使用 Android Studio SDK 管理器 - 通过管理器删除特定 SDK 是否也会从我的硬盘中删除内容?我认为它会,但我阅读了其他一些人们不得不手动删除内容的博客。

【问题讨论】:

    标签: android android-studio cordova-plugins android-sdk-manager


    【解决方案1】:
    1. 构建过程依赖于 BuildTools 和 Android SDK。如果您设置“minSdkVersion:10”和“targetSdkVersion:27”,那么您应该管理所有版本之间的所有代码差异。有两种可能性: (A) 较旧的方法/类在较新的 SDK 上不再可用:然后 Bulld 过程将失败,因为您不能直接调用/使用它们,只能通过反射 (B ) 较旧的 SDK 中不存在较新的方法/类:然后构建过程可以正常结束,但如果您不使用“if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.xxxx)..."
    2. 这取决于它们是什么类型的插件。它们是 AAR 文件吗?它们是您可以加入/添加到您的可编辑项目吗?它们是外部库吗? AAR 文件和 .SO 库已经编译,因此它们不需要任何其他/外部文件或开发工具。
    3. 模拟器使用它自己的“系统操作系统”文件运行,所以所有的开发内容对它都没有用处。即使您从未安装过开发工具(Android Studio 或其他工具)也可以运行模拟器
    4. 从管理器中删除项目甚至应该删除它的文件,但在某些情况下可能存在错误并且没有(或只是部分)被删除。但您可以检查您的驱动器存储可用空间是否增加。

    【讨论】:

    • 谢谢。是否有可以分析我的应用程序的工具来帮助我找出防止应用程序崩溃所需的最低 SDK?例如,即使从项目构建中删除了 SDK 19(通过 Studio SDK Manager),运行 KitKat 4.4 的旧手机也可以运行我的应用程序,因为我的应用程序中没有任何东西特别需要 SDK 19 功能。我仍然会将我的应用的 minSdkVersion 设置为 19 - 但这只是用户的电话。
    • 我认为没有软件/应用程序可以满足您的需求,也许是因为这完全不可能(想想反射或外部 .SO 库:该工具如何“读取”这两个东西?)
    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2022-01-23
    相关资源
    最近更新 更多