Framework中新增Java service

1、  新建ITouchShService.aidl

(frameworks\base\core\java\android\os)

 

2、  新建TouchShService.java

(frameworks\base\services\core\java\com\android\server)

public class TouchShService extends ITouchShService.Stub

 

3、  新建TouchShManager.java

(frameworks\base\core\java\android\os)

    /**

     * get singleton

     *@hide

     */

    public static TouchShManager getInstance() {

        if (mInstance == null) {

            mInstance = new TouchShManager();

        }

        return mInstance;

    }

 

    public TouchShManager() {

        IBinder b = ServiceManager.getService(Context.TOUCHSH_SERVICE);

        if (b != null) {

            mService = ITouchShService.Stub.asInterface(b);

            Log.d(TAG, "TouchShManager: init mService");

        }

    }

 

4、  在Context.java中给新建的service写别名,方便引用

    /* BEGIN: Added by test, 2016/8/26 */

    /**

     *sharpnow touch service

     *@hide

     */

    public static final String TOUCHSH_SERVICE = "touchsh";

5、  SystemServiceRegistry.java中在static中注册service

        /* BEGIN: Added by test, 2016/8/26  add TouchSHservice */

        registerService(Context.TOUCHSH_SERVICE, TouchShManager.class,

                new CachedServiceFetcher<TouchShManager>() {

                    @Override

                    public TouchShManager createService(ContextImpl ctx) {

                        Log.d(TAG,"register TouchShManager success !");

                        return TouchShManager.getInstance();

                    }});

 

6、  在SystemServer.java中的 startOtherServices() 函数中将新建的servie添加到servicemanager中

        /* BEGIN: Added by test, 2016/8/26   add touchShService to service manager*/

        try {

            Slog.i(TAG, "touchShService");

            touchShService = new touchShService(mSystemContext);

            ServiceManager.addService(Context.TOUCHSH_SERVICE, touchShService);

        } catch (RuntimeException e) {

            Slog.e(TAG, "Starting touchShService exception ", e);

        }

 

7、  编译烧录验证

 

 

 

编译报错

a)      checkpublicapi-current-timestamp,make update-api

b)      给新增的类和函数添加@hide防止java doc生成时报错

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值