阐述Android开发过程中的难题

移动开发 Android
在日常的Android开发中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service服务,那么下就对 Android开发过程中遇到的问题进行说明。

Android开发采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分,下面就对这三个部分做一下自己的见解和看法,希望能够给大家带来相关的帮助。

在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦.AIDL(AndRoid接口描述语言)是一种借口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的。

如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成AIDL可识别的参数(可能是多个参数), 然后使用AIDL来传递这些参数, 在消息的接收端, 使用这些参数组装成自己需要的对象.

AIDL的IPC的机制和COM或CORBA类似, 是基于接口的,但它是轻量级的。它使用代理类在客户端和实现层间传递值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相关类.; 2. 调用aidl产生的class.

Android开发中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的。

[[9026]]

在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android开发中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦。AIDL(AndRoid接口描述语言)是一种借口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的。

如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成AIDL可识别的参数(可能是多个参数), 然后使用AIDL来传递这些参数, 在消息的接收端, 使用这些参数组装成自己需要的对象.

AIDL的IPC的机制和COM或CORBA类似, 是基于接口的,但它是轻量级的。它使用代理类在客户端和实现层间传递值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相关类.; 2. 调用aidl产生的class。匿名性质的运行时绑定使得理解Android如何解析一个隐式Intent到一个特定的应用程序组件变得重要。

 和你之前看到的一样,当使用startActivity时,隐式Intent解析到一个单一的Activity。如果存在多个Activity都有能力在特定的数据上执行给定的动作的话,Android会从这些中选择***的进行启动。

【编辑推荐】

  1. 新一代的Android手机介绍 深度剖析Android SDK版本介绍
  2.  
  3. 谷歌Android手机能否站稳中国
  4. PythonAndroid深度剖析Android应用程序的四种构造块
  5. 探秘与众不同的Android系统?
责任编辑:chenqingxiang 来源: 赛迪网
相关推荐

2011-07-06 16:00:28

ASP

2009-06-17 16:10:37

Java网站优势

2015-09-25 10:02:52

BlocksDelegates开发

2009-11-23 20:39:21

ibmdw敏捷开发

2015-09-10 09:55:36

移动web开发问题

2009-06-10 15:36:25

ubuntu netb开发过程

2011-01-26 09:40:42

.NET开发

2009-06-17 14:33:08

java项目开发

2016-12-30 11:10:32

Hadoop开发JVM

2012-11-13 11:27:16

详细设计

2020-10-23 10:31:59

开发开源工具开源

2012-06-25 10:13:00

Java.NET

2011-01-04 10:05:45

敏捷开发

2010-07-15 14:47:05

Perl开发

2010-07-05 12:09:10

RationalJazz需求管理

2022-07-31 19:59:42

文档管理工具互联网

2011-04-14 15:35:53

嵌入式系统嵌入式

2010-06-12 15:41:28

UML建模

2021-04-23 09:00:00

开发安全编码

2011-03-25 14:27:40

数据库开发程序员
点赞
收藏

51CTO技术栈公众号