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; } }

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