半点优化网 http://www.bdxc.net/
当前位置首页 > 网站建设> 正文

一段程序代码写完以后是如何转换成有操作界面的软件的?

2022-05-27 06:14:33 暂无评论 159 网站建设 面的   转换   以后

我是从事安卓APP开发的,这里就用安卓举例说明下我们的代码是怎么变成可视化界面的。

安卓编程代码

安卓早期采用java做为第一编程语言,现在是主推kotlin,还可以用flutter或者其他混合框架开发,这里不做多介绍。

上图是简单的控件展示,基本涵盖主要的交互功能。文字的大小颜色包括控件的间距都是可以通过代码调节。

图中的控件是谷歌编写好的,开发者可以直接使用,如果这些控件满足不了需求,你还可以自定义控件通过canvas实现。

通过源码可以知道,其实谷歌提供的这些控件也都是自定义控件。

那么java层面的代码是不能转换成可视化的界面的,那安卓是怎么实现的呢?

其实是通过调用底层(C语言)接口实现的。

底层(C语言)接口

我们自定义控件使用的就是最上面的canvas.java

类实现的,最终会调用到底层的libskia.so

文件,所以java层面的canvas实际上是封装的native层的方法。

可以这样理解,java层只是描述界面,具体实现由native层实现。

那么native层是怎么实现的呢?安卓底层使用C语言编写,里面有个SurfaceFlinger类,这个类获取界面宽,高,点密度,颜色分量的大小等信息后,交给硬件帧缓冲区去。

硬件帧缓冲区属于硬件驱动范畴了,超出了本人知识结界,这里就不BB了。

总结不用设备有不同的图形驱动,编码只是实现界面的形状大小等描述,最终都会交给图形驱动层去渲染。编码层是为了更好的方便开发者。

关于程序代码是如何转换成界面的,我们需要明白一点原理。

最早期的系统,还没有图形界面这个概念,电脑上的各种操作,都是通过命令行来完成的,类似于现在系统中的cmd窗口,所有的命令都在这里面完成。

随着后续的发展,图形化操作系统诞生。传统的字符界面操作复杂,非专业的用户难以理解和操作。在图形用户界面中,用户不需要学习复杂的代码,而是可以通过其中的图形对象进行操作,电子产品收到操作指令后,对用户进行结果的反馈,反馈的结果即用户接收到的信息也是图形对象,因此用户无须具备专业知识和操作技能就能够实现操作。作为一种界面显示格式,对于非专业用户来说,GUI设计极大地方便了其操作。

这儿引入了一种叫做GUI编程的概念,图形用户界面系统通常是指由相应硬件平台和操作系统支持的显示模型,窗口模型和用户模型,以及由这三个模型的应用程序接口组成的应用程序接口API(Application Program Interface),要想创建一个图形化的界面,就需要我们使用代码去调用系统提供的API,通过命令去创建一个窗口,一个按钮等等。

我们使用代码生成窗口,在窗口里面再生成其他的组件,实际上都是调用了系统给我们提供的命令。

现在编程语言很多,大部分的编程语言都有封装的命令,供我们调用,然后再由系统,统一的生成我们需要的界面。

猜你喜欢