【stm32f407】stm32串口实验
一.串口理论 串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。现在基本上所有的MCU都会带有串口,STM32自然也不例外。 STM32F407VGT6内嵌四个通用同步/异步接收器(USART1,USART2,USART3和USART6) 和两个通用异步收发器(UART4和UART5),如图:...
View ArticleAndroid WebView简要介绍和学习计划
我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新。在4.4版本之前,Android WebView基于WebKit实现。不过,在4.4版本之后,Android WebView就换成基于Chromium的实现了。基于Chromium实现,使得WebView可以更快更流畅地显示网页。本文接下来就介绍Android...
View ArticleAndroid WebView加载Chromium动态库的过程分析
Chromium动态库的体积比较大,有27M左右,其中程序段和数据段分别占据25.65M和1.35M。如果按照通常方式加载Chromium动态库,那么当有N个正在运行的App使用WebView时,系统需要为Chromium动态库分配的内存为(25.65 + N x...
View ArticleAndroid WebView执行GPU命令的过程分析
Android WebView使用的Chromium引擎,虽然没有自己的GPU进程或者线程,但是却可以执行GPU命令。原来,Android WebView会给它提供一个In-Process Command Buffer GL接口。通过这个接口,Chromium引擎就可以将GPU命令提交给App的Render Thread执行。本文接下来就详细分析Android...
View ArticleAndroid WebView硬件加速渲染网页UI的过程分析
Android WebView作为App UI的一部分,当App UI以硬件加速方式渲染时,它也是以硬件加速方式渲染的。Android WebView的UI来自于网页,是通过Chromium渲染的。Chromium渲染网页UI的机制与Android App渲染UI的机制是不一样的。不过,它们会一起协作完成网页UI的渲染。本文接下来就详细分析Android...
View ArticleFlutter进阶—网络和HTTP
使用http包 Flutter支持http包,版本0.11.3+12或更高版本,首先在pubspec.yaml中声明对http的依赖,注意添加声明后按顶部的“Packages get”: dependencies: flutter: sdk: flutter http: '>=0.11.3+12' 发出HTTP请求...
View Article【stm32f407】SysTick实现延时
一. SysTick介绍: CM4内核的处理和CM3一样,内部都包含了一个SysTick定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时 ,将 从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。我们就是利用STM32的内部SysTick来实现延时的,这样既不占用中断,也不占用系统定时器...
View ArticleKotlin 从学习到 Android 第六章 类和继承
类 类在 Kotlin 中使用关键字 class 声明: class Invoice { } 类的声明包括类名,类头(参数类型,构造函数等)和类体(花括号包裹的内容)。类头和类体都是可选的;如果一个类没有类体,那么花括号可以省略。 class Empty 构造函数 在 Kotlin 中一个类可以有一个主要构造函数和多个次要构造函数。主要构造函数是类头的一部分,放在类名之后,并含有可选的类型参数。...
View ArticleAndroid四大组件--Activity详解(一)
Android四大组件中我相信Activity绝对是大家最熟悉的,但是虽然我们几乎是天天在用它,但真的有好好的了解过它么。如果你没有,那就可以看看这篇博客了,它或许没有什么高深的内容,但也是好好的对Activity整理了一番,相信还是能够让你又所收获的。 1、什么是Activity...
View Article【stm32f407】IO引脚复用和映射
一. 什么叫管脚复用 STM32F4有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。...
View Article一起Talk Android吧(第二十八回:Android版Hello World)
各位看官们,大家好,上一回中咱们说的是Java多线程编程的例子,这一回咱们说的例子是Android版Hello World。闲话休提, 言归正转。让我们一起Talk Android吧!...
View ArticleAndroid快速开发-选项卡
介绍 几行代码实现Android选项卡界面,支持标准底部Tab自定义视图选项卡,头部文字选项卡。 底部自定义视图选项卡 先来看看实现下图中的效果我们代码应该怎么写? 实现上图效果只需以下代码: public class TestBottomTabActivity extends TabActivity { @Override protected List<TabItemView>...
View ArticleiOS KVC/KVO总结
概述 KVC和KVO是什么? 简单来说,KVC(Key-Value Coding)是通过key-value对的方式,能够获取到/设置一个object的属性/参数,即使这个属性并未暴露在外。这其实属于黑魔法一类的东西,可以得到用”正常”方式实现不了的功能。当然,它的实际用处不止这些。 KVO(Key-Value...
View ArticleKotlin 官方学习教程之扩展
扩展 类似于 C# 和 Gosu, Kotlin 也提供了一种可以在不继承父类也不使用类似装饰器这样的设计模式的情况下对指定类进行扩展的功能。这是通过称为扩展名的特殊声明来实现的。 Kotlin 支持函数扩展和属性扩展。 函数扩展 要声明一个函数扩展,我们需要在函数前加一个接收者类型作为前缀。下面我们会为 MutableList 添加一个 swap 函数: fun...
View ArticleiOS自带超强中文分词器
说明 在处理文本的时候,第一步往往是将字符串进行分词,得到一个个关键词。苹果从很早就开始支持中文分词了,而且我们几乎人人每天都会用到,回想一下,在使用手机时,长按一段文字,往往会选中按住位置的一个词语,这里就是一个分词的绝佳用例,而iOS自带的分词效果非常棒,大家可以自己平常注意观察一下,基本对中文也有很好的效果。而这个功能也开放了API供开发者调用,我试用了一下,很好用! 效果如下: 实现...
View ArticleAndroid MVVM+DataBinding结合Dagger2进行开发
前言 在我的前几篇文章中,简单学习了以下内容: Android DataBinding使用总结 (一) DataBinding的环境配置和基本使用 Android DataBinding使用总结(二) DataBinding的所有基本使用方法 Android DataBinding使用总结(三) DataBinding展示RecyclerView列表 Android...
View ArticleFlutter实战一Flutter聊天应用(一)
不知不觉,进阶的教程已经写了几十篇了,通过前面的学习,大家已经打下了良好的基础,接下来我们就开始进行项目实战吧! 我们现在要写一个叫“谈天说地”的应用程序,这是一个简单、可扩展的聊天应用程序,能实时显示信息,用户可以输入文本信息,也可以通过按返回键或发送图标发送,还可以在iOS和Android设备上运行。 首先我们要在IntelliJ编辑器中启动一个新的Flutter项目: 启动IntelliJ...
View Article