Android知识点(一)

本文深入探讨了Android中的进程间通信(IPC)机制,包括使用Intent、文件共享、Messenger、AIDL、ContentProvider和Socket等多种方式。同时,详细解析了View的触摸事件处理,如MotionEvent的不同状态及其坐标系,以及TouchSlop、VelocityTracker、GestureDetector和Scroller等组件在提升用户体验中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.IPC

Inter-Process Communication ,含义:为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。
指定android:process属性,然后编译运行,从而使其运行在一个独立的进程中。但是多进程并不是这么简单的,

多进程会造成以下问题:

  • 静态成员和单例模式会失效
  • 线程同步机制完全失效
  • SharePreferences的可靠性下降
  • Application会多次创建

系统创建新的进程肯定会分配独立的虚拟机,这个过程其实就是启动一个应用的过程,所以就重新启动,创建一个新的AppLication。=====》》》跨进程通信,比如通过Intent来传递数据,共享文件和SharedPreferences,基于Binder和Messager和AIDL以及socket

Android中的IPC方式:

  • 使用Bundle
  • 使用文件共享
  • 使用Messenger
  • 使用AIDL
  • 使用ContentProvider
  • 使用Socket
2.View
MotionEvent
  • ACTION_DOWN 手指刚接触屏幕
  • ACTION_MOVE 手指在屏幕上移动
  • ACTION_UP 手指离开屏幕的一瞬间

通过MotionEvent对象我们可以得到点击事件发生的x坐标,y坐标。getX/getY返回的是
相对于当前View左上角x和y的坐标。getRawX/getRawY返回的是相对于手机屏幕左上角的x坐标和y坐标。

TouchSlop

系统所能识别的被认为是滑动的最小距离。当手指在屏幕上滑动时,如果两次滑动之间的距离小于这个变量,呢么系统就不认为你是在进行滑动操作。原因就是滑动的距离太短,系统不认为这个是滑动。ViewConfiguration.get(getContext()).getScaledTouchSlop()。在处理滑动的时候可以跟这个参数相比,做一些处理,可以有更好的用户体验。

VelocityTracker GestureDetector Scroller
  • VelocityTracker 追踪速度,用于追踪手指在滑动过程中得速度,包括水平速度和竖直速度,
VelocityTracker x=VelocityTracker.obtain();
x.addMovement(event);
//获取当前速度 在1000ms内滑动距离的像素数
x.computeCurrentVelocity(1000);
int xVelocity=(int)x.getXVelocity();
int yVelocity=(int)x.getYVelocity();

速度=(终点位置-起点位置)/时间段

//当不需要的时候 需要调用clear方法来重置并回收内存:
x.clear();
x.recycle();
  • GestureDetector
    手势测量,辅助检测用户的单击、滑动、长按、双击等行为。
GestureDetector mGestureDetector = new GestureDetector(this);
//解决长按屏幕后无法拖动的现象
mGestureDetector.setIsLongpressEnabled(false);

onSigleTapUp(单击)、onFling(快速滑动)、onScroll(拖动)、onLongPress(长按)和onDoubleTap(双击)。如果监听滑动相关的建议自己在onTouchEvent中实现,如果要监听双击这种行为的话,呢么使用GestureDetector。

  • Scroller
    弹性滑动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值