Kivy A to Z -- 如何从Python创建一个基于Binder的Service及如何从Java访问Python创建的Service

本文介绍了如何使用Python的Kivy库创建一个基于Binder的Service,并从Java代码中进行访问。通过Cython封装C++代码,实现PythonBBinder的onTransact回调,处理客户端请求。在Python服务端,继承Service并重写OnTransact,Java端利用反射访问ServiceManager并与Python服务通信。
摘要由CSDN通过智能技术生成

      《Kivy A to Z -- 如何从python代码中直接访问Android的Service》 一文中讲到了如何从python访问java的service,这一篇再来讲下如何创建一个基于Binder的Python Service以及如何从Java代码中访问这个Python创建的Service。

    先来看代码,再作下解释:


接《Kivy A to Z -- 如何从python代码中直接访问Android的Service》一文,我们在相关的文件中增加代码:

binder_wrap.cpp


using namespace android;

class PythonBBinder : public BBinder
{
public:
    static  status_t                instantiate(const char *name,const char *descriptor,fnOnTransact onTrans,void *data);

                            PythonBBinder(const char *name,const char *descriptor,fnOnTransact onTrans,void *data);
    virtual                 ~PythonBBinder();

    virtual status_t onTransact(uint32_t code,
                                 const android::Parcel &data,
                                 android::Parcel *reply,
                                 uint32_t flags);

private:
    android::String16 name;
    android::String16 descriptor;
    fnOnTransact mOnTransact;
    void *mData;
};

status_t PythonBBinder::instantiate(const char *name,const char *descriptor,fn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值