Products
GG网络技术分享 2025-03-18 16:10 4
我是从事安卓APP开发的,这里就用安卓举例说明下我们的代码是怎么变成可视化界面的。
安卓早期采用java做为第一编程语言,现在是主推kotlin,还可以用flutter或者其他混合框架开发,这里不做多介绍。
上图是简单的控件展示,基本涵盖主要的交互功能。文字的大小颜色包括控件的间距都是可以通过代码调节。
图中的控件是谷歌编写好的,开发者可以直接使用,如果这些控件满足不了需求,你还可以自定义控件通过canvas实现。
通过源码可以知道,其实谷歌提供的这些控件也都是自定义控件。
那么java层面的代码是不能转换成可视化的界面的,那安卓是怎么实现的呢?
其实是通过调用底层(C语言)接口实现的。
我们自定义控件使用的就是最上面的
canvas.java
类实现的,最终会调用到底层的libskia.so
文件,所以java层面的canvas实际上是封装的native层的方法。可以这样理解,java层只是描述界面,具体实现由native层实现。
那么native层是怎么实现的呢?安卓底层使用C语言编写,里面有个SurfaceFlinger类,这个类获取界面宽,高,点密度,颜色分量的大小等信息后,交给硬件帧缓冲区去。
硬件帧缓冲区属于硬件驱动范畴了,超出了本人知识结界,这里就不BB了。
不用设备有不同的图形驱动,编码只是实现界面的形状大小等描述,最终都会交给图形驱动层去渲染。编码层是为了更好的方便开发者。
#####关于程序代码是如何转换成界面的,我们需要明白一点原理。
最早期的系统,还没有图形界面这个概念,电脑上的各种操作,都是通过命令行来完成的,类似于现在系统中的cmd窗口,所有的命令都在这里面完成。
随着后续的发展,图形化操作系统诞生。传统的字符界面操作复杂,非专业的用户难以理解和操作。在图形用户界面中,用户不需要学习复杂的代码,而是可以通过其中的图形对象进行操作,电子产品收到操作指令后,对用户进行结果的反馈,反馈的结果即用户接收到的信息也是图形对象,因此用户无须具备专业知识和操作技能就能够实现操作。作为一种界面显示格式,对于非专业用户来说,GUI设计极大地方便了其操作。
这儿引入了一种叫做GUI编程的概念,图形用户界面系统通常是指由相应硬件平台和操作系统支持的显示模型,窗口模型和用户模型,以及由这三个模型的应用程序接口组成的应用程序接口API(Application Program Interface),要想创建一个图形化的界面,就需要我们使用代码去调用系统提供的API,通过命令去创建一个窗口,一个按钮等等。
我们使用代码生成窗口,在窗口里面再生成其他的组件,实际上都是调用了系统给我们提供的命令。
现在编程语言很多,大部分的编程语言都有封装的命令,供我们调用,然后再由系统,统一的生成我们需要的界面。
你好,根据你的问题。我猜测你应该不是做软件开发的吧。
好了,说了这些其实只是一个大概。这里面涉及到的知识点很多。写程序也非常考验人的耐心和转换思维。所以,才被公认为收入高,但同时也是青春饭了。因为,确实很费脑,所以大哥您想入行的话,要仔细考虑清楚哦!
touch
1.c (Linux系统下创建文件)
1.c
编辑文件,用的是vim,也可以使用gedit。(下载vim:sudo apt-get install vim)第四步:用gcc编译器编译
1.c
文件代码,生成.exe
后缀的可执行文件(gcc 的下载:sudo apt-get install gcc)gcc -o 1
1.c
第五步:输入./1,输出 “hello world!!”
现今的有界面的软件可以分为以下几类:
这类因为有android和iphone系统的区别,所以开发也有所区别。
安卓手机:你需要下载android SDK和代码编辑器(eclipse,vs,android studio)。然后编辑代码,完成运行测试,你就可以在安卓模拟器中看到你编写的界面了。
苹果手机:你首先需要一台苹果电脑(至少要能运行苹果操作系统的电脑),然后在下载开发工具Xcode。最后编写,运行测试。
PC端的话,如果不考虑在多平台做适配(window,linux,mac os)的话,你完全可以找一种带有桌面GUI的软件开发。以window为例,你可以直接用visual studio编写一个带GUI的桌面软件,然后直接点击运行,你就可以看到界面了,当然如果你选择是python,你可能需要一些其他GUI库的支持。
这类只要有一台WEB服务器,就能使你用文本文件编辑的代码直接显示在浏览器上。当然如果你还有脚本功能(后端服务),你就可以做出像网站后台管理功能的系统出来。
一般都会有基础框架,底层api,在这些基础上进行开发代码,然后可以利用一些开发工具来辅助开发、调试、运行
#####步骤如下:
原型设计:借助原型交互设计工具完成,例如:Mockplus(摹客)、Axure RP
程序编码:例如:Eclipse、Intellij IDEA、微软的Visual Studio、VS code等
测试:CodeSonar、TestDirector
打包:单机版打包成执行文件.exe,网络版生成Web的发布文件
部署:IIS、Tomcat、Nginx(负载均衡)
第一 有操作界面那个是需要用原型设计的一个软件来做的,用于软件开发团队,体验软件开发的各种功能!程序只是其中一步。
第二 程序写完后需要需要用封装的软件,把它打包为一个软件,你可以下载体验。你可以和你的同行,开发团队详细沟通!
1.浏览器访问的应用
展示成界面形式一般是通过编写html+css代码实现界面展示,其他的编程语言编写后也会输出html语言,浏览器会进行解析,完成元素和样式的展示
2.电脑或者手机安装的应用
这种有专门的组件库,windows上的微软sdk,安卓的的谷歌sdk,都提供界面布局的控件
#####首先明确一下概念,所谓操作界面,就是用户接口,也就是UI
操作系统的基础UI就是shell
单片机系统的UI是各种按钮
图形用户界面就叫做GUI
多媒体交互接口有力反馈、语音、手势等等
回到问题本身,就很好理解了。一段代码通过UI库就可以与用户交互了
Demand feedback