当前位置:文档之家› AndroidC语言开发系列

AndroidC语言开发系列

AndroidC语言开发系列
AndroidC语言开发系列

一、Android C语言开发之一【开发环境的配置】

Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。

在Linux下面,你可以自已编译一个交叉编译环境,但Windows下面,就比较复杂(也可以在cygwin中编译一个),但你可以选择下载一个现成的交叉编译环境:

https://www.doczj.com/doc/8915847061.html,/gnu_toolchains/arm/download.html

Windows:

https://www.doczj.com/doc/8915847061.html,/gnu_toolchains/arm/portal/package3400/public/arm-no ne-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe

Linux:

https://www.doczj.com/doc/8915847061.html,/gnu_toolchains/arm/portal/package3399/public/arm-no ne-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin

安装好了之后,将 CodeSourcery编译器的bin目录 (我的是D:\Program

Files\CodeSourcery\Sourcery G++ Lite\bin)加入你的PATH环境变量中,就可以开始你的Android Native C开发之旅了,写好一个简单的C程序:

#include

int main(int argc, char** argv) {

printf("hello android!\nI'm %s!\nI like android very much!!!\n", "Martin Foo");

return 0;

}

另存成hello.c,进入命令行模式,确保交叉编译器的bin目录,及Android SDK的tools 目录在你的系统环境变量的path里面,用如下命令编译:

arm-none-linux-gnueabi-gcc -static hello.c -o hello

注意,一定要加上static参数,否则编译好的可能会在Android上不能运行。

启动Android模拟器,用如下命令将文件push到Android模拟器上:

adb shell mkdir /dev/sample

adb push hello /dev/sample/hello

adb shell chmod 777 /dev/sample/hello

先创建 /dev/sample目录,再将编译好的hello上传上去,最后将hello改成可执行的。

再进入命令行模式,进入Android的shell环境:

adb shell

#cd /dev/sample

#./hello

进入 /dev/sample目录,执行hello,运行结果如下图:

2011-2-13 10:49 上传

二、Android C语言开发之二【framebuffer篇】

如对Android原生(Natvie)C开发还任何疑问,请参阅《Android C语言开发之一:环境搭建篇》:https://www.doczj.com/doc/8915847061.html,/forum.php?mod=viewthread&tid=1316&extra=page%3D1虽然现在能通过交叉环境编译程序,并push到Android上执行,但那只是console台程序,是不是有些单调呢?下面就要看如何通过Linux的 framebuffer 技术在Android上画图形,关于Linux的framebuffer技术,这里就不再详细讲解了,请大家google一下。

操作framebuffer的主要步骤如下:

1、打开一个可用的FrameBuffer设备;

2、通过mmap调用把显卡的物理内存空间映射到用户空间;

3、更改内存空间里的像素数据并显示;

4、退出时关闭framebuffer设备。

下面的这个例子简单地用framebuffer画了一个渐变的进度条,代码 framebuf.c 如下:

1.#include

2.#include

3.#include

4.#include

5.#include

6.inline static unsigned short int make16color(unsigned char r, unsigned

char g, unsigned char b)

7.{

8. return (

9.(((r >> 3) & 31) << 11) |

10.(((g >> 2) & 63) << 5) |

11.((b >> 3) & 31) );

12.}

13.int main() {

14. int fbfd = 0;

15. struct fb_var_screeninfo vinfo;

16. struct fb_fix_screeninfo finfo;

17. long int screensize = 0;

18.char *fbp = 0;

19. int x = 0, y = 0;

20. int guage_height = 20, step = 10;

21. long int location = 0;

22. // Open the file for reading and writing

23. fbfd = open("/dev/graphics/fb0", O_RDWR);

24. if (!fbfd) {

25.printf("Error: cannot open framebuffer device.\n");

26.exit(1);

27. }

28. printf("The framebuffer device was opened successfully.\n");

29. // Get fixed screen information

30. if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) {

31.printf("Error reading fixed information.\n");

32.exit(2);

33. }

34. // Get variable screen information

35. if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo)) {

36.printf("Error reading variable information.\n");

37.exit(3);

38. }

39.printf("sizeof(unsigned short) = %d\n", sizeof(unsigned short));

40. printf("%dx%d, %dbpp\n", vinfo.xres, vinfo.yres,

vinfo.bits_per_pixel );

41.printf("xoffset:%d, yoffset:%d, line_length: %d\n", vinfo.xoffset,

vinfo.yoffset, finfo.line_length );

42. // Figure out the size of the screen in bytes

43. screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;;

44. // Map the device to memory

45. fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE,

MAP_SHARED,

46.fbfd, 0);

47. if ((int)fbp == -1) {

48.printf("Error: failed to map framebuffer device to

memory.\n");

49.exit(4);

50. }

51. printf("The framebuffer device was mapped to memory

successfully.\n");

52.//set to black color first

53.memset(fbp, 0, screensize);

54. //draw rectangle

55. y = (vinfo.yres - guage_height) / 2 - 2; // Where we

are going to put the pixel

56. for (x = step - 2; x < vinfo.xres - step + 2; x++) {

57.location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8)

+

58.(y+vinfo.yoffset) *

finfo.line_length;

59.*((unsigned short int*)(fbp + location)) = 255;

60. }

61. y = (vinfo.yres + guage_height) / 2 + 2; // Where we

are going to put the pixel

62. for (x = step - 2; x < vinfo.xres - step + 2; x++) {

63.location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8)

+

64.(y+vinfo.yoffset) *

finfo.line_length;

65.*((unsigned short int*)(fbp + location)) = 255;

66. }

67. x = step - 2;

68. for (y = (vinfo.yres - guage_height) / 2 - 2; y < (vinfo.yres +

guage_height) / 2 + 2; y++) {

69.location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8)

+

70.(y+vinfo.yoffset) *

finfo.line_length;

71.*((unsigned short int*)(fbp + location)) = 255;

72. }

73. x = vinfo.xres - step + 2;

74. for (y = (vinfo.yres - guage_height) / 2 - 2; y < (vinfo.yres +

guage_height) / 2 + 2; y++) {

75.location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8)

+

76.(y+vinfo.yoffset) *

finfo.line_length;

77.*((unsigned short int*)(fbp + location)) = 255;

78. }

79. // Figure out where in memory to put the pixel

80. for ( x = step; x < vinfo.xres - step; x++ ) {

81.for ( y = (vinfo.yres - guage_height) / 2; y < (vinfo.yres

+ guage_height) / 2; y++ ) {

82.location = (x+vinfo.xoffset) *

(vinfo.bits_per_pixel/8) +

83.(y+vinfo.yoffset) *

finfo.line_length;

84.if ( vinfo.bits_per_pixel == 32 ) {

85. *(fbp + location) = 100; //

Some blue

86. *(fbp + location + 1) =

15+(x-100)/2; // A little green

87. *(fbp + location + 2) =

200-(y-100)/5; // A lot of red

88. *(fbp + location + 3) = 0; // No

transparency

89.} else { //assume 16bpp

90. unsigned char b = 255 * x / (vinfo.xres -

step);

91. unsigned char g = 255; // (x - 100)/6

A little green

92. unsigned char r = 255; // A lot of red

93. unsigned short int t = make16color(r, g, b);

94. *((unsigned short int*)(fbp + location)) =

t;

95.}

96.}

97.//printf("x = %d, temp = %d\n", x, temp);

98.//sleep to see it

https://www.doczj.com/doc/8915847061.html,leep(200);

100. }

101. //clean framebuffer

102. munmap(fbp, screensize);

103. close(fbfd);

104. return 0;

105.}

复制代码

注意,在Android环境,framebuffer设备不是象linux一样的 /dev/fb0,而是/dev/graphics/fb0 ,

fbfd = open("/dev/graphics/fb0", O_RDWR);

打开framebuffer设备,

fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED,

fbfd, 0);

将设备map到一块内存,然后就可以操作这块内存空间来显示你想画的图形了。

最后别忘了关闭设备:

munmap(fbp, screensize);

close(fbfd);

效果图如下:

2011-2-13 10:51 上传

三、Android C语言开发之三【鼠标事件篇(捕鼠记) 】

在做SDL至Android的移植时,键盘事件是能正常捕获到,看了SLD的源码,发现用的device 是 /dev/tty0,但是鼠标叫是不能成功捕获,总是得到 0,运行命令查看devices时,显示如下:

1.# cat /proc/bus/input/devices

2.cat /proc/bus/input/devices

3.I: Bus=0000 Vendor=0000 Product=0000 Version=0000

4.N: Name="qwerty"

5.P: Phys=

6.S: Sysfs=/class/input/input0

7.U: Uniq=

8.H: Handlers=kbd mouse0 event0

9.B: EV=2f

10.B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff

ffffffff f

