你需要知道的Android View的绘制
经过上一篇AndroidView的布局分析之后,我们继续View的绘制分析讲解。我们依旧从ViewRootImpl#performTraversals说起。 private void performTraversals() { ... if (!cancelDraw && !newSurface) { if (!skipDraw || mReportNextDraw) { if...
View Article设计模式-观察者模式
1.观察者模式的定义及使用场景 观察者模式是一个使用率非常高的模式,它最常用的地方是GUI系统,订阅-发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小。 定义: 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所以依赖于它的对象都会得到通知并被自动更新 使用场景: 关联行为场景,需要注意的是,关联行为时可拆分的,而不是“组合”关系;...
View ArticleIOS 中的多线程网络(二)—— 线程间通信与线程安全
1. 线程间通信 在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信。 1.1 线程间通信的体现 (1)1个线程传递数据给另1个线程; (2)在1个线程中执行完特定任务后,转到另1个线程继续执行任务。 1.2 线程间通信常用方法 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg...
View ArticleOpenGL核心技术之点阴影
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。CSDN视频网址:http://edu.csdn.net/lecturer/144 在Shadow...
View Article安居客Android项目架构演进
入职安居客三年从工程师到Team Leader,见证了Android团队一路走来的发展历程。因此有心将这些记录下来与大家分享,也算是对自己三年来一部分工作的总结。希望对大家有所帮助,更希望能得到大家宝贵的建议。 三网合并...
View Articleue4-资源加载和实例化类
加载资源,然后实例化对象 资源加载,并实例化 构造中加载蓝图或c++类 加载并实例化一个蓝图类 static ConstructorHelpers::FObjectFinder<UMaterial>...
View ArticleAndroid 自定义控件-自定义进度条。
效果图: 1.编写类继承View public class ProgressBarView extends ProgressBar { } 2.重写构造方法 public ProgressBarView(Context context) { this(context, null);//这里调用本类的两个构造参数的构造方法 } public ProgressBarView(Context...
View Articleandroid应用开发-从设计到实现 2-4 文字的使用
文字的使用 文字是应用当中使用最多的要素。显示一段供用户阅读的文字,程序运行时的信息提示都离不开它。 文字是内容的实际体现者,因此设计师需要将用户的注意力尽可能的吸引到文字当中。 字体可以分成两种类型:有衬线的-serif;无衬线的-sans-serif,也简称sans。serif的笔划端部会多出来一截修饰;sans的笔划端部是平的。...
View ArticleAndroid Things专题3 开发环境搭建
文| 谷歌开发技术专家 (GDE) 王玉成 (York Wang) 物联网 (IoT) 的应用开发,离不开跟开发板打交道,我们需要配置好开发板的各种环境,最后才能用 Android Studio 进行应用开发。 我们今天就以 Raspberry Pi 3 为例,一起来搭建 Android Things 的开发环境。 硬件准备 Raspberry Pi 3 的硬件开发板就长这样:...
View Article深入浅出RxJava_04[数据传输过滤操作]
本教程基于RxJava1.x版本进行全面讲解,后续课程将陆续更新,敬请关注… 在被观察者发送数据给观察者的时候,在数据传输的时候,有可能需要对数据进一步过滤。以下的教程揽括了大部分过滤操作的函数。 Distinct - 去掉重复发送的数据 Filter - 根据条件过滤特定的数据 First - 取发送队列中的第一个数据 Last - 取发送队列中的最后一个数据 ElementAt -...
View Article谷哥的小弟学后台(27)——文件上传
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)— 核心基础 Android多分辨率适配框架(2)— 原理剖析 Android多分辨率适配框架(3)— 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View...
View Article谷哥的小弟学后台(28)——文件下载
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)— 核心基础 Android多分辨率适配框架(2)— 原理剖析 Android多分辨率适配框架(3)— 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View...
View Article深入浅出RxJava_05[转换操作&数学运算]
本教程基于RxJava1.x版本进行全面讲解,后续课程将陆续更新,敬请关注… 在观察者和被观察者之间,有些传输的数据需要进行转换之后才能用,比如:有时候拿到的是学校的某个班级学生的名单,但是我们需要知道他们的语文成绩排列。这样就是需要将ArrayList转换成ArrayList队列。 下列提供了一系列的数据切换操作符: Buffer -...
View Article设计模式-外观模式
1.外观模式的定义及使用场景 外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各个第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式,通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。 定义:...
View ArticleAndroid 线程切换,线程池。
在开发中,我们往往需要用到线程切换这个功能,最常见的使用场景就是,当我们需要做网络请求或者其他耗时处理时,不能在主线程调用,否则容易造成线程堵塞,很容易触发ANR,所以我们一般在这时候都会新建一个子线程来执行: new Thread(new Runnable() { @Override public void run() { //网络加载图片的方法 loadImage(); }...
View Article插件化之插件Service 新的Hook方法
本文同步自wing的地方酒馆 给大家分享一个新的Hook插件Service的方法,与Activity替换类似,可以先在AndroidManifest.xml预留一个service,然后通过intent启动,并且将真正的Service的classname传递过去。可是Service没有涉及到Instrumentation更没有Instrumentation.newService()方法,怎么办呢?...
View Articleandroid 最全缓存目录获取方式和函数解析
Android 开发中基本都要使用到文件的保存和读取操作,我们一般遇见的文件读写问题有几个:文件保存在哪?以及如何使用相关函数,目录权限的问题?以及删除应用之后目录是否会随之删除的问题?接下来就来解析一下这几个相关目录的操作函数。 转载请注明出处:http://blog.csdn.net/self_study/article/details/58587412 对技术感兴趣的同鞋加群...
View Article微信小程序之轮播图实例 —— 微信小程序实战系列(3)
轮播图是大部分应用的一个常用的功能,常用于广告投放、产品展示、活动展示等等。 漂亮的轮播图效果可以吸引用户的点击,达到推广产品的作用。 废话少说,下面开始动手。 业务需求: 5个图片轮番播放,可以左右滑动,点击指示点可以切换图片 重点说明: 由于微信小程序,整个项目编译后的大小不能超过1M 查看做轮播图功能的一张图片大小都已经有100+k了 那么我们可以把图片放在服务器上,发送请求来获取。...
View Article