为Android添加服务
分类: android应用相关 2011-06-13 18:33 1391人阅读 评论(0) 收藏 举报
androidservicejavaincludemodulemakefile
目录(?)[+]
一、为 Android添加底层核心服务
1. 为什么要写底层核心服务呢?
因为底层核心服务是 Android框架里最接近 Linux/Driver的部分。为了充分发挥硬件设
备的差异化特性,核心服务是让上层 Java应用程序来使用 Driver/HW
Device 特色的重要管道。例如 Media、 Telephone等底层硬件。
在开机过程中,就可以启动核心服务(汉字输入法服务等),让众多应用程序来共同使
用。
由于共用,所以能有效降低 Java应用程序的大小( Size)。
2. 核心服务与 Java 层的 Service有何区别和关系?
Android具有两层服务
--Java层 SDK-based Service
--C++层的 Code Service
3. 编写自己的核心服务( C++ 层)
1). 要点
核心服务通常在独立的进程( Process )里执行。
必须提供 IBinder 接口,让应用程序可以进行跨进程的绑定( Binding )和调用。
因为共用,所以必须确保多线程安全( Thread-safe )。
使用 C++ 来实现,并调用 IServiceManager::addService() 函数添加到系统的 Binder
Driver 里。
上层应用程序通过 ServiceManager 获取该服务。
上层应用程序通过 IBinder::transact() 函数来与核心服进行数据交互。
2). 添加服务
下面详细介绍如何添加一个底层服务到系统中,假设服务名为 AddService ,其用途是对传
入的参数加上 1000 ,并返回结果。