Android StackBox 分屏效果

之前查了安卓分屏效果的资料,发现都是英文的,对于我这种英语不是很好的人来说,实在是太累了,一句话一句话的翻译真是累,我想肯定有人和我一样,所以,我决定把看到的借助翻译词典翻译后,用中文的形式写下来!不喜勿喷。


KitKat已经自带了分屏的代码,以及关键的数据结构:StackBox

从分屏安卓存在吗?


大量的Android手机供应商已经做了很长时间——分裂屏幕。


我所说的这个特性(从桌面操作系统)有多个应用程序显示在一个屏幕上。
看看这些家伙怎么做:http://www.onskreen.com/cornerstone(他们的解决方案也应该采用CyanogenMod前一段时间)。
我相信仍然有大量的工作要做的人在三星等让他们解决方案为移动设备更用户友好的,但我想谈谈的是Google自己的解决方案。
这个新的安卓功能已经存在了一段时间了,但似乎没有人关心(不久你就会明白为什么)。某种程度上这newAPI似乎被忽视。
我只注意到当我还是比较Kitkat ActivityManagerService。java JB的。我想知道这些方法:createStack resizeStackBoxandgetStackswere所以我开始挖掘。

这种交互还远未完成(即这分屏解决方案还没有正常工作,但它是朝着正确方向迈出的一小步。
在下面的描述中*我指什么WindowManagerService调用堆栈框的“堆栈”。
我只是做了我自己的方便。作为堆栈ActivityManagerService指的实际上是一个不同类型的对象。
我开始用干净的模拟器,推出了电子邮件应用程序之后,应用程序的人。

# am stack boxes

Android StackBox 分屏效果

注意输出。您会注意到,实际上有两个活动堆栈。与JB,那里有oneActivityStack Kitkat我们有2:
家栈:这是堆栈与id = 0。这个堆栈使用发射器的活动。当多个用户在一个设备上运行Lanchers,他们都属于这个堆栈。除此之外,systemui活动也启动了。
应用程序栈:这个堆栈的id可以是任何数。所有活动,既不启动应用程序或systemui活动运行在这里(所有用户)。
这两个栈是由ActivityStackSupervisor控制。
为了分割屏幕,所有我要做的就是:

# am stack create 3 2 4 0.5
Android StackBox 分屏效果

这是由于:

Android StackBox 分屏效果

图1——人们和电子邮件应用程序共享一个屏幕


这些数字是什么意思?
语法:栈是创建< int1 > < int2 > < int3 > < float1 >
< int1 >:TASK_ID现有任务的id,你想要一个单独的堆栈。
< int2 >:RELATIVE_STACK_BOX_ID -现有堆栈id。新的堆栈的位置相对于这一个。
< int3 >:位置的相对位置堆栈。这些值可以是任何一个:
0:相对之前堆栈(取决于RTL / LTR配置)
1:在相对堆栈(取决于RTL / LTR配置)
2:到左相对堆栈
3:向右相对堆栈
4:上面相对堆栈
5:下面相对堆栈
6:显示层高于相对堆栈(未使用)
7:显示在比相对较低的层堆栈(未使用)
< float1 >:重量- 0.2 - 0.8之间的包容性
我所做的是移动任务3(电子邮件)堆栈id 2(人)和在屏幕上给每一个相等的矩形区域。现在原来的栈2被分成2箱:第一个拥有电子邮件活动和第二个举办活动的人。现在每个人都有不同的区域在屏幕上。
如果不是0.5重量,我用0.7的体重,这是结果:

Android StackBox 分屏效果

图2 - 70%的屏幕是由电子邮件应用程序



你可以看到在图2中,重量参数控制空间的相对数量每个堆栈框占用在屏幕上。
问题
我没有描述整个用户特性集(您还可以调整堆栈和改变任务顺序栈内)。然而,我不会描述,因为在这一点上,当你在家里你可能要失望了。为什么?
这些特性是一个隐藏的API。编写自己的应用程序来调整这些特性需要反思。
更糟糕的是,这与permissionLevel所需的权限类型的“签名”。所以除非你正在建立自己的芯片,或者你的ROM的签名你不能用你自己的应用程序。
如果你决定在你的设备使用我,然后你必须运行它作为超级用户。这意味着设备必须扎根(我下面描述你应该做的另一件事如果你选择这种方法)
最重要的是,它不工作。你需要几张照片在这之前工作适合你。
即使它的工作原理,有时有些意想不到的结果:

Android StackBox 分屏效果

如果有人想试试我命令的设备上,他会惊讶地发现,我命令不打印任何东西在屏幕上运行时的“su苏”。
所以在你尝试任何事之前,运行这个命令:
# setprop log.redirect-stdio true
这样你可以看到我logcat中打印

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值