摘要: 一、常见通信方式梳理进程间常见的通信方式有以下几种:1、Socket:通用接口,传输效率低,主要用在跨网络通信和本机进程间通信,传输过程需要拷贝2次数据;2、共享内存:虽然无需拷贝,但控制复杂;3、Binder:基于C/S模式,只需1次拷贝,安全性高。 不同的通信方式使用场景也不同: Socket: 阅读全文
posted @ 2019-12-21 22:24 星禾 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 一、Linux中的进程管理在Linux中,进程是指处理器上执行的一个实例,可使用任意资源以便完成它的任务,具体的进程管理,是通过“进程描述符”来完成的,对应Linux内核中的task_struct数据结构。进程描述符,包括进程标识、进程的属性、构建进程的资源。一个进程可以通过fork()或者vfor 阅读全文
posted @ 2019-12-18 20:27 星禾 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 一、View组件View组件有几个重要的方法需要关注,也是自定义View经常需要重写的方法。 1、measure作用是测量View组件的尺寸。对应的方法是onMeasure,测量View的宽和高。View和 ViewGroup都有measure方法,但ViewGroup除了测量自身尺寸,还要遍历地调 阅读全文
posted @ 2019-12-14 18:34 星禾 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 1、常见分类 BroadCastReceiver,按注册方式可以分为静态广播接收器和动态广播接收器。 静态广播接收器:不受程序是否启动的约束,当应用程序关闭之后,还是可以接收到广播(一般广播接收器的生命周期是和当前活动的生命周期保持同步)。 动态广播接收器:可以自由的控制注册和取消,有很大的灵活性。 阅读全文
posted @ 2019-12-10 20:19 星禾 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 1、数据访问机制 客户端/调用者通过getContentResolver调用,由ActivityThread、AMS获取到ContentProvider的代理,再通过这个代理对象调用服务端的实现(也即派生类中的自定义方法)。在自定义的ContentProvider中,对数据库的操作是通过SQLite 阅读全文
posted @ 2019-12-10 20:15 星禾 阅读(837) 评论(0) 推荐(0) 编辑
摘要: 一、调用方式 1、启动服务 只启动一个服务,不进行通信,包括startService、startForegroundService两种调用方式。第二种方式适用于后台应用启动前台服务,在启动后的10s内(具体时间由ActiveServices.SERVICE_START_FOREGROUND_TIME 阅读全文
posted @ 2019-12-08 17:57 星禾 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 本文主要分析Activity的启动模式及使用场景。 一、Activity启动模式浅析 1、standard 标准模式,系统默认的启动模式。在启动Activity时,系统总是创建一个新的Activity实例。其缺点是:复用性差、占用内存,当Activity已经在栈顶时,还是会创建实例。 2、singl 阅读全文
posted @ 2019-12-07 20:22 星禾 阅读(171) 评论(0) 推荐(0) 编辑