1 分•作者: imwally•7 个月前
返回首页
最新
2 分•作者: dleslie•7 个月前
1 分•作者: flfljh•7 个月前
### 简介
在 HarmonyOS Next 中,子元素使用 *.position()* 属性在父元素内进行相对定位。使用示例:
```
@Entry
@Component
struct PositionExample1 {
build() {
Column() {
Row() {<p><pre><code> }
.position({x: 50, y: 50})
}
.width('100%')
.height('100%')
}
}
```
这会将子元素从父元素的左上角偏移 50 个单位。
一个常见的挑战是如何将元素定位在右边缘附近,尤其是在设备屏幕尺寸多样的情况下。我们如何确保在不同设备上实现一致的定位?
我们建议使用 LocalizedEdges 类型来解决这个问题。这种方法通过以下方式考虑了设备的多样性:
1. 识别设备类型
2. 适应屏幕尺寸
3. 在不同设备上保持一致的定位
### 解决方案
官方文档:
\#position
使用 LocalizedEdges 相对于父容器边缘进行定位,并支持镜像。这非常适合:
- 固定位置的元素
- 浮动操作按钮
- 顶部对齐的组件
- 边缘敏感的设计
右下角定位的示例:
```
@Entry
@Component
struct PositionExample1 {
build() {
Column() {
Row() {<p><pre><code> }
// bottom: 距离底部边缘的偏移量
// end: 距离右边缘的偏移量(支持 RTL 镜像)
.position(bottom: { value: 20, unit: 2 }, end: { value: 20, unit: 2 })
}
.width('100%')
.height('100%')
}
}
```
主要特点:
- `unit: 2` 指定基于百分比的定位
- 在所有屏幕尺寸上均表现一致
- 自动调整以适应从右到左的语言
- 在任何设备上保持设计完整性
至此,我们对 HarmonyOS Next 中高级定位技术的概述就结束了。
1 分•作者: flfljh•7 个月前
针对 HarmonyOS 适配的 Flutter 应用,可以使用 DevTools 调试 Dart 代码。<p>*先决条件*<p>- OpenHarmony Next 系统
- Flutter 界面在前台运行
- 分析工具:
DevEco Studio Profiler
SmartPerf<p>*Flutter 线程架构*
Flutter 使用多个线程来执行关键操作。所有 Dart 代码都在 UI 线程上执行,这会影响其他线程:<p>- *平台线程*
插件代码运行的主平台线程
- *UI 线程*
在 Dart VM 中执行 Dart 代码。处理:
- 开发者编写的代码
- 框架生成的代码
- 创建轻量级的图层树(与设备无关的渲染命令)
- 将图层树发送到 GPU 线程
*关键:* 永远不要阻塞此线程!出现在性能覆盖的底部栏中。
- *栅格化线程(GPU 线程)*
处理图层树并发送到 GPU。虽然你不能直接交互:
- 速度慢表明 Dart 代码存在问题
- 托管 Skia 图形库
- 出现在性能覆盖的顶部栏中
- *I/O 线程*
处理繁重的 I/O 操作,以防止阻塞 UI/栅格化线程。不显示在性能覆盖中。
- *RenderService 线程*
RS 进程主线程。在 Flutter 渲染完帧后:
- 纹理模式:与主线程合成(受主线程影响)
- 表面模式:直接显示(不受主线程影响)<p>*问题边界定义*
在 DevEco Studio 中:<p>1. 打开 Profiler 标签页
2. 捕获应用程序跟踪
3. 重点关注 `<x>.ui`、`<x>.raster` 和 RenderService 主线程<p><p>上图中 RenderService 中缺失的帧是由于 UI 线程每帧花费的时间过长,超过了一帧(在 120 帧的帧率下,一帧是 8.33 毫秒)。<p><p>如果一帧渲染过程中 <x>. ui 和 <x>. master 的总持续时间超过一帧时间,则可以将性能问题定义为 Flutter 问题。问题的定位需要进一步的性能分析。
3 分•作者: Bogdanp•7 个月前
1 分•作者: PaulHoule•7 个月前
3 分•作者: adpreese•7 个月前
1 分•作者: rwallace•7 个月前
到目前为止,就像大多数人一样,我一直在用编写代码的同一程序(主要是 Notepad++ 或 VS Code)来查看源代码。我决定阅读代码是一个足够重要的用例,值得用一个专门的程序来更好地完成它。<p>这也是 Claude Code 的一个测试案例。它的表现很好。需要注意的是:这个项目没有涉及某些难度的维度。特别是,从头开始编写一个小型程序表现良好,并不能保证它在一个大型现有代码库上的表现也会很好。
1 分•作者: Arubis•7 个月前
1 分•作者: ghuntley•7 个月前
2 分•作者: LorenDB•7 个月前
1 分•作者: exvi•7 个月前
1 分•作者: Bogdanp•7 个月前
1 分•作者: bookofjoe•7 个月前
2 分•作者: wvlia5•7 个月前
2 分•作者: geox•7 个月前
2 分•作者: fcpguru•7 个月前
你好!
我是 Andrew Arrow,一名开发者,也是 Final Cut Pro 的用户。我接触 FCP 已经很多年了,曾经想以此为职业,但最终成了一名软件开发者。很久很久以前,我就购买了该软件的完整版。不得不说,苹果做得很好,每次我在任何 Mac 上的 App Store 中,仍然可以下载它。这些年来,我肯定用过 20 台、30 台?我也不知道,反正用过很多 Mac。就在最近,我又下载了它,注意到了 XML 导出功能。
哇。里面有很多东西。真的很多。我开始尝试生成 XML,然后就有了这个项目。
[https://github.com/andrewarrow/cutlass/blob/main/README.md](https://github.com/andrewarrow/cutlass/blob/main/README.md)
阅读那些 go 结构体和 xml 标签。一直读下去。读下去。简直没完没了!这是一种非常复杂的 XML 格式,可以描述你所能想象的任何时间线、效果或动画。苹果的文档很分散,XML 以挑剔而闻名,一个错误的属性就会导致导入崩溃。
当然,有了 Claude Code(或其他,选择你最喜欢的 AI),你就可以用 cutlass 让你的 AI 用 go 写出一些惊人的东西。
```go
// 生成一个带有精确关键帧动画的时间线
video := fcp.Video{
Ref: assetID,
Offset: "0s",
Duration: fcp.ConvertSecondsToFCPDuration(10.0),
AdjustTransform: &fcp.AdjustTransform{
Params: []fcp.Param{{
Name: "position",
KeyframeAnimation: &fcp.KeyframeAnimation{
Keyframes: []fcp.Keyframe{
{Time: "0s", Value: "0 0"},
{Time: "240240/24000s", Value: "100 50"},
},
},
}},
},
}
```
所以,我没有用我的人脑写这样的代码。我大部分时间都在告诉 Claude 我想创建的视频,然后它使用 cutlass 库来实现。我正在将 FCP 直接连接到 Claude。一种不同的人工智能视频生成方式。
欢迎反馈,感谢您读到这里!
-aa
32 分•作者: mastazi•7 个月前
5 分•作者: mike-bailey•7 个月前
今天早上听说谷歌克隆了 Claude Code,我试用了我两周前创建的 MCP 服务器,立刻就和它进行了双向语音对话。
Gemini 似乎对此有点困惑。 :-)
[https://youtu.be/HC6BGxjCVnM?feature=shared&t=36](https://youtu.be/HC6BGxjCVnM?feature=shared&t=36)
这是一个我几周前创建的 FOSS MCP 服务器:
- [https://getvoicemode.com](https://getvoicemode.com)
- [https://github.com/mbailey/voicemode](https://github.com/mbailey/voicemode)
# 安装 (~/.gemini/settings.json)
```json
{
"theme": "Dracula",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"voice-mode": {
"command": "uvx",
"args": [
"voice-mode"
]
}
}
}
```
1 分•作者: ccheshirecat•7 个月前
大家好,我是 MX,一个独立创始人,正在构建 Infuze Cloud,今天发布 Beta 版。
我启动这个项目是因为我厌倦了各种荒谬的原因,这些原因我在这里就不多说了,因为我不得不因为字数限制而重写了两次。
所以我决定尝试构建一些我想用的东西。整个堆栈都是从头开始定制的,除了硬件和 IP 空间之外,没有任何外部依赖或第三方成本。
Infuze 是什么:
纯粹、专用的性能:1 个 vCPU = 1 个物理线程。无超额分配。我将节点的分配限制在物理硬件的限制范围内,并留有一些余量。
根据您的使用量定价:设置为 10 美元/月,4GB/1vcpu/50GB,但可以按最低 1 小时(3 美分)进行配置。钱包充值有折扣,以防止对不需要的资源产生压力(即使是最低充值也有 10% 的折扣,所以实际上是 8 美元+,每月降至 7.50 美元,充值越多折扣越大)。
运行在我们自己的硬件(租赁)和自治系统上:我们运营自己的英特尔至强铂金 8280 服务器和 BGP 路由的 IP 空间 (AS211747)。
基于 KVM,存储采用 NVMe gen4,使用 ZFS
堆栈:
它主要基于开源技术构建!
Proxmox 用于虚拟化,Knot 用于主授权和外包用于任播从属,自定义 Go 微服务用于前端所需的大部分自动化(很快将开源其中的一些!)。FRR 用于 BGP。网络是标准的桥接网络,从我使用 FRR 宣告的租赁 IP 空间进行路由。邮件使用 maddy。Prometheus/node exporter 用于指标,grafana 用于面板。LLM 聊天机器人使用 AnythingLLM 和 openrouter,但这主要像是一种 FOMO 行为,老实说,我并不指望任何人会经常使用它(因为我没有),但如果它能帮助到某人,那就太好了。支持/工单是自定义的,使用 Next.js 前端,计费使用 Stripe。每个虚拟机都获得一个公共 IPv4 和一个路由到它的 /64 子网,没有 NAT 或 SNAT。
如果大家有任何问题或想讨论更多关于我没有提到的堆栈,我很乐意分享、讨论和学习优化堆栈的新方法。我仍然对这一切非常陌生,并且在不断学习,所以非常感谢任何见解!我正在研究一些更具实验性的东西(自定义 firecracker fork,可以直接从内存中引导 ELF+IVSHMEM 应用程序,使用 unikernel 或 initramfs),我希望很快能向公众推出,但缺乏资金继续前进,所以我决定以此作为学习经验,并首次进入这个行业,使用一个更成熟的堆栈,该堆栈足够可靠,并且经过实战测试,可供公众使用。
它适用于谁:
喜欢通过 SSH 等方式使用具有 root 访问权限的 Linux 的开发人员。
希望为更接近实际基础设施成本的东西付费的人。计算并不昂贵,技术也不难。我们不应该被迫支付垄断者认为他们应得的金额。
这不适用于那些参与 yaml 疗法或喜欢为木制人物慈善基金会捐款的人,但我也会为你们准备一些东西!;)
这是第一个公开的 Beta 版,虽然大多数东西都经过了实战测试,但我预计会出现一些问题。我将全天候解答任何问题,快速修复错误,并从反馈中学习。
对于基准测试爱好者,我创建了一个有趣的小网站 v0,因为我一直在寻找无穷无尽的东西来修补,并喂养我的冒名顶替综合症,以延迟发布这个,但我已经拖延了足够长的时间 <a href="https://bench.infuze.cloud" rel="nofollow">https://bench.infuze.cloud</a>
您可以在那里获得一张免费的美元代金券,并运行一个基准测试来娱乐一下,我想做更大的数量,但意识到我的按小时计费将成为滥用的磁铁,并且完全是自筹资金,这可能不是一个好主意,但我准备好快速调整(并反击,对于那些甚至考虑这样做的人 -_-)
感谢您的阅读,我很乐意听取任何反馈、想法和批评。感谢大家。