“Android VS Qt”谁更强
Android PK Qt:平台概述
大多数
Android 应用程序是用 Java 开发的,它们在 Dalvik 虚拟机里面运行。不过,
Android 仅仅借鉴了 Java 的语言语法,并不提供一套标准的应用编程接口 (API),比如 Java
SE 和 Java ME 里面的标准 API。像触摸屏和存储这些设备服务通过谷歌服务 API 来进行访
问。
请参阅
51CTO 专题:Android 开发应用详解
虽然
Android 操作系统基于 Linux 内核,但它本身不是一款 Linux 操作系统。它既没有
原生的窗口系统,也不支持诸如
GNU C 之类的标准 Linux 库。要想运行用 C 或其他语言编
写的应用程序,必须编译成原生代码,这可以通过
Android 原生开发工具包(Android NDK)
来完成
(欲知详情,请参阅 51CTO 译文)。
Qt 则是一款跨平台框架,面向 Symbian、Maemo 和 MeeGo。虽然 Qt 为 Python、Ruby 和
Perl 等几种编程语言提供了绑定机制,但是应用程序主要是用 C++来编写的,并由额外的
扩展件来加以改进。这些扩展件由预处理程序来实现,预处理程序在编译之前生成标准的
C++代码。众所周知,Qt 框架易于使用,而且支持桌面端出色的图形用户界面(GUI)窗口组
件。最近对移动平台的改进、尤其是
Qt Mobility 和 Qt Quick 着实吸引人。凭借成熟强大的 Qt
Creator 集成开发环境(IDE),Qt 框架在移动应用开发领域找到了一席之地。
Android PK Qt:应用程序组件和 API
Android 架构的一个主要概念是组件复用(component reuse)。这样便于发布活动、服务和
数据,并与其他应用程序共享活动、服务和数据。
Android 有四个基本的组件,每个组件有着
特定的目的。基于
Android 开发的软件多少会用到下列应用服务。
Activity Manager:该服务控制着任何活动的生命周期,包括活动堆栈的管理。活动为
用户的交互提供了一种接口。这是
Android 应用程序的基本构建模块,负责创建窗口。所有
活动都是
android.app.Activity 的子类,其中用户界面的元素通过 setContentView(View)来设
定。视图用于用户界面的构建。
Services:Service 组件在后台运行,基本上是为了执行冗长
的操作或远程进程。它们没有用户界面,作为
android.app.Service 的子类来实现。(51CTO
视频专题:
Android 组件-Service) Content Providers:这种组件充当共享数据的存储库,
无论共享数据是文件系统、
SQLite 数据库还是其他持久性存储位置。Content providers 作为
android.content.ContentProvider 的子类来实现。 Broadcast Receivers:电池电量很少、屏幕被
关闭时,该组件充当响应系统广播通知的角色。它作为
android.content.BroadcastReceiver 的
子类来实现。