自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

闡述Android開發(fā)過程中的難題

移動開發(fā) Android
在日常的Android開發(fā)中, 每個應(yīng)用程序都可以有自己的進程. 在寫UI應(yīng)用的時候, 經(jīng)常要用到Service服務(wù),那么下就對 Android開發(fā)過程中遇到的問題進行說明。

Android開發(fā)采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分,下面就對這三個部分做一下自己的見解和看法,希望能夠給大家?guī)硐嚓P(guān)的幫助。

在J2EE中,采用RMI的方式, 可以通過序列化傳遞對象. 在Android中, 則采用AIDL的方式. 理論上AIDL可以傳遞Bundle,實際上做起來卻比較麻煩.AIDL(AndRoid接口描述語言)是一種借口描述語言; 編譯器可以通過aidl文件生成一段代碼,通過預(yù)先定義的接口達到兩個進程內(nèi)部通信進程的目的。

如果需要在一個Activity中, 訪問另一個Service中的某個對象, 需要先將對象轉(zhuǎn)化成AIDL可識別的參數(shù)(可能是多個參數(shù)), 然后使用AIDL來傳遞這些參數(shù), 在消息的接收端, 使用這些參數(shù)組裝成自己需要的對象.

AIDL的IPC的機制和COM或CORBA類似, 是基于接口的,但它是輕量級的。它使用代理類在客戶端和實現(xiàn)層間傳遞值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相關(guān)類.; 2. 調(diào)用aidl產(chǎn)生的class.

Android開發(fā)中, 每個應(yīng)用程序都可以有自己的進程. 在寫UI應(yīng)用的時候, 經(jīng)常要用到Service. 在不同的進程中, 怎樣傳遞對象呢? 顯然, Java中不允許跨進程內(nèi)存共享. 因此傳遞對象, 只能把對象拆分成操作系統(tǒng)能理解的簡單形式, 以達到跨界對象訪問的目的。

[[9026]]

在J2EE中,采用RMI的方式, 可以通過序列化傳遞對象. 在Android開發(fā)中, 則采用AIDL的方式. 理論上AIDL可以傳遞Bundle,實際上做起來卻比較麻煩。AIDL(AndRoid接口描述語言)是一種借口描述語言; 編譯器可以通過aidl文件生成一段代碼,通過預(yù)先定義的接口達到兩個進程內(nèi)部通信進程的目的。

如果需要在一個Activity中, 訪問另一個Service中的某個對象, 需要先將對象轉(zhuǎn)化成AIDL可識別的參數(shù)(可能是多個參數(shù)), 然后使用AIDL來傳遞這些參數(shù), 在消息的接收端, 使用這些參數(shù)組裝成自己需要的對象.

AIDL的IPC的機制和COM或CORBA類似, 是基于接口的,但它是輕量級的。它使用代理類在客戶端和實現(xiàn)層間傳遞值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相關(guān)類.; 2. 調(diào)用aidl產(chǎn)生的class。匿名性質(zhì)的運行時綁定使得理解Android如何解析一個隱式Intent到一個特定的應(yīng)用程序組件變得重要。

 和你之前看到的一樣,當(dāng)使用startActivity時,隱式Intent解析到一個單一的Activity。如果存在多個Activity都有能力在特定的數(shù)據(jù)上執(zhí)行給定的動作的話,Android會從這些中選擇***的進行啟動。

【編輯推薦】

  1. 新一代的Android手機介紹 深度剖析Android SDK版本介紹
  2.  
  3. 谷歌Android手機能否站穩(wěn)中國
  4. PythonAndroid深度剖析Android應(yīng)用程序的四種構(gòu)造塊
  5. 探秘與眾不同的Android系統(tǒng)?
責(zé)任編輯:chenqingxiang 來源: 賽迪網(wǎng)
相關(guān)推薦

2011-07-06 16:00:28

ASP

2009-06-17 16:10:37

Java網(wǎng)站優(yōu)勢

2015-09-25 10:02:52

BlocksDelegates開發(fā)

2009-11-23 20:39:21

ibmdw敏捷開發(fā)

2011-01-26 09:40:42

.NET開發(fā)

2015-09-10 09:55:36

移動web開發(fā)問題

2009-06-10 15:36:25

ubuntu netb開發(fā)過程

2016-12-30 11:10:32

Hadoop開發(fā)JVM

2009-06-17 14:33:08

java項目開發(fā)

2011-01-04 10:05:45

敏捷開發(fā)

2010-07-15 14:47:05

Perl開發(fā)

2012-06-25 10:13:00

Java.NET

2020-10-23 10:31:59

開發(fā)開源工具開源

2012-11-13 11:27:16

詳細設(shè)計

2022-07-31 19:59:42

文檔管理工具互聯(lián)網(wǎng)

2010-07-05 12:09:10

RationalJazz需求管理

2011-04-14 15:35:53

嵌入式系統(tǒng)嵌入式

2010-06-12 15:41:28

UML建模

2024-10-29 09:20:01

2021-04-23 09:00:00

開發(fā)安全編碼
點贊
收藏

51CTO技術(shù)棧公眾號