【问题标题】:Separate apks for same app for Phone and Tablet on Google playGoogle play 上的手机和平板电脑的同一应用程序的单独 apk
【发布时间】:2016-02-03 03:51:11
【问题描述】:

我有一个应用程序,它有 2 种不同的设计,具体取决于设备。我想保持方向锁定(平板电脑上的横向和手机上的纵向)。我决定创建单独的 apk 并将其上传到 Google Play,用户根据他们拥有的设备下载该应用程序。这种方法是否可取?如果是,我可以按照哪些步骤来确保一切正常?

任何帮助将不胜感激。

【问题讨论】:

标签: android google-play apk


【解决方案1】:

Google Play 开发者控制台提供两种模式来管理与您的应用关联的 APK:简单模式和高级模式。您可以通过单击 APK 文件选项卡右上角的链接在这些之间进行切换。

简单模式是发布应用程序的传统方式,一次使用一个 APK。在简单模式下,一次只能激活一个 APK。如果您上传新的 APK 以更新应用程序,点击新 APK 上的“激活”会停用当前活动的 APK(您必须然后点击保存才能发布新的 APK)。

高级模式允许您激活和发布多个 APK,每个 APK 都针对一组特定的设备配置而设计。但是,根据每个 APK 中的清单声明,有几条规则决定您是否可以与其他 APK 一起激活每个 APK。当您激活 APK 并违反其中一项规则时,您将收到错误或警告消息。如果是错误,则在解决问题之前无法发布;如果是警告,您可以发布已激活的 APK,但您的应用程序是否可用于不同设备可能会产生意想不到的后果。这些规则将在下面详细讨论。

http://developer.android.com/google/play/publishing/multiple-apks.html

【讨论】:

    【解决方案2】:

    我决定创建单独的 apk 并将其上传到 Google Play 和 用户根据他们拥有的设备下载应用程序。这是 方法可取?

    在这种情况下,某些平板电脑和手机具有相同的分辨率和尺寸 Google Play 允许在手机中安装 TABLET APK。所以它打破了你的逻辑。如果您能够在这种情况下停止这种类型,那么上传平板电脑和手机的 APK 是个好主意。


    使用相同的 JAVA 代码,为平板电脑和手机创建两种不同的设计。检查这个来自 android 开发者的Supporting Multiple Screen。在 Google Play 上为手机和平板电脑上传一个 apk。

    【讨论】:

      【解决方案3】:

      您可以使您的应用程序 UI 响应它在所有 android 设备上运行良好。不建议为不同的设备制作不同的 apk。对于 android 应用程序的响应式设计,请检查这些链接- http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html http://www.androiduipatterns.com/2011/11/design-patterns-for-responsive-android.html http://mdswanson.com/blog/2013/12/11/responsive-layouts-in-android.html

      【讨论】:

        【解决方案4】:

        您不需要单独的 APK。 通过以下代码判断设备是手机还是平板

        mFile = context.getFilesDir().getAbsoluteFile();
        mDisplayMetrics = context.getResources().getDisplayMetrics();
        connMan = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        final double x = Math.pow(mDisplayMetrics.widthPixels / mDisplayMetrics.xdpi, 2);
        final double y = Math.pow(mDisplayMetrics.heightPixels / mDisplayMetrics.ydpi, 2);
        mScreenInches = Math.sqrt(x + y);
        

        如果mScreenUnches < 5它的电话

        覆盖 onConfigurationChanged 并根据屏幕大小进行限制

        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
        
            // Checks the orientation of the screen
            if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
                Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
            } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
                Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-07
          相关资源
          最近更新 更多