- 博客(13)
- 收藏
- 关注
原创 在Android中你用过动态代理吗?Java动态代理原理解析(附github源码)
前言如果我们是做SDK开发,最常用的架构就是MVC。在MVC中,我们经常会提供给外部C,用于让外部调用我们SDK暴露的功能。如果我们的V,要添加一个按钮,或者V的视图滑动事件,要提供给C去暴露出去,V和C基本要同时写2个方法,比如addButton(Button btn)。这个时候我们发现问题了,每次我们要去提供V、M的功能暴露出去,就要同时去C里面实现一个方法。那有没有一个方法能够让V、...
2019-01-28 14:43:32 1056
原创 基于AIDL的 Activity、Service跨进程观察者模式实现与源码解读(附github源码)
前言上篇文章最简单的Activity、Service使用、通信指南二(AIDL进程间通信)(附github源码),介绍了怎么使用AIDL文件,实现在跨进程环境下,Activity获取Service中每秒递增的num并展示的过程,并简单讲解了下AIDL文件的构成(Stub,Proxy),并留下了3个问题。1.这个Stub.Proxy何许人也?为啥能够和远端Binder通信?2.为啥同进程...
2019-01-27 17:56:25 1026 2
原创 5分钟告诉你,Activity的视图绘制流程(onMeasure、onLayout、onDraw的调用和参数解释)
本篇主要面对有一定Android基础的同学,但是Android初学者的话,也不要急。在网上可以看到很多文章,会告诉你onMeaure是什么?里面的参数是什么意思?会教你怎么获取MeaSpec的size和mode(Unspecified、Exactly、AtMost)。也会告诉你怎么重写 onLayout,怎么使用layout方法去布局子元素,怎么实现流式布局,自动换行。还有会告诉你重写onDraw...
2019-01-26 13:58:18 2470
原创 我的Android学习之旅(持续更新中...)
为什么写这个博客?楼主写这个博客是为了把平时学习中、开发中遇到的一些重要的问题记录下来,然后可以分享给其他人,大家一起学习。楼主也是从初学者开始学习Android,博客中文章从初学者到进阶原理的讲解都有涵盖,同时为了摆脱枯燥的代码讲解,楼主把代码统一提交到了github:https://github.com/samwangzhibo/LoveStudy(不会使用github导入代码的同学...
2019-01-25 16:36:08 1204
原创 从源码角度分析Activity的生命周期时序怎么触发的(onCreate onStart onResume onPause onStop onDestroy)(附测试代码)
【转载请注明出处:5分钟告诉你,Activity的生命周期怎么触发的(onCreate onStart onResume onPause onStop onDestroy)(附测试代码) CSDN 王智博】前言试想一下,如果从Activity A 跳转到Activity B,A和B的生命周期分别是怎么过的?我们初学Android时候都接触过声明周期,当时给的解释是,onCreate是A...
2019-01-25 16:00:25 2705
原创 走进源码pipe、epoll,Android面试最常见Handler、Looper、Message问题总结与解答
【转载请注明出处:走进源码,Android面试最常见Handler、Looper、Message问题总结与解答CSDN王智博】今天楼主以面试的角度,走进源码,去探索Handler、Handler、Looper、Message的奥秘。随着各种网络框架的普及,线程之间的通信再也不需要我们手动的创建Handler,然后handleMessage了,但是当我们想要创建一个主线程延时任务的时候,...
2019-01-16 22:25:20 3457 5
原创 Weex原理解析
前言:weex是阿里出的一款跨端的开发框架,今日我开发功能需要使用到jscore,调研了github的开源项目LiquidCore,因为其项目依赖node.so,即使我只打arm_v7a的包,也需要7M,这对我们的app来说还是太大了。又因为我们项目已经使用了weex,那么我就在想能不能直接使用weex的jscore呢?能调用,但是太依赖于weex了。所以这篇还是来分析weex的原理吧。...
2019-01-29 21:43:33 2574
原创 你真的知道onClick是如何触发的吗?onTouch又是什么?
前言:占坑中。。。 完整Android学习路径 请戳我的Android学习之旅(持续更新中...)从源码角度分析Activity的生命周期怎么触发的(onCreate onStart onResume onPause onStop onDestroy)(附测试代码)基于AIDL的 Activity、Service跨进程观察者模式实现与源码解读走进源码,A...
2019-01-26 17:21:41 564
原创 我的Android事件分发私房菜
这篇主要是分成2部分,一部分是Android事件的来源,一部分是事件是怎么在父View和子View中传递的。【转载请注明出处:我的Android事件分发私房菜 CSDN 王智博】正片 参考Android中MotionEvent的来源和ViewRootImplAndroid事件分发机制——ViewRootImpl篇(前传)...
2019-01-25 16:50:36 139
原创 最简单的Activity、Service进程间 AIDL通信指南二(附github源码)
前言上篇文章最简单的Activity、Service使用、通信指南一(进程内通信)(附github源码)最后提到,如果把Service设置为其他进程,那么我们使用自定义binder的方式返回的binder对象并不是我们自定义的binder对象,那样强制转换就报错误了。那么为什么同一进程返回的是自定义binder对象,而跨进程返回的却不是自定义binder对象?BinderProxy是什么东...
2019-01-23 15:54:53 479
原创 最简单的Activity、Service通信指南一(进程内通信)(附github源码)
本篇是要介绍activity和service的通信的使用,通过一个小例子实现了activity获取service的数据并展示。我们知道activity和service(默认)都是在一个进程和主线程里面,这篇主要是介绍同一进程的activity和service的通信。聪明的你肯定知道了不同进程的activity和service的通信实现会有差别。【转载请注明出处:最简单的Activity、S...
2019-01-23 14:33:42 665
原创 github Android代码下载并导入工程(android studio)
前言github是一个存放众多开源项目的平台,对于我们android开发来说,看别人的代码是学习的最好方式。前面的文章我已经写了一个Handler、Looper、Message的最简单使用文章(附源码),这篇文章我针对这个项目来讲一下,对于新手来说怎么使用github这个平台来下载代码,学习知识提升自己第一步我们点开github地址 https://github.com/samwa...
2019-01-17 00:22:58 2835
原创 最简单的Handler、Looper、Message使用指南一(附github源码)
前言什么是子线程?什么是主线程?为什么需要使用Handler?子线程和主线程怎么通信?主线程是我们程序进程在创建的时候,调用ActivityThread的main入口,Looper.prepareMainLooper创建消息队列,接受activity 、window等消息,包括视图渲染。我们知道Android的界面绘制是1秒钟60帧,也就是1000/60=16ms绘画一帧,如果我们有一...
2019-01-16 23:45:03 634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人