Android Choreographer
引言之前其实并未关注过Choreographer,在一次调试App demo的过程中,偶然发现出现了一条这样的日志:
I/Choreographer: Skipped 1201 frames! The application may be doing too much work on its main thread.
这是一条系统日志,意思很明确:主线程的工作可能过多,导致了掉帧。突然发现Ch
Javac编译过程笔记
Javac前端编译简述这里不讨论JIT编译、AOT编译,本文提到的编译过程仅仅指把.java文件转变为.class文件的过程,这个过程是我们最常见的,通常由Javac编译器来完成。Javac编译器对代码的运行效率几乎没做什么优化,虚拟机设计者把对代码性能的优化集中到了后端的JIT编译器中。之所以这样设计,因为Class文件拥有虚拟机规范严格定义的通用格式,只要符合Class文件格式,就可以被虚拟机正
理解Java动态代理
概念理解动态代理类就是在运行时创建的实现了一系列特定接口的类。为了更好行文,还需要先明确三个概念:
代理类——在本文中指动态代理类
代理接口——在本文中指动态代理类实现的接口
代理实例——在本文中指动态代理类的一个实例
动态代理的一些特性:
代理类是public或final的,不能是abstract
代理类均继承自java.lang.reflect.Proxy类
代理类在创建时按顺序实现了所指定的接
Android架构组件之ViewModel
Android架构组件之ViewModelViewModel概念及用途ViewModel用来存储和管理UI相关的数据,可于将一个Activity或Fragment组件相关的数据逻辑抽象出来,并能适配组件的生命周期,如当屏幕旋转Activity重建后,ViewModel中的数据依然有效。引入ViewModel之前,存在如下几个问题:
通常Android系统来管理UI controllers(如Acti
Android架构组件之LiveData
基本概念LiveData是一个可以被观察的数据持有类,它可以感知并遵循Activity、Fragment或Service等组件的生命周期。正是由于LiveData对组件生命周期可感知特点,因此可以做到仅在组件处于生命周期的激活状态时才更新UI数据。LiveData需要一个观察者对象,一般是Observer类的具体实现。当观察者的生命周期处于STARTED或RESUMED状态时,LiveData会通知
Java反射基础指南
概述
本文是一篇入门级别的教程,旨在探索Java反射机制,反射允许在运行时操作类、接口、属性以及方法。在编译时如果不知其名称,使用反射则非常方便。另外,还可以通过反射机制实例化类、调用方法、修改和读取属性字段值。
导包
使用反射不需要额外的库或Jar,JDK在java.lang.reflect包下提供了一系列的类来支持反射,只需要导入这个包即可,如下:
import java.la
使WebAssembly更快:Firefox最新的流式分层编译器
很多人认为WebAssembly是一种可能改变游戏规则的技术,因为它可以使代码在Web上运行得更快。目前已经有了一些 WebAssembly加速技术,还有一些加速方案即将出现。
其中一种加速技术就是流式编译,即允许代码一边下载,浏览器一边编译。直到现在(原作者写此文时,Firxfox 58还未发布),流式编译还是一种潜在的加速技术,随着Firefox 58版本的发布,这种技术变成了现实。
Fi
Flutter技术概览
前几天Google宣布发布Flutter第一个beta版本,Flutter是一个全新的(其实Flutter很早就有了,前身叫Sky)移动UI框架,用来帮助开发者在iOS和Android平台上开发高质量的原生应用。Flutter是跨平台的免费开源UI框架,iOS和Android可以共用一套代码。
Flutter官网地址为https://flutter.io/。
Flutter的主要优点如下:
...
横向ListView(一) ——开篇,基础逻辑实现
第一次写博文,写得不好的地方还望各位看客见谅
为了学习自定义软件开发,且定制出满足自己需求的控件(不需要将就地使用第三方源码),本人花了一周的时间开发了个横向ListView,写博客是为了记录整个开发过程及思路,也能和各位看客一起学习和探讨。
这一系列文章是针对的读者是已经了解listview缓存和工作原理的android开发人员,如果对listview缓存和工作原理还不了解的读者,可以查看以
横向ListView (二)—— 添加快速滚动功能及item相关事件实现
在读本文之前,请先阅读博文《横向ListView(一) ——开篇,基础逻辑实现》
之前的文章已经介绍了横向lListView的基础实现逻辑,在这里我将介绍快速滚动实现及item相关事件实现
列表的快速滚动的实现主要依赖于android官方提供的android.widget.Scroller类,具体实现需要以下步骤:
1.捕获快速滑动事件,并启动快速滑动计算(Scrolle
横向ListView(三) —— 添加头/尾视图及居中显示
前面的文章已经介绍横向ListView的基础实现、快速滑动和事件响应实现;可以说,通过前面两篇文章已经实现了一个完整可用的横向ListView控件,而这以后的文章将介绍的是整个控件的扩展功能,以满足日常开发过程中的特殊需求
本文将介绍列表头/尾的添加功能实现以及整个视图在没有足够item可以铺满控件时,让显示内容剧中显示。
为什么要实现添加头尾视图,这个我个人也不是很清楚,毕竟
横向ListView(四) —— 添加滚动条
在前面的文章已经介绍了横向ListView的基础实现及头尾视图的添加等的实现,这篇文章将介绍为横向ListView添加滚动条;这一功能的添加和前面章节有些不同,前面章节添加功能都是在原来的控件上追加的,而滚动条的实现是以一个独立的控件存在的,以组合的形式添加到横向ListView中。
滚动条的实现思路:
1.计算横向ListView可见区域的宽度
2.计算整个横向Lis
横向ListView(五) —— 实现左/右拉回弹功能及事件触发
这篇文章将介绍在之前版本的横向ListView中添加左/右拉伸及回弹功能(采用阻尼式算法)。
之前的代码存在许多bug,这个版本处理添加功能以外,还修补了之前版本的bug,在代码中都有相应的注解。
实现思路如下:
1.在原来的版本上扩展滚动的边界值
在之前的版本代码中,列表的滚动无法超出界面的可视区域,为了实现左/右拉伸及回弹功能,必须扩展其滚动边界值(在代码
横向ListView(六) —— 将自定义的横向ListView改成竖向
前面的五篇文章已经完整的介绍了横向ListView的整个实现过程,这篇文章介绍的是将前面所完成的横向ListView转换成竖向的,及一个可以上/下拉回弹的ListView。
这篇文章也是这一系列文章的最后一篇。
横向转竖向比较容易步骤如下:
1.把相应的left、right、width、height的值改成top、bottom、height、width的值
android自定义调节器控件 —— RegulatorView
RegulatorView效果图:
RegulatorView实现步骤:
1.新建java类RegulatorView.java,继承View类
2.定义必要基础属性,及为其附初始值
private final static int BTN_RADIUS=20;//拖动按钮的半径
private final static int BTN_CIRCLE_RADIUS=6;
Android博客周刊专题之#插件化开发#
本文转自:Android博客周刊专题之#插件化开发#
本期专栏目讨论插件化开发。插件化涉及的东西很多,所以我们需要多个维度去学习。大概分为5个部分:预备知识、入门、进阶、系列、类库。一步一步深入了解插件的原理。本专栏会不定时更新相关内容,请留意更新的消息。请加入QQ群:149581646.会统一通知最新的文章。
Posted 2016-03-16 by Jomeslu.
基础
1
Windows桌面共享中一些常见的抓屏技术
本篇博客内容是属于转载的,原文地址:
http://www.cppblog.com/weiym/archive/2013/12/01/204536.aspx
1. BitBlt
我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能。
对于通过这种方式的抓屏, 有2点需要特别提醒:
浅谈HTTPS以及Fiddler抓取HTTPS协议
最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同时抓取到HTTPS和HTTP协议,设置只是很小的一步,关键是了解HTTPS协议的原理、Fiddler抓取HTTPS协议的原理,然后才能更好的理解如何进行设置。本文主要由三部分组成,第一部分用比较通俗形
openssl 生成公钥和私钥 window
安装openssl有两种方式,第一种直接下载安装包,装上就可运行;第二种可以自己下载源码,自己编译。下面对两种方式均进行详细描述。
一、下载和安装openss
方法一:直接使用openssl安装包(这个方法直接安装好openssl和配置C++环境就可以使用了(C++ 环境可以通过VS2015配置)
)
Window 的openssl的安装包的下载地址为:
http://slproweb.
今日推荐
周排行