zoukankan      html  css  js  c++  java
  • 第7课第2节_Binder系统_c++实现_编译测试

    设置执行环境:

    .setenv
    lunch
    23(.full_tiny4412-eng)
    进入到代码所在目录执行
    mmm .

    七. Binder系统之服务的c++实现
    1. 编写代码
    参考文件:
    frameworksavincludemediaIMediaPlayerService.h (IMediaPlayerService,BnMediaPlayerService)
    frameworksavmedialibmediaIMediaPlayerService.cpp (BpMediaPlayerService)
    frameworksavmedialibmediaplayerserviceMediaPlayerService.h
    frameworksavmedialibmediaplayerserviceMediaPlayerService.cpp
    frameworksavmediamediaserverMain_mediaserver.cpp (server, addService)


    第一次:
    git clone https://github.com/weidongshan/APP_0004_Binder_CPP_App.git

    更新:
    git pull origin

    取出指定版本:
    git checkout v1 // 初始版本, 未调试

    2. 编译测试

    参考frameworksavmediamediaserverAndroid.mk

    编译:
    a. 文件放入frameworks/testing/APP_0004_Binder_CPP_App
    b. cd /work/android-5.0.2/
    . setenv
    lunch //选择23. full_tiny4412-eng
    c. cd frameworks/testing/APP_0004_Binder_CPP_App
    mmm .


    测试:
    a. 重新编译内核让它支持NFS
    make menuconfig
    <*> NFS client support | |
    [*] NFS client support for NFS version 3 | |
    [*] NFS client support for the NFSv3 ACL protocol extension | |
    [*] NFS client support for NFS version 4 | |
    [*] NFS client support for NFSv4.1 (EXPERIMENTAL)

    make zImage, 并使用新的zImage启动单板

    b. mount nfs
    su
    ifconfig eth0 192.168.1.100
    busybox mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mnt   (在Android系统中不支持mount,必须使用busybox mount)

    c. 执行 test_server, test_client

    ./test_server &
    logcat HelloService:* *:S &
    ./test_client hello
    ./test_client hello weidongshan

     程序运行执行的结果:

     

    注意如果使用的是上一节的内核,即修改了binder.c的,含有打印信息的。应恢复为原来的,否则启动非常慢。

     

    执行c语言编写的代码

    首先修改makefile 编译为静态连接

     makeflie:

     

     现在使用c++实现的test_server和c语言实现的test_client之间可以互相通信

     

     现在使用c语言实现的test_server和c++语言实现的test_client之间可以互相通信

  • 相关阅读:
    Linux用户权限规范 /etc/sudoers文件解释
    Linux命令-用户、用户组、权限
    百度云盘问题专栏
    Chrome插件下载地址
    Linux命令-tar
    python:rs, ws, es = select.select(inputs, [], []) --报错error 10022
    1月份学习计划
    @Override 注解compiler1.5和compiler1.6不同
    tomcat启动(Ⅷ)--请求最终目的地 getContainer().getPipeline().getFirst().invoke(request, response)
    tomcat启动(Ⅶ)请求处理--Processor.process(SocketWrapper<S> socketWrapper)
  • 原文地址:https://www.cnblogs.com/zhulinhaibao/p/7103272.html
Copyright © 2011-2022 走看看