11.fffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe

12.B: REL=3

13.B: ABS=7

14.B: SW=1

复制代码

进入 /dev/input 目录,发现在3个device文件:mice,mouse0,event0,分别 cat这3个文件,发现只有 event0 有反应,如下图:

而且不管是点击鼠标还是按键,都有反应,但显示的是一堆乱码,而且点击鼠标出来的东西要多一点,难道这就是传说是的 touchscreen ?!

为了分析 event0 的返回值,写了一段代码 testmice.c,如下:

1.#include

2.#include

3.#include

4.#include

5.static int event0_fd = -1;

6.struct input_event ev0[64];

7.//for handling event0, mouse/key/ts

8.static int handle_event0() {

9. int button = 0, realx = 0, realy = 0, i, rd;

10. rd = read(event0_fd, ev0, sizeof(struct input_event) * 64);

11. if ( rd < sizeof(struct input_event) ) return 0;

12. for (i = 0; i < rd / sizeof(struct input_event); i++) {

13.printf("", ev0[i].type, ev0[i].code, ev0[i].value);

14.if (ev0[i].type == 3 && ev0[i].code == 0)

15.realx = ev0[i].value;

16.else if (ev0[i].type == 3 && ev0[i].code == 1)

17.realy = ev0[i].value;

18.else if (ev0[i].type == 1) {

19.if (ev0[i].code == 158) {

20. //if key esc then exit

21. return 0;

22.}

23.} else if (ev0[i].type == 0 && ev0[i].code == 0 &&

ev0[i].value == 0) {

24.realx = 0, realy = 0;

25.}

26.printf("event(%d): type: %d; code: %3d; value: %3d;

realx: %3d; realy: %3d\n", i,

27.ev0[i].type, ev0[i].code, ev0[i].value, realx, realy);

28. }

29. return 1;

30.}

31.int main(void) {

32.int done = 1;

33. printf("sizeof(struct input_event) = %d\n", sizeof(struct

input_event));

34. event0_fd = open("/dev/input/event0", O_RDWR);

35. if ( event0_fd < 0 )

36.return -1;

37. while ( done ) {

38.printf("begin handel_event0...\n");

39.done = handle_event0();

40.printf("end handel_event0...\n");

41. }

42. if ( event0_fd > 0 ) {

43.close(event0_fd);

44.event0_fd = -1;

45. }

46. return 0;

47.}

复制代码

用交叉编译器编译好后(编译过程就不再详述,请参见 blog:Android原生(Native)C 开发之一:环境搭建篇),push至 emulator后执行后,切换到android 模拟器,在模拟

器上点几下mouse,程序就会打出你点击的信息,效果如下,果然能正确得到点击的 mouse pos,如下图:

分析上面的返回值,发现当按下 mouse left button 时,会得到4个事件,2个 type = 3 的事件返回了 pos x, pos y 的值,即mouse click pos,另外1个 type = 1 的事件是按键事件(keydown),value就是按下的键的key,为0的应该就是 key的release事件,当松开 mouse时,也会得到两个 type = 1, 0 的事件,没有仔细去看它们的返回值,反正已经正确得到了 mosue的事件,下一步就是改SDL的事件驱动源码了

四、Android C语言开发之四【SDL移植笔记】

SDL(Simple DirectMedia Layer)是一套开放源码的跨平台多媒体开发库,使用C语言写成。SDL提供了多种图像、声音、键盘等的实现,可配置性与移植性非常高,开发者可以开发出跨多个平台(Linux、Windows、Mac OS X、Symbian、Widnows Mobiel等嵌入式系统,当然也包括今天要移植的平台:Android)的应用,目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用。

目前,SDL的稳定版本是 1.2.13,1.3还在开发中,可以通过SVN得到最新的代码,本次移植以1.2.13为准,没有测试 1.3版的源码。请从SDL 的官方网站下载 1.2.13 的源码,文件名为:SDL-1.2.13.zip,并解压,将得到一个SDL-1.2.13 目录。

在Native编译SDL之前,要先装Code Sourcery公司的arm交叉编译器,如果是用Windows操作系统,则一定要装Cygwin(一个在windows上模拟linux的软件),因为在编译时要用到一些linux命令,具体的步骤请参见:Port SDL/TinySDGL to android with native C,或自已在网上搜一些资料。

因为SDL是用纯C写的一套类库,所以移植性非常好,官方支持的系统有:Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX,非官方支持的有:AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2,而且网上也有人将SDL移植到很多其他嵌入式系统,甚至有人将SDL移植到Moto A1200,如此强大的可移植性,其架构真是值得好好学习。

现在切入正题,如何为Android量身定做一个SDL,下面就从视频,音频,输入事件,定时器(video,audio,events[key,mouse],timer),多线程等几个方面来分析:

1.首先讲视频方面,Android是一个定制的Linux操作系统,Linux显示要么用X11,要么用framebuffer技术,很显然Android并没有集成X11(也许Android的软件界面是基于X11的?!),那只有唯一的选择:framebuffer!

打开$SDL/src/video目录,可以发现SDL支持多达30多种的视频显示技术,其中包括我们想要的fbcon及directfb,directfb我没有做测试,也许显示效果会比linux自带的fbcon 好,有兴趣的朋友可以试一下,成功了别忘了告诉我;

2.再来谈音频,记得一个广告词:没有声音,再好的戏也出不来!可见音频对多媒体应用的重要性。

这次用的是OSS的driver,但用的是dsp及dma的实现,但在打开Android指定的音频文件/dev/eac 时有误,所以音频这一块只是能编译通过,不能正常运行,正在考虑用ALSA (Advanced Linux Sound Architecture) 替代;

关于OSS大家可以参看IBM的文章: OSS--跨平台的音频接口简介,写得比较详细。

3.输入事件(键盘,鼠标)中的键盘事件不需要任何更改,就能正常处理,用的设备文件是/dev/tty0,

但鼠标事件却不能正常处理,加上DEBUG_MOUSE发现用的是PS2的鼠标,但其实Android用的不是PS2的鼠标,用的应该是触摸屏(TouchScreen)鼠标,设备文件是/dev/input/event0,详情请参见本人的blog: Android原生(Native)C开发之三:鼠标事件篇(捕鼠记),经过改动后,基本能实现鼠标的处理;

4.定时器用的是unix的实现;

5.多线程用的是pthread的实现,unix系统都是用pthread来实现多线程的,在ln demo 时别忘了加-lpthread;

6.加载动态库用的是unix 的dl库,同样,在ln demo时别忘了加-ldl。

SDL提供了一个最小化的Makefile:Makefile.minimal,所有的实现都是dummy,就是一个空的实现,编译能通过,但运行时什么都不能做,根据上面的分析,将Makefile.minimal 的内容改成如下:

最后将$SDL\include\SDL_config_minimal.h的内容改成如下:

20.//#define HAVE_STRINGS_H 1

21.#define HAVE_INTTYPES_H 1

22.#define HAVE_STDINT_H 1

23.#define HAVE_CTYPE_H 1

24.#define HAVE_MATH_H 1

25.//#define HAVE_ICONV_H 1

26.#define HAVE_SIGNAL_H 1

27.#define HAVE_ALTIVEC_H 1

28.#define HAVE_MALLOC 1

29.#define HAVE_CALLOC 1

30.#define HAVE_REALLOC 1

31.#define HAVE_FREE 1

32.#define HAVE_ALLOCA 1

33.#define HAVE_GETENV 1

34.#define HAVE_PUTENV 1

35.#define HAVE_UNSETENV 1

36.#define HAVE_QSORT 1

37.#define HAVE_ABS 1

38.//#define HAVE_BCOPY 1

39.//#define HAVE_MEMSET 1

40.//#define HAVE_MEMCPY 1

41.//#define HAVE_MEMMOVE 1

42.//#define HAVE_MEMCMP 1

43.//#define HAVE_STRLEN 1

44.//#define HAVE_STRLCPY 1

45.//#define HAVE_STRLCAT 1

46.//#define HAVE_STRDUP 1

47.#define HAVE__STRREV 1

48.#define HAVE__STRUPR 1

49.#define HAVE__STRLWR 1

50.//#define HAVE_INDEX 1

51.#define HAVE_RINDEX 1

52.//#define HAVE_STRCHR 1

53.#define HAVE_STRRCHR 1

54.#define HAVE_STRSTR 1

55.#define HAVE_ITOA 1

56.#define HAVE__LTOA 1

57.#define HAVE__UITOA 1

58.#define HAVE__ULTOA 1

59.#define HAVE_STRTOL 1

60.#define HAVE_STRTOUL 1

61.#define HAVE__I64TOA 1

62.#define HAVE__UI64TOA 1

63.#define HAVE_STRTOLL 1

注意黑体部分,其实就是打开一些宏定义,将SDL的实现一一打开。

