我想知道該應用程序是否取決於智能手機的類型,而不僅僅是安裝的andorid版本。可以在android的應用程序取決於智能手機的類型?
我的意思是如果一個應用程序可以安裝在運行JB 4.2.2的Nexus 4上,並且不能在運行相同JB 4.2.2的Samsung Galaxy 1上安裝。
我想知道該應用程序是否取決於智能手機的類型,而不僅僅是安裝的andorid版本。可以在android的應用程序取決於智能手機的類型?
我的意思是如果一個應用程序可以安裝在運行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差異。
事實上,每個運行完全不同的操作系統的設備至少需要修改硬件二進制文件(驅動程序...)才能使其在特定硬件中工作。除此之外,每個vendoe都會將其添加到操作系統(如samsung touch Weis界面..),除此之外 - 三星(例如)實際上是爲了自己的目的修改令人興奮的組件(例如ListView)(例如界限滾動時頂..)
和後記 - 移動運營商購買相同設備時,像AT & T優通常有更多的修改..
所作出的所有自定義光盤,誰知道在這之前是......(三星未提供JB 4.2.2正式版至三星s1)
我肯定知道這一切的修改通常會導致一些美眉或異常,如果你的代碼是不是通用的不夠。(有時僅僅是因爲用戶運行的是不是currectly實現一個低劣的ROM上的應用程序... )
我也在我的三星galaxy S1定製的JB 4.2 ROM上安裝,並試圖運行Whatssap應用程序(最好的應用程序之一,當涉及到穩定性和支持所有設備和操作系統版本),它只是工作不好!破碎,沒有響應...... 如果Whatssap可以處理這個低劣的自定義光盤 - 那麼我想沒有人可以..
有了很大的權力越大,責任
Android是真正偉大的操作系統上運行數千個不同的設備,但如果你想確保你的應用程序在他們每個人(或至少他們中的絕大多數)的偉大工程,你必須對來自不同廠商的至少10級不同的設備做QA測試/不同的內置編號/屏幕尺寸類別。
有你只能探測到這樣的問題。
你可以介紹的口味到您的構建。這是如何做到這一點的搖籃http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
在口味添加BuildConfig類的特定變體將繼續引用替代實現
在建。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爲它創建的任何你需要實例的方法。
您可以使用Google Play上的過濾器來拒絕特定設備 – Blundell
但爲什麼我應該這樣做?有一個屬於特定設備的代碼,無法在其他設備上運行? – OrSmolnik