智能手机应用开发(赵涛老师)

智能手机应用开发(赵涛老师)

第一次课(2021-09-25)

一、参考资料

node.js开发指南.pdf

参考视频:前端开发技术图谱(https://developer.aliyun.com/graph/frontend?spm=a2c6h.21110250.J_5703890090.6.4184760fku9YI)

二、绪论

  • 互联网大致分为三部分
    • 设备端(传感层、单片机、通讯方法)(嵌入式系统)
    • 云平台端(汇聚接入功能)
      • ecs \ services \ 手机端
    • 应用端(小程序)
  • 网站(服务器端)
  • “前端通吃”
    • html + css + JavaScript
    • node.js ==> 运行js的框架
      • 框架运行起来就是服务器
    • js开发单片机
  • 混合开发
    • js调用java代码

三、前端知识框架

html / css / JavaScript(HTML5 APP应用开发教程)

  • 手机开发
    • h5 + mui => 手机APP
    • vue => uni-app => 多端适配(Vue.js前端开发技术)
  • GitHub / k8s / docker / webpack
  • 互联网
    • node.js / express / mongodb => 自己做后端(node.js开发指南.pdf)
    • serverless => 云后端
      • k8s + docker 即可部署

四、网络概述

计算机网络由资源子网与通信子网组成
  • image-20211020022518020
  • Router(交换设备 / 路由器)
  • “互联网是局域网的网络”
  • 底层(物理层):实现物理上信息传输
    • 包括架空明线、电缆、光纤、无线信道等
    • 建立在串口通信上的modbus-tcp协议(工业常用,串口而非网口)
    • 网络协议对物理层没有约束
网络协议层级
  • 表示层
    • HTTP......
  • 传输层
    • TCP、UDP
  • 网络层
    • ICMP => IP <= IGMP
      • 目前以IP单位发送数据
  • 链路层
    • ARP <=> MAC <=> RARP
  • 物理层
    • 硬件
链路层详解
  • 链路层就是IP包
  • 数据信道
  • 目的:正确传输二进制
  • 功能
    • 链路管理
    • 帧的装配分解与同步
    • 流量控制与顺序控制
    • 差错控制
  • 例如:网卡网桥等
  • 采用冲突检测/载波侦听(CSMA/CD)
  • 发送数据需要先侦听信道,若空闲即可传输,反之按一定算法等待一段时间后再试;
    在发送过程中进行冲突检测,一旦有冲突立即停止发送并后续重新发送
  • 以太网帧的格式
    • 前导 + 同步 + 目标地址 + 源地址 + 类型 + 控制操作码 + 控制码参数 + 帧校验
TCP数据包结构
  • 两个设备通讯是端口和端口之间进行通讯
HTTP协议
  • http协议在服务器和客户端之间传送信息,用于从web服务器传输网页到本地浏览器
  • 浏览器作为HTTP客户端通过URL向HTTP服务端发送请求,web服务器根据请求做出反应得到响应并向客户端发送响应信息
  • 默认端口号为80,使用统一资源标识符(URL)传输HTML网页、图档和相关文件,URL用来识别网络上的资源
  • 格式:[ 协议: // 域名 (或IP地址) [:端口号] / 文件名 ]
  • image-20211020030349989

五、HTML

知识介绍

  • HTML = HyperText Markup Languag

  • 超文本描述语言

  • 双标签结构

  • 几个概念:标签、元素(标记的内容)、属性、事件

  • html确定网页的结构,即用标签表示网页上有什么元素

  • 按字母顺序为http://www.w3school.com.cn/tags/index.asp

  • 按功能为http://www.w3school.com.cn/tags/html_ref_byfunc.asp

  • http://www.w3school.com.cn/

  • http://www.runoob.com/

  • HTML5新特性与优势

    image-20211020032543647

  • 为了加强说明标签,增加了标签的属性。格式为属性= ”数值”. 不同的标签有不同的属性,公有的属性如id/class/style;多个属性 值用:;分开,多个属性空格分开

  • 全局属性参见http://www.w3school.com.cn/tags/html_ref_standardattributes.asp

  • 事件属性http://www.w3school.com.cn/tags/html_ref_eventattributes.asp

  • 用一句话概述form/action/submit/name/method的关系

后续操作

六、课后指导

第二次课(2021-10-10)

一、CSS

知识介绍

  • CSS = Cascading Style Sheet

  • 层叠样式表

  • 渲染层

  • CSS需要关注两个问题:01 样式定义及应用 02 布局

  • 选择器

  • div + css 布局

    • 盒子模型

后续操作

二、课后指导

第三次课(2021-10-16)

一、JavaScript

二、课后指导

01 补充一些模块化和异步的学习

  • 尚硅谷Web前端ES6教程,涵盖ES6-ES11
    https://www.bilibili.com/video/BV1uK411H7on?from=search&seid=1577764483559274634

  • ECMAScript 6简介
    https://www.cnblogs.com/xiugeng/p/9603471.html#_label7

  • JS语法 ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性
    https://zhuanlan.zhihu.com/p/354901519

  • JavaScript的主要用途是与用户互动以及操作DOM,只能是单线程,否则会带来很复杂的同步问题。

  • 为了利用多核CPU的计算能力,HTML5提出的Web Worker允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制且不得操作DOM,并没有改变JavaScript单线程的本质。

  • 单线程的所有任务排队顺序执行,于是任务分成两种,

    • 一种是同步任务,在主线程上排队执行形成一个执行栈,执行栈中所有任务执行完毕就会读取执行任务队列。

    • 另一种是异步任务不进入主线程而进入任务队列,异步任务执行完了放置一个事件通知主线程该任务才能进入主线程执行。任务队列是一个事件的队列,除了IO事件还有用户事件和定时器。

      如setTimeout(function(){console.log(1);}, 0);console.log(2);会显示2/1,因为只有在执行完第二行以后才会去执行"任务队列"中的回调函数。

02 知识补充

第四次课(2021-10-20)

一、手机开发——基于Hbuilder

二、手机开发——基于HTML5+

三、手机开发——基于mui

四、手机开发——基于native.js

五、手机开发——基于html5+sdk

六、手机开发——应用实例

01 手机抄表

02 摔倒检测

七、课后指导

posted @ 2021-12-22 17:08  草系编程苦手  阅读(651)  评论(0编辑  收藏  举报