Android 4.0和WP7.5开发技术对比

简介:  作者: Android开发网原创 时间: 2011-10-09对于谷歌Android 4.0 Ice Cream SandWich和微软WP7.5 Mango在开发技术上作对比,可以看出早期Google学习了Microsoft的WPF的设计方式,由于微软Windows Phone 7发布缓慢,导致Google在技术上将微软复杂的设计方式改进,从现在来看安卓冰激凌三明治和微软WP7芒果来看开发技术上仍然存在着巨大的差异。
 
作者: Android开发网原创 时间: 2011-10-09

对于谷歌Android 4.0 Ice Cream SandWich和微软WP7.5 Mango在开发技术上作对比,可以看出早期Google学习了Microsoft的WPF的设计方式,由于微软Windows Phone 7发布缓慢,导致Google在技术上将微软复杂的设计方式改进,从现在来看安卓冰激凌三明治和微软WP7芒果来看开发技术上仍然存在着巨大的差异。对于准备步入移动开发的网友,就目前主流的系统做简单的分析:

一、UI控件和设计模式

对于WP7来说,整体控件数量不如Android丰富和实用,但也有一些创新的地方,比如说枢轴Piovt控件,在触控操作上比Android的TabHost强了很多,但没有提供类似GridView这样的控件在Siliverlight中,由于WP7的UI刷新机制基于MVVM模式,相对于Android的MVC有些不同,需要继承INotifyPropertyChanged接口,通过数据绑定来更新UI控件的值,相对比较繁琐。在控件自定义方面,WP7可以使用银光的UserControl或从任何已有的控件中直接派生,对于Android来说这点基本相同,但提供的方法比如触控、长按相关的微软这点都要 依赖Toolkit来实现,整体相对繁琐很多。

二、数据库层

微软在数据库方面一直有MS SQL,在手机上有SQL CE这样的轻量级数据库,但操作处理方面同样需要实现 INotifyPropertyChanged接口进行更新,修改表,似乎变得更加抽象。同时数据交换方面微软还有LINQ,在Web Services方面几乎和J2EE差不多,但相对于手机上而言Android的SQLite似乎更好用明了,这点微软确实输了。

三、系统执行模型

在WP7.5 Mango上支持了多任务,内存管理几乎和Android一模一样,同时新增了类似iOS上的数据推送,需要微软服务器中转的Push Notification,由于考虑应用随时被系统内存回收,必须保存每个页面的数据到持久化的存储中,比如类似Android的SharedPreferences而在WP中为银光的IsolatedStorageSettings,在很多地方微软都在学习着谷歌,相比WP7到WM6的改进来看。

四、图形系统

这点WP7和Android有着天壤之别,Windows CE下3D为DirectX,2D为GDI方式渲染,而Android下为OpenGL,同时WP7无法使用本地语言开发,导致iPhone和Android程序员在3D方面很是陌生。

五、文件系统

在WP7芒果上,微软学习了iOS那样的封闭,每个应用完全独立,所以没有文件管理器这个概念,导致了Adobe Reader这样的应用必须将pdf放入邮箱中,通过邮件附件来打开阅读。同样每个Windows Phone 7芒果手机一般不会有microSD卡,而是机身至少内置8GB或16GB的存储空间,同样无法用U盘功能,每个应用相对隔离,运行在自己的沙盒空间里,对于应用可靠性和安全有了保障,但是对于部分实现方面确实不够好用。

六、运行流畅度

如果你看见WP7手机运行很流畅,那么你可能真的错了,在本质上Java虚拟机和微软的.Net Framework运行时库的底层效率差不多,但Android的手机一般运行着更复杂的桌面,比如左右N个主屏和一堆appWidget小插件,而微软似乎Windows Phone 7的应用一般限制在5个同时工作的,否则将会被结束任务,同时由于部分低价Android设备,导致整体硬件配置偏低,比如有ARM11的CPU,RAM只有256MB的情况,而微软WP7第一代手机至少配备了A8 1GHz的处理器,512MB的RAM,第二代的WP7 Mango手机配备了1.4GHz新一代高通Snapdragon,比如8X55系列,所以很多地方了看WP7更流畅,但其实从单个应用来看,WP7应用的启动速度远不如Android平台上的应用,所以微软甚至设计出了SplashScreenImage.jpg这样的图片为每个默认工程提供一个载入图片。如果是微软系统自带的应用由于可以调用本地的方法相对于第三方的Windows Phone应用来说启动会快很多。

最终结论是Android123仍然推荐大家在高效和开放的Google提供的平台开发,至少不会束缚你的想象力和实现速度,微软设计了很多限制和门槛,同时不开源在分析和实现上都会产生很多问题,至少Android的SDK可以工作在Mac OS、Windows各个平台和Linux上,而微软似乎将WP7 SDK锁定在Vista和Win7上。

目录
相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
26天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
102 0
|
1月前
|
设计模式 人工智能 开发工具
安卓应用开发:构建未来移动体验
【2月更文挑战第17天】 随着智能手机的普及和移动互联网技术的不断进步,安卓应用开发已成为一个热门领域。本文将深入探讨安卓平台的应用开发流程、关键技术以及未来发展趋势。通过分析安卓系统的架构、开发工具和框架,本文旨在为开发者提供全面的技术指导,帮助他们构建高效、创新的移动应用,以满足不断变化的市场需求。
18 1
|
1月前
|
机器学习/深度学习 调度 Android开发
安卓应用开发:打造高效通知管理系统
【2月更文挑战第14天】 在移动操作系统中,通知管理是影响用户体验的关键因素之一。本文将探讨如何在安卓平台上构建一个高效的通知管理系统,包括服务、频道和通知的优化策略。我们将讨论最新的安卓开发工具和技术,以及如何通过这些工具提高通知的可见性和用户互动性,同时确保不会对用户造成干扰。
33 1
|
17天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
19天前
|
监控 算法 Android开发
安卓应用开发:打造高效启动流程
【4月更文挑战第5天】 在移动应用的世界中,用户的第一印象至关重要。特别是对于安卓应用而言,启动时间是用户体验的关键指标之一。本文将深入探讨如何优化安卓应用的启动流程,从而减少启动时间,提升用户满意度。我们将从分析应用启动流程的各个阶段入手,提出一系列实用的技术策略,包括代码层面的优化、资源加载的管理以及异步初始化等,帮助开发者构建快速响应的安卓应用。
|
19天前
|
Java Android开发
Android开发之使用OpenGL实现翻书动画
本文讲述了如何使用OpenGL实现更平滑、逼真的电子书翻页动画,以解决传统贝塞尔曲线方法存在的卡顿和阴影问题。作者分享了一个改造后的外国代码示例,提供了从前往后和从后往前的翻页效果动图。文章附带了`GlTurnActivity`的Java代码片段,展示如何加载和显示书籍图片。完整工程代码可在作者的GitHub找到:https://github.com/aqi00/note/tree/master/ExmOpenGL。
21 1
Android开发之使用OpenGL实现翻书动画
|
19天前
|
Android开发 开发者
Android开发之OpenGL的画笔工具GL10
这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
15 1
Android开发之OpenGL的画笔工具GL10
|
26天前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
12 0