Android事件传递机制
Android事件传递机制
事件传递机制–源码。
处理事件冲突。
Activity 事件分发分别实现OnTouchListener 和 OnClickListener
OnTouchListener
OnClickListener
View的事件分发View的相关事件只有两个:dispatchTouchEvent、onTouchEvent。
先执行 dispatchTouchEvent()
再执行OnTouchEvent
123456789/** * View * @param ev * @return */public boolean dispatchTouchEvent(MotionEvent ev){ ....//其他处理,在此不管 return onTouchEvent(event); }
一般情况下,我们不该在普通View内重写dispatchTouchEvent方法,因为它并不执行分发逻辑。当Touch事件到达View时,我们该做的就是是否在onTouchEv ...
Android电量优化
电量优化如何写出耗电量低的应用。
Android下UI绘制流程
Android UI绘制流程
Activity.java setContentView()
phoneWindow
DecorView
measure layout draw 三个执行流程
Android沉浸式效果实现
Android 沉浸式效果实现
官方的沉浸式Translucent:就是让整个APP沉浸(充斥了整个屏幕)在屏幕里面,没有显示状态栏,甚至没有显示底部导航栏。
大家所说的沉浸式:比如QQ的顶部Toolbar和状态栏成一体的颜色。
兼容开发
API 5.0+ (5.0+自动实现沉浸式效果,状态栏的颜色跟随你的主题里面的 colorPrimaryDark 属性。)
API 4.4(kitkat)
java虚拟机运行时三种内存分配策略
java虚拟机运行时三种内存分配策略
静态
栈
堆
05_Android下多渠道打包实现
#Android下多渠道打包实现
Android多渠道打包(一):基础多渠道打包 Android多渠道打包(二):友盟多渠道打包Android多渠道打包(三):美团多渠道打包Android多渠道打包(四):360多渠道打包Android多渠道打包(五):360多渠道打包+Android多渠道打包(六):maven&gradleAndroid多渠道打包(七):系列总结及展望
Android下APK是如何打包的
Android下APK打包流程概述
打包资源文件,生成R.java文件
处理AIDL文件,生成相应的java文件
编译工程源代码,生成相应的class文件
转换所有class文件,生成class.dex文件
打包生成apk
对apk文件进行签名
对签名后的apk文件进行对齐处理
参考链接Apk打包过程概述_android是如何打包apk的
AndroidStudio多渠道打包
下一代Android打包工具,100个渠道包只需要10秒钟
Android开发进阶
#Android开发进阶
熟悉java语言
理解并发
理解分布式系统
Android的基本架构 描述并画出
理解基本的Dalvik和ART 虚拟机
Android进程间通信原理
进程和应用生命周期
Android视图UI系统
Android发布开源库到JitPack、jCenter
Android下如何发布开源库到JitPack、jCenterJitPack、jCenter 都是我们常用的发布Android开源库的网站,下面介绍如何在不同平台下进行开源库的发布。
具体参见 Android下如何发布开源库到JitPack、jCenter
发布到 JitPack
准备好需要发布的项目和开源库,并上传到github。(注意:上传到JitPack的开源库默认使用项目的名称,而不是要发布的开源库名称。)
添加maven依赖插件 android-maven-gradle-plugin
在待上传的lib模块下的build.gralde文件添加如下代码:
1234// JitPack Mavenapply plugin: 'com.github.dcendents.android-maven'// Your Groupgroup='com.github.username'
(注意:文件修改后 commit and push 代码至github。)
打开项目的github主页,创建一个Rele ...
RxJava1.0 vs RxJava2.0
1. RxJava1.0RxJava核心– 链式编程,响应式编程是RxJava 设计的初衷,核心设计模式是观察者模式。
2. RxJava2.02.0 版本中出现了两种观察者模式:
Observable(被观察者) / Observer(观察者)
Flowable(被观察者) / Subscriber(观察者)
Observable用于订阅Observer是不支持背压的,而Flowable用于订阅Subscriber 是支持背压的。
什么是背压背压是指在异步场景中,被观察者发送事件速度远快于观察者的处理速度的情况下,一种告诉上游的被观察者降低发送速度的策略。
简而言之,背压是流速控制的一种策略。
背压需要强调两点:
(异步环境)背压策略的一个前提是异步环境,即被观察者和观察者处在不同的线程环境中。
(控制事件流速)背压(BackPressure)并不是一个像flatMap一样可以做程序中直接使用的操作符,他只是一种控制事件流速的策略。
流速控制相关的操作符
过滤(抛弃)sample,ThrottleFirst
缓存 buffer,window…
两个特殊操作符onB ...