Android实战SDK对接机智云平台(基础篇)学习笔记

1.教学视频介绍

项目介绍为转载 项目开发者博客地址
后半部分为视频教学学习笔记
Android实战SDK对接机智云平台(基础篇)

在这里插入图片描述

      物联网时代已经来临,借助第三方平台可以迅速提高我们的开发效率,而本门课程是选择机智云平台,0代码开始敲起Android框架,带你走一遍下APP开发的整个流程;适合在校大学生和正在找工作的求职者,也适合电子爱好发烧友。
      此套视频是基于开源框架 XHOpenSouresGizAndroid来完成的,此框架也是基于机智云开源框架优化的。此套视频分为上下两部分

2.教程视频内容

①、实现自动匿名登录,没有各种第三方登录选择,无须手动点击“跳过”进去设备界面。
②、实现一键配网,去掉softAP模式配网,无须选择各种芯片,固定为乐鑫的esp8266。
③、一旦检测到了局域网的新设备,实现自动绑定设备。
④、工程不采用设计框架,解耦性强,依赖的架包是’appcompat-v7:26.0.0-alpha1’版本,全新的控件,全新的MD风格。
⑤、开放接口给开发者,实现换颜色的功能。
⑥、开放修改设备的PK和PS接口、开发者的APP的Appid给开发者修改。
⑦、支持多设备添加在同一个APP,即一个APP控制多个设备,详情见Demo代码。

3.课程目录

  • 第1讲 课程大纲
  • 第2讲 下载并导入Android的SDK到工程中
  • 第3讲 SDK初始化的实现
  • 第4讲 Android的动态授权适配
  • 第5讲 引用第三方UI库,提高开发效率
  • 第6讲 配网界面的UI实现(上)
  • 第7讲 配网界面的UI实现(下)
  • 第8讲 保存SDK回调的token到本地
  • 第9讲 设备配网界面的代码实现
  • 第10讲 主界面展示设备列表(上)
  • 第11讲 主界面展示设备列表(中)
  • 第12讲 主界面展示设备列表(下)
  • 第13讲 设备列表的自动绑定设备
  • 第14讲 设备列表的重命名
  • 第15讲 设备删除解绑操作
  • 第16讲 设备控制界面的跳转逻辑实现
  • 第17讲 设备控制界面的父类实现(上)
  • 第18讲 设备控制界面的父类实现(下)
  • 第19讲 控制界面的UI搭建
  • 第20讲 控制界面的UI逻辑分析(上)
  • 第21讲 控制界面的UI逻辑分析(下)
  • 第22讲 控制界面的数据状态同步(上)
  • 第23讲 控制界面的数据状态同步(下)
  • 第24讲 控制界面的下发控制逻辑实现
  • 第25讲 网络广播判断的触发未监听的完善
  • 第26讲 断网状态依然显示在线的完善
  • 第27讲 课程总结

4.课程源码下载地址

github

5.视频教程学习笔记

第1讲 课程大纲

  • 只需要Java基础即可开始课程
  • 进阶功能视频未录制
  • 进阶功能包括
    • app多设备添加
    • 多设备控制
    • 设备列表中控制设备
    • 二维码扫描添加设备

第2讲 下载并导入Android的SDK到工程中

  • 搭建Android studio环境
  • 下载最新的机智云 Android SDK
  • 支持三个平台的SDK androidiosapiCloud
  • apiCloud是一个混合应用开发平台
  • AS工程可以将test文件夹都删除,美观
  • 将功能包.jar引入到libs目录下
  • 选中.jar包,右键,点击Add As Library可以将其全部导入库中

第3讲 SDK初始化的实现

  • 配置AndroidMainfest.xml,添加权限
  • 先要初始化SDK,其他接口才能使用
  • 右键代码中标红的代码,alt+enter可以快速添加类
  • alt+鼠标左键,可以快速进入函数内部
  • 先设置机智云SDK的时间监听器mListener,配置app信息和选项,然后就可以启动机智云SDK
  • log.e() 可以配置tag参数,方便日志筛选
  • .so文件错误,将错误文件放在资源文件目录下,csdn半颗心脏博主的笔记里有解决方法

第4讲 Android的动态授权适配

  • 谷歌开发者中国官网

  • splash闪屏界面,在闪屏界面进行android6.0以上,权限动态授权

  • Toast.Length_Short参数,减少弹窗时间,+.show()

  • Activity使用以后,之后几乎不使用的话,建议用.finish()摧毁

  • 异步消息处理线程 Handler 、 Looper 、Message 三者的关系

  • 要学!

