准备起航,了解Kotlin
“近一百多年来,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上。一旦出在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前飘个十年甚至更长时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。” —— 吴军 《浪潮之巅》...
View ArticleKotlin学习记录(三)—— 子线程获取数据,实现简单ListView
接上篇:Kotlin的变量、属性、类、构造函数、继承、方法 上一篇简单介绍了Kotlin的一些基础构成,当然还有像对象声明、操作符等等都未涉及到,这些会在以后用到的过程中进行详细说明。 项目中ListView列表出现的频率是很高的,我们就以实现一个简单ListView为目标,介绍一下在子线程中获取数据等问题。 首先在layout中新增个listview: <ListView...
View ArticleKotlin学习之-4.3.4 返回和中止循环
Kotlin学习之-4.3.4 返回和中止循环 Kotlin 有3中结构化的跳转语句: return,默认是从最近的函数或者匿名函数中中返回。 break,中止最近的循环 continue,从当前的循环中继续执行下一次循环 所有这些表达式都可以被用来组成更大的表达式 val s = person.name ?: return 基于标签的break 和continue...
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 Article准备起航,了解Kotlin
“近一百多年来,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上。一旦出在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前飘个十年甚至更长时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。” —— 吴军 《浪潮之巅》...
View ArticleAndroid ConstraintLayout 约束布局
前言 Google I/O 2016 上发布了 ConstraintLayout。它的优点就是能减少布局的层级,用它完全替换RelativeLayout和LinearLayout应该都是可以的。 关于ConstraintLayout的一些Android Studio界面操作可以看《Constraint 代码实验室–带你一步步理解使用 ConstraintLayout》,其英文出处可以看Using...
View ArticleFlutter实战一Flutter聊天应用(五)
我们的应用程序现在已经有了一个好看的UI,但是我们还没有一个后端。所以我们要买一个云服务器,然后再安装数据库?当然不是!我们可以使用Firebase平台作为后端,那么Firebase是什么呢?...
View ArticleAndroid弹幕实现:基于B站弹幕开源系统(7)QQ、微信聊天气泡样式的弹幕
Android弹幕实现:基于B站弹幕开源系统(7)QQ、微信聊天气泡样式的弹幕在附录文章得基础上,改进普通文本弹幕,实现一种特殊效果的文本弹幕,像QQ、微信一样的带有气泡背景的弹幕。实现的重点是在SpannedCacheStuffer。同时要准备若干需要衬在文本弹幕背景部分的.9.png图片。上层Java代码:package zhangfei.danmaku; import...
View ArticleCFRunloop 优化TableView加载高清大图UI卡顿问题。单独分批加载
TableView卡顿环境分析: tableView加载过多的高清大图,Runloop不只处理iOS事件,渲染图形也是runloop处理的。 而渲染图形的UI操作必须在主线程中,不能开辟线程进行图形处理。 在拖动tableView的时候,Runloop要处理拖动事件,还要处理过多图片渲染,而造成卡顿。 解决卡顿分析:...
View ArticleAndroid FutureTask 分析
之前在研究AsyncTask源代码的时候发现了它的内部使用了FutureTask、Future,Callable类来实现,因为之前在学习java的时候并没有接触到这些东西,于是乎就打开了百度看了半天别人的博客也没有理解其用法以及原理,后来果断的查看了一下其源代码之后才知道其来龙去脉。官方文档这么介绍FutureTask类的。 A cancellable asynchronous...
View ArticleReact Native 0.45.0 正式发布,有重大更新
React Native 继续之前的升级的频率,差不多一个月升级一次。6月7号React Native 0.45.0正式发布。该版本有如下的重大变更: 1,删除 React 的转发和错误导入警告(Remove React forwarding and wrong import warnings) 2,其他更改 Bug 修复 XMLHttpRequest withCredentials...
View ArticleKotlin学习之-4.3.2 包管理
Kotlin学习之-4.3.2 包管理 Kotlin源文件是以包定义开头的: package foo.bar fun baz() {} class Goo() {} // ... 所有源文件中的的内容包括类和函数都在定义的包中。所以在上面的例子中,函数baz()的全名是foo.bar.baz, 类Goo的全名是foo.bar.Goo。 如果包没有定义,那么源文件的内容将全部属于”默认”包下,...
View Article