以下面代码为例:
- Sep 8, 2017...阅读全文
Handler
Jul 7, 2017...阅读全文sendMessage
的message
保存在哪?保存在
MessageQueue
的Message mMessages
成员变量中,通过message
中的next
维护一个单向链表。message
本身一直在java层,和native
的message没有直接操作关系。looper
分发的消息都是通过messagequeue.mMessages
间接获取的。当sendMessage
时,进入messagequeue
的enqueueMessage
方法,部署阿里云
Jun 28, 2017...阅读全文最近搞了台阿里云的服务器,倒腾了半天,现在写点折腾的坑吧。
TCP/IP简单理解
Jun 26, 2017...阅读全文最近把《计算机网络》大致翻了一遍,主要是看了网络层往上的部分,包括网络层,运输层,应用层的一些协议和实现,还有一些网络安全,流媒体服务,无线网络等的介绍。对于应用开发,再往下的数据链路层和物理层也没太大的意义去研究。
Tinker补丁构建走读
May 23, 2017...阅读全文Tinker简单问答
为什么要替换 Application
看上一篇和 Instant Run 的对比,可能考虑不全
- 确保 Multidex 开启
- 保证应用 Application 类可修复
- 7.0 混合编译的影响,要去替换掉原始 PathClassLoader 的加载功能
由View.post引发的问题
May 14, 2017...阅读全文看到记一次错误的使用View.post(Runnable)这篇的时候,自己去实验了一下,当时是在 Activity 的 onDestory 中做的,以为到了 onDestory View 肯定是 Detach 的,结果并不是这样的。。后来发现在 API 24的时候,关于 View.Post 这部分的代码有重写,所有就捋了捋关于这部分的东西,简单记录一下。
Instant-Run与Tinker中Application替换
May 8, 2017...阅读全文- 为什么要替换application
因为5.0以下开始只会去加载第一个dex,如果appliaction不在第一个dex,则无法启动。如果把自己的appliaction放在第一个dex中,而自己的application没有使用multidex,则只会去加载原始加载生成的dex,也是会报错。所以办法就是去代理掉原始的application,将app启动的application设置为这个代理的application,在这个代理的application中可以确保使用multidex功能。
还有因为补丁是在appliaction中加载,这样会导致无法对appliaction的修复,还有因为 Android N 的混合编译的影响 ,Tinker 使用了类似 Instant-run 中 IncrementalClassLoader (具体实现过程还是有差距),新建一个classLoader,去 “替换”掉原始的 PathClassLoader 去加载所有dex。这些都需要在appliaction中进行修改。
Express + React 搭建简易web微博
Mar 2, 2017...阅读全文最近用 React 写了个简单的web微博,因为js的跨域问题,无法直接请求web Weibo的API,所以只能使用Node来中转一下,这样玩法也更丰富,随便处理数据。目前的功能只包括看微博和查看大图。
《深入理解Java虚拟机》笔记
Dec 31, 2016...阅读全文从零撸一个Redux
Dec 25, 2016...阅读全文扯一扯
这段时间在看
Redux
的东西,稍微梳理一下整个框架的流程。其实整个Redux
的代码很少,现在我也不能理解很多它的思想,反正先撸出个简单的Redux
吧。目标是照着它的流程写一个最简单的,也要支持异步Action
。也算是个笔记性的东西。