您的位置:首页 > 移动开发 > Android开发

Android学习第一天--Activity生命周期

2012-12-15 15:10 267 查看
我是在
WindowsXP
下学习
GTK+
的,下面是环境的配置以及基本的程序开发流程

另外两种开发环境是:
Cygwin
Linux
,最佳开发环境是使用
Gnome
桌面的
Linux
系统

开发环境的配置

1、上http://www.gtk.org下载
gtk+-bundle_xxxxxxx_win32.zip
(当前最新
gtk+-bundle_2.22.1-20101227_win32.zip


这个压缩包包含了开发所需的一切资源,包括运行环境和开发库;注意:这个文件的下载链接并没有醒目列出,而是夹杂在下载页的文字说明当中,如果有更新的版本就下载最新的

2、解压该压缩包到
C:\GTK


具体路径自定,这里我是放在
C盘
GTK
目录下面

3、将
C:\GTK\bin
加入到
PATH
环境变量

4、在命令行窗口中敲入
pkg-config--libs--cflagsgtk+-2.0
,如果能够顺利执行并打印出一堆路径信息,则说明
GTK+
开发环境安装成功

另外一个简便方法是上http://glade.gnome.org下载
gladexxxx-with-GTK+.exe
(当前最新
glade3-3.6.7-with-GTK+.exe
),安装完成后会自动设置好环境变量

基本程序开发流程

手动建立一个工程目录,比如
hello


在该目录下编写
C语言
源代码文件,比如
hello.c


编写
makefile
文件

在该目录下面执行
make
命令

以上就是最原始也最高效的
GTK+
程序开发方法,需要用到的工具有以下两个:

Gvim
:用来编辑
C
源文件和
makefile
文件(最好是安装一个
GTK+
语法高亮插件,这可以大大减少编码错误,加快编码速度)

MinGW
Windows
下的
GCC
编译器

空白窗体开发演示

1、手动建立一个文件夹,命名为
demo


2、新建
C语言
源文件
demo.c
,内容如下:

[code]01
#include<gtk/gtk.h>
02
03
int
main(
int
argc,
char
*argv[]){
04
GtkWidget*window;
05
gtk_init(&argc,&argv);
06
07
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
08
09
gtk_widget_show(window);
10
gtk_main();
11
12
return
0;
13
}
[/code]
3、新建一个
makefile
文件,文件名就是
makefile
,内容如下:


GTK_FLAGS=$(shellpkg-config--libs--cflags"gtk+-2.0")

all:
gcc-Wall-odemodemo.c${GTK_FLAGS}

makefile
代码直接从网页复制将不能正常使用,最好是手动照着敲出来,
all:
下面那一行的最前面是一个
Tab
键,不是空格

4、在
demo
目录下执行
make
命令,如果不出意外则会在
demo
目录下生成
demo.exe
可执行文件

5、双击
demo.exe
就会弹出一个空白窗体(呵呵,还什么都没有哦
^-^


GTK+程序的基本架构

下面以拥有两个标签和一条水平分割线的窗体程序来解释
GTK+
程序的基本架构

本程序提供了一个
gif
格式的演示视频:点此进入演示地址

[code]01
/*加载必须的头文件*/
02
03
#include<gtk/gtk.h>
04
05
/*标准C语言主函数*/
06
07
int
main(
int
argc,
char
**argv){
08
09
/*窗体、标签、控件统一声明*/
10
11
GtkWidget*window;
12
GtkWidget*label1;
13
GtkWidget*label2;
14
GtkWidget*hseparator;
15
GtkWidget*vbox;
16
17
/*GTK+程序初始化*/
18
19
gtk_init(&argc,&argv);
20
21
/*新建窗体并进行相关设置*/
22
23
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
24
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
25
gtk_window_set_title(GTK_WINDOW(window),
"GtkHSeparator"
);
26
gtk_window_set_resizable(GTK_WINDOW(window),FALSE);
27
gtk_container_set_border_width(GTK_CONTAINER(window),20);
28
29
/*新建容器并进行相关设置*/
30
31
vbox=gtk_vbox_new(FALSE,10);
32
33
/*将容器嵌入窗体*/
34
35
gtk_container_add(GTK_CONTAINER(window),vbox);
36
37
/*新建控件并进行相关设置*/
38
39
label1=gtk_label_new(
"Zincisamoderatelyreactive,bluegraymetalthattarnishes\n"
);
40
gtk_label_set_line_wrap(GTK_LABEL(label1),TRUE);
41
label2=gtk_label_new(
"Copperisanessentialtracenutrienttoallhighplantsandanimals"
);
42
gtk_label_set_line_wrap(GTK_LABEL(label2),TRUE);
43
hseparator=gtk_hseparator_new();
44
45
/*将控件嵌入容器*/
46
47
gtk_box_pack_start(GTK_BOX(vbox),label1,FALSE,TRUE,0);
48
gtk_box_pack_start(GTK_BOX(vbox),hseparator,FALSE,TRUE,10);
49
gtk_box_pack_start(GTK_BOX(vbox),label2,FALSE,TRUE,0);
50
51
/*进行信号绑定*/
52
53
g_signal_connect_swapped(G_OBJECT(window),
"destroy"
,
54
G_CALLBACK(gtk_main_quit),G_OBJECT(window));
55
56
/*显示窗体*/
57
58
gtk_widget_show_all(window);
59
60
/*书写GTK+主函数*/
61
62
gtk_main();
63
64
return
0;
65
}
[/code]
上述架构简述如下:

包含头文件

声明窗体元素

初始化
GTK+
程序

新建并设置窗体

新建并设置容器

将容器嵌入窗体

新建并设置控件

将控件嵌入容器

进行信号绑定

显示窗体

进入
GTK+
主函数

如果有自定义函数,则统一写在
main
函数之前

以上就是标准的
GTK+
程序开发流程,更大型的程序也都可以这么做

更复杂的界面可以借助
Glade
可视化界面设计工具
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: