繁体   English   中英

Android中的应用程序能否取决于智能手机的类型?

[英]can app in android depends on the type of smartphone?

我想知道该应用程序是否取决于智能手机的类型,而不仅取决于已安装的andorid版本。

我的意思是,如果可以在运行JB 4.2.2的Nexus 4上安装应用程序,而不能在运行相同JB 4.2.2的Samsung Galaxy 1上安装该应用程序。

我的意思是,如果可以在运行JB 4.2.2的Nexus 4上安装应用程序,而不能在运行相同JB 4.2.2的Samsung Galaxy 1上安装该应用程序。

您对与“相同的JB 4.2.2”的假设并不正确。
是的,它基于相同的android 4.2.2源代码,但是肯定某些东西在此版本中会有所不同,并且不会造成UI差异。

事实是,每个运行完全不同的OS的设备(至少对硬件二进制文件(驱动程序...)进行了修改)都使其可以在特定的硬件上运行。

除此之外,每个vendoe都将其添加到操作系统中(例如三星触摸Weis界面..),此外-三星(例如)实际上是出于自己的目的(例如滚动顶部时的边界)修改了令人兴奋的组件(例如ListView)。 。)

和后记-从AT&T等移动运营商处购买同一设备时,通常会有更多修改。

那是在谁知道的所有自定义ROMS之前...(三星未向三星银河s1提供JB 4.2.2的正式版本)

我可以肯定,如果您的代码不够通用,那么所有这些修改通常都会导致某些崩溃或异常..(有时只是因为用户在未正确实现的糟糕ROM上运行您的应用程序...)

我还安装了三星Galaxy S1自定义JB 4.2 ROM,并尝试运行Whatssap应用程序(最好的应用程序之一,它在稳定性和支持所有设备和操作系统版本方面也是如此),而且运行不正常! 压碎,没有响应...如果Whatssap可以处理这种糟糕的自定义ROMS,那么我猜没人可以。

强大的力量带来了巨大的责任感

android是一款非常好的操作系统,可以在数千种不同的设备上运行,但是如果要确保您的应用在其中的每一个(或至少是大多数)上都可以正常运行,则必须至少对10个设备进行质量检查来自不同供应商的不同设备/不同的内部版本号/屏幕尺寸类别。

有些问题只有这样才能发现。

您可以在构建中引入风味。 这是在Gradle http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants中执行的操作

在风味中添加BuildConfig类的特定变体,这些变体将保留对替代实现的引用

在build.gradle中

android {
....

  productFlavors {
    flavorNexus {
        buildConfig "public final static MyAbstractClassFactory CLASS_FACTORY = new NexusFactory();"
    }

    flavorSamsung {
        buildConfig "public final static MyAbstractClassFactory CLASS_FACTORY = new SamsungFactory();"
    }
  }
}

然后在代码中需要特定的实现时

BuildConfig.CLASS_FACTORY.getInstance();

其中getInstance是创建所需实例的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM