1作者: flfljh7 个月前
### 简介 在 HarmonyOS Next 中,子元素使用 *.position()* 属性在父元素内进行相对定位。使用示例: ``` @Entry @Component struct PositionExample1 { build() { Column() { Row() {<p><pre><code> } .position({x: 50, y: 50}) } .width(&#x27;100%&#x27;) .height(&#x27;100%&#x27;) } } ``` 这会将子元素从父元素的左上角偏移 50 个单位。 一个常见的挑战是如何将元素定位在右边缘附近,尤其是在设备屏幕尺寸多样的情况下。我们如何确保在不同设备上实现一致的定位? 我们建议使用 LocalizedEdges 类型来解决这个问题。这种方法通过以下方式考虑了设备的多样性: 1. 识别设备类型 2. 适应屏幕尺寸 3. 在不同设备上保持一致的定位 ### 解决方案 官方文档: \#position 使用 LocalizedEdges 相对于父容器边缘进行定位,并支持镜像。这非常适合: - 固定位置的元素 - 浮动操作按钮 - 顶部对齐的组件 - 边缘敏感的设计 右下角定位的示例: ``` @Entry @Component struct PositionExample1 { build() { Column() { Row() {<p><pre><code> } &#x2F;&#x2F; bottom: 距离底部边缘的偏移量 &#x2F;&#x2F; end: 距离右边缘的偏移量(支持 RTL 镜像) .position(bottom: { value: 20, unit: 2 }, end: { value: 20, unit: 2 }) } .width(&#x27;100%&#x27;) .height(&#x27;100%&#x27;) } } ``` 主要特点: - `unit: 2` 指定基于百分比的定位 - 在所有屏幕尺寸上均表现一致 - 自动调整以适应从右到左的语言 - 在任何设备上保持设计完整性 至此,我们对 HarmonyOS Next 中高级定位技术的概述就结束了。
1作者: flfljh7 个月前
针对 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. 重点关注 `&lt;x&gt;.ui`、`&lt;x&gt;.raster` 和 RenderService 主线程<p>![image-1-301](https://p.ipic.vip/dh0ed2.png)<p>上图中 RenderService 中缺失的帧是由于 UI 线程每帧花费的时间过长,超过了一帧(在 120 帧的帧率下,一帧是 8.33 毫秒)。<p>![image-1-302](https://p.ipic.vip/pmgebf.png)<p>如果一帧渲染过程中 &lt;x&gt;. ui 和 &lt;x&gt;. master 的总持续时间超过一帧时间,则可以将性能问题定义为 Flutter 问题。问题的定位需要进一步的性能分析。
1作者: rwallace7 个月前
到目前为止,就像大多数人一样,我一直在用编写代码的同一程序(主要是 Notepad++ 或 VS Code)来查看源代码。我决定阅读代码是一个足够重要的用例,值得用一个专门的程序来更好地完成它。<p>这也是 Claude Code 的一个测试案例。它的表现很好。需要注意的是:这个项目没有涉及某些难度的维度。特别是,从头开始编写一个小型程序表现良好,并不能保证它在一个大型现有代码库上的表现也会很好。
2作者: fcpguru7 个月前
你好! 我是 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: &quot;0s&quot;, Duration: fcp.ConvertSecondsToFCPDuration(10.0), AdjustTransform: &amp;fcp.AdjustTransform{ Params: []fcp.Param{{ Name: &quot;position&quot;, KeyframeAnimation: &amp;fcp.KeyframeAnimation{ Keyframes: []fcp.Keyframe{ {Time: &quot;0s&quot;, Value: &quot;0 0&quot;}, {Time: &quot;240240&#x2F;24000s&quot;, Value: &quot;100 50&quot;}, }, }, }}, }, } ``` 所以,我没有用我的人脑写这样的代码。我大部分时间都在告诉 Claude 我想创建的视频,然后它使用 cutlass 库来实现。我正在将 FCP 直接连接到 Claude。一种不同的人工智能视频生成方式。 欢迎反馈,感谢您读到这里! -aa
5作者: mike-bailey7 个月前
今天早上听说谷歌克隆了 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作者: ccheshirecat7 个月前
大家好,我是 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> 您可以在那里获得一张免费的美元代金券,并运行一个基准测试来娱乐一下,我想做更大的数量,但意识到我的按小时计费将成为滥用的磁铁,并且完全是自筹资金,这可能不是一个好主意,但我准备好快速调整(并反击,对于那些甚至考虑这样做的人 -_-) 感谢您的阅读,我很乐意听取任何反馈、想法和批评。感谢大家。