我们有一个基于iOS html5的应用程序。其中一个问题是我们是否以及何时将移植到Android。
因为它主要是html5,所以端口应该相对容易。但是,我的Moto G上的HTML看起来与iOS上的不同,即使我的Mac上的Chrome确实正确呈现它。现在,我有一些从netscape / ie6天开始的跨浏览器html开发的经验,所以我可以弄清楚正在发生什么。
不过,让我更担心的是碎片化。如果我在我的Android设备上正确渲染它,我怎么知道它可以正常使用旧版操作系统的设备呢?在iOS上,我们只需要iOS6,因为大多数iPhone用户都会升级他们的操作系统。在Android上,这更加困难,因为用户不会更新(或者制造商甚至不提供更新)。我是否需要接触大量不同的设备进行测试?有没有更简单的测试方法?我是Android开发的新手,所以任何建议都会非常感谢!
答案 0 :(得分:0)
这是Android开发中的常见问题。设备碎片......我们的克星。正如我所经历的那样,Android会让旧的WebView倾向于支持KitKat中基于Chromium的WebView。因此,即使从您的Moto G到以前的设备,API也不再相同。
也就是说,有大量资源可用于帮助创建可与您的站点和本机设备一起使用的Web应用程序。还有一些例子。
我将从这里开始:https://developer.android.com/guide/webapps/index.html其中包含一个专门针对KitKat中包含的Chromium变化的小节(https://developer.android.com/guide/webapps/migrating.html)
此外,还有这个Pixel Perfect信息网站:https://developer.chrome.com/multidevice/webview/pixelperfect
现在,您可以在Android上设置最低接受和目标API级别,就像在iOS上一样。例如,如果最小值为15且目标为19,那么您指定您的应用程序适用于KitKat(4.4)设备,但支持与Ice Cream Sandwich(4.0.3)一样旧。实际上没有理由再将目标定为低于15的API,除非某些特定商业理由将目标锁定在较低的设备上。具体而言,我的意思是“我们希望尽可能多地达到目标”。
最后,您可以通过AVD(Android虚拟设备)管理器创建可以复制各种操作系统级别和硬件配置的仿真器。一个名为Genymotion(http://www.genymotion.com/)的非常受欢迎的模拟器公司也经常使用,但它不能免费用于商业用途。