/*
* blackboy psyc209@163.com
* QQ群: 135202158
* 转载请注明作者及出处
*/
关于Android Native Service的简介及一些例子, 还可以参考longfeey的大作: http://blog.csdn.net/longfeey/article/details/5887026
1. 准备工作
(1)因为要调用Android源代码的framework/base里的一些类,所以要确保有android相关源代码
(2)需要交叉编译器, 链接器等工具, 这个可以使用anroid源码里提供的工具,也可以使用单独下载的android ndk
(3)可选: 如果在模拟器(AVD)上运行和调试, 还需要有编译好或者单独下载的android sdk及相应的组件等等, 关于各种组件需求,见
http://developer.android.com/sdk/installing.html#components提到的"Recommended Components", 确保满足"Basic"需求
这里用的环境是android源码+单独下载的SDK(包括sdk toos, sdk platform tools和platform组件)
2. 在android源码主目录/development子目录下建立工程目录, 我们的各个模块的代码都将放在这个目录的子目录下
cd ~/android/development
mkdir zp_module
3. 建立service目录,里面放要做的native service源码
ZPService.h
#ifndef ANDROID_ZPSERVICE_H
#define ANDROID_ZPSERVICE_H
#include <utils/RefBase.h>
#include <binder/IInterface.h>
#include <binder/Parcel.h>
namespace android
{
class ZPService : public BBinder
{
private:
//mutable Mutex m_Lock;
//int32_t m_NextConnId;
public:
static int Instance();
ZPService();
virtual ~ZPService();
virtual status_t onTransact(uint32_t, const Parcel&, Parcel*, uint32_t);
};
}
#endif
ZPService.cpp
#include <binder/IServiceManager.h>
#include <binder/IPCThreadState.h>