低功耗(BLE)蓝牙模块开发之路

毕业菜鸟刚入职,在网上找了大大小小的安卓蓝牙BLE开源项目十几个了。都没有自己喜欢的,现在的计划是自己动手做一个。并且每天将自己学会的东西、认为项目中很重要的东西记录下来。(下面的项目都能运行,但是别人写的都是后台demo。美工和功能性不支持拿来即用,也怪不了别人。我自己加把劲弄一个出来吧)

低功耗(BLE)蓝牙模块开发之路_第1张图片

  • 前三天的开发全是去Pilipli找视频资料、百度一些开源项目-努力让他们运行-测试手机和电脑能不能通过软件联通(这之间的蓝牙通讯称为经典蓝牙)。
    【因为发现自己做的蓝牙芯片叫JDY 10M,是BLE低功耗蓝牙,几天的努力化为泡沫】

2020/6/11日自己下定决心找一篇写的好一点的教程狠狠的阅读。十遍不行就二十遍!

奉上我拜读的文章: Android开发蓝牙与ble设备的通讯.

#这篇文章我也下载了他的源码来解读,后台功能很职场,需要有一些开发基本思维。(只是涉及到作者将功能模块分成许多文件,目的是解耦合和多复用性)

这里我不讲怎么去做。只是记录下自己每天学习的哪些关键点。项目完成再开贴去讲从头到尾做一个ble蓝牙安卓调试器


2020/6/12:

  • 改变自己一贯的白嫖、能用就Ok的思想,决定死抓一篇文章,分析他用了哪些函数(而不是关注函数内部是怎么运行的)
  • 读懂流程之后分析项目是怎样运行的。重点分析了安卓的回调机制。
  • 分析hander在安卓中的作用。

2020/6/13:

  • 昨天将app的功能基本实现了数据收发功能。死磕了两天的安卓回调。慢慢的心里面对回调机制有一定的了解,但是感觉自己还是不能分析出回调在源码中的运用。先跳过这个
  • 晚上2点多还在改导航栏。哎,自己太笨了,一直没把它和原来的项目结合着弄出来。心里别提多难过了、加油吧。

待记录问题:

  • 蓝牙通讯数据包-进制与数据类型关系/数据包的解析/
  • char数组/String/怎么输出的
  • 单片机给上位机发送的数据通过CRC8循环校验的,我在APP里怎么去验证数据是否正确呢?
    备注:
    我知道可以通过把原来的数据部分截取出来进行CRC算法得到的值和原来的尾部的校验值比较,来实现验证。但是我觉得接收数据没必要这么复杂,
    我在网上找的CRC8资料可以:(数据+校验码)%多项式特征值==0。
    如果余为零的话就证明数据无误。
  • APP界面跳转的时候以下两句一定要在OnCreate()前面。
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

总结: byte 8位,int 32位,char 16位,short 16位 都是数,只是长度不同,可以相互转换
2进制,8进制,16进制,只是一个数输出的进制方法,数值还是那个数
byte,int,char等的都是数据类型,进制只是数的表现形式

一个BYTE占8位。而16进制由四个二进制表示。所以说呀、一个BYTE能表示两位16进制数据。例如:byte[0]=‘2’ -》 0000 0010

你可能感兴趣的:(开发能力,编程准备工作)