改完了这些以后,还需要改一些代码,主要是video方面的,因为Android Linux的framebuffer设备文件与标准Linux不同,Linux的fb设备文件一般是/dev/fb0,但Android 的设备文件是/dev/graphics/fb0,打开$SDL/src/video/fbcon/SDL_fbvideo.c,将191、499行的"/dev/fb0" 替换成"/dev/graphics/fb0",保存即可。

再修改$SDL/src/thread/pthread/SDL_sysmutex.c,将第30行改成:#define

FAKE_RECURSIVE_MUTEX 1,就是在后面加一个“1”子,这可能是编译器的一个bug,define 默认应该就是“1”的。

现在可以开始编译libSDL.a了,在cygwin或Linux下,进入SDL目录,输入:

make -f Makefile.minimal

视情况面定,一般几分钟后能顺利编译Android版的SDL,编译成功后,就需要编译几个SDL的test demo来测试一下SDL的性能。

进入test目录,复制Makefile.in 文件,并改名为Makefile,将前面一点内容改为:

并将所有的@MATHLIB@ 替换成$(MATHLIB),保存后,先编译一个testsprite demo,在命令行输入:

make testsprite

编译成功后,启动Android模拟器,将编译出来的testsprite及icon.bmp上传至一个目录,如/dev/sample,命令如下:

最后进入android 的shell: adb shell,再进入/dev/sample目录,执行testsprite demo即可:

可以根据模拟器的设置调整width 及height,因为程序默认的是640x480的,初始化时会失败,如果一切正常的话,模拟器就会出现很多黄色的笑脸!按任意键退出,在本人机器上能达到60 FPS左右,效果图如下:

其他的demo有兴趣的朋友可以自己编译测试。

五、Android C语言开发之五【zlib移植笔记】

