- 博客(161)
- 资源 (11)
- 收藏
- 关注
原创 Android~MVC、MVP、MVVM和MVI对比
本文梳理记录MVC、MVP、MVVM、MVI概念和演进,以及自己的理解。面试时经常被问到,MVC MVP MVVM他们到底是什么?如何搭建一个页面?
2022-09-24 15:21:53 1789 2
原创 Kotlin~作用域函数let、run、apply、with
本文比较总结Kotlin标准库中提供的作用域函数。kt中它们的使用有的时候,我们去看别人的代码感觉一团糟,所以想理清一下。就比如我们去吃西餐,我们是用刀子和叉子,想必作为一名开发者一定要用对!
2022-08-20 17:48:46 1389
原创 Kotlin~自定义DSL
本文记录如何自定义DSL,帮助你如何从无脑的硬编码走出来。希望对提高团队代码质量有所帮助。1. 实现首先定义bean类,再给bean类添加相应的lambda函数。然后添加单例,我们使用单例来作为所有bean的容器,并实现你需求的方法。// DslRule.ktclass Button(){}class Text(){}class Layout{ fun button(action: Button.() -> Unit){ } fun text(act
2021-09-16 22:23:37 745 1
原创 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如果翻墙了之后插件还是安装失败,需要...
2020-08-31 15:14:14 3953
原创 Flutter~Mac电脑搭建Ios环境
1. 一般步骤准备工作:1、升级 Macos 系统为最新2、安装最新的 Xcode3、命令行终端安装brew https://brew.sh//bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”4、下载 Flutter SDK,系统会帮你自动解压。拷贝到macOs你常用目录,下载地址。5、配置环境变量vim ~/.bash_profilee
2020-08-05 19:48:24 874
原创 Android~ViewBinding使用学习
ViewBinding替换findviewbyid,1.有啥优点?比DataBinding轻量和快速,DataBinding中layout文件如果实现双向绑定会改变原有布局文件,业务和视图关联度高。更安全,kotlin扩展Synthetics也可直接通过id访问控件,但是全局的会产生空指针错误。编译安全,findviewbyid和ButterKnife会存在类型转换问题,这一错误出现在运...
2020-05-05 22:42:47 5970
原创 Android~adb卸载系统预装应用(亲测有效)
本文介绍一种安卓卸载系统应用的方法,如果你和我一样喜欢瞎折腾,有那么一点强迫症,希望对你有用。作为一名安卓开发者,大学以前总喜欢刷不同刷机包(ROM)、爱装不同的Launcher桌面体验,不过工作了没以前爱折腾了。安卓提供的adb工具不用多介绍,网上都有很多教程。
2019-09-24 15:06:18 105894 23
原创 Android~Anroid Studio中使用NDK编译调用.so
什么是NDK?NDK就是安卓中实现JNI的一种方式,相信学习过java的小伙伴JNI并不陌生。之前使用NDK是在eclipse搭建的安卓开发环境中,现在公司项目需要又回来好好梳理一下NDK。同时网上搜罗一下,附上觉得好的文章。网上的教程供参考,但是实际还是要以操作为准,如遇到问题则需对比教程和操作提示一步一步完成!1、下载安装相关的插件使用AndroidStudio,到Android SDK选...
2019-08-01 23:34:18 1228
原创 esp8266~lwip突破MTU最大1500限制
1. 背景 在去年的项目开发中,遗留了一个比较难解决的问题,需要udp传图,当时的解决办法是将图片在应用层切片依次传输到wifi芯片,而且还用的是定长的明文传输。 一直在想有什么好办法可以优化,首先想到寻找比较高效的编码算法做简单的编码也基本可以接收了,但经过各种查找还是base64用得最多最普遍,经过base64编码后的图片长度大概增加了原来长度的1/3,1200+1200/3 = 16...
2019-05-24 16:37:56 6363 2
原创 理清计算机汉字编码问题(上)
ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII码表分为两部分:控制字符和可显示字符。这个不用多解释,相信学过C语言或者计算机电子信息相关专业的都涉及,更多请参考ASCII码对照表。
2019-05-05 09:38:10 4345 1
原创 esp8266~获取mpu6050六轴传感器数据 [可在此基础上做wifi平衡小车]
1 . 前言上周查看esp8266 github上面有没有更新外设SPI驱动,可惜还是没有,但是看到了之前一直找的hw_timer硬件定时器,乐鑫更新维护的速度还行吧。于是又顺便看了下I2C的demo,居然发现新大陆,因为当天技术交流群里有人讨论mpu6050六轴传感器制作平衡车,好奇就买了个传感器来坐下实验顺便再熟悉下I2C。刚开始把demo编译烧写进去之后跑飞了,如下提示:出现上面的错误...
2018-12-29 14:48:20 9348 7
原创 C语言画直线~Bresenham方法
前言由于项目上遇到了棘手的问题,给定坐标需要实现C绘制直线的驱动函数,绘制直线一般都是显示屏的底层函数,本想着找个显示屏的驱动看下drawline源码,但仔细想一想会不会底层用的是汇编尼,于是便放弃了这种想法。通过百度学习到这是计算机图形学方面的,寻找到了解决办法就是自己用C实现,网上有三种方法:数值微分DDA(Digital Differential Analyzer)算法中点画线算法...
2018-11-28 09:07:01 9462
原创 esp8266~SPI使用
前言最近项目上遇到困难,esp8266的SPI用起来有点晕,这里先记录下来,后面再更新。一. 官网硬件驱动的代码使用demo:#include "gpio.h"#include "spi_register.h"#include "spi_interface.h"void
2018-11-24 11:08:42 14617 1
原创 esp32~外接摄像头OV7255
本文纯属实验,验证测试esp32 摄像头性能,最后给出一个参考建议。esp32 发布已经很久了,但一直没有火起来的感觉。随着边缘计算、AI语音的风,不知道esp32能不能彻底火起来,esp32音频方案倒是挺靠谱的,目前支持比较良好,已支持亚马逊、DuerOS、Google等平台。
2018-10-28 23:09:07 24521 27
原创 esp32~Sniffer模式的人流量检测
项目参考: ESP32 应用实践:基于混杂接收模式的人流量检测本想着移植到esp8266,可是它不支持sniffer和sta共存,实际写代码确认了wifi连上路由打开sniffer后,发现它掉线了,查询官方api文档也验证了这一点。有点可惜,本想写篇教程的,失败!方案不可行,测试了上面给的demo挺稳的,大家看一下顺便可以熟悉下IDF编程风格。...
2018-10-09 15:24:21 4335 2
原创 esp8266~GPIO中断和硬件定时器的正确使用
最近项目需要检测IO口下降沿信号和定时计数,于是就用到了GPIO中断和硬件定时器。有点可惜,github上面RTOS版sdk没有硬件定时器的使用方法,能够参考的只有1.5的sdk,然而我不会移植,只能班门弄斧。参考网上给的demo,实际在项目中用了发现网上给的用法很坑,有一些点需要注意,总结分享给大家,以下用法基于sdk 1.5。1、gpio硬件中断使用2、硬件定时器...
2018-10-08 19:29:53 9758
原创 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 7881
原创 esp8266~makefile学习
1、makefile使用规则目标、指令、依赖 Makefile 是和 make 命令一起配合使用的. makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂....
2018-09-04 22:32:24 2330
原创 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 20005 2
原创 程序是运行在flash中还是RAM中?
前言最近在做项目中遇到一些疑虑,包括OTA升级时会不会阻塞到其他工作线程、select原理和正确用法、如何快速正确理解产品到软件框架构建、嵌入式应用的代码优化方法。本篇文章主要针对第一个问题,请教外援,他解释:正常情况下代码是在OTA1中运行的,当OTA时程序下载固件到OTA2成功后从flash中OTA2对应地址启动。当时觉得不对劲,程序怎么会在flash中运行?查了下,对于x86的pc机和单...
2018-03-17 22:37:05 8563 4
原创 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 8163 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 2488
翻译 Kotlin: Java 6 废土中的一线希望
去年,Java8 发布了,增加了很多新特性和提升,比如lambda,stream。Java 9 的标准也已经在制定了。但是超过半数的 Android 设备仍在运行着 Java 6,我们要怎么才能用上新的现代化语言呢?
2017-05-28 10:20:30 30766 1
原创 Java回调~mqtt回调处理中的问题
1. java回调机制回调方法的理解: 例子: 消防员给出一个电话号码119(这是每个人都知道的,119就相当于Java中的一个接口),并在每一个地方都设置一个发生火灾时的检测装置,如果危急到人们的人生安全时,那么市民就可以打119给消防员让消防员来处理。
2016-08-01 11:19:12 19016 24
原创 Kotlin~Memento备忘录模式
备忘录模式是一种行为型设计模式,用于捕获和存储对象的内部状态,并在需要时将对象恢复到之前的状态。备忘录模式允许在不暴露对象内部实现细节的情况下,对对象进行状态的保存和恢复。
2023-07-30 09:50:12 773
原创 Kotlin~Decorator装饰器模式
装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。可以运行时动态添加新的功能,而无需改变原来的代码。
2023-07-09 11:54:14 943
原创 Kotlin~Command模式
命令模式的结果就是接收方的执行结果,但为了以命令的形式设计,引入额外类型增加理解上的困难。不过这也是设计模式的通病,抽象必然会增加额外的类,代码抽离肯定会比聚合更加难理解。
2023-07-08 14:44:50 856
WiFiTest源代码
2019-01-28
USB逻辑分析仪资料
2018-12-29
Java加密与解密的艺术_梁栋著
2017-02-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人