Android
wangzhibo666
这个作者很懒,什么都没留下…
展开
-
从源码角度分析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 · 2704 阅读 · 0 评论 -
深度解析Android Context、ContextImpl、ContextWrapper 是什么?
Activity、Service、Application都是集成自ContextWrapper,Activity集成自ContextThemeWrapper,Activity是有主题的,然后ContextWrapper里面有一个mBase成员变量,所以ContextWrapper是mBase的代理,然后mBase成员变量其实是ContextImpl。Context是上下文抽象类,Contex...原创 2019-02-19 11:55:05 · 2280 阅读 · 0 评论 -
Android 四大组件使用及源码分析
要点提炼|开发艺术之四大组件 完整Android学习路径 请戳我的Android学习之旅(持续更新中...)原创 2019-02-19 14:37:40 · 496 阅读 · 0 评论 -
ActivityManagerService分析——AMS启动流程
ActivityManagerService分析——AMS启动流程 完整Android学习路径 请戳我的Android学习之旅(持续更新中...)原创 2019-02-19 15:00:12 · 264 阅读 · 0 评论 -
什么是SurfaceView?和View有什么区别?Android里面什么地方用到了SurfaceView?
参考:SurfaceView学习笔记->什么是SurfaceViewAndroid SurfaceView入门学习原创 2019-02-25 11:56:58 · 451 阅读 · 0 评论 -
Android MVP架构理解与主流框架
前言引用sanji2020的话读了很多MVC MVP MVVP的文章,觉得最好的一篇还是这一篇,读完之后理解的很透彻,后有根据Github上GeekNew项目。Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide 基本涵盖了当前Android端开发最常用的主流框架,之后根据自己的思路整理了一份思维导图(仅限参...原创 2019-03-01 17:33:03 · 250 阅读 · 0 评论 -
Android性能优化总结
启动优化区分进程,子线程异步初始化资源,服务懒加载(按需加载)sharepreference commit是阻塞的api,用applysp如果过大,做拆分操作asset读取资源异步化service初始化后延绘制优化参考:Android性能优化:那些不可忽略的绘制优化...原创 2019-02-26 03:01:52 · 126 阅读 · 0 评论 -
如何使用webView的JsCore?
需求我有一个需求是找到JsCore上下文来运行我们的es6代码,调研了很多在android平台的项目,比如LiquidCore,是一个基于node,调用V8指令集的封装成JsCore接口的项目,发现jscore的so包需要27M。weex:发现它的jni代码里面有自己的逻辑,没有直接的代码能够提供js解析给我用。解决方案:修改weex的jni源代码,自己打so包。(未验证)这里我想到了用w...原创 2019-02-20 17:53:20 · 749 阅读 · 0 评论 -
RxJava学习笔记、思维导图
前言什么是RxJava?RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.这是github地址的解释,RxJava是使用观察者队列的异步事件流链...原创 2019-02-26 17:38:38 · 383 阅读 · 0 评论 -
Android架构学习之google sample android-architecture
前言Android的架构,MVC、MVP、MVVM这些你一定听说过。网上的文章也有很多讲解MVC、MVP、MVVM的,但是还是很晦涩。这里我们可以看Google官网的应用架构指南,然后还有Google团队出的 Android架构样例 googlesamples/android-architecture。...原创 2019-02-26 18:35:03 · 461 阅读 · 0 评论 -
Android面试和知识点文章mark
Android面试Android 校招面试指南 春招收获阿里腾讯实习offer,学习、面试经验分享18年底Android面经分享(已获头条、顺丰、OPPO等大厂offer)Android 面试指南AndroidInterview-Q-AAndroid LearningNotes Android 面试 https://www.jianshu.com/p/089861329c1a...原创 2019-02-27 01:49:43 · 246 阅读 · 0 评论 -
Android面试---通过ScrollView滑动讲解OverScroller、Scroller原理
前言试想一下,我们希望 ScrollView 平滑滚动的操作时候,是怎么实现的呢?我们可以猜想下,当我们的调用 smoothScrollBy(int dx, int dy) 的时候,ScrollView 是怎么就能实现平滑移动的呢?smoothScrollBy执行过程在MotionEvent.ACTION_UP事件触发时调用startScroll()方法,该方法并没有进行实际的滑动操作,而...原创 2019-02-27 00:48:31 · 1260 阅读 · 1 评论 -
JVM、Dalvik以及ART的区别
简介JVMjava虚拟机,解析并运行字节码。DalvikAndroid平台的虚拟机,支持运行dex文件。.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统ARTART代表AndroidRuntime,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)预编译。在移除解释代码这一过程后,应用程序执行将更有效率,启...原创 2019-03-10 14:59:33 · 414 阅读 · 0 评论 -
Scroller startScroll() fling() 参数详解
fling()/** * Start scrolling based on a fling gesture. The distance travelled will * depend on the initial velocity of the fling. * * @param startX Starting point of the scroll (...原创 2019-03-20 15:46:48 · 1295 阅读 · 0 评论 -
Glide源码阅读随笔md
图片加载最重要的是几点,1.图片的缓存 2.网络请求模型和生命周期的联动Glide如何实现Activity和Application生命周期的联动的?参考:Glide官方文档Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程...原创 2019-03-13 11:53:17 · 132 阅读 · 0 评论 -
Android----EventBus原理及封装-开发利器
1. 前言1.1 什么是EventBus?github地址 : https://github.com/greenrobot/EventBus1.2 怎么使用?可以看到官网已经给了解释。定义一个Event类准备一个订阅者(声明并且注解一个方法),指定一下线程模型在生命周期中注册和解绑订阅者发送第1步定义的事件2. EventBus原理剖析这是官网的流程图,从左往右看可...原创 2019-02-27 23:12:52 · 723 阅读 · 0 评论 -
我的Android学习之旅(持续更新中...)
为什么写这个博客?楼主写这个博客是为了把平时学习中、开发中遇到的一些重要的问题记录下来,然后可以分享给其他人,大家一起学习。楼主也是从初学者开始学习Android,博客中文章从初学者到进阶原理的讲解都有涵盖,同时为了摆脱枯燥的代码讲解,楼主把代码统一提交到了github:https://github.com/samwangzhibo/LoveStudy(不会使用github导入代码的同学...原创 2019-01-25 16:36:08 · 1203 阅读 · 0 评论 -
我的Android事件分发私房菜
这篇主要是分成2部分,一部分是Android事件的来源,一部分是事件是怎么在父View和子View中传递的。【转载请注明出处:我的Android事件分发私房菜 CSDN 王智博】正片 参考Android中MotionEvent的来源和ViewRootImplAndroid事件分发机制——ViewRootImpl篇(前传)...原创 2019-01-25 16:50:36 · 139 阅读 · 0 评论 -
5分钟告诉你,Activity的视图绘制流程(onMeasure、onLayout、onDraw的调用和参数解释)
本篇主要面对有一定Android基础的同学,但是Android初学者的话,也不要急。在网上可以看到很多文章,会告诉你onMeaure是什么?里面的参数是什么意思?会教你怎么获取MeaSpec的size和mode(Unspecified、Exactly、AtMost)。也会告诉你怎么重写 onLayout,怎么使用layout方法去布局子元素,怎么实现流式布局,自动换行。还有会告诉你重写onDraw...原创 2019-01-26 13:58:18 · 2470 阅读 · 0 评论 -
基于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 评论 -
走进源码pipe、epoll,Android面试最常见Handler、Looper、Message问题总结与解答
【转载请注明出处:走进源码,Android面试最常见Handler、Looper、Message问题总结与解答CSDN王智博】今天楼主以面试的角度,走进源码,去探索Handler、Handler、Looper、Message的奥秘。随着各种网络框架的普及,线程之间的通信再也不需要我们手动的创建Handler,然后handleMessage了,但是当我们想要创建一个主线程延时任务的时候,...原创 2019-01-16 22:25:20 · 3454 阅读 · 5 评论 -
最简单的Handler、Looper、Message使用指南一(附github源码)
前言什么是子线程?什么是主线程?为什么需要使用Handler?子线程和主线程怎么通信?主线程是我们程序进程在创建的时候,调用ActivityThread的main入口,Looper.prepareMainLooper创建消息队列,接受activity 、window等消息,包括视图渲染。我们知道Android的界面绘制是1秒钟60帧,也就是1000/60=16ms绘画一帧,如果我们有一...原创 2019-01-16 23:45:03 · 634 阅读 · 0 评论 -
github Android代码下载并导入工程(android studio)
前言github是一个存放众多开源项目的平台,对于我们android开发来说,看别人的代码是学习的最好方式。前面的文章我已经写了一个Handler、Looper、Message的最简单使用文章(附源码),这篇文章我针对这个项目来讲一下,对于新手来说怎么使用github这个平台来下载代码,学习知识提升自己第一步我们点开github地址 https://github.com/samwa...原创 2019-01-17 00:22:58 · 2835 阅读 · 0 评论 -
最简单的Activity、Service通信指南一(进程内通信)(附github源码)
本篇是要介绍activity和service的通信的使用,通过一个小例子实现了activity获取service的数据并展示。我们知道activity和service(默认)都是在一个进程和主线程里面,这篇主要是介绍同一进程的activity和service的通信。聪明的你肯定知道了不同进程的activity和service的通信实现会有差别。【转载请注明出处:最简单的Activity、S...原创 2019-01-23 14:33:42 · 664 阅读 · 0 评论 -
最简单的Activity、Service进程间 AIDL通信指南二(附github源码)
前言上篇文章最简单的Activity、Service使用、通信指南一(进程内通信)(附github源码)最后提到,如果把Service设置为其他进程,那么我们使用自定义binder的方式返回的binder对象并不是我们自定义的binder对象,那样强制转换就报错误了。那么为什么同一进程返回的是自定义binder对象,而跨进程返回的却不是自定义binder对象?BinderProxy是什么东...原创 2019-01-23 15:54:53 · 479 阅读 · 0 评论 -
Weex原理解析
前言:weex是阿里出的一款跨端的开发框架,今日我开发功能需要使用到jscore,调研了github的开源项目LiquidCore,因为其项目依赖node.so,即使我只打arm_v7a的包,也需要7M,这对我们的app来说还是太大了。又因为我们项目已经使用了weex,那么我就在想能不能直接使用weex的jscore呢?能调用,但是太依赖于weex了。所以这篇还是来分析weex的原理吧。...原创 2019-01-29 21:43:33 · 2571 阅读 · 0 评论 -
一篇文章看明白 Android 图形系统 Surface 与 SurfaceFlinger 之间的关系
Android - SurfaceFlinger 图形系统相关系列一篇文章看明白 Android 系统启动时都干了什么一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 一篇文章看明白 Android 从点击应用图标到界面显示的过程 一篇文章看明白 Activity 与 Window 与 View 之间的关系 一篇文章看明白 Android 图形系统 Surfac...转载 2019-02-21 17:28:37 · 746 阅读 · 0 评论 -
Android面试---ListView原理及fling分析
为了节约你的时间,上面的图是整个文章的最终图,包括了以下部分问题的答案。目录1.为什么需要使用Adapter?RecycleBin是什么?2.ListView的绘制过程是怎样的?3.ListView的回收机制是怎么样的?为什么可以显示100个View而不崩呢?4.ListView里面的观察者模式是什么?5.惯性滑动(fling)是怎么实现的?0.基本使用获...原创 2019-02-15 17:19:57 · 1741 阅读 · 0 评论 -
我终于找到一篇“Java层的ServiceManager和Native层的ServiceManager关系”的文章
我终于找到一篇“Java层的ServiceManager和Native层的ServiceManager关系”的文章转载 2019-02-21 16:43:43 · 942 阅读 · 0 评论 -
Android四大组件之Service的启动过程
过程概述1.客户端请求bindService,先会请求ActivityManagerService;2.ActvityManagerService再去找到对应的Service,让Service所在进程创建并启动Service;3.Service调用AMS.publishService()将Binder对象传递给AMS;4.AMS拿到的Binder对象同样为BinderProxy对象,然后...原创 2019-02-21 19:23:57 · 295 阅读 · 0 评论