Android Studio 在 list 中使用带有 <compatible-screens> 的风格

标签 android

我有 1 个应用程序,但我想制作 2 个 apk(2 个 android ID)并将其分发给手机和平板电脑。 为此,(以及其他事情)我正在使用 flavors Android Studio 的“功能”。

同时我需要用到this为每个 apk 设置屏幕大小。根据flavor方法,需要在两个不同的文件夹中创建相同的项目两次(这是一种非常简单的放置方式,我知道),但是这种情况下,我应该只复制 AndroidManifest 吗?在这两个地方并在 <compatible-screens> 中设置适当的东西标签,或者如何处理这个? 我猜它会起作用,但我想知道最佳做法是什么。如果有人知道或以前尝试过,请告诉我。

最佳答案

我可以看到您自己找到了一个解决方案,但它似乎是一个可以追溯到 2013 年 3 月的非常老套的解决方案,所以让我介绍一下当前的标准方法。此方法使用谷歌团队实现的 list 合并。

来源 -> 主要 -> AndroidManifest.xml

不要对它做任何特殊的事情,不要向它添加任何与屏幕相关的东西。

来源 -> 手机 -> AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
   package="your.package.name"
   xmlns:android="http://schemas.android.com/apk/res/android">

   <supports-screens
      android:smallScreens="true"
      android:normalScreens="true"
      android:largeScreens="false"
      android:xlargeScreens="false"/>

</manifest>

然后是source -> tablet -> AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
   package="your.package.name"
   xmlns:android="http://schemas.android.com/apk/res/android">

   <supports-screens
      android:smallScreens="false"
      android:normalScreens="false"
      android:largeScreens="true"
      android:xlargeScreens="true"/>

</manifest>

以上是完整的文件,只有 support-screens 而已。它们被构建系统合并到您的 ma​​in -> ANdroidManifest.xml 中。

此外,如果您希望(Google Play 需要)为每个版本添加不同的版本号,请在 android { 部分的 build.gradle 中包括:

   productFlavors {
        phone {
            versionCode 200001
        }
        tablet {
            versionCode 300001
        }
    }

关于Android Studio 在 list 中使用带有 <compatible-screens> 的风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767134/

相关文章:

php - 如何在android中制作JSON响应的toast消息?

java - 带有事件的警报对话框错误

android - 在 Logback 加载配置(并创建日志文件)之前请求权限

android - 完全断开蓝牙低功耗设备

Android,图标模板包,图标在哪里?

android - 为什么单击我的导航图标时我的 NavDrawer 没有打开?

java - 如何在android脚本中更改数组的名称

安卓模拟器 : How to Copy an Emulator/AVD?

android - 使用 xml 菜单在抽屉导航中分隔

android - Cocos2D-x 示例应用程序在启动时崩溃