編輯:關於Android編程
一 OSGI與android Service 異同點
OSGI服務與android Service概念差不多也是Service ,Client 關系。
android Service接口 --service.AIDL
OSGI接口 --java interface
所以android 進程間通信Service只能傳遞序列化過的數據 而OSGI服務可以傳遞任何java對象。
二 OSGI與android Service注冊/查詢方式對比
1.服務注冊
android Service
1
Intent intent=
new
Intent(Context,Service.
class
);
2
Context.startService(intent);
OSGI Service
1
BundleContext context;
//插件上下文
2
ServiceRegistration m_reg = context.registerService(
3
sayHelloImp.
class
.getName(),
//服務名稱 一般為接口類名
4
my,
//服務具體實現類
5
null
);
2.服務查詢
android Service
1
Intent intent=
new
Intent(Context,Service.
class
);
2
Context.bindService(intent,
new
ServiceConnection())
3
...
OSGI Service
01
//利用插件上下文BundleContext查詢服務
02
ServiceReference ref = context.getServiceReference(Service.
class
.getName());
03
if
(ref !=
null
) {
04
//查找到服務
05
Service service = (Service) context.getService(ref);
06
if
(service !=
null
) {
07
//調用服務接口
08
service.sayHello(imp);
09
}
10
//注銷服務
11
context.ungetService(ref);
12
}
三 OSGI服務特點
OSGI服務是暫態的插件可能隨時被關閉或卸載,所以我們每次在使用服務的時候都最好先查詢服務是否還存在。
四 OSGI服務注意事項
使用OSGI服務時應注意服務接口java類的一致性,服務者與消費者應使用相同的java接口(類加載器相同),否則可能出現服務查詢時類型強制轉換異常。一般情況下我們以服務者提供java接口
一、操作系統的體系結構計算機是由一堆硬件組成的,操作系統是為了有效的控制這些硬件資源的軟件。操作系統除了有效地控制這些硬件資源的分配,並提供計算機運行所需要的功能之外,為
DatePicker實戰效果圖:依賴導入compile 'cn.aigestudio.datepicker:DatePicker:2.2.0'DatePi
一.效果展示在Android手機的桌面上,我們經常可以看到如下小控件在這些控件上,可以顯示我們APP的一些重要的交互信息,以我最近開發的手機衛士為例,在widget上可以
效果圖: 核心代碼: package com.zms.toast; import android.app.Dialog; import