设置执行环境:

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

七. Binder系统之服务的c++实现
1. 编写代码
参考文件:
frameworks\av\include\media\IMediaPlayerService.h (IMediaPlayerService,BnMediaPlayerService)
frameworks\av\media\libmedia\IMediaPlayerService.cpp (BpMediaPlayerService)
frameworks\av\media\libmediaplayerservice\MediaPlayerService.h
frameworks\av\media\libmediaplayerservice\MediaPlayerService.cpp
frameworks\av\media\mediaserver\Main_mediaserver.cpp (server, addService)

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

更新:
git pull origin

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

2. 编译测试

参考frameworks\av\media\mediaserver\Android.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之间可以互相通信

转载于:https://www.cnblogs.com/zhulinhaibao/p/7103272.html

第7课第2节_Binder系统_c++实现_编译测试相关推荐

  1. 记忆测试系统java代码_记忆测试系统-JAVA实现

    //主类MemoryGame import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; i ...

  2. 《设计的品格 探索×呈现×进化的InDesign美学》—第1课1.4节单位和度量

    本节书摘来自异步社区<设计的品格 探索×呈现×进化的InDesign美学>一书中的第1课1.4节单位和度量,作者[澳]Daphne Shao , Recto , Verso Studio, ...

  3. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第2课2.6节隐藏和锁定对象...

    本节书摘来自异步社区<Adobe Illustrator CC 2014中文版经典教程(彩色版)>一书中的第2课2.6节隐藏和锁定对象,作者[美]Brian Wood,更多章节内容可以访问 ...

  4. 《Adobe Photoshop CS5中文版经典教程(全彩版)》—第1课1.2节使用工具

    本节书摘来自异步社区<Adobe Photoshop CS5中文版经典教程(全彩版)>一书中的第1课1.2节使用工具,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异步 ...

  5. 《Adobe Illustrator CC经典教程》—第0课0.1节简介

    本节书摘来自异步社区<Adobe Illustrator CC经典教程>一书中的第0课0.1节简介,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异步社区"公 ...

  6. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课1.6节排列多个文档...

    本节书摘来自异步社区<Adobe Illustrator CC 2014中文版经典教程(彩色版)>一书中的第1课1.6节排列多个文档,作者[美]Brian Wood,更多章节内容可以访问云 ...

  7. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课1.4节修改图稿的视图...

    本节书摘来自异步社区<Adobe Illustrator CC 2014中文版经典教程(彩色版)>一书中的第1课1.4节修改图稿的视图,作者[美]Brian Wood,更多章节内容可以访问 ...

  8. 《Adobe InDesign CS6中文版经典教程》—第1课1.5节修改文档的缩放比例

    本节书摘来自异步社区<Adobe InDesign CS6中文版经典教程>一书中的第1课1.5节修改文档的缩放比例,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异步社 ...

  9. 《Adobe Photoshop CS4中文版经典教程》—第1课1.7节检查更新

    本节书摘来自异步社区<Adobe Photoshop CS4中文版经典教程>一书中的第1课1.7节检查更新,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异步社区&qu ...

最新文章

  1. 关于软件版本命名的方法
  2. poj 1129 也算是遍历的吧 两种方法
  3. 机器学习在植物病害识别研究中的应用
  4. Atitit Seed-Filling种子填充算法attilax总结
  5. java csv tab分隔,CSV格式与tab制表符分割的格式文件相互转换,支持管道操作
  6. 前端eslint+prettier+lint-staged配置
  7. virtualBox 报VT-x is disabled in the BIOS for both all CPU modes (VERR_VMX_MSR_ALL_VMX_DI的错误
  8. 做一名名企科学家,还是当一个终身教授,这是一个问题
  9. keil stm32标准库放在哪里_STM32(1)——使用Keil MDK以及标准外设库创建STM32工程...
  10. 关于爱国者***的追踪报道[转]
  11. 【STL模板】双端队列
  12. 解析几何:第一章坐标系与坐标变换:平面直角坐标系、空间直角坐标系及其变换、极坐标系,圆柱面坐标系,球面坐标系
  13. 生日悖论与Hash函数的攻击
  14. iowait 过高问题的查找及解决linux
  15. windows上注册控件/反注册控件
  16. 企业如何解决供应商管理难题?
  17. 湖北校园网天翼飞young拨号pppoe密码嗅探
  18. 常见的HTTP方法有哪些?
  19. Android ContentProvider 完全解析及简单DEMO
  20. 《机器人学导论》根据DH参数表计算变换矩阵MATLAB代码

热门文章

  1. 设置cookie存活时间_Django之cookie、session、token
  2. 四川职业学校计算机专业那个好6,四川排名前六的单招学院那些专业比较好?
  3. 10-动态SQL语句
  4. Java IO学习笔记(四)打印流
  5. 浅析CSS——元素重叠及position定位的z-index顺序
  6. (转)flash位图缓存cacheAsBitmap
  7. JS函数式编程概念理解:函子(Functor)
  8. 使用mybatis自动生成指定规则的编号
  9. 小程序不同页面之间通讯的解决方案
  10. Python学习—pyhton中的进程