Activity启动流程简述

从Launcher启动

所谓的从Launcher就是点击手机上的app图标启动Activity,Launcher本身也是一个Activity,它启动app的首个Activity

Zygote启动了进程之后,其实就是直接进入到我们熟知的ActivityThread的main方法,然后启动个主线程Looper开始接受消息(了解Looper的应该对这部分逻辑一下子清晰了)

AMS与ActivityThread通信

创建Application

启动Activity

前面说的ActivityStackSupervisor的attachApplicati[……]

阅读全文

发表在 Android | 标签为 | 2条评论

DataBinding源码解析

绑定类介绍

先从代码说起,使用DataBingding就从这么一行简单代码开始

数据通知

复杂对象的更新

当我们更新复杂对象内部的数据的,我们并没有直接调用Binding类的setXXX,它又是如何去更新的,其实前面的代码多少有点答案了,我们来看看源码

总结

[……]

阅读全文

发表在 Android | 标签为 , | 留下评论

Android-DataBinding使用简介

DataBinding在整个大前端算是一项很基础的技术,简单,高效,好用,有过客户端经验的都知道最开始客户端并没有支持这项技术,后来谷歌官方推出了对DataBinding的支持,大大简化了UI相关的开发成本,也推动了Android app架构从MVC向MVVM的进化,今天来介绍一波DataBinding的使用

引入DataBinding

引入很简单,在工程的build.gradle里打开databinding的开关即可

修改布局方式

布局绑定变量

代码端使用

双向绑定

自定义数据转换

Lis[……]

阅读全文

发表在 Android | 标签为 | 15条评论

Sketch插件开发入门

Sketch作为一款近些年流行起来的设计工具,在设计师里已经广为流传,Sketch的开发者甚至还为Sketch提供了开发插件的功能,让sketch有了更强的扩展性,正是基于如此强大的扩展性,让我们可以基于sketch做很多的扩展,今天在这里介绍下Sketch插件的开发方式。

技术方案

根据我自己的sketch插件开发经验,sketch插件开发有两种比较常用的技术选型

方式CocoaScript + Objective-Cskpm + JavaScript上手难度低中文档丰富度少较丰富编译方式不用编译直接运行,“所写即所得”通过编译 bundle 运行代码管理明文保存,缺少混淆skpm工作集开发,发布,能够混淆开发生[……]

阅读全文

发表在 Sketch | 标签为 | 3条评论

yoga-像写网页一样写客户端界面

这几年大前端化越演越烈,越来越有融合的趋势,前端和客户端越来越傻傻分不清了,今天介绍一个款facebook开源的布局算法库yoga,让大家可以在客户端用前端网页常用的Flex布局,绝对布局完成布局效果,也许你会问我客户端元素的ConstrainLayout,AutoLayout这类的不香吗,对于原生开发者当然香,但让前端开发来写就不那么香了,也需你会反过来问我,元素开发写网页布局方式就香吗?答案是确实香,因为前端的那套Flex布局,一句话总结就是简单,简单,很简单

Flex布局多容易理解,参考阮一峰老师的Flex介绍,我们来讲讲怎么在android客户端用这个布局方式,因为这么好的东西,网上竟然找不到太多android使用的[……]

阅读全文

发表在 Android | 标签为 | 9条评论

Android Ui卡顿检测

之前在csdn博客写的文章,后续会慢慢把里面觉得还有价值的文章搬到这里过来

今天介绍的技术是一个很简单,但是确实有用的东西。众所周知,做android开发的应该都知道UI线程这个东西吧,UI线程顾名思义就是用来执行渲染UI相关操作的,为了良好的用户体验,在UI线程上的任何操作就是要快,不然操作5s就会anr哦。从代码级别来说,UI线程的快速响应可以简单理解成在UI线程环境下代码(系统代码+自己写的代码)执行的效率。
如果我们能够知道UI线程每次代码执行的起点以及终点不就可以知道每次代码执行时间了么,就有点像java的入口main函数一样。这里就需要一点额外知识体系了,了解过Android Message Looper以及Aidl[……]

阅读全文

发表在 Android | 标签为 , | 留下评论

阿里云ECS+wordpress构建个人网站

很多程序员都有写博客的习惯,市面上也有不少写博客的网站,csdn,博客园,简书之类的,但作为程序员有个人博客网站应该是一件更酷的事情,过去一周花了点时间搭了个个人网站,整体流程大概介绍下。

服务器申请

第一步我们肯定得有个自己的服务器,国内的直接用阿里云就很合适,到阿里云官网注册个账号,选择云服务器ECS,也可以选择轻量应用服务器,二者差别在于云服务器基本是可空壳操作系统,你可以在上面任意鼓捣,而轻量应用服务器可以选择一些镜像(wordpress个人博客镜像之类的),可以免去不少安装流程,对于没有编程经验的可以选择轻量应用服务器,看知乎上有篇介绍挺详细,可以参考,这里重点将如何用ECS搭建个人博客。

然后我们来[……]

阅读全文

发表在 工具相关 | 标签为 | 3条评论