首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
xiaofei_dev
掘友等级
Android开发
简单是高效的基础
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
18
文章 18
沸点 0
赞
18
返回
|
搜索文章
赞
文章( 18 )
沸点( 0 )
69 篇文章带你系统性的学习音视频开发(收藏起来假期看)
距离我们发出第一篇音视频技术文章已经过去一年了,回顾这一年,我们发了几十篇文章,覆盖了音视频基础知识、工具使用、工程示例、实战经验等主题,这些文章基本上构成了入门音视频开发并做一些功能实现和指标优化工
从源码看 Jetpack(6)- ViewModel 源码详解
在两个多月前我开始写 从源码看 Jetpack 系列文章,从源码角度介绍了 Jetpack 多个组件的实现原理,写了一半就停笔去写 Java 多线程编程 的文章去了,本篇文章就再来补上 ViewMod
手把手教你写 Gradle 插件
Android 插件其实是自定义的 Gradle 插件。Gradle 是一个专注于灵活性和性能的开源自动化构建工具,而插件的作用在于打包模块化的、可重用的构建逻辑。可以通过插件实现特定的逻辑,并打包起来分享给别人使用。例如:神策 Android 全埋点插件正是通过插件在编译时对…
Handler 都没搞懂,拿什么去跳槽啊?
0. 前言 做 Android 开发肯定离不开跟 Handler 打交道,它通常被我们用来做主线程与子线程之间的通信工具,而 Handler 作为 Android 中消息机制的重要一员也确实给我们的开发带来了极大的便利。 可以说只要有异步线程与主线程通信的地方就一定会有 Han…
Kotlin Vocabulary | 内联函数的原理与应用
我们的项目里常常会创建一些 Util 类,用于分类整理那些会在许多地方用到的小型函数 (也称实用函数),如果这类函数接收了另一个函数作为参数,则可能会造成一些额外的对象分配,通过使用 inline 关键字,您可以避免这种情况并提升应用性能。接下来我们就来看一看,当您把一个函数作…
编译时注解处理器(APT)详解
上篇文章我们使用注解+反射实现了一个仿ButterKnife功能的示例。考虑到反射是在运行时完成的,多少会影响程序性能。因此,ButterKnife本身并非基于注解+反射来实现的,而是用APT技术在编译时处理的。APT什么呢?接下来一起来看。 APT即为Annotation P…
Android WebView与ViewPager的滑动冲突分析
如题所述,我使用的架构是ViewPager+Fragment+WebView进行开发的,由于WebView的html页面代码是第三方的,这里不好放出来,所以只能放一个大致的架构图,如图所示,ViewPager包含了两个fragment,可以左右滑动的,左边Fragment的We…
Kotlin 中的判空操作 Elvis 操作符使用踩坑
Kotlin 作为一门有着所谓空安全特性的(年轻)编程语言,有时出于实际业务场景需要还是会把变量声明成可空(Null-able)的,好在由于空安全特性,编译器会强制我们对可空变量进行判空检查(除非你使用了非空断言 !! 强制让编译器闭嘴)。Kotlin 以完全兼容 Java 为…
Android 揭露(CircularReveal)动画
所谓揭露动画,就是一种用于 View (之间),甚至界面之间的特殊过渡动画效果。 几图胜千言!以上就是所谓的揭露动画。Demo 源码(Kotlin)我已放至 Github,源码在此,下面我们好好聊下这种过渡动画的具体实现。 先来聊聊揭露动画 Api 的基础用法。 上面说到揭露动…
逻辑之美(4)_希尔排序
本文最好结合上篇插入排序阅读,因为希尔排序其实是插入排序改进而来的一种更高效的插入排序。此排序算法由 Donald Shell 于 1959 年提出,故得此名。 希尔排序是比普通插入排序要更高效一些的。从最坏时间复杂度来说,插入排序的最坏时间复杂度是平方级别的 О(n²),而希…
下一页
个人成就
文章被点赞
43
文章被阅读
27,551
掘力值
592
关注了
29
关注者
26
收藏集
1
关注标签
14
加入于
2017-03-25