Android

作者: WilsonMing | 来源:发表于2016-08-24 15:47 被阅读52次

线程间通信

  • 主线程和工作线程


    主线程和工作线程
  • 工作线程与工作线程


    工作线程与工作线程
  • 为什么主线程Looper.loop()一直死循环,为什么没有卡死?
    主要死循环中Looper.loop()中
Message msg = queue.next(); // might block

一直在等待,不占用CPU。

image.png
具体看nativePollOnce函数分析

自定义View

onMeasure()--->onLayout()--->onDraw()

注:除了自绘控件需要搞清楚三个方法(onMeasure, onLayout, onDraw)外其他两个自定义相对比较简单。

  • invalidate()与postInvalidate(),requestLayout()三者区别?
    | | invalidate() | postInvalidate() | requestLayout() |
    | ----- | ----- | ----- | ----- |
    | | 在ui线程执行 | 在工作线程执行 | |
    | | onDraw() | onDraw() | onMeause(),onLayout(),onDraw()|
  • onMeasure()有几种Mode?

有三种模式:
 UNSPECIFIED
  这说明parent没有对child强加任何限制,child可以是它想要的任何尺寸。
 EXACTLY
  Parent为child决定了一个绝对尺寸,child将会被赋予这些边界限制,不管child自己想要多大。
 AT_MOST
  Child可以是自己任意的大小,但是有个绝对尺寸的上限。

事件分发机制

跨进程通信IPC

RPC指的是跨进程远程调用,强调了调用的功能,即一个进程之间调用另外一个进程的方法。
IPC指的是进程间通信,android使用Binder机制来进行进程间的通信,没有调用的功能。

通信方式:

  • Binder机制
  • socket
  • 管道
  • 消息队列
  • 共享内存
  • 信号量

传递数据类型:

  • intent
  • 基本类型
  • 文件共享
  • Content Provider

RPC机制

image.png

Android适配

Android动画

  • Frame Animation(帧动画):按顺序播放事先做好的图像
  • Tween Animation(补间动画):只能对View进行平移,缩放,渐变,旋转
  • Property Animation(属性动画):API11开始引入,基于Object进行属性改变而
    达到动画效果
  • 使用动画场景
    • 转场动画
    • 加载动画
    • 其他动画

Bitmap四种属性

ALPHA_8:每个像素占用1byte内存
ARGB_4444:每个像素占用2byte内存
ARGB_8888:每个像素占用4byte内存 (默认)
RGB_565:每个像素占用2byte内存(没有alpha属性)

Android绘制圆形图片的方法总结

  • 使用Xfermode 相交模式:一般选择这种方式
  • 通过裁剪画布区域实现:边角有锯齿
  • 使用BitmapShader:不适合画太复杂圆,比较耗内存

定义Java注解处理器

Android ListView 与 RecyclerView 对比浅析

  • 使用:ListView默认只支持垂直滚动,定义了比较多通用方法。RecyclerView支持水平和垂直滚动,定义比较多抽象接口具体实现由自己实现,扩展性强。
  • 缓存:ListView二级缓存,一是离开屏幕View加入缓冲池,进入屏幕view复用缓冲池view,二是缓存多种类型view,更换adaper就清空。RecyclerView比ListView多两级缓存四级缓存,另外两个缓存为默认缓存离开屏幕的2个view和多个RecyclerView共用一个缓存池(上限5个))。
  • 缓存本质区别:ListView缓存View,RecyclerView缓存View+ViewHolder+flag

生还是死?Android 进程优先级详解

  • 前台进程
  • 可见进程
  • 服务进程
  • 后台进程
  • 空进程

MVC,MVP,MVVM与架构经验谈

image.png

插件化

参考资料

相关文章

网友评论

      本文标题:Android

      本文链接:https://www.haomeiwen.com/subject/oqhosttx.html