• 第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之间可以互相通信

  • 相关阅读:
    CS229 6.4 Neurons Networks Autoencoders and Sparsity
    CS229 6.3 Neurons Networks Gradient Checking
    【Leetcode】【Easy】Min Stack
    【Leetcode】【Easy】Merge Sorted Array
    【Leetcode】【Easy】ZigZag Conversion
    【Leetcode】【Easy】Valid Palindrome
    【Leetcode】【Easy】Reverse Integer
    【Leetcode】【Easy】Palindrome Number
    【Leetcode】【Easy】Length of Last Word
    【Leetcode】【Easy】Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/zhulinhaibao/p/7103272.html
Copyright © 2020-2023  润新知