Android
文章平均质量分 89
Android
不二周同学
原来你是我最想留住的幸运
展开
-
Activity启动流程
为了简化理解难度,本文代码进行了简化处理。代码以API26为准。目录二、LauncherActivity三、Activity四、Instrumentation五、ActivityManagerService六、ActivityStarter七、ActivityStackSupervisor八、ActivityStack九、ActivityStackSupervisor十、ActivityManagerService十一、Process十二、ZygotePro.原创 2018-02-03 11:02:56 · 3381 阅读 · 0 评论 -
Android 自定义gradle插件并上传到本地maven
目录1、新建Android项目2、新建Module3、在Module下面建立两个文件3.1、建立UploadApkPlugin.groovy和UploadApkPlugin.properties两个文件。3.2、UploadApkPlugin.groovy代码3.3、UploadApkPlugin.properties代码4、修改插件项目的build.gradle文件,生成插件jar包。5、引入本地maven库6、引入插件7、查看是否引入成功直接上实现过程1.原创 2019-10-27 16:22:36 · 284 阅读 · 0 评论 -
RxJava
一、RxJava总结(一)RxJava简单介绍RxJava基于观察者模式,创建被观察者并生产事件(数据);创建观察者Observer,并定义响应事件(数据)的行为;通过Subscribe订阅方法连接观察者和被观察者。当产生数据后,观察者或获得数据的响应。(二)RxJava核心思想1、观察者模式RxJava基于观察者模式,将观察者和被观察者解耦。2、模板方法模式一、Observable的subscribe方法1)Observable是抽象父类,基于模板方法模式。在Observ.原创 2018-07-19 09:58:54 · 560 阅读 · 0 评论 -
Android打包过程
一、Android打包过程简述首先使用AAPT工具将资源文件编译为R.java文件,使用AIDL工具将所有aidl文件生成相应的java文件。使用javac把项目中所有java文件比如R.java文件、aidl生成的java文件和java代码编译成class文件。然后使用dex工具将所有class文件转换成Dalivk可执行的dex文件,使用ApkBuilder将所有文件打包生成未签名的APK文件。对apk文件进行签名,使用ZipAlign优化apk文件,减少apk在设备上的运行内存。二、Apk各.原创 2018-01-11 14:17:17 · 2434 阅读 · 1 评论 -
Glide
????周鑫一、Glide总结Glide加载流程可以分三步步骤一、Glide.with1、调用Glide.with方法获得RequestManager实例。这一步主要实例化glide,并对glide一些参数进行初始化和解析我们自定义GlideModule。其次就是管理glide请求。With有多个重载方法,可以使用context、Activity、Fragment。如果是ApplicationContext,那么会返回单例RequestManager。如果是Activity或Fragment,会创原创 2017-07-24 11:52:22 · 354 阅读 · 0 评论 -
LeakCanary
一、总结[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPzeaHgC-1611411403417)(https://uploader.shimo.im/f/V9gp69g4D0TNV3Oc.png!thumbnail?fileGuid=Pk8VCdxhDKv8qkKh)]总结:1、在LeakCanary初始化的方法中,我们调用了application的registerActivityLifecycleCallbacks方法,在这里面可以监听到activity的生命周期原创 2017-06-20 10:20:31 · 322 阅读 · 0 评论 -
EventBus.
一、EvenntBus总结1、注册1)通过getDefault获得EvenntBus的单例,在这里面主要做了对象的初始化。主要是subscriptionsByEventType,这是map集合。key是eventType事件类型。value是Subscription集合。Subscription是订阅信息对象,里面存储了 subscriber订阅者和SubscriberMethod。SubscriberMethod里面有method、threadMode、eventType、priority、stic原创 2017-06-12 17:36:46 · 556 阅读 · 0 评论 -
Retrofit
一、Retrofit请求流程1、创建网络请求接口,定义请求数据方法定义请求网络数据的方法,用注解的方式声明网络请求的方法和参数。这些方法和参数会在RequestFactory的build方法中去解析,将解析获得的数据会存储到RequestFactory的对象中。这些数据用来创建Okhttp的request请求。2、创建retrofit1)用建造者模式创建Retrofit对象,建造者模式的作用是将复杂对象的构建与表示分离,帮助用户在不需要了解创建对象细节的情况下,依然可以创建复杂的对象。2)在Ret原创 2017-06-09 14:44:28 · 288 阅读 · 0 评论 -
OKHttp源码解析
一、总结一、网络请求流程OkHttp分同步网络请求和异步网络请求。第一步:通过建造者模式来创建OkHttpClient对象。会创建默认的参数。我们也可以在这里传入自己配置的构建参数,比如设置超时时间、自定义拦截器、❌创建OkHttpClient客户端对象,OkHttpClient通过建造者模式来封装OkHttpClient初始化需要的参数,主要进行了dispatcher、connectionPool(连接池)等创建。❌第二步:通过建造者模式创建了Request,这这里面主要封装了。创建.原创 2017-05-17 10:57:24 · 423 阅读 · 0 评论 -
Android 动画
目录一:动画简介1、动画分类2、补间动画和属性动画的区别(1)补间动画(2)属性动画3、ValueAnimator类和ObjectAnimator区别4、使用动画的注意事项:五、插值器和估值器二:帧动画:FrameAnimation1、帧动画定义2、帧动画使用(1)将动画资源放到 drawable文件夹里(2)设置 & 启动动画步骤1:创建帧动画xml文件步骤2:使用动画三:补间动画:TweenAnimation1、补间动画定义.原创 2018-05-11 17:25:45 · 420 阅读 · 0 评论 -
Android进程间通信之AIDL
IPC是Inter-Process Communication的缩写,含义为进程间通信或跨进程通信,是指两个进程之间进行数据交互的过程。这里介绍AIDL来进行进程间通信的流程,分为服务端和客户端两个方面。 一:服务端 1.1:创建一个Service来监听客户端的连接请求; 1.2:创建一个AIDL文件,将暴露给客户端调用的接口在这个AIDL文件声明; 1.3:最后,在Service中实现这...原创 2017-05-02 13:48:34 · 1506 阅读 · 0 评论 -
Android5.0新特性之MaterialDesign
MaterialDesign英文官方文档:http://www.google.com/design/spec/material-design/MaterialDesign极客学院文档:http://wiki.jikexueyuan.com/project/material-design/谷歌在推出Android5.0之际,推出全新的Android Design Support Library。现在,咱们介绍一下常用的Material Design设计风格的控件,本文主要讲解一下几个方面的内容;1.使用原创 2017-04-24 16:48:04 · 1812 阅读 · 0 评论 -
Android自定义view
一:简单自定义View示例 (1):在values目录下创建自定义属性的XML,比如attrs.xml;注意:这个文件名没有什么限制,可以随便取名字;本文是在values目录下的attrs.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CircleImageView"> <attr name="circle_col...原创 2017-04-11 14:06:28 · 1512 阅读 · 0 评论 -
View基础知识总结
目录一、自定义View分类二、View的绘制流程三、onMeasure(1)onMeasure方法简介(2)MeasureSpec简介(3)getMeasuredWidth()与getWidth()区别(4)获取子控件margin方法三、onLayout四、View的位置参数五、View的滑动六、自定义view滑动冲突1.外部拦截法七、Paint常用方法八、Canvas1、常用的基本方法2、 drawPath绘制路径(1)直线路径.原创 2017-04-11 09:19:17 · 3905 阅读 · 0 评论 -
Android中Handler运行机制
Android消息机制主要是指Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程。Handler的运行需要底层的MessageQueue和Looper作为支撑。一:消息机制简要概括Handler通过sendMessage()发送Message到MessageQueue队列,通过MessageQueue.enqueueMessage()方法把消...原创 2017-04-05 11:21:06 · 2007 阅读 · 0 评论 -
Android WebView使用简介
本文目录1.加载不同url的webview的方式2.对返回键的监听,实现网页后退3.如何防止WebView内存泄漏4.WebSetting-对WebView进行配置和管理5.Android调用js6.js调用Android7.WebView的优化源码见文末一:加载WebView(1)加载一个网页 webView.loadUrl("https://www.baidu.com/");(2)加载app包中的本地html页面 webView.loadUrl("file:///andro原创 2017-04-21 14:12:29 · 683 阅读 · 0 评论 -
Android 自定义gradle插件并上传到github
文章目录1、新建Android项目2、新建Module3、在Module下面建立两个文件3.1、建立UploadApkPlugin.groovy和UploadApkPlugin.properties两个文件。3.2、UploadApkPlugin.groovy代码3.3、UploadApkPlugin.properties代码4、 在 Android Studio 里面配置 Jitpack 插件5、修改插件项目的build.gradle文件6、上传项目到github(1)新建 repository(2)登录原创 2019-11-02 09:59:35 · 711 阅读 · 1 评论 -
内存管理和内存泄漏
文章目录一、内存管理1、Java内存分配策略2、Java内存管理3、可达性分析4、四种引用二、内存泄漏1、什么是内存泄漏2、常见的内存泄漏1)资源对象未关闭2)单例造成的内存泄漏3)Handler 造成的内存泄漏4)非静态内部类创建静态实例造成的内存泄漏一、内部类和静态内部类二、为什么静态内部类不会持有外部类的引用?三、静态内部类什么时候被回收呢?5)匿名内部类一、内存管理1、Java内存分配策略Java程序运行时的内存分配策略有三种。静态方法区:主要存放静态static数据和常量。这块内存在程序编原创 2019-11-02 09:53:12 · 436 阅读 · 0 评论 -
Android事件分发机制
目录一、事件分发简介二、事件分发流程:三、示例讲解一、触摸事件->Activity二、MyConstraintLayout继承自ConstraintLayout三、MyTextView继承自TextView,继承自view的是不需要重写onInterceptTouchEvent四、onTouchEvent方法的处理一、关于OnTouchListener二、关于onTouchEvent三、关于OnClickListener五、Activity的dispatc.原创 2017-04-05 11:10:49 · 1750 阅读 · 0 评论