Android开发者指南(18) —— Web Apps Overview

简介:

Web Apps Overview

译者署名: happyjiahan

审核:铁骑_PuLee

版本:Android 3.2 r1

 

android上发布一个应用程序一般有两种方式:一种是基于客户端模式(Client-Side模式)的应用程序(基于客户端的应用程序需要用Android SDK来开发,并且需要在用户的设备上安装一个以.apk为后缀名的文件),另一种是基于浏览器的web应用程序(基于浏览器的应用程序的开发需要遵循web标准,通过一个web浏览器来访问你开发的应用程序,不需要在用户的设备上安装其他任何程序)。

  

 

1. 你可以通过两种方式向用户提供你的web内容:一种是通过传统的浏览器的方式,另一种则是通过在Android的应用程序的布局文件中包含一个WebView组件的方式来实现。

那么在你的软件开发过程中,你究竟是应该选择基于客户端的模式(C/S)还是基于浏览器的模式(B/S)呢?其实这个问题要考虑很多个因素,要视你所开发的软件来确定选择哪种模式更合适。这不是我们当前讨论的重点,下面我们来看一下Android为我们提供了哪些方便我们进行web程序开发的支持吧!

*   支持一系列视窗属性,这些属性允许你根据屏幕的大小正确的确定你的web程序的窗口大小。

*   支持cssjavascript特性,这些特性能使你可以根据屏幕的像素密度来使用不同的样式和图片资源。

因此,在你决定为android开发一个web应用的时候,可以先不考虑支持多种屏幕方面的问题。因为让你的web页面在各种android设备的屏幕上有很好的效果已经很容易了。

Android提供的另外一个很好的特性就是你现在不必纯粹的在客户端或者纯粹的在web上构建你的应用,你可以将这两者融合在一起。你可以开发一个基于客户端的android应用,但是在这个应用中嵌入了一些web页面(你可以在你的android应用中使用WebView)。图1形象化的展示了你如何通过浏览器或者android应用程序来访问web页面。然而,你不应该开发一个android应用简单到只是为了运行web网站。与此相反,嵌入到你的android应用程序中的web页面应该是专门为某种应用场景设计的。你也可以在android应用程序和你的web页面之间定义一个接口,这个接口允许你web页面中的javascript调用你的android应用程序中的API

Android 1.0 开始,WebView 已经能够在android应用程序的布局文件中嵌入web内容并通过javascript调用android api。在android增加了对不同分辨率的屏幕的支持后,android 2.0WebKit框架中添加了允许在网页中指定视窗属性的支持,并且能够查询屏幕的分辨率,这样就能够更好的修改上文提到的那些样式和图片资源。因为这些特性都是AndroidWebKit框架的一部分,所以不管是Android 浏览器还是WebView 在视图接口和屏幕分辨率方面都具有相同的特性。

如果你想为Android设备开发web应用,你应该阅读下面的文档:

Targeting Screens from Web Apps

如何让你的web应用能够非常合适的呈现在Android设备上,并且能够支持多种屏幕分辨率呢?如果你正在创建一个的web应用并且希望自己的应用至少能够在Android设备上运行(假设你的应用完全部署在网络上),特别是如果你针对的是移动终端或者打算使用WebView那么这个文档介绍的信息对你来说非常重要。

         Building Web Apps in WebView

如何使用WebView将网页嵌入到Android应用中以及如何使用JavaScript调用Android API

         Debugging Web Apps

                   如何使用JavaScript控制台API调试web应用。

         Best Practices for Web Apps

它列举了一系列你应该遵循的实践技巧,帮助你创建出可以在Android设备上高效运行的web应用。


本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/628187,如需转载请自行联系原作者

相关文章
|
1月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
60 3
|
23天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
1月前
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
71 2
|
1月前
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。
|
2月前
|
缓存 前端开发 API
探索PWA(Progressive Web Apps)的无限可能
探索PWA(Progressive Web Apps)的无限可能
120 7
|
2月前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
360 3
|
2月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
55 3
|
2月前
|
移动开发 开发工具 Android开发
安卓与iOS开发:平台差异及其对开发者的影响
在移动开发的大潮中,安卓和iOS两大阵营各领风骚。本文将探讨这两个平台的关键差异,包括开发环境、编程语言、用户界面设计、应用分发以及商业模式等方面。通过比较分析,我们旨在为开发者提供一个清晰的指导,帮助他们根据项目需求和个人偏好做出明智的平台选择。同时,文章也将分享一些跨平台开发工具的使用经验,以期最大化开发效率和市场覆盖。
70 1
|
2月前
|
缓存 编解码 前端开发
探索PWA(Progressive Web Apps)的无限可能
探索PWA(Progressive Web Apps)的无限可能
44 0
|
2月前
|
监控 算法 数据可视化
深入解析Android应用开发中的高效内存管理策略在移动应用开发领域,Android平台因其开放性和灵活性备受开发者青睐。然而,随之而来的是内存管理的复杂性,这对开发者提出了更高的要求。高效的内存管理不仅能够提升应用的性能,还能有效避免因内存泄漏导致的应用崩溃。本文将探讨Android应用开发中的内存管理问题,并提供一系列实用的优化策略,帮助开发者打造更稳定、更高效的应用。
在Android开发中,内存管理是一个绕不开的话题。良好的内存管理机制不仅可以提高应用的运行效率,还能有效预防内存泄漏和过度消耗,从而延长电池寿命并提升用户体验。本文从Android内存管理的基本原理出发,详细讨论了几种常见的内存管理技巧,包括内存泄漏的检测与修复、内存分配与回收的优化方法,以及如何通过合理的编程习惯减少内存开销。通过对这些内容的阐述,旨在为Android开发者提供一套系统化的内存优化指南,助力开发出更加流畅稳定的应用。
73 0
下一篇
无影云桌面