深入分析setContentView
前言 对于Android的开发者来说,setContentView大家再熟悉不过了,在我们的Activity中首先就是要用它加载我们的布局,但是应该有一部分人是不知道加载布局的原理,今天就从源码的角度分析setContentView加载布局原理。 准备工作 由于我们使用的Android...
View ArticleAndroid 动画:你真的会使用插值器与估值器吗?(含详细实例教学)
前言 动画的使用 是 Android 开发中常用的知识 可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策 Android中 补间动画 & 属性动画实现动画的原理是: 其中,步骤2中的 插值器(Interpolator)和估值器(TypeEvaluator)是实现 复杂动画效果的关键 本文主要讲解 将详细讲解...
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 ArticleIOS 清理CALayer、CAShapeLayer的sublayers
在使用CALayer或者CAShapeLayer的时候,用addLayer插入很多图层以后,想要清空它的subLayers,例如: for (CAShapeLayer *layer in self.candleLayer.sublayers) { [layer removeFromSuperlayer]; } [self.ohlcLayer removeFromSuperlayer];...
View ArticleAndroid NDK开发之最简单的Hello
前言 为了能让所有的童鞋都能写出hello world,博客中会详细说明配置的过程,虽然不麻烦,但是博主还是会写清楚的 demo流程 新建一个项目 在main目录下新建一个jni目录 在其中编写c代码 在activity中加载这个库,调用方法显示 首先我们新建一个项目 然后在main目录下新建一个jni目录,里面有一个c文件源码...
View ArticleTinker爬坑之路
目的 热修复去年年底出的时候,变成了今年最火的技术之一。依旧记得去年面试的时候统一的MVP,然而今年却变成了RN,热修复。这不得不导致我们需要随时掌握最新的技术。不然可能随时会被淘汰。记得刚进公司,技术总监就给我们布置了学习RN和热修复的任务。不过因为临时调整去了产品部。学习的时间变少了。最近抽空看了关于热修复。于是,便有了此文。 概述...
View Article今年的 WWDC 2017 为我们带来了什么?
北京时间 6 月 6 日凌晨 1 点,一年一度苹果开发者盛会 WWDC 2017 在美国加利福尼亚州圣何塞拉开帷幕,来自 75 个国家的 5300 名开发者汇聚一堂,其中年龄最大的开发者是来自日本的 82 岁老太太,最小的开发者也年仅 10 岁,所以如果你还没有开始写码,那还有很多时间,为时不晚。 Keynote...
View ArticleReactNative开发——组件的生命周期
ReactNative开发——组件的生命周期 使用ES6语法创建Component 我查看了下网上有关React Native中组件的生命周期有关的资料,发现大多介绍的是 ReactClass.create这种方式创建的Component创建的组件,这种方式创建的组件,生命周期都是先执行和getDefaultProps和 getInitialState。...
View Article