设备制造商Android定制的影响

设备制造商Android定制的影响,android,Android,我正在尝试编写一个android应用程序,它使用了几种android API(如策略管理器、包管理器、wifi API等) 我担心的是,安卓系统是开放的,制造商/运营商可以自由选择任何特定版本的安卓系统作为他们的出发点,并对其进行定制,然后随设备一起发货 注意:请原谅,如果这篇文章是重复先前关于相同/类似主题的文章。在这种情况下,感谢所有分享先前帖子的人 让我烦恼的事情有: android是否强制/要求制造商/运营商保留默认API,并且只覆盖/定制外观 即使制造商更改了来自android的基本

我正在尝试编写一个android应用程序,它使用了几种android API(如策略管理器、包管理器、wifi API等)

我担心的是,安卓系统是开放的,制造商/运营商可以自由选择任何特定版本的安卓系统作为他们的出发点,并对其进行定制,然后随设备一起发货

注意:请原谅,如果这篇文章是重复先前关于相同/类似主题的文章。在这种情况下,感谢所有分享先前帖子的人

让我烦恼的事情有:

  • android是否强制/要求制造商/运营商保留默认API,并且只覆盖/定制外观
  • 即使制造商更改了来自android的基本API的实现/行为,他们是否遵守这些接口,以便我的代码不会中断
  • 既然一个或多个定制可能会破坏我的整个应用程序,我如何确保/测试我的代码在所有android设备上都能正常工作
我知道,对于你们中的许多人来说,这些都是一些天真的问题,他们可能已经在安卓系统上呆了一段时间,但这方面的任何建议都会大有裨益

任何其他关于w.r.t跨版本、跨设备不兼容性和处理策略的信息都将非常有用

先谢谢你

问候,,
迪帕克

首先,我认为你不必为此担心。只有当你拥有数千名用户后,你才需要面对由大量提供Android设备的制造商所带来的更复杂的问题。这不应该阻碍您为Android开发

  • android是否强制/要求制造商/运营商保留默认API,并且只覆盖/定制外观?
    • 不会。但如果他们从系统中删除重要的API,肯定会对他们不利。核心作为一个整体存在,尽管实际上没有任何东西阻止他们按照自己的意愿删除或禁用块。例如,AT&T不久前已经禁用了在Android设备上侧向加载应用程序的功能(但我认为他们现在还没有这样做)。功能降低的设备示例:Amazon Kindle Fire。它的大部分界面(第三方应用程序除外)与Android完全不同,而且它也没有提供完整的API集。即使有了这些戏剧性的变化,Android应用程序开发人员仍然在构建和销售在KindleFire上运行良好的应用程序方面取得了巨大的成功
  • 即使制造商更改了来自android的基本API的实现/行为,他们是否遵守这些接口,以便我的代码不会中断?
    • 这是一个想法,但没有任何地方禁止他们打破东西。也没有任何东西能阻止他们意外地引入bug
  • 既然一个或多个定制可能会破坏我的整个应用程序,我如何确保/测试我的代码在所有android设备上都能正常工作?
    • 我知道一些制造商会为他们的设备/配置提供模拟器,以帮助测试他们的系统。例如,摩托罗拉为此提供MOTODEV Studio

首先,我认为你不必为此担心。只有当你拥有数千名用户后,你才需要面对由大量提供Android设备的制造商所带来的更复杂的问题。这不应该阻碍您为Android开发

  • android是否强制/要求制造商/运营商保留默认API,并且只覆盖/定制外观?
    • 不会。但如果他们从系统中删除重要的API,肯定会对他们不利。核心作为一个整体存在,尽管实际上没有任何东西阻止他们按照自己的意愿删除或禁用块。例如,AT&T不久前已经禁用了在Android设备上侧向加载应用程序的功能(但我认为他们现在还没有这样做)。功能降低的设备示例:Amazon Kindle Fire。它的大部分界面(第三方应用程序除外)与Android完全不同,而且它也没有提供完整的API集。即使有了这些戏剧性的变化,Android应用程序开发人员仍然在构建和销售在KindleFire上运行良好的应用程序方面取得了巨大的成功
  • 即使制造商更改了来自android的基本API的实现/行为,他们是否遵守这些接口,以便我的代码不会中断?
    • 这是一个想法,但没有任何地方禁止他们打破东西。也没有任何东西能阻止他们意外地引入bug
  • 既然一个或多个定制可能会破坏我的整个应用程序,我如何确保/测试我的代码在所有android设备上都能正常工作?
    • 我知道一些制造商会为他们的设备/配置提供模拟器,以帮助测试他们的系统。例如,摩托罗拉为此提供MOTODEV Studio
您(和许多其他开发人员)的问题可以通过以下方式解决: 但这仍然不能保证制造商不会更改API并破坏您的应用程序

通常的方法是,首先瞄准占市场很大比例的设备子集,然后为其他设备实施变通方法(如有必要)。有关设备市场渗透率的示例信息,请访问: ?

亲切的问候,
Bo

您(和许多其他开发人员)的顾虑可以通过以下方式解决: 但这仍然不能保证制造商不会更改API并破坏您的应用程序

通常的方法是首先针对占mark很大比例的设备子集