zlib(https://www.doczj.com/doc/8915847061.html,/)是一套非常流行的且开源的压缩、解压缩库,由Jean-loup Gailly 与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE演算法,最初是为libpng函式库所写的,后来普遍为许多软体所使用。

zlib当前版本是1.2.3,其移植性非常好,本人已经在Windows、Linux、WinCE、Symbian 等平台成功地移植了zlib,当然也包括今天要移植的平台:Android。

首先,从zlib 的官方网站下载zlib的源代码:zlib123.zip,解压后得到一个目录zlib-1.2.3,zib已经提供好了一个Makefile,改动几行(19、20、27、36、37)就可以动手编译了,改动如下:

1.......

https://www.doczj.com/doc/8915847061.html, = arm-none-linux-gnueabi-gcc

3.

4.CFLAGS = -O2

5.......

6.LDFLAGS=libz.a -s -static

7.......

8.AR = arm-none-linux-gnueabi-ar rc

9.RANLIB = arm-none-linux-gnueabi-ranlib

10.......

复制代码

进入zlib-1.2.3目录,在命令行输入:make 即可。

最后会生成两个可Android可执行文件:example 、minigzip 。

运行Android模拟器,进入命令行,将两个可执行文件push 至Android模拟器,再执行,命令如下:

1.$adb push example /dev/sample/example

2.$adb push minigzip /dev/sample/minigzip

3.$adb shell chmod 777 /dev/sample/*

4.$adb shell

5.#cd /dev/sample

6.#./example

7.zlib version 1.2.3 = 0x1230, compile flags = 0x55

8.uncompress(): hello, hello!

9.gzread(): hello, hello!

10.gzgets() after gzseek: hello!

11.inflate(): hello, hello!

https://www.doczj.com/doc/8915847061.html,rge_inflate(): OK

13.after inflateSync(): hello, hello!

14.inflate with dictionary: hello, hello!

15.#ls -l

16.ls -l

17.-rwxrwxrwx root root 513228 2008-11-10 04:18 minigzip

18.-rwxrwxrwx root root 517640 2008-11-10 04:18 example

19.-rwxrwxrwx root root 31 2008-11-10 04:28 foo.gz

20.#exit

21.$adb pull /dev/sample/foo.gz d:/foo.gz

复制代码

其中,“$”是Linux或Cygwin命令行的提示符,#是Android命令行的提示符。

最后,用ls -l 命令查看当前目录,会发现一个foo.gz的文件,这个文件就是example 生成的,退出adb shell,用命令:adb pull /dev/sample/foo.gz d:/foo.gz 可将模拟器上生成的文件foo.gz pull至D盘根目录,用winrar或7zip可查看这个文件的内容,正是代码中所写的“hello, hello! ”!

至此,zlib移植Android平台运行成功!

六、Android C语言开发之六【libpng移植笔记】

libpng(https://www.doczj.com/doc/8915847061.html,/)是读取PNG(Portable Network Graphic Format)文件的最官方的函数库,所以在介绍libpng之前,有必要先介绍下PNG文件。

PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF 文件格式,同时增加一些GIF文件格式所不具备的特性。流式网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG's Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法。

PNG用了无损数据压缩算法,用的压缩库上是上一篇介绍的zlib,编译libpng前,要先编译zlib(请参见上一篇:Android原生(Native)C开发之五:zlib移植笔记)。

先从sourceforge下载libpng的最新版本:1.2.33,请选择without config script 版本:bz2格式,zip格式,这个版本没有configure文件,因为基本上不需要改动libpng 的设置,就能编译通过。

将下载的源码包解开,得到时一个名为 libpng-1.2.33 的目录,将

scripts\makefile.gcc 复制到 libpng-1.2.33\Makefile,将此文件的 8 - 27 行改成如下即可(粗体为增加部分):

1....

2.ZLIBINC = ../zlib-1.2.3

3.ZLIBLIB = ../zlib-1.2.3

4.

5.# Compiler, linker, lib and other tools

https://www.doczj.com/doc/8915847061.html, = arm-none-linux-gnueabi-gcc

7.LD = $(CC)

8.AR_RC = arm-none-linux-gnueabi-ar rcs

9.RANLIB = arm-none-linux-gnueabi-ranlib

10.RM_F = rm -f

11.

12.CDEBUG = -g -DPNG_DEBUG=5

13.LDDEBUG =

14.CRELEASE = -O2

15.LDRELEASE = -s -static

16.#CFLAGS = -W -Wall $(CDEBUG)

17.CFLAGS = -W -Wall $(CRELEASE)

18.#LDFLAGS = $(LDDEBUG)

19.LDFLAGS = $(LDRELEASE)

20.LIBS = -lz -lm

21....

复制代码

在Cygwin或Linux命令行方式进入libpng-1.2.33目录,输入: make 即可成功编译libpng,得到时的静态库libpng.a及可执行文件 pngtest。

用 emulator -noskin 命令启动 Android 模拟器,将pngtest上传到模拟器,即可测试pngtest:

1.$adb shell mkdir /dev/sample

2.$adb push pngtest /dev/sample

3.$adb push pngtest.png /dev/sample

4.$adb shell chmod 777 /dev/sample/pngtest

5.$adb shell

6.#cd /dev/sample

7.#./pngtest pngtest.png

8.Testing libpng version 1.2.33

9.with zlib version 1.2.3

10.

11.libpng version 1.2.33 - October 31, 2008

12.Copyright (c) 1998-2008 Glenn Randers-Pehrson

13.Copyright (c) 1996-1997 Andreas Dilger

14.Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.

15.library (10233): libpng version 1.2.33 - October 31, 2008

16.

17.pngtest (10233): libpng version 1.2.33 - October 31, 2008

18.sizeof(png_struct)=984, sizeof(png_info)=288

19.Testing pngtest.png:

20.Pass 0: rwrwrwrwrwrwrwrwrw

21.Pass 1: rwrwrwrwrwrwrwrwrw

22.Pass 2: rwrwrwrwrwrwrwrw

23.Pass 3: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

24.Pass 4: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

25.Pass 5: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

26.rwrwrwrw

27.Pass 6: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

28.rwrwrwrwrw

29.PASS (9782 zero samples)

30.Filter 0 was used 21 times

31.Filter 1 was used 15 times

32.Filter 2 was used 52 times

33.Filter 3 was used 10 times

34.Filter 4 was used 33 times

35.tIME = 7 Jun 1996 17:58:08 +0000

36.libpng passes test

复制代码

其中"$"为cygwin的命令提示符,"#"为 adb shell的命令提示符,测试如下图所示:

网页设计与开发第1章试卷及答案

《网页设计与开发第1章》试卷 一、选择题 1.HTML指的是( A )。 A超文本标记语言(Hyper Text Markup Language) B家庭工具标记语言(Home Tool Markup Language) C超链接和文本标记语言(Hyperlinks and Text Markup Language) D超文本传输协议 (Hypertext transfer protocol) 答案: A 2.web标准的制定者是( B )。 A 微软 B万维网联盟(W3C) C网景公司(Netscape) D IBM公司 答案: B 3.通常网页的首页被称为( A )。 A.主页 B.网页 C.页面 D.网址 答案: A 4.网页的基本语言是( C )。 A.JavaScript B.VBScript C.HTML D.XML 答案: C 5.网页在Internet 上是通过URL来指明其所在的位置的,每个不同的网页都应该有不同 的URL,比如263网站主页的URL就是( A )。 A. B.\\ C. D.mailto: 答案: A 6.下列不属于Macromedia公司产品的是( D )。 A.Dreamweaver B.Fireworks C.Flash D.Frontpage 答案: D 7.下列属于静态网页的是( A )。

A. B. C.D.答案: A 8.属于网页制作平台的是( C )。 A.photoshop B.flash C.dreamweaver D.cuteFTP 答案: C 9.要想在打开网页时弹出一个信息框,可以便用下列哪种技术实现( C )。 A.CSS技术 B.HTML技术 C.调用JavaScript D.URL 答案: C 10.以下说法中,错误的是( B )。 A.网页的本质就是HTML源代码。 B.网页就是主页。 C.使用“记事本”编辑网页时,应将其保存为 .htm 或 .html 后缀。 D.本地网站通常就是一个完整的文件夹。 答案: B 11.URL是下列( D )的简写,中文译作( )。 A.Uniform Real Locator,全球定位 B.Unin Resource Locator,全球资源定位C.Uniform Real Locator,全球资源定位 D.Uniform Resource Locator,全球资源定位 答案: D 12.下列( C )软件不能编辑html语言。 A.记事 本 B.FrontPage C.Dreamweaver D.C语言 答案: D 13.下面说法错误的是( C )。 A. CSS样式表可以将格式和结构分离

编程语言种类及介绍

编程语言种类及其介绍 机器语言:纯粹的机器代码 汇编语言:8086汇编、Win32汇编、.NET的汇编 高级语言: Basic、Pascal、Object Pascal、C、C++、C#、Java、ASP、https://www.doczj.com/doc/8915847061.html,、Perl、PHP、SQL、FORTRAN 、Visual Basic、Visual https://www.doczj.com/doc/8915847061.html,、Delphi、Visual C++、C++ Builder、C# Builder、Visual Foxpro 等等 上面一排都是纯粹的编程语言,而下面一排都是经过发展过后的编程语言,下面我们对各种语言进行简单的介绍: 机器语言:机器语言是有0,1,0,1的二进制代码组成,可以有计算机直接执行。效率最高,但是通用性不强,对于不同的硬件需要不同的程序。说白了,不适合人来编程。 汇编语言:效率稍微低于机器语言,通过简单的助记符来替代繁琐而枯燥的0,1代码。同样的通用性不强,对于不同的硬件需要设计不同语言。学习曲线比较大,需要硬件知识很多。介于其特殊的性质,在某些行业中得到广泛的应用。 高级语言:通过人类可以识别的自然语言(主要是英语)来进行编程,效率再次降低,但是程序编制难度和可读性大幅提高。可移植性好,实用性较好。比较适合大规模开发,是现在大多数人选择的语言。而且Java语言和.NET平台的出现在一定程度上解决了由于平台的不同所导致的移植困难的情况。 ======================================= Basic 微软公司上个世纪八十年代(具体什么时候我不记得了)推出的计算机语言,当时造成了计算机软件开发世界的强烈震动,它的出现将很多程序员由枯燥的编码中解放出来,而有更多的精力来进行程序结构的开发。(因为我很早前曾经学习过这个语言,对其有一定程度的了解)但是,它同C、Pascal语言一样,是结构化语言,在对待大型开发中会觉得逐渐力不从心,程序员需要关注的内容实在太多了。其实现在来说,学习Basic已经没有什么意义了。因为它的改进版本Visual Basic和Visual https://www.doczj.com/doc/8915847061.html,无论是在功能上还是在实用性上都大大地超过了他们的祖先。 Pascal 结构化语言,语法结构严谨,易于教学。相对于C语言,缺乏一定的灵活性。但是正是其严谨的语法,很多Pascal程序员倾心于其“诗篇一样的结构”,曾经一直是大专院校计算机专业必学的语言。它的改进版本Object Pascal和Delphi都超过了它。 Object Pascal 这是改进版的Pascal,它是面向对象的Pascal,是Delphi语言的核心。 C 上个世纪七十年代又贝尔实验室开发,当时他们是为了解决一个实际问题,将B语言改进后得到的,后来贝尔实验室又用它重写了UNIX操作系统。是所有工科学生和计算机学生必须学习的语言。它的特点很多了:贴近硬件,执行效率高,使用灵活,功能强大。但它毕竟还是结构化编程语言。在进行大型开发上显得还是有点力不从心,往往编程人员需要绞尽脑汁想出各种“精巧”的算法来实现某个目的。不过在学习操作系统和进行单片机开发上,它的作用是举足轻重的。

网站建设基础知识

网站建设基础知识 百脑汇威客网讯在百脑汇威客网上许多威客都上半路出家的,许多威客要 求我们介绍一下网站建设相关方面的知识。今天,为大家介绍一下一点基础知识。这样在制作网站时可以事半功倍,制作出令人满意的网站。首先将介绍网 页基本知识、网页的基本构成元素、如何设计网页,接着介绍网页设计的常用 软件Dreamweaver CS3、Flash CS3和Photoshop CS3,最后介绍动态网站技术,如网页标记语言HTML、网页脚本语言javascript和动态网页编程语言,为后 面设计和创建完整的网站打下良好的基础。 一.网页基本知识 1.什么是Internet Internet是一个全球墟履计算机互联网骆,中文名称为"国际互联网"或"因特网",它集现代通信技术和现代计算机技术于一体,是 计算机之间进行国际信息交流和实现资源共享的良好手段。Internet将各种各 样的物理网骆联接起来,构成一个整体,而不论这些网骆类型的异同、规模的 大小和地理位置的差异。Internet是全球最大的信息资源库,几乎包括了人们 生活的方方面面,如教育、科研、商业、工业、出版、文化艺术、通信、广播 电视、娱乐等。经过多年的发展,互联网已经在社会的各个方面为全人类提供 便利。电子邮件、即时消息、视频会议、网骆日志、网上购物等已经成为越来 越多人的一种生活方式。 2.什么是网站 网站是因特网上的一个信息集中点,可以通过域名进行访问。网站要存储 在独立服务器或者服务器的虚拟主机上才能按受访问。网站是有独立域名和独 立存放空间的内容集合,这些内容可能是网页,也可能是程序或其他文件。网 站不一定要有很多网页,只要有独立域名和空间,哪怕只有一个页面也叫网站。 3.什么是Web服务器 Web服务器就是在Web站点上运行的应用程序,用户只有把设计好的网页 放到Web服务器上才能被其他用户浏览。Web服务器主要负责处理浏览器的请

分享几种常用的网站制作布局类型

分享几种常用的网站制作布局类型 网站制作的时候,要考虑清楚网页的布局方式,看看该如何布局,信息该怎么展示,以便确定一个好的布局方式,让页面更加美观。网页的布局类型有多种,可以结合网站类型、网站内容合理的布局。小编下面分享常用的几种布局类型给大家了解下。 一、变化型 即上面几种类型的结合与变化,比如本站在视觉上是很接近拐角型的,但所实现的功能的实质是那种上、左、右结构的综合框架型。 二、拐角型 这种结构与上一种其实只是形式上的区别,其实是很相近的,上面是标题及广告横幅,接下来的左侧是一窄列链接等,右列是很宽的正文,下面也是一些网站的辅助信息。在这种类型中,一种很常见的类型是最上面是标题及广告,左侧是导航链接。 三、国”字型 也可以称为“同”字型,是一些大型网站所喜欢的类型,即最上面是网站的标题以及横幅广告条,接下来就是网站的主要内容,左右分列一些两小条内容,中间是主要部分,与左右一起罗列到底,最下面是网站的一些基本信息、联系方式、版权声明等。这种结构是我们在网上见到的差不多最多的一种结构类型。 四、左右框架型 这是一种左右为分别两页的框架结构,一般左面是导航链接,有时最上面会有一个小的标题或标致,右面是正文。我们见到的大部分的大型论坛都是这种结构的,有一些企业网站也喜欢采用。这种类型结构非常清晰,一目了然。 五、上下框架型 与上面类似,区别仅仅在于是一种上下分为两页的框架。 六、封面型 这种类型基本上是出现在一些网站的首页,大部分为一些精美的平面设计结合一些小的动画,放上几个简单的链接或者仅是一个“进入”的链接甚至直接在首页的图片上做链接而没有任何提示。这种类型大部分出现在企业网站和个人主页,如果说处理的好,会给人带来赏心悦目的感觉。 七、变化型 即上面几种类型的结合与变化,比如本站在视觉上是很接近拐角型的,但所实现的功能的实质是那种上下、左右结构的综合框架型。 当然,网站的重点还是内容,没有内容就留不住用户。网页布局是为了内容展示有条理、让页面更加美观,让用户方便查看信息,提高用户体验。

网页设计与制作课程简介

《网页设计与制作》课程简介 课程名称:网页设计与制作 课程代码:02038 适用专业:初等教育(计算机与信息技术方向) 课程性质:专业核心课程、必修课、专业技能课 学分:3 学分 计划学时:72学时(理论36学时,实训36学时) 一、前言 1. 课程性质 本课程是初等教育计算机与信息技术专业的一门专业技能课程,培养学生网页设计与制作能力,适应初等教育对信息技术教师的人才基本要求,同时满足社会对计算机专业人才的需求,适合从事网站建设相关的岗位。 本课程的先修课程是《计算机应用基础》,后续课程是《https://www.doczj.com/doc/8915847061.html,程序设计》。在完成《计算机应用基础》课程学习后,学生掌握了计算机基本知识和原理,学会了一些应用软件和工具软件的使用,进而学习《网页设计与制作》这门课程不会感到困难。在以后学生还将学习《https://www.doczj.com/doc/8915847061.html,程序设计》课程,能设计和制作动态网页。 2. 课程基本理念 初等教育计算机与信息技术专业培养的对象主要是小学信息技术教师,今后从事小学信息技术教学和学校信息化教育教学的管理者及维护者,建设网站和网页是信息技术教师应掌握的基本技能。课程要理论与实践相结合,培养学生动手能力,能胜任今后小学信息技术教师的工作任务。同时满足社会对计算机专业人才的需求,适合从事网站建设相关的岗位群。 3. 课程设计思路 根据初等教育计算机与信息技术专业人才培养方案,《网页设计与制作》是重要的专业技能课程,是作为小学信息技术教师基本技能训练与考核的项目之一。课程以工作任务来组织内容,以案例驱动贯穿教学过程。由浅入深,最后完成主题网站的开发项目。课程教学中以Dreamweaver的使用为主线,要重视HTML

专题类的网页设计要点

专题页设计技巧浅析 https://www.doczj.com/doc/8915847061.html,以下面的这个奥运专题为例为大家分析专题设计中常遇到的一些问题。

这个页面存在的问题很多,我们来一个个分析。 第一个问题首屏高度 分析一下常见分辨率及浏览器下高度数据: 在window XP常见分辨率1024×768下我们除掉任务栏,浏览器菜单栏以及状态栏后剩下的网页首屏高度平均值是584。Win7下是574。在window XP常见分辨率1440×900下我们除掉任务栏,浏览器菜单栏以及状态栏后剩下的网页首屏高度平均值是716。Win7下是706。综合上面表中个分辨率及浏览器下的统计数据,我们很容易画出两条首屏线,分别是580PX和710PX,对应不同的分辨率。再来看下不同分辨率用户的占比情况: 通过对大于30W台客户端用户进行测试,得到的测试数据如下:首屏高度低于等于580 的有116786 个

人,占44.64%; 首屏高度低于等于720 的有216227 个人,占82.64%; 首屏高度低于等于800 的有241420 个人,占92.27%; 首屏高度低于等于900 的有259174 个人,占99.06%; 即当首屏高度大于580时有44.64的人看不到;大于720时有82.64%的人看不到; 大于800时有92.27%的人看不到。 我们将这个数据转化成3条线直观的显示在专题页面上: 总结起来就是注意首屏高度。 建议将最主要的信息显示在580PX高度范围内让用户打开网页第一屏就可以直接看到不用向下滚动。

第二个问题:标题够显眼么? 检验一个专题头图标题是否够显眼其中的一个方法就是将网页去色,站在远处看看标题是否还看得清。我们有这个方法来检验一下这个专题: 是不是就可以看出头图文字跟背景混在一起不够清晰。

网站开发用什么语言好

网站开发用什么语言好 目前,大大小小的企业都想借助网络这股东风把自己做大做强。这给了网站建设者们一个发展的机会,很多年轻人凭着对计算机技术的想往,都想进入IT领域大展身手。可是对于初学者,像网站开发用什么语言好这样的问题,也会难倒不少人。 现在可以做网站的语言有很多,我们经常碰到的就有ASP、PHP 和https://www.doczj.com/doc/8915847061.html,等等。每个商业发达的大都市都有网站建设公司,各个开发者所采用否认网站开发语言也不尽相同。面对如此纷繁的网络公司和网站开发语言,企业在做网站的时候如何选择呢?网站开发用什么语言好? 虽然现在很多公司都纷纷建设了自己的网站,但是大约80%以上的网站是经年累月的没有更新的。小编建议,如果网站更新不频繁,可以采用HTML语言建设网站可以大大降低网站设计制作的成本。因为HTML语言安全性高、加载速度快,非常有利于搜索引擎爬行抓取网站内容等等。另外,由于它的跨平台性,基本上所有的网页运行环境都可以支持。 小编建议,如果网站内容太多的话,就需要更大存取更快速的数据库。比如很多网站建设公司采用的ASP语言标配ACCESS数据库,就

是一个非常小型的网站数据库。一旦存储数据超过极限或者网站数据库超过50M,其读写存取性能就会大幅度减低。所以ACCESS数据库只适合小型网站,ASP语言也只适合一把的企业网站开发制作。 网站建设开发语言的选择应该根据网站的类型而定,而网站的安全是多数企业在制作网站是特别关注的重点。我们平时只要稍微留心就会发现,一些银行、金融和保险基金等银信系统的网站,多半采用JSP开发,其主要原因是JSP安全性能很高。但是由于其高昂的开发费用,并不适合一般的企业网站建设采用。所以,如果想要用JSP语言,就一定要考虑资金因素。 其实,PHP由于其开源特性受到了很多技术人员的青睐,其安全性相对较高,世界上大约70%的网站都是PHP开发制作。PHP还有一个很明显的优势,是其开发成本相对较低,相对而言性价比颇高。所以,PHP开发语言还是比较普遍采用的。 网站开发用什么语言好?各个网站开发语言各有优劣。小编从多年的教学经验和企业需求出发建议,不同的网站适合不同类型的语言。适合自己的,就是最好的。 (ps:本文章由北大青鸟广安门校区搜集自互联网)

网站开发技术介绍

网站开发技术介绍 1、网站版面开发技术为DIV+CSS 现在YAHOO,MSN等国际门户网站,网易,新浪等国内门户网站,和主流的WEB2.0网站,均采用DIV+CSS的框架模式,更加印证了DIV+CSS是大势所趋。 与表格的技术相比,DIV+CSS更适合贵司网络平台,尤其是以下特点是相当必要的。 ?符合W3C标准。微软等公司均为W3C支持者。这一点是最重要的,因为这保证您的网站不会因为将来网络应用的升级而被淘汰; ?搜索引擎更加友好。相对与传统的TABLE,采用DIV+CSS技术的网页,对于搜索引擎的收录更加友好。 ?样式的调整更加方便。内容和样式的分离,使页面和样式的调整变得更加方便。之后仅需要简单的修改几个CSS文件就可以重新设计整个网站的页面。 最重要的,鉴于律师网站信息量的庞大。采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小,从而提高页面浏览速度!(此功能可以提高网站的浏览速度;同时,开发时系统的合理架构与嵌套调用,会减少重复下载,加快网站的浏览速度。) 2、开发技术选择ASP ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是 微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序 进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp, 现在常用于各种动态网站中。ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。与HTML相比,ASP网页具有以下特点: (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; (2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;

网页设计

第一次作业 1.在不同类型的旅游网站中,制作风格接近于正统的商业网站类型,但带有旅游网站活泼、轻快的特点的是(D )。 1.景点类网站 2.旅行社网站 3.户外运动俱乐部网站 4.旅游服务类网站 2.Flash输出的网络动画文件格式是(A )。 1.swf 2.mov 3.wav 4.fla 3.Flash中,时间轴的用途是(D)。 1.开启新文件 2.关闭旧文件 3.存储旧文件 4.制作动画情节 4.Dreamweaver CS5中有很多面板,其中用于管理本地站点文件和文件夹的面板是(A )。 1.文件面板 2.插入面板 3.属性面板 4.行为面板 5.下列哪个是Photoshop图像最基本的组成单元(D )。 1.节点 2.色彩空间 3.路径 4.像素 6.在Photoshop CS中,下面哪种工具可以选取要操作的局部图像?(D ) 1.吸管 2.抓手 3.铅笔 4.魔棒 7.Photoshop CS存储文件时,默认的文件格式是(A )。

1.PSD 2.BMP 3.PDF 4.JPEG 8.HTML网页源文件的文件类型是(B )。 1.可执行文件 2.文本文件 3.二进制数据文件 4.二进制多媒体文件 9.下面不是Web服务程序的是(A )。 1.Word 2.Apache 3.IIS 4.Tomcat 10网站可以划分为不同的类型,如果按照网站的服务分类,则“七匹狼服饰”网站属于的类型是(A )。 1.展示型网站 2.内容型网站 3.电子商务型网站 4.门户型网站 11?对于在网络上播放的动画,最合适的帧频率是(B )。 1.?8fps 2.12fps 3.24fps 4.48fps 12?打开Dreamweaver CS5后,如果工作界面中没有出现属性面板。可执行(B )菜单中的“属性”命令将其打开。 1.?查看 2.窗口 3.命令 4.站点 13?常用来接收用户在浏览器端的输入数据,然后将这些信息发送到服务器端的页面元素是(D )。

各种编程语言介绍 一

各种编程语言介绍一 各种语言的介绍 Table of contents[showhide] 1各种语言的介绍(第二版) 1.1各种语言的选择 1.2各种语言的选择 2我为什么选择了python 3ruby吸取了所有语言精华的语言第二版4 ruby和python的比较 4.1 python和ruby的相同点 4.2和python相比ruby的优点 4.3和python相比ruby的不足 4.4 python和ruby的语言的选择 5 php有什么好处 6 ada语言草述 7多脚本语言的大统一及疑问 https://www.doczj.com/doc/8915847061.html,介绍 https://www.doczj.com/doc/8915847061.html,所实现的java的功能 https://www.doczj.com/doc/8915847061.html,未实现的java功能 https://www.doczj.com/doc/8915847061.html,实现的java不具备的功能

8.4相对vs6的改进 9 xml各种技术介绍 10最先进得xml格式图形界面程序开发工具-xul 11最接近人类语言的编 程语言-rebol 12一个小巧强大的脚本语言lua 13最具有现代感的lisp解释 器drscheme 14 discuss 15 eiffel语言印象 16 mozart oz语言 17各种语言的选择和语言之间的关系 17.1一般是使用什么软件,就用什么软件的语言 17.2然后看处理什么样类型的数据 17.3从语言特点来说 17.4 c语言是最普及的语言,但c语言有一些缺点,因此,就产生了很多 改进c的语言 17.5关于图形用户界面的选择 17.6 discuss 18文学编程和CWEB介绍 各种语言的介绍(第二版) 2002-04-12新增内容: 除了汇编语言外,c是最接近系统底层的语言,因此它是大部分程序的编 程语言。c的缺点是没有统一的函数库,标准不统一,因此,同样是c程序员,相互看不懂代码是很平常的事。 ada的出现就是为了解决统一标准的问题。有一个国际组织专门进行严格ada语言的认证来保证ada的统一。因此,ada编译器有很多种,但ada语言程序用任何ada编译器编译都能通过。同时,ada的执行程序的效率和c比较接近。有人说比c要快,我想不可能,除非c用的库有问题。ada比c排错能力

网页设计期末考试题答案

1.我们学习过很多种语言,与编译语言相比,HTML有哪些特点? HTML特点和好处:HTML文档制作不是很复杂,且功能强大,支持不同数据格式的文件镶入,这也是WWW盛行的原因之一,其主要特点如下: 1 简易性,HTML版本升级采用超集方式,从而更加灵活方便。 2 可扩展性,HTML语言的广泛应用带来了加强功能,增加标识符等要求,HTML采取子类元素的方式,为系统扩展带来保证。 3 平台无关性。虽然PC机大行其道,但使用MAC等其他机器的大有人在,HTML可以使用在广泛的平台上,这也是WWW盛行的另一个原因。 2.HTML是一种纯文本文件,可以用简单的文本编辑器如Notebook编写,也可以用集成开发系统如Dreamweaver编写,使用这两种方式各有什么优劣? notebook和dreamweaver都可以直接编写html代码,而dreamweaver可以实现可视化操作即也就是所谓的所见为所得,notebook无法实现这种功能。但是dreamweaver的功能更强大,软件较notebook复杂。但是notebook软件简单占用系统资源少。 3.完整的网页制作有哪些过程? 一个完整的网站制作需要哪些部份组成: 1. 网站域名,网站的域名又叫网址,通过访问域名就能找到一个网站。 2. 网站空间,网站空间就是放存网站的地方,一个网站制作完成后,需要放到互联网的某个地方,这个地方就是存放网站的空间。 3.网站代码,网站代码就是网站制作技术人员在开发过程中,使用前台网页制作工具,再加上后台脚本语言,通过技术人员一系列有序的加工之后,一个完整的网站程序才算开发完成。 有了这三样之后,我们需要使用FTP工具将网站代码传到服务器空间,再通过空间的后台程序对网站域名进行绑定,最后再通过域名的后台管理系统,进行需要解析,将域名解析到存放网站的空间IP地址。这些工作完成之后,2-24小时之内,网站就可以正常访问了,2-24小时,是一个域名解析一般需要的时间。 页面功能与内容设计;页面布局设计;页面视觉设计;页面效果设计。 4.什么是www?什么是HTTP?它们之间有什么关系? 什么是WWW?它是Internet上把所有信息组织起来的一种方式,它是一个超文本文档的集合,其中包括所要的任何本地信息。它是从一个文档链接到另一个文档,使你可以纵横于Internet网 什么是超文本传输协议(Http):支持WWW上信息交换的Internet标准,是定义Web 服务器如何响应文件请求的Internet协议。 HTTP,即超文本传输协议,是 HyperText Transfer Protocol的缩写。浏览网页时在浏览器地址栏中输入的URL前面都是以''http://';'开始的。HTTP定义了信息如何被格式化、如何被传输,以及在各种命令下服务器和浏览器所采取的响应 WWW是WorldWideWeb的缩写,可译为“环球网”或“万维网”,它是基于Internet提供的一种界面友好的信息服务,用于检索和阅读连接到Internet上服务器的有关内容。该服务利用超文本(Hypertext)、超媒体(Hypermedia)等技术,允许用户通过浏览器(如微软的IE、网景的Netscape)检索远地计算机上的文本、图形、声音以及视频文件。 Web的应用层协议HTTP是Web的核心。HTTP在Web的客户程序和服务器程序中得以实现。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。HTTP定义这些消息的结构以及客户和服务器如何交换这些消息。

10个比较受欢迎的编程语言简介

10个比较受欢迎的编程语言简介 编程语言一直是开发人员最为熟悉的开发工具,当然,很多计算机开发人员也不仅只会一种编程语言,但是对于一个新手该怎么选择啦,今天就给大家介绍一下目前市场上比较流行的10种开发语言,希望你给读者带来一些基础的认识。毕竟在移动互联网时代,如果你能够熟练掌握至少一种语言,那么你今后肯定能在IT领域找到一份高薪的工作。 Java Java被认为是最最适合开发者和程序员学习的。当下,它是被使用最多的编程语言,并且在AndroidOS开发语言中再一次夺魁。Java非常适合运用于移动设备平台,企业层用途,制作电脑应用程序,还有开发制作基于安卓平台的智能手机和平板电脑的App应用程序。 PHP 互联网开发者非常应该学习PHP,PHP是一个非常有名的编程语言,对开发者和程序员非常有价值。借助PHP的帮助,你可以很轻松的扩展一个webapp。其实PHP是很多强大CMS (内容管理系统)的基石,比如说美国着名的微博和博客网站WordPress的CMS。 JavaScript

当你准备扩展你的网页的时候,JavaScript一定会极大地帮助你。你可以利用JavaScript中各种各样的样式框架做出极好体验的UI(用户操作界面)。掌握JavaScript 才可以制作出效果优异的交互式网页。JavaScript被大量应用在网页动画,图片读取标志,页面脚本,还有制作交互UI。 Python Python可谓是一个多功能多用途的编程语言。学了Python,你将有能力拓展到网页应用,数据分析,UI设计等等。相比之下较大规模的公司才会运用Python来帮助他们分析评估大数据。所以学习Python工程师可谓是前程似锦。 Objective-C 如果你对iOS开发具有着浓厚的兴趣,建议你还是开始学习Objective-C,并且你要足够了解它才能开始你的iOSApp研发之路。除此之外,Objective-C语言还是最受网页工程师 欢迎的语言之一。如果你已经熟练掌握了Objective-C,你就可以使用Xcode以较快的速度来开发你所向往的iOSApp! Ruby Ruby也是一个很受欢迎的编程语言,它非常易学,而且非常强大、简洁。如果你手里的时间并不充裕,但是你对编程很感兴趣或者总是想制作些什么,Ruby一定是你最佳选择。Ruby被大量应用在众多的网页编程中,因此它也被刚起步的互联网公司视为一个不错的选择。 Perl Perl也是一个被很多人所熟知的编程语言,它提为系统程序设计提供了一些特殊的工具。尽管Perl在用起来的时候容易让人迷惑,但它的的确确非常强大,Perl在现阶段非常适合学习,学习它定会刷新你对这个领域的认知。Perl主要被运用在网页制作、网页应用上、 计算机应用和系统管理、数据库自动化测试等领域。 C、C++和C# C语言是一个很独特的编程语言,它是计算机语言里中年岁最长的,市面上大多数不同 的软件都是利用它编写出来的。C++在C语言的基础上有一些进步,C++被大量运用在加速游戏速度上。对于性能强大的计算机应用或者移动端应用,C++是一个理想的选择。C++是目前为止最强大的编程语言,一些至关重要的操作系统都采用的是C++,比如我们最熟知的微软的windows系统就是基于C++开发。 在了解C语言和C++之后,我们可以进一步的了解一下C#语言了。如果你掌握C语言和 C++的话,学习使用C#并不会很难。C#实际上是微软的应用程序和服务端的主要语言。如果你需要执行运用。Net和ASP,你必须要熟练掌握C#语言。 SQL

PHP网站开发语言技术特点及优势

1、跨平台特性:PHP语言可以运行于Linux、FreeBSD、OpenBSD、Solaris Unix、AIX、Darwin、Windows 等多种操作系统,通常说的LAMP指的就是Linux、Apache、MySQL、PHP/Perl/Python。 2、数据库支持:PHP支持多种主流与非主流的数据库,如:、Adabas D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MySQL、Microsoft SQL Server、Solid、Sybase、ODBC、oracle、oracle 8、PostgreSQL 等。 3、安全性:加密支持,PHP4实现了完整的加密, 这些加密功能是一个完整的mycrypt库,并且PHP 支持哈希函数。Blowfish,TripleDES,MD5,并且SHA1 也是可使用的一些加密算法。使用PHP语言运行Linux、FreeBSD、OpenBSD、Solaris Unix操作系统,不需安装任何杀毒软件及补丁,安全可靠. 4、扩展性:扩充了API 模块:PHP 为扩展的API 模块的提供了扩展PHP接口模块, 济南网站建设认为它比旧的API 版本显著地快。PHP 模块已有的及最常用的接口多数被转换到使用这个扩展的接口; 另外,PHP属于开源软件,其源代码完全公开,任何程序员为PHP扩展附加功能非常容易使PHP有很好的发展空间和扩展性. 5、执行速度快:PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页比CGI、Perl和ASP更快,这是它的第一个突出的特点;内存方面,PHP 能更有效的使用内存, 导致较少的内存占用消耗,这主要归功于引用计数技术的实现。 6、可移植性:PHP 写出来的Web 后端CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到SUN 工作站上,不用重新编译CGI 程序。面对快速发展的Internet,这是长期规划的最好选择。 7、功能全面性。PHP包括图形处理、编码与解码、压缩文件处理、XML解析、支持HTTP的身份认证、Cookie、POP3、SNMP等。可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。从对象式的设计、结构化的特性、数据库的处理、网络接口应用、安全编码机制等,PHP几乎涵盖了所有网站的一切功能。 8、可伸缩性。传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进web服务器(比如mod_perl,JSP),PHP就可以以这种方式安装。内嵌的PHP可以具有更高的可伸缩性。 9.要发挥php语言的优势,Linux+Apache+MySQL+PHP.被称为“黄金组合”。 10、国内排名前十名的网站中使用PHP的有8家:百度、腾讯网、新浪、搜狐、网易、淘宝、雅虎中国、Tom在线,易趣(ebay)。国内近两年新推出的网站中,有80%使用PHP开发。Alexa中文网站500强中,394家以上的网站应用着PHP技术. PHP不会像因为被合作商限制、更多的免费及共享的特性大大降低使用的成本及扩展性。

网页技术:Web系统概述

Web系统概述——以第一章内容为基础 (1)本章内容概述 本章介绍了Web系统的基本构成以及相关概念和术语,如网页、主页、网站、超级链接、URL、Web客户机、Web服务器等,还涉及Web系统的基本原理,重点介绍了HTML技术、CSS技术、客户端脚本技术,还简单介绍Web页面的开发工具、开发模式、开发流程和运营环境等。通过本章的学习,让我们能够对Web系统的基本结构和工作原理有充分的理解和掌握,并学会网页和网站的设计以及相关开发工具的使用等。 (2)本章内容阐述 WWW(world wide web 万维网)由遍布在互联网中的web服务器和安装了web浏览器的计算机组成,它是一种基于超文本方式工作的信息系统。作为一个能够处理文字,图像,声音,视频等多媒体信息的综合系统,它提供了丰富的信息资源,这些信息资源以web页面的形式分别存放在各个web服务器上,用户可以通过浏览器选择并浏览所需的信息。 本章内容从对10个Web技术主题的讲解开始,使我们对整个Web系统都有了进一步完整的了解。下面,我们基于对本章内容的理解进行深层次的阐述。 首先,我们来回顾下十个Web技术主题:○1什么是Web○2Web 服务的内容○3Web网站○4Web服务内容的定位○5超级链接○6Web 客户机○7Web服务器○8Web代理和缓存技术○9Web系统基本原理○10Web的主要特点。 ○1什么是Web Web本意是蜘蛛网和网的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。Web由许多Web 站点构成,每个Web站点是一组资源的集合,这些资源位于 Internet/Intranet的一台或多台服务器上。

现在网站开发用什么语言比较多

网站建设_app开发_手机网站开发_[国互网] 现在网站开发用什么语言比较多 建设网站是一种潮流,可是建设网站一般用什么语言呢?介绍说:ASP,.NET,PHP,JSP是现在做网站最广泛的程序语言。那么一般适合做网站的那种语言比较合适呢。下面就由小编来给我们一一做解答。 关于网站开发的语言,我们先来比较下常见的四种语言吧: ASP:是微软所开发的一种后台脚本语言。开发快、易上手、效率高是ASP的优点,但是在安全隐患上,ASP存在的隐患是四种语言里最大的,其次平台的局限性也 限制了ASP的发展。 .NET:相当于ASP的升级版本,提供了一种新的编程模型结构,可以生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。但是也由于是微软的产品,那么平 台就有了限制。还有数据库的链接复杂。 PHP:是当下主流网站开发语言之一,PHP源码是完全公开的,不断的有新函数库 加入,以及不停地更新,使得PHP无论在UNIX或是WIN的平台都可以有更多新功能。它提供丰富的函数,使得在程序设计方面有着更好的资源。平台无关性以及安全就是PHP最大的优点。当然还有一些小小的缺点,但是作为应用最为广泛的一种后台语言,PHP的优点还是显于缺点。 JSP:JSP技术平台和服务器是互相独立,同PHP一样也是开放的源码。JSP出现至今已经是一门很成熟的程序语言,集成的数据源能力,易于维护,能有效的防止系 统崩溃等这些优点。无疑JSP是四种语言里最好最强大的,但是由于它的强大就决定 了其使用的技术性,所以不是一般企业网站做站语言的首选。 现在您了解了关于网站开发用什么语言了吗?上面是给大家介绍的常见的四种语言,如果你对上面的内容还有什么不清楚的,可以在线咨询。 网站建设_app开发_手机网站开发_[国互网]

网页设计大题答案归纳终稿

网页设计大题答案归纳 说明:请看最后一页 一、问答题与论述题 1.网页中一般包含哪些组成元素?[P31] 答:文字,图像,动画,视频,超链接等。(补充:导航栏,网站LOGO) 2.在设计页面时,身为网页设计者还要注意哪些事项?[P272] 1)主次分明,中心突出2)大小搭配,相互呼应 3)图文并茂,相得益彰4)适当留空,清晰易读 3.Dreamweaver MX2004 的工作区主要包括哪些内容?[P8] 答:标题栏、菜单栏、工具栏、文档窗口、属性面板、浮动面板、面板组等。 4.链接网页的“目标”位置有几种? 1)_blank (网页在新的窗口打开)2)_top(网页在顶层窗口打开) 3)_parent(网页在父窗口打开)4)_self(网页在原窗口打开) 5.选定表格的操作有几种方法?[P76] 1)用鼠标光标指向表格边框线,若出现红色外框线,单击鼠标左键即可选中整个表格。 2)将鼠标光标置于表格的边框线上,当光标变成双成箭头形状(此处请查看课本)时,单击可以选中整个表格 3)用鼠标单击标识表格宽度的数字(此处请查看课本),然后在弹出菜单中单击【选择表格】菜单项即可选中整个表格。 4)先将鼠标光标置于表格任一个单元格中,用鼠标单击状态栏中的

标签也可以选中整个表格。 6.如何用表格布局网页 1)打开站点,新建网页,以“biaoge.htm”为文件名保存。 2)按要求插入一个表格并调整表格结构。 3)充实网页页面内容,在表格中插入图片,输入文字。

4)调整表格以及单元格属性,美化页面。(表格属性的设置,如去除网格线、设置表格背景色等。使用不同的颜色区分各板块,设置单元格属性。) 7.如何设置框架集、框架的属性? 首先,可通过以下3种方式选择框架集: 1)在“文档”窗口的“设计”视图中单击框架集中两个框架之间的边框。 2)在“框架”面板(“窗口”>“框架”)中单击围绕框架集的边框。 3)在“属性”检查器(“窗口”>“属性”)中,单击右下角的展开箭头,查看所有框架集属性。 其次,根据实际要求设置各项属性值。 8.如何保存框架? 框架网页由框架页和(子)框架两部分组成。 1)单独保存框架页,单击“文件”,选择“保存框架页”/“文件”,或者选择“框架页另存为”。2)单独保存新建的(当前)框架(网页文件),单击“文件”,选择“保存框架”。 3)若要同时保存两者,单击“文件”,选择“保存全部” 提示:保存全部时,先保存框架页,然后逐个保存各个框架。保存对象由粗框线围起。 9.使用CSS样式表有什么好处?[P166] 1)提供便利的更新功能。更新CSS样式时,使用该样式的所有网页文档的格式都自动更新为新样式。2)具有更好的易用性与扩展性。CSS样式可以应用到很多页面中,从而使不同的页面获得一致的布局和外观。 3)使用外部样式表可以一次性作用于若干个文档,甚至整个站点。 10.如何链接一个CSS文件? 答:单击【CSS样式】面板中的【附加样式表】按钮,在打开的【链接外部样式表】对话框中选择外部CSS文件后(在【添加为】中选择其中的一个选项),单击【链接】按钮将其应用到当前网页中。11.CSS全称是什么?它的优点是什么?利用CSS如何对文字进行格式化?[P166]

网页制作常用软件与编程语言

网页制作常用软件与编程语言 ★【关于网络营销能力秀】:大学生网络营销能力秀(官网http:// https://www.doczj.com/doc/8915847061.html,)是网络营销教学实践平台,通过社交化学习、竞赛式实 践全面提升网络营销学习者的认知和实践应用能力。能力秀始于2009年, 每个学期举办一期,到2016年6月已举办15期,超过7000个院校的 20多万名大学生曾经是“秀友”。 网页设计设计的技术多种多样,根据网页表达的内容不同,应用的技术也不一样。 1)静态网页 所谓静态网页,是指网页内容不会随着浏览者的不同或浏览时间等的不同而变化,要改变网页的内容,必须由设计者在设计状态下改变。常用的静态网页设计脚本语言包括HTML、XML和CSS等。 2)超文本置标语言 超文本置标语言是网页设计的基础,是初学者必须学习的内容。虽然现在有很多所见即所得的网页编辑工具,但了解HTML的语法还是很有必要的,因为HTML可以更加精确地控制页面元素的布局,可以实现更多的功能。 3)HTML HTML是表示网页的一种规范,它通过标记符定义了网页元素的显示格式。在文本文件的基础上,增加了一系列描述文本格式、颜色等的标记符,再加上声音、动画甚至视频等,使网页可以形成更加精彩的画面。另外,HTML是一种发展迅速、功能强大的语言,它以简单精炼的语法和极强的通用性,使网页设计者能够充分发挥才能,将丰富多彩的信息以多样的形式展现在人们面前。

HTML的工作原理是当用户通过浏览器浏览网上信息时,服务器会将相关的HTML文件传送到浏览器上,浏览器按顺序读取HTML文档,然后解释HTML标记符,并显示为网页内容的相应格式。 4)可扩展置标语言 可扩展置标语言可以很方便地对结构化数据进行描述,它允许用户定义自己的标记符,提供了一个直接处理Web数据的通用方法,具有广阔的应用前景,对传统的网页设计将有较大的帮助。 5)XML XML是一种类似于HTML的、用来描述数据的语言,而HTML是关于如何显示数据的语言。在HTML中所有的标记符和文档结构都是预先定义好的,用户只能使用这些标准的HTML标记符,而XML允许用户定义自己的标记符和自己的文档结构,因此XML是可扩展的。另外,XML不是HTML的一种替代产品,将来网页设计的趋势将是由网站的开发者使用XML来描述网站所需的数据和网站结构,而用HTML格式化显示这些数据。 良好的数据存储格式、可扩展性、高度结构化、便于网络传输是XML的四个主要特点,这些特征使得XML在电子商务、出版、厂商等领域中发挥作用。 6)层叠样式表 层叠样式表技术是一种格式化网页的标准方法,它是HTML功能的扩展,使网页设计者能够以更有效的方式设计出更具有表现力的网页。它的主要特征如下: ●对文本的格式进行精确控制。 ●对文件中实现格式的自动更新。 ●对现有的标记格式进行重新定义。 ●自行将某些格式组合定义为新的样式。

网站建设基础知识及专业术语

网站建设基础知识及专业术语 在做网站的时候,许多客户要求我们介绍一下网站建设相关方面的知识。今天,为大家介绍一下一点基础知识。这样在制作网站时可以事半功倍,制作出令人满意的网站。首先将介绍网页基本知识、网页的基本构成元素、如何设计网页,接着介绍网页设计的常用软件Dreamweaver 、Flash和Photoshop,最后介绍动态网站技术,如网页标记语言HTML、网页脚本语言javascript和动态网页编程语言,为后面设计和创建完整的网站打下良好的基础。 一.网页基本知识 1.什么是Internet Internet是一个全球墟履计算机互联网骆,中文名称为"国际互联网"或"因特网",它集现代通信技术和现代计算机技术于一体,是计算机之间进行国际信息交流和实现资源共享的良好手段。Internet将各种各样的物理网骆联接起来,构成一个整体,而不论这些网骆类型的异同、规模的大小和地理位置的差异。Internet是全球最大的信息资源库,几乎包括了人们生活的方方面面,如教育、科研、商业、工业、出版、文化艺术、通信、广播电视、娱乐等。经过多年的发展,互联网已经在社会的各个方面为全人类提供便利。电子邮件、即时消息、视频会议、网骆日志、网上购物等已经成为越来越多人的一种生活方式。 2.什么是网站 网站是因特网上的一个信息集中点,可以通过域名进行访问。网站要存储在独立服务器或者服务器的虚拟主机上才能按受访问。网站是有独立域名和独立存放空间的内容集合,这些内容可能是网页,也可能是程序或其他文件。网站不一定要有很多网页,只要有独立域名和空间,哪怕只有一个页面也叫网站。 3.什么是Web服务器 Web服务器就是在Web站点上运行的使用程序,用户只有把设计好的网页放到Web服务器上才能被其他用户浏览。Web服务器主要负责处理浏览器的请求。当用户使用浏览器请求读取Web站点上的内容时,浏览器会建立一个Web链接,服务器接受链接,向浏览器发送所要求的文件内容,然后断开链接。 4.什么是静态网页 网页又称HTML文件,是一种可以在WWW上传输、能被浏览器认识和翻译成页面并显示出来的文件。静态网页是网站建设初期经常采用的一种形式。网站建设者把内容设计成静态网页,访问者只能被动地浏览网站建设者提供的网页内容,其特点如下: a、网页内容不会发生变化,除非网页设计者修改了网页的空容; b、不能实现和浏览网页的用户之间的交互,信息流向是单向的,即从服务器到浏览器。服务器不能根据用户的选择调整返回给用户的内容。静态网页的浏览过程。 5.什么是动态网页 所谓动态网页是指网页文件里包含了程序代码,通过后台数据库和Web服务器的信息交互,由后台数据库提供实时数据更新和数据查询服务。这种网页的后缀名称一般根据不同的程序设计语言不同,如常见的有.asp、.jsp、.php、.perl、.cgi等形式为后缀。动态网页能够根据不同时间和不同访问者而显示不同内容。如常见的BBS、留言板和购物系统通常用动态网页实现。动态网页的制作比较复杂,需要用到ASP、PHP、ISP和https://www.doczj.com/doc/8915847061.html,等专门的动态网页设计语言。动态网页浏览过程。 二.网页的基本构成元素 1.网站Logo 网站Logo也称为网站标志,网站标志是一个站点的象征,也是一个站点是否正规的标志之一。网站的标志应体现该网站的特色、内容及其内在的文化内涵和理念。成功的网站标志有着独特的形象标识,在网站的推广和宣传中将起到事半功倍的效果。网站标志一般放在

相关主题
文本预览
相关文档 最新文档