Handler 、 Looper 、Message有啥关系?其实Looper负责的就是创建一个MessageQueue,然后进入一个无限循环体不断从该MessageQueue中读取消息,而消息的创建者就是一个或多个Handler 。
Looper主要作用:
1、 与当前线程绑定,保证一个线程只会有一个Looper实例,同时一个Looper实例也只有一个MessageQueue。
2、 loop()方法,不断从MessageQueue中去取消息,交给消息的target属性的dispatchMessage去处理。
Handler主要作用:
1、首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象;因为Looper.prepare()在一个线程中只能调用一次,所以MessageQueue在一个线程中只会存在一个。
2、Looper.loop()会让当前线程进入一个无限循环,不端从MessageQueue的实例中读取消息,然后回调msg.target.dispatchMessage(msg)方法。
3、Handler的构造方法,会首先得到当前线程中保存的Looper实例,进而与Looper实例中的MessageQueue想关联。
4、Handler的sendMessage方法,会给msg的target赋值为handler自身,然后加入MessageQueue中。
5、在构造Handler实例时,我们会重写handleMessage方法,也就是msg.target.dispatchMessage(msg)最终调用的方法。

在这里插入图片描述

第5讲 引用第三方UI库,提高开发效率

  • 使用QMUI第三方UI库
  • build.gradle,使用complie+"************"可以引入所需要的库

第6讲 配网界面的UI实现(上)

  • padding控制控件边距
  • corners圆角
  • stroke边框
  • solid 内部填充
  • 通过background参数可以引入xml控件
  • alt+D,快速复制上一行的代码

第7讲 配网界面的UI实现(下)

  • topbar(标题导航栏)使用第三方的UI
  • selector
  • 密码是否可见

第8讲 保存SDK回调的token到本地

  • 使用 SharedPreference储存token,保存到本地
  • Utils封装包
  • SharePreUtils类封装参数
  • 匿名登录

第9讲 设备配网界面的代码实现

  • 控件对象都定义为私有
  • 获取WiFi,可以使用封装类
  • 若没有wifi,则不能进行下一步
  • ProgressDialog进度弹窗
  • 弹窗外外不可点击
  • 兼容旧版本

第10讲 主界面展示设备列表(上)

  • List学习
  • 待学!
  • 把配网的设备自动绑定给用户

第11讲 主界面展示设备(下)

  • UI布局学习
  • 待学!
  • LayoutInflater类,用于布局填充
  • Adapter类

第12讲 下拉刷新

  • 使用google的SwipeRefreshLayout布局
  • 刷新:postDelay run() 异步操作
  • 通过查看设备列表是否有变化,来通知Adapter刷新

第13讲 设备列表的自动绑定设备

  • bindDeviceByQRCode()使用二维码绑定
  • bindRemotesdDevice()绑定远程设备

第14讲 设备列表的重命名

  • setOnItemLongClickListener()监听列表里的长按动作
  • showRenameDialog()在弹窗里面修改设备名,弹窗使用的是QMUI类

第15讲 设备删除解绑操作

  • 设备分为本地设备与远程设备

第16讲 设备控制界面的跳转逻辑实现

  • 订阅设备,才能从云端同步设备
  • 设备控制界面父类,抽象类
  • activity之间传递参数使用putExtrathis.getIntent().getParcelableExtra()

第17讲 设备控制界面的父类实现(上)

  • 进入控制界面,立即同步云端数据

第18讲 设备控制界面的父类实现(下)

  • 订阅和取消订阅云端消息
  • 将当前页面finish(),可以回到上一个界面

第19讲 控制界面的UI搭建

  • preview可以实时预览
  • ScollView布局
  • 分割线 view布局
  • Spanner下拉选项
  • <!--注释--> 为xml的注释方式
  • SeekBar 滑动选值

第20讲 控制界面的UI逻辑分析(上)

  • java获取layout布局id的小工具 网址

第21讲 控制界面的UI逻辑分析(下)

  • 文件帧,枚举,数组类型添加到Spanner中
  • 可以设置SeekBar的最大值
  • 设置点击事件

第22讲 控制界面的数据状态同步(上)

  • 拖动条事件触发是手指离开屏幕触发的
  • 使用Vysor同步手机画面到电脑调试

第23讲 控制界面的数据状态同步(下)

  • 字符串变量名,使用finial定义常量
  • 下发控制使用封装类

第24讲 控制界面的下发控制逻辑实现

  • bug1没有网络是做出判断
  • 内部类,获取手机网络改变的状态截取

第25讲 网络广播判断的触发未监听的完善

  • 内部类,获取手机网络改变的状态截取

第26讲 断网状态依然显示在线的完善

  • 下拉刷新判断手机网络状态

第27讲 课程总结

  • apk打包流程
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值