robox源码分析1

robox源码分析1anbox 是啥 anbox 是一个与 doker 类似的虚拟化技术 不同之处是 anbox 专用于安卓的虚拟化 docker 是通用的虚拟化技术 因此 anbox 更轻量级 适合资源少的嵌入式设备虚拟化 robox 主要源码入口 include anbox daemon h

大家好,我是讯享网,很高兴认识大家。

robox主要源码入口:


讯享网

#include "anbox/daemon.h"  #include "anbox/utils.h"  int main(int argc, char **argv) { 
    anbox::Daemon daemon; return daemon.Run(anbox::utils::collect_arguments(argc, argv)); } 

讯享网

Daemon类的功能:

负责anbox与host宿主机的通讯,将android 的系统请求,通过Unix socket通讯(路径是"/dev/anbox_bridge"),转发给宿主机,宿主机调用设备文件对应的硬件去渲染安卓app

讯享网namespace anbox { 
    Daemon::Daemon() { 
    } Daemon::~Daemon() { 
    } int Daemon::run() { 
    auto var1 = 100; // 创建进程系统信号跟踪器 auto trap = core::posix::trap_signals_for_process({ 
   core::posix::Signal::sig_term, core::posix::Signal::sig_int}); // 收到SIGINT 信号,则停止系统信号跟踪器 trap->signal_raised().connect([trap](const core::posix::Signal&) { 
    trap->stop(); }); // 与宿主机通讯的对象的智能指针,Host包含unix socket, protobuf rpc auto host_connector = std::make_shared<HostConnector>(); host_connector->start(); android::defaultServiceManager()->addService( android::String16(android::PlatformService::service_name()), new android::PlatformService(host_connector->platform_api_stub())); android::ProcessState::self()->startThreadPool(); // 调用信号跟踪main loop, 开始监听信号、事件,读取"/dev/anbox_bridge"消息,消息派发给安卓通用服务管理器,执行对应的任务 trap->run(); android::IPCThreadState::self()->joinThreadPool(); return EXIT_SUCCESS; } } 
小讯
上一篇 2025-03-19 21:45
下一篇 2025-01-10 21:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/21903.html