Kinsomy Blog

Thinking will not overcome fear but action will.

Android进阶(二)View的测量、布局、绘制流程

Android advance

1 引言 在上一篇文章Android进阶(一)View体系中,分析了Android源码关于activity启动创建view的过程,在WindowManagerGlobal的addView方法里面调用了ViewRootImpl构造方法,构造root,同时在ViewRootImpl里面会调用一个performTraversals()方法,看一下源码: private void per...

Android进阶(一)View体系

Android advance

1 坐标系 Android系统里面有两种坐标系:Android坐标系、View坐标系。 1.1 Android坐标系  Android的坐标系是以手机上可见的屏幕左上角顶点为坐标系原点,但是xy轴的方向和我们以前知道的有所不同,需要注意,从原点向右为x轴正方向,而从原点向下为y轴正方向。 android.view.MotionEvent下面有两个方法getRawX()和getRa...

node之旅day3

nodejs

Node Http 底层api 下图是Node Web陈程序的内部结构,核心是底层api。 node的http请求会返回request 和response的回调函数,服务器没收到一个新的请求,都会用新的req和res对象触发回调函数,node会解析htt头并放到req中返回,但是默认不会解析body。 需要收到调用res.end()去结束响应,否则会超时或一直处于打开状态。 修改h...

node之旅day2

nodejs

异步流程控制 js是单线程的语言,不会出现像java一样的多线程锁的问题,一次只能执行一个函数。 nimble nimble是一个流程控制库,可以串行、并行执行方法等 项目地址 http://caolan.github.io/nimble/ 下面是一个 nimble的demo:并行下载两个文件,最后将两个文件用tar命令集合起来。 var flow = require('nimble')...

node之旅day1

nodejs

day1 node in action chapter3 exports 和 module.exports的区别 exports var module = require('module'); 当require一个module后,require函数会返回这个module中exports对象中的内容,然后通过module.xxx便可以使用模块内暴露的内容。 module.exports ...

TinyDownloader Android下载器

TinyDownloader

Muses Muses是一个使用方便的Android下载器框架。 项目地址 Muses有以下优点: 支持在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 支持HTTP断点续传 多任务自动调度管理 截图: 基本使用: 依赖: compile 'com.kinsomy:Muses:1.0...

Android Charles 证书固定

NetworkSecurityConfig

最近在做公司的接口全部换上了https,我们的应用也随之进行了升级,接入https。 但是在使用charles进行接口抓包调试的时候就出现了一些问题。 我的计划是既要能使我们的app在release和debug下都能进行charles抓包调试定位问题,还要能有效的防止其他人对应用进行抓包获取数据。 之前做法 由于我们使用了okhttp框架,在此之前我们一直使用okhttp来做证书固定 ...

关于Flutter有几点要说

Hello Flutter

关于Flutter有几点要说 Flutter 是什么 Flutter是google最近正式推出的一款跨平台的移动开发框架,目前处于Beta阶段。 Flutter将会作为Google最新移动系统Fuchsia OS的app framework。 Flutter的特点 Dart可以运行前编译(AOT),在开发flutter应用的时候布局文件会直接通过源码编写node tree...

ConstraintLayout使用详解 上

ConstraintLayout

传统布局缺陷 <ScrollView> <LinearLayout> ... ... <LinearLayout> <LinearLayout> <LinearLayout/> <L...