首页 >> 大全

Android学习指南 — Android基础知识汇总,移动开发入门书籍

2024-01-10 大全 39 作者:考证青年

主要用于实现一些不规则的效果,静态或者动态地显示一些不规则的图形,即重写方法。采用这种方式需要自己支持 ,并且 也需要自己处理。

主要用于实现自定义布局,采用这种方式需要合适地处理 的测量、布局两个过程,并同时处理子元素的测量和布局过程。

用于扩张某种已有的View的功能

用于扩张某种已有的的功能

进程

==

进程() 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

当某个应用组件启动且该应用没有运行其他任何组件时, 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。

各类组件元素的清单文件条目、、和

—均支持 : 属性,此属性可以指定该组件应在哪个进程运行。

进程生命周期

1、前台进程

2、可见进程

3、服务进程

4、后台进程

5、空进程

多进程

如果注册的四大组件中的任意一个组件时用到了多进程,运行该组件时,都会创建一个新的 对象。对于多进程重复创建 这种情况,只需要在该类中对当前进程加以判断即可。

class {

@

void () {

Log.d(“”, (.os..myPid()));

super.();

/**

*/

(int pid){

am = ()(.);

List = am.es();

if ( == null) {

null;

for (.o : ) {

if (.pid == pid) {

.;

null;

一般来说,使用多进程会造成以下几个方面的问题:

进程存活

| ADJ级别 | 取值 | 解释 |

| — | — | — |

| | 16 | 一般指将要会缓存进程,无法获取确定值 |

| | 15 | 不可见进程的adj最大值 |

| | 9 | 不可见进程的adj最小值 |

| | 8 | B List 中的 (较老的、使用可能性更小) |

| | 7 | 上一个App的进程(往往通过按返回键) |

| | 6 | Home进程 |

| | 5 | 服务进程( ) |

| | 4 | 后台的重量级进程,//init.rc 文件中设置 |

| | 3 | 备份进程 |

| | 2 | 可感知进程,比如后台音乐播放 |

| | 1 | 可见进程( ) |

| | 0 | 前台进程( ) |

| DJ | -11 | 关联着系统或进程 |

| | -12 | 系统 进程,比如 |

| | -16 | 系统进程 |

| | -17 | 进程(不被系统管理) |

进程被杀情况

进程保活方案

接口

=============

只要实现了 接口,一个类的对象就可以实现序列化并可以通过 和 传递。

使用示例

.os.;

.os.;

class User {

int ;

User( in) {

= in.();

final = new () {

@

User ( in) {

new User(in);

@

User[] (int size) {

_移动书屋的设计方案_移动书架的设计理念

new User[size];

};

@

int () {

0;

@

void ( dest, int flags) {

dest.();

int () {

;

方法说明

内部包装了可序列化的数据,可以在 中自由传输。序列化功能由方法完成,最终是通过 中的一系列 write 方法完成。反序列化功能由 来完成,通过 的一系列 read 方法来完成反序列化过程。

| 方法 | 功能 |

| — | — |

| ( in) | 从序列化后的对象中创建原始对象 |

| (int size) | 创建指定长度的原始对象数组 |

| User( in) | 从序列化后的对象中创建原始对象 |

| ( dest, int flags) | 将当前对象写入序列化结构中,其中 flags 标识有两种值:0 或者 1。为 1 时标识当前对象需要作为返回值返回,不能立即释放资源,几乎所有情况都为 0 |

| | 返回当前对象的内容描述。如果含有文件描述符,返回 1,否则返回 0,几乎所有情况都返回 0 |

与 对比

IPC

===

IPC 即 Inter- (进程间通信)。 基于 Linux,而 Linux 出于安全考虑,不同进程间不能之间操作对方的数据,这叫做“进程隔离”。

在 Linux 系统中,虚拟内存机制为每个进程分配了线性连续的内存空间,操作系统将这种虚拟内存空间映射到物理内存空间,每个进程有自己的虚拟内存空间,进而不能操作其他进程的内存空间,只有操作系统才有权限操作物理内存空间。 进程隔离保证了每个进程的内存安全。

IPC方式

| 名称 | 优点 | 缺点 | 适用场景 |

| — | — | — | — |

| | 简单易用 | 只能传输 支持的数据类型 | 四大组件间的进程间通信 |

| 文件共享 | 简单易用 | 不适合高并发场景,并且无法做到进程间即时通信 | 无并发访问情形,交换简单的数据实时性不高的场景 |

| AIDL | 功能强大,支持一对多并发通信,支持实时通信 | 使用稍复杂,需要处理好线程同步 | 一对多通信且有 RPC 需求 |

| | 功能一般,支持一对多串行通信,支持实时通信 | 不能很处理高并发清醒,不支持 RPC,数据通过 进行传输,因此只能传输 支持的数据类型 | 低并发的一对多即时通信,无RPC需求,或者无需返回结果的RPC需求 |

| | 在数据源访问方面功能强大,支持一对多并发数据共享,可通过 Call 方法扩展其他操作 | 可以理解为受约束的 AIDL,主要提供数据源的 CRUD 操作 | 一对多的进程间数据共享 |

| | 可以通过网络传输字节流,支持一对多并发实时通信 | 实现细节稍微有点烦琐,不支持直接的RPC | 网络数据交换 |

是 中的一个类,实现了 接口。从 IPC 角度来说, 是 中的一种扩进程通信方方式。从 应用层来说, 是客户端和服务器端进行通信的媒介,当 的时候,服务端会返回一个包含了服务端业务调用的 对象。

相较于传统 IPC 来说更适合于系统,具体原因的包括如下三点:

示例&

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了