2009-11-23 77 views
2

我的一些應用程序的用戶在Android 1.5上,一些在1.6上,還有一些在2.0上。Android如何支持不同的手機版本和屏幕尺寸?

那麼,如何爲所有客戶發佈我的應用?如果我發佈1.5版本,那麼1.5手機可以使用它 - 但不是較小的屏幕(又名Tatoo)的新手機,他們需要1.6或更高?正確?

感謝

回答

1

我的工作是將我的應用程序設置爲針對Android 1.6構建,然後將清單中的minSdkVersion設置爲3(告訴市場讓Android 1.5手機安裝它,並將targetSdkVersion設置爲4(它告訴手機與Android 1.6以上版本,我已經在1.6版本上測試過它,並且不提供任何向前兼容性的幫助)通過構建1.6版本,Eclipse不會讓我使用任何2.0 API,但我知道它仍然可以工作1.6和2.0,它也不會讓你自動將它安裝在1.5模擬器上,所以我導出一個簽名的APK,然後使用SDK附帶的「adb」工具通過命令行將其安裝在模擬器上,手動測試它以確保它不會在任何1.6特定的API上執行任何操作。

我不根據1.5構建的原因是t這裏只有1.6以上的東西,我需要使用它,1.5會安全地忽略,並且支持多種屏幕尺寸。我可以在res/drawable-hdpi中包含用於Droid屏幕的較大資產,並讓Droid自動加載這些資源,但是如果我構建的版本是1.5,Eclipse不知道我想要做什麼。

我希望我沒有讓這個聲音太複雜,因爲它實際上不是 - Android SDK和資源框架使得處理多個屏幕尺寸和平臺版本變得非常容易。只要理解你在做什麼,並在你的佈局XML中使用與屏幕無關的像素單元,你就會好起來的。

+0

你確定新的1.6特定的API在1.5設備上總是被忽略掉嗎?如果找不到某種方法,必須拋出異常。 – OneWorld 2010-12-09 13:05:14

1

較新的手機應該取決於它們是如何編碼的運行舊版應用罰款。如果您使用AbsoluteLayout並對像素尺寸進行硬編碼,則會遇到問題。如果你只是讓android爲你做計算,應該沒問題。該API明確向後兼容,因此運行1.6或2.0的電話將能夠運行1.5個應用程序。

+0

我會恭敬地不同意。我不得不改變我的應用程序以使它們與新手機兼容,並且在一種情況下無法完成。問候,Ari – BeMeCollective 2009-11-23 19:29:22

+0

對不起,您需要提供詳細信息才能提出此類索賠。所有較舊的應用程序都應該在新手機上正常運行,除非您使用的是過時的功能,其中很少有功能。 AbsoluteLayout,就像上面提到的@Eric一樣,就是其中之一。 – Konklone 2009-11-25 02:53:44

0

我正在構建目標1.5並在1.5仿真器,2.0仿真器和2.0設備上進行測試。這使我可以確保它可以與儘可能多的不同設備一起工作。