Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
anbox
提交
0e740f0c
A
anbox
项目概览
openeuler
/
anbox
通知
24
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
anbox
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0e740f0c
编写于
8月 24, 2017
作者:
S
Simon Fels
提交者:
Simon Fels
8月 24, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cmds: directly start appmgr in single window mode
上级
7d4d7730
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
28 addition
and
1 deletion
+28
-1
src/anbox/cmds/session_manager.cpp
src/anbox/cmds/session_manager.cpp
+23
-1
src/anbox/cmds/session_manager.h
src/anbox/cmds/session_manager.h
+5
-0
未找到文件。
src/anbox/cmds/session_manager.cpp
浏览文件 @
0e740f0c
...
...
@@ -60,6 +60,9 @@ std::istream& operator>>(std::istream& in, anbox::graphics::GLRendererServer::Co
namespace
fs
=
boost
::
filesystem
;
namespace
{
constexpr
const
char
*
default_appmgr_package
{
"org.anbox.appmgr"
};
constexpr
const
char
*
default_appmgr_component
{
"org.anbox.appmgr.AppViewActivity"
};
const
boost
::
posix_time
::
milliseconds
default_appmgr_startup_delay
{
50
};
const
anbox
::
graphics
::
Rect
default_single_window_size
{
0
,
0
,
1024
,
768
};
class
NullConnectionCreator
:
public
anbox
::
network
::
ConnectionCreator
<
...
...
@@ -85,6 +88,18 @@ std::istream& operator>>(std::istream& in, anbox::graphics::GLRendererServer::Co
}
}
void
anbox
::
cmds
::
SessionManager
::
launch_appmgr_if_needed
(
const
std
::
shared_ptr
<
bridge
::
AndroidApiStub
>
&
android_api_stub
)
{
if
(
!
single_window_
)
return
;
android
::
Intent
launch_intent
;
launch_intent
.
package
=
default_appmgr_package
;
launch_intent
.
component
=
default_appmgr_component
;
// As this will only be executed in single window mode we don't have
// to specify and launch bounds.
android_api_stub
->
launch
(
launch_intent
,
graphics
::
Rect
::
Invalid
,
wm
::
Stack
::
Id
::
Default
);
}
anbox
::
cmds
::
SessionManager
::
SessionManager
()
:
CommandWithFlagsAndAction
{
cli
::
Name
{
"session-manager"
},
cli
::
Usage
{
"session-manager"
},
cli
::
Description
{
"Run the the anbox session manager"
}},
...
...
@@ -187,7 +202,6 @@ anbox::cmds::SessionManager::SessionManager()
platform
->
set_window_manager
(
window_manager
);
platform
->
set_renderer
(
gl_server
->
renderer
());
window_manager
->
setup
();
auto
app_manager
=
std
::
static_pointer_cast
<
application
::
Manager
>
(
android_api_stub
);
...
...
@@ -210,6 +224,8 @@ anbox::cmds::SessionManager::SessionManager()
utils
::
string_format
(
"%s/qemu_pipe"
,
socket_path
),
rt
,
std
::
make_shared
<
qemu
::
PipeConnectionCreator
>
(
gl_server
->
renderer
(),
rt
));
boost
::
asio
::
deadline_timer
appmgr_start_timer
(
rt
->
service
());
auto
bridge_connector
=
std
::
make_shared
<
network
::
PublishedSocketConnector
>
(
utils
::
string_format
(
"%s/anbox_bridge"
,
socket_path
),
rt
,
std
::
make_shared
<
rpc
::
ConnectionCreator
>
(
...
...
@@ -228,6 +244,12 @@ anbox::cmds::SessionManager::SessionManager()
server
->
register_boot_finished_handler
([
&
]()
{
DEBUG
(
"Android successfully booted"
);
android_api_stub
->
ready
().
set
(
true
);
appmgr_start_timer
.
expires_from_now
(
default_appmgr_startup_delay
);
appmgr_start_timer
.
async_wait
([
&
](
const
boost
::
system
::
error_code
&
err
)
{
if
(
err
!=
boost
::
system
::
errc
::
success
)
return
;
launch_appmgr_if_needed
(
android_api_stub
);
});
});
return
std
::
make_shared
<
bridge
::
PlatformMessageProcessor
>
(
sender
,
server
,
pending_calls
);
...
...
src/anbox/cmds/session_manager.h
浏览文件 @
0e740f0c
...
...
@@ -30,6 +30,9 @@
#include "anbox/graphics/rect.h"
namespace
anbox
{
namespace
bridge
{
class
AndroidApiStub
;
}
// namespace bridge
namespace
container
{
class
Client
;
}
// namespace container
...
...
@@ -39,6 +42,8 @@ class SessionManager : public cli::CommandWithFlagsAndAction {
SessionManager
();
private:
void
launch_appmgr_if_needed
(
const
std
::
shared_ptr
<
bridge
::
AndroidApiStub
>
&
android_api_stub
);
std
::
shared_ptr
<
container
::
Client
>
container_
;
std
::
string
desktop_file_hint_
;
graphics
::
GLRendererServer
::
Config
::
Driver
gles_driver_
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录