1. Android是什么?

Android是一个平台,主要包括Linux微内核,中间件(SQLite等),关键应用(电话本、邮件、短消息、GoogleMap、浏览器等),提供的Java框架,以及Android中的JVM。

2.Android特点之布局管理

FrameLayout:左上角只显示一个组件。

LinearLayout:线性布局管理器,分为水平和垂直俩中,只能进行单行布局。

TableLayout:任意行和列的表格布局管理器。其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。

AbsoluteLayout:绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右x轴递增,往下Y轴递增。

RelativeLayout:相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。

3.Activity交互

Intent方式:Intent其实就是用来在Activity之间做交互用的,需要说明的是Intent有个意图说明,值得用深究,举个简单的例子,有种叫Intent.ACTION_CALL,可直接拨打电话。

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置。SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,最终是以xml方式来保存,效率不如Intent,但是由于可以共享,所有可以再Acitivity之间交互。但其效率比SQLite要高。

SQLite也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑SQLite。或是永久存储的情况下

In general

Anroid UI与Qt Quick的核心思想是相似的,都是采用MVC(Model-View-Controller)

模式。Anroid为了单纯化界面修改方式,采用了目前比较流行的解决方案--即将界面描述部份的程序码,抽取到程序外部的 XML

描述文件中。应用程序框架包括 XML 描述界面,R.java资源文件索引,

1. XML 描述界面

-Android

为了单纯化界面修改方式,采用了目前比较流行的解决方桉--即将界面描述部份的程序码,抽取到程序外部的 XML 描述文件中。方便界面修改。

其中的XML描述界面的机制跟QML很像,但是比QML更加成熟。

1)Anroid XML已经有成熟完整的控件库。Qt

Quick目前只有少量的控件,没有button,scrollbar。

2)都支持layout,view,property设置

3)都是描述性语言,语法基本一致。都设置id,weight,height,property后面设置value

4)透过

Android 开发工具,自动将 XML 描述档转换成资源文件。一旦应用程序要使用某个界面或是任何种类的资源(字串、图片、图示、音效...),都使用索引来查询。QML中的qrc也是起这样的作用吗,no

5)QML支持java script,Anroid XML not

6)Qt Quick支持用Qt C++生成plugin在QML里使用

Code example
XML: android:layout_height="wrap_content"
// convenient evalue

2. R.java 资源文件索引

-当你建立一个 BMI

新工程,打开位于

「src/com/demo/android/bmi」 目录下的 「R.java」档,你可以看到如下的程序码

public static final class string {
public static
final int app_name=0x7f040000;
public static final int
bmi_btn=0x7f040003;
public static final int
bmi_result=0x7f040004;
public static final int
height=0x7f040001;
public static final int
weight=0x7f040002;
}

R.java就是XML文档转换生成的资源文件索引,当应用程需要使用某个界面或者资源的时候,都通过这个索引来查询。Qt Quick

使用qrc来做资源文件的简单索引。相比起来,Anroid读取资源文件的效率应该更高。

3.Bmi.java 主程序逻辑

- Google Android

将其应用程序的界面称为视图(View),而负责控制各种动作行为的程序主体(Controller),则称为活动(Activity)。因此一个 Android 应用程序,必定会对应到一个以上的 Activity。

import
android.app.Activity;
import
android.os.Bundle;//导入"android.app.Activity"跟"android.os.Bundle"两个
Package
public class Bmi extends Activity
{
@Override //"@"开头的语句表示装饰子(decorator)语句
public void
onCreate(Bundle savedInstanceState)
{//"Bundle"的内容与手机平台的内存管理有关。
super.onCreate(savedInstanceState);//
parent.onCreat
setContentView(R.layout.main);//
set qml resource to showb
}

4. 真正特别之处:整合网络的应用 Intern

Activity之前的交互采用Intern,Qt Quick采用Signal slot的方式

5. Android 应用程序的运作流程,存在于四种载体中:

1) Activity :与用户交互的系统模块

2) Broadcast Intent Receiver

:可使应用对外部事件做出响应,提供一个在不同应用的代码之前进行动态绑定。

3)

Service:应用于后台服务通过serivice来通信。应用的生命周期是由Android系统来决定的,不由具体的应用的线程左右。当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到Service

4) Content

Provider:ContentProvider封装很多Android当中的上下文环境,包括SQLite,这就使得在不同应用之间交互成为可能。

Activity 运作流程

由实际运行的记录来看,我们可以归纳出所有 Android 应用程序都遵循的动作流程:

一般启动

onCreate -> onStart
-> onResume