background image

“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 的

子类来实现。