我想知道该应用程序是否取决于智能手机的类型,而不仅仅是安装的 andorid 版本。
我的意思是如果一个应用程序可以安装在运行 JB 4.2.2 的 Nexus 4 上,并且不能安装在运行相同 JB 4.2.2 的三星 Galaxy 1 上。
我想知道该应用程序是否取决于智能手机的类型,而不仅仅是安装的 andorid 版本。
我的意思是如果一个应用程序可以安装在运行 JB 4.2.2 的 Nexus 4 上,并且不能安装在运行相同 JB 4.2.2 的三星 Galaxy 1 上。
我的意思是如果一个应用程序可以安装在运行 JB 4.2.2 的 Nexus 4 上,并且不能安装在运行相同 JB 4.2.2 的三星 Galaxy 1 上。
您认为它是“相同的 JB 4.2.2”的假设是不正确的。
是的,它基于相同的 android 4.2.2 源代码,但在这个版本中肯定有些东西会有所不同,而不是 UI 差异。
事实是,每个运行完全不同操作系统的设备至少为硬件二进制文件(驱动程序......)进行了修改,使其在特定硬件中工作。
除此之外,每个供应商都将其添加到操作系统(如三星触摸 Weis 界面..),除此之外 - 三星(例如)实际上正在修改令人兴奋的组件(如 ListView)以用于他们自己的目的(如滚动顶部时的边界。 .)
和后记 - 从 AT&T 等移动运营商处购买相同的设备时,您通常会进行更多修改。
那是在谁知道制作的所有自定义ROM之前......(三星没有向三星galaxy s1提供正式版的JB 4.2.2)
我确信 如果您的代码不够通用,所有这些修改通常会导致一些崩溃或异常......(有时只是因为用户在没有正确实现的糟糕 ROM 上运行您的应用程序......)
我还在我的三星 Galaxy S1 定制 JB 4.2 ROM 上安装了,并尝试运行 Whatssap 应用程序(最好的应用程序之一,在稳定性和支持所有设备和操作系统版本方面也是如此),但它运行不佳!粉碎,没有回应......如果Whatssap可以处理这个糟糕的自定义ROMS - 那么我想没有人可以......
权力越大,责任越大
android 是一个非常棒的操作系统,可以在数千个不同的设备上运行,但是如果你想确保你的应用在每一个设备(或至少大多数设备)上都运行良好,你必须至少对 10 个设备进行 QA 测试来自不同供应商/不同版本号/屏幕尺寸类别的不同设备。
有些问题你只能这样检测。
您可以在构建中引入风味。这是如何在 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 是创建您需要的任何实例的方法。