WEB开发网      濂界珯濂藉垎浜紒浣犵殑涓€浠藉垎浜槸鎴戜滑鐨勪竴浠藉姩鍔涳紱璇峰垎浜� ---锕�
开发学院手机开发Android 开发 Android添加一个系统service 阅读

Android添加一个系统service

 2010-08-22 04:48:00 来源:WEB开发网 銆�鍑忓皬瀛椾綋澧炲ぇ瀛椾綋銆�  鍏虫敞鏉ㄦ亽椋炵殑寰崥
核心提示:Specifying the interface.This example uses aidl, so the first step is to add an interface definition file:frameworks/base/core/java/android/os/IEneaService.aidl

Specifying the interface.

This example uses aidl, so the first step is to add an interface definition file:

frameworks/base/core/java/android/os/IEneaService.aidl

package android.os;

interface IEneaService {

/**

* {@hide}

*/

void setValue(int val);

}

The interface file will need to be added to the build system:

frameworks/base/Android.mk

Add the following around line 165 (the end of the list of SRC_FILES):

core/java/android/os/IEneaService.aidl

Implementing the server

The service spawns a worker thread that will do all the work, as part of the system server process. Since the service is created by the system server, it will need to be located somewhere where the system server can find it.

frameworks/base/services/java/com/android/server/EneaService.java

package com.android.server;

import android.content.Context;

import android.os.Handler;

import android.os.IEneaService;

import android.os.Looper;

import android.os.Message;

import android.os.Process;

import android.util.Log;

public class EneaService extends IEneaService.Stub {

private static final String TAG = "EneaService";

private EneaWorkerThread mWorker;

private EneaWorkerHandler mHandler;

private Context mContext;

public EneaService(Context context) {

super();

mContext = context;

mWorker = new EneaWorkerThread("EneaServiceWorker");

mWorker.start();

Log.i(TAG, "Spawned worker thread");

}

public void setValue(int val)

{

Log.i(TAG, "setValue " + val);

Message msg = Message.obtain();

msg.what = EneaWorkerHandler.MESSAGE_SET;

1 2  下一页

Tags:Android 添加 一个

编辑录入:coldstar [复制链接] [打 印]
赞助商链接