自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hynson.Hou 软件开发之旅

喜欢学习研究技术,不断保持一颗好奇心。

原创 Android~ViewBinding使用学习

ViewBinding替换findviewbyid,1.有啥优点?比DataBinding轻量和快速,DataBinding中layout文件如果实现双向绑定会改变原有布局文件,业务和视图关联度高。更安全,kotlin扩展Synthetics也可直接通过id访问控件,但是全局的会产生空指针错误。编译安全,findviewbyid和ButterKnife会存在类型转换问题,这一错误出现在运...

2020-05-05 22:42:47 4779

原创 Android~adb卸载系统预装应用(亲测有效)

本文介绍一种安卓卸载系统应用的方法,如果你和我一样喜欢瞎折腾,有那么一点强迫症,希望对你有用。作为一名安卓开发者,大学以前总喜欢刷不同刷机包(ROM)、爱装不同的Launcher桌面体验,不过工作了没以前爱折腾了。安卓提供的adb工具不用多介绍,网上都有很多教程。

2019-09-24 15:06:18 43536 2

原创 Android~Anroid Studio中使用NDK编译调用.so

什么是NDK?NDK就是安卓中实现JNI的一种方式,相信学习过java的小伙伴JNI并不陌生。之前使用NDK是在eclipse搭建的安卓开发环境中,现在公司项目需要又回来好好梳理一下NDK。同时网上搜罗一下,附上觉得好的文章。网上的教程供参考,但是实际还是要以操作为准,如遇到问题则需对比教程和操作提示一步一步完成!1、下载安装相关的插件使用AndroidStudio,到Android SDK选...

2019-08-01 23:34:18 727

原创 esp8266~lwip突破MTU最大1500限制

1. 背景  在去年的项目开发中,遗留了一个比较难解决的问题,需要udp传图,当时的解决办法是将图片在应用层切片依次传输到wifi芯片,而且还用的是定长的明文传输。  一直在想有什么好办法可以优化,首先想到寻找比较高效的编码算法做简单的编码也基本可以接收了,但经过各种查找还是base64用得最多最普遍,经过base64编码后的图片长度大概增加了原来长度的1/3,1200+1200/3 = 16...

2019-05-24 16:37:56 2188

原创 理清计算机汉字编码问题(上)

ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII码表分为两部分:控制字符和可显示字符。这个不用多解释,相信学过C语言或者计算机电子信息相关专业的都涉及,更多请参考ASCII码对照表。

2019-05-05 09:38:10 1677

原创 WiFi配网~智能家居配网解决方案

1. 什么是配网?2. 如何解决配网?3. 方案一,4. 方案二5. 方案三

2019-01-19 18:41:13 3567 6

原创 STM32~配置时钟频率[一文带你解决STM32主频配置]

一. 时钟树二. 使用外部晶振作为时钟源三. 内部时钟源为时钟源

2019-01-12 11:22:19 9334 1

原创 esp8266/32~资源帖[持续更新]

整理了esp8266/32,一路学习中遇到的问题和官方的资料。

2019-01-01 00:30:21 2425

原创 esp8266~使用逻辑分析仪调试分析软件SPI

本文介绍如何使用USB逻辑分析仪调试SPI协议

2018-12-29 16:35:53 1408

原创 esp8266~获取mpu6050六轴传感器数据 [可在此基础上做wifi平衡小车]

1 . 前言上周查看esp8266 github上面有没有更新外设SPI驱动,可惜还是没有,但是看到了之前一直找的hw_timer硬件定时器,乐鑫更新维护的速度还行吧。于是又顺便看了下I2C的demo,居然发现新大陆,因为当天技术交流群里有人讨论mpu6050六轴传感器制作平衡车,好奇就买了个传感器来坐下实验顺便再熟悉下I2C。刚开始把demo编译烧写进去之后跑飞了,如下提示:出现上面的错误...

2018-12-29 14:48:20 3475 7

原创 Dart Flutter 1.0 发布~入门初体验Android Studio开发

本文介绍如何搭建Flutter开发环境,这是Dart入门的第一步。https://github.com/flutterhttps://flutter.io/https://flutterchina.club/setup-windows/https://zhuanlan.zhihu.com/flutterhttps://flutter.io/docs如果翻墙了之后插件还是安装失败,需要...

2018-12-01 23:43:52 3048

原创 C语言画直线~Bresenham方法

前言由于项目上遇到了棘手的问题,给定坐标需要实现C绘制直线的驱动函数,绘制直线一般都是显示屏的底层函数,本想着找个显示屏的驱动看下drawline源码,但仔细想一想会不会底层用的是汇编尼,于是便放弃了这种想法。通过百度学习到这是计算机图形学方面的,寻找到了解决办法就是自己用C实现,网上有三种方法:数值微分DDA(Digital Differential Analyzer)算法中点画线算法...

2018-11-28 09:07:01 3233

原创 esp8266~SPI使用

前言最近项目上遇到困难,esp8266的SPI用起来有点晕,这里先记录下来,后面再更新。一. 官网硬件驱动的代码使用demo:#include "gpio.h"#include "spi_register.h"#include "spi_interface.h"void

2018-11-24 11:08:42 6629

原创 esp32~外接摄像头OV7255

网上说接线尽可能短。

2018-10-28 23:09:07 8400 17

原创 esp32~Sniffer模式的人流量检测

项目参考: ESP32 应用实践:基于混杂接收模式的人流量检测本想着移植到esp8266,可是它不支持sniffer和sta共存,实际写代码确认了wifi连上路由打开sniffer后,发现它掉线了,查询官方api文档也验证了这一点。有点可惜,本想写篇教程的,失败!方案不可行,测试了上面给的demo挺稳的,大家看一下顺便可以熟悉下IDF编程风格。...

2018-10-09 15:24:21 2328 2

原创 esp8266~GPIO中断和硬件定时器的正确使用

最近项目需要检测IO口下降沿信号和定时计数,于是就用到了GPIO中断和硬件定时器。有点可惜,github上面RTOS版sdk没有硬件定时器的使用方法,能够参考的只有1.5的sdk,然而我不会移植,只能班门弄斧。参考网上给的demo,实际在项目中用了发现网上给的用法很坑,有一些点需要注意,总结分享给大家,以下用法基于sdk 1.5。1、gpio硬件中断使用2、硬件定时器...

2018-10-08 19:29:53 5497

原创 esp8266~入坑sdk 3.0 IDF框架和linux交叉编译环境搭建

一、交叉编译环境搭建步骤1、安装virtualbox、ubuntu虚拟机共享windows文件夹,注!virtualbox最好装在C盘,不然安装虚拟工具经常会失败。 2、新建共享目录,挂载共享目录到虚拟机中 sudo mount -t vboxsf share /mnt/Share/3、下载 xtensa-lx106-elf 交叉编译工具,这里根据操作系统选择Window...

2018-09-15 16:06:37 6037

原创 esp8266~makefile学习

1、makefile使用规则目标、指令、依赖 Makefile 是和 make 命令一起配合使用的. makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂....

2018-09-04 22:32:24 1467

原创 esp8266~启动模式和烧写错误

在使用8266时遇到了如下错误: magic error 烧写工具配置出错了,2Mb = 16Mbit 启动日志分析 boot(1,6) 模式flash 代码ESP8266有三种BOOT模式,由MTDO(GPIO15),GPIO0,GPIO2决定MTDO GPIO0 GPIO2 Mode Description L L H UART ...

2018-08-02 09:12:11 10666

原创 程序是运行在flash中还是RAM中?

前言最近在做项目中遇到一些疑虑,包括OTA升级时会不会阻塞到其他工作线程、select原理和正确用法、如何快速正确理解产品到软件框架构建、嵌入式应用的代码优化方法。本篇文章主要针对第一个问题,请教外援,他解释:正常情况下代码是在OTA1中运行的,当OTA时程序下载固件到OTA2成功后从flash中OTA2对应地址启动。当时觉得不对劲,程序怎么会在flash中运行?查了下,对于x86的pc机和单...

2018-03-17 22:37:05 4833

原创 Linux学习~部署Apollo服务器(mqtt)

linux部署Apollo服务器 实验环境:jdk1.8、Ubutun16、apache apollo1.7.1 ActiveMQ Apollo is a faster, more reliable, easier to maintain broker built from the foundations of the original ActiveMQ.

2017-11-19 21:24:45 6706 3

原创 Kotlin~基本语法

今年谷歌IO大会,谷歌宣布Kotlin作为安卓开发一级语言。Kotlin 1.0版发布是在2016年2月,首次出现是在2011年。Kotlin本身有很多特性优点(ITeye、InfoQ),网上评价Android世界的Swift(InfoQ)。官网给出了4个为什么使用Kotlin的理由: 简明易表现;更安全;工具友好化; 兼容jvm、Android、浏览器,具备和其他语言的互操作性;

2017-05-28 23:41:49 2014

翻译 Kotlin: Java 6 废土中的一线希望

去年,Java8 发布了,增加了很多新特性和提升,比如lambda,stream。Java 9 的标准也已经在制定了。但是超过半数的 Android 设备仍在运行着 Java 6,我们要怎么才能用上新的现代化语言呢?

2017-05-28 10:20:30 29822 1

原创 Java回调~mqtt回调处理中的问题

1. java回调机制回调方法的理解: 例子:   消防员给出一个电话号码119(这是每个人都知道的,119就相当于Java中的一个接口),并在每一个地方都设置一个发生火灾时的检测装置,如果危急到人们的人生安全时,那么市民就可以打119给消防员让消防员来处理。

2016-08-01 11:19:12 12190 21

原创 Android~Service+BroadcastReceiver使用

Android~Service+BroadcastReceiver使用

2016-06-02 00:08:01 4005

原创 Java BSON使用

数据类型概述SequoiaDB 所支持的值类型见下表:值类型定义比较优先级权值用例整数整数 范围:-2147483648 至 214748364710{ "key" : 123 }长整数整数 范围:-9223372036854775808 至 9223372036854775807 如果用户指定的数值无法适用于整数,则 SequoiaDB 自动将其转化...

2020-01-13 15:13:41 8788

原创 2019/12/31日~寒冬你被裁了吗?(年终总结)

哈哈标题党

2019-12-31 22:08:04 8666

原创 Android~记录material.tabs.TabLayout一个bug

在使用TabLayout过程中发现一个奇葩的bug,说我xml布局文件有问题。1、完整log2019-12-30 16:50:41.426 9068-9068/? E/ActivityThread: Failed to find provider info for com.mirrorlink.android.provider2019-12-30 16:50:41.586 10184-101...

2019-12-30 17:07:55 9406 1

原创 Android~Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializer

在新项目中已开始迁移到Androidx遇到Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializer错误,APP在安卓4.4上面启动奔溃,记录解决办法。参考原文在安卓4.4中,这是一个dex问题。解决办法是1、在app.gradle中,defaultconfig内启用multidexdefaultCo...

2019-12-18 17:04:37 8986 1

原创 Android~安卓开发中javaBean是推荐get/set还是声明public?

做过J2EE的同学开发中应该经常遇到javaBean这种习惯写法,安卓中也是经常看到这样类似重复的代码。那么我们有没有什么好办法可以避免这样重复代码搬运尼?javaBean是必须要实现get/set还是可以直接声明public就可以了?其实我自己也很好奇到底哪种思想正确。于是问了下万能的百度,网上存在这么几种编程观点:1. 几种观点java编程思想:类的封装,安全性,只供外部get (读)...

2019-12-01 23:24:47 4305

原创 Activity~Activity:screenOrientation

ConstantValueDescriptionbehind3Keep the screen in the same orientation as whatever is behind this activity. Corresponds to ActivityInfo.SCREEN_ORIENTATION_BEHIND.fullSensoraOrientati...

2019-11-03 21:45:11 885

原创 Android~DataBinding使用

在熟悉MVVM框架中了解到DataBinding,MVVM的核心其实就是DataBinding。这篇文章基于登录界面小demo,给大家介绍如何使用DataBinding。使用DataBinding步骤1、修改app的build.gradle启用DataBindingapply plugin: 'com.android.application'android { compileSd...

2019-11-03 16:35:39 1174 6

转载 Android~使用Service还是Thread

    本文转自【Android开发实践:使用Service还是Thread】,如有侵权请联系删除。    Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。首先...

2019-09-05 21:45:33 971

原创 Android~Fragment的替代方案

最近在review别人的代码,使用了fragment实现了新UI。在这个过程中又充电学习安卓新的技术,因为又切回到熟悉的移动互联网开发了。方案一,安卓原生View管理替换。View是安卓所有控件的基类,这种方法简单有效,但分层不清和业务复杂就会显得低效。尤其我们要彻底掌握View的实现原理和相关方法!LinearLayout layout = new LinearLayout(this)...

2019-09-03 15:16:38 1396

原创 RelativeLayout中layout_alignParentRight="true"无效的解决办法

最近使用RecyclerView自定义控件,Item布局中遇到一个坑发现初始化的时候一个控件被遮盖了,也就是layout_alignParentRight="true"没有生效,但是触摸滑动RecylerView之后Item中的元素又都显示正常了!初步判断是item布局文件中某一个属性没有配置对。经过排查是RelativeLayout中layout_width需要设置成match_parent...

2019-08-09 17:10:56 1785

原创 DIA无法输入中文解决办法

DIA下载链接:http://down.tech.sina.com.cn/page/41811.html上周在Win10上面装了DIA,觉得装Visio太麻烦了。。切换输入法居然不可以输入中文,觉得好奇怪。找了各种设置,最终有效的解决办法是:输入法 -> 系统IME切换为简单,即可!...

2019-05-06 08:12:04 1373

原创 Android~儿童乘法表

1. 背景记录这个有点滑稽的项目。2. 参考设计3. ui对比3. 实现详细参考:植物大战僵尸http://www.4399.com/flash/120134.htmhttp://www.9game.cn/chengfabiao/https://www.sohu.com/a/122021289_549580https://app.ali213.net/zt/etcf...

2019-04-27 22:47:58 789

原创 esp32~mp3播放实例解析

前言esp32-ADF音频框架,Demo看了好几次,也只知道个大概。音频涉及的东西太多了,入门就先熟悉这个框架。官方文档:https://docs.espressif.com/projects/esp-adf/en/latest/api-reference/index.htmlElements of the Audio Development Framework框架中包含流、编解码器、音...

2019-03-26 10:36:27 3745

原创 esp8266/32~msys32编译环境使用问题汇总

记录使用msys32开发esp32中遇到的奇葩问题和解决方法。

2019-03-22 08:57:03 1891 5

原创 esp32~MP3音频文件学习

主要了解了MP3文件结构及每个部分含义,音频处理的专业术语概念。比较重要的概念:1. 编码从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三...

2019-03-17 16:33:55 1967

提示
确定要删除当前文章?
取消 删除