Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The [Android Performance Ecosystem](https://github.com/Gracker/android-performan
| Analyze | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | Investigate traces with an AI-assisted Web UI, CLI, reports, sessions, comparisons, and evidence workflow. | [GitHub](https://github.com/Gracker/SmartPerfetto) |
| Agent analysis | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | Give agents a portable Perfetto analysis Skill for Android, Linux, and Chromium, with selected assets synchronized through pinned workflows. | [GitHub](https://github.com/Gracker/Perfetto-Skills) |
| Learn | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | Teach Perfetto and Systrace analysis through articles, system explanations, and case studies. | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) |
| System knowledge | Android Internal Wiki | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | **Coming soon** |
| System knowledge | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | [GitHub](https://github.com/Gracker/android-internals-wiki) |
| Reproduce | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | Provide the Perfetto, Systrace, and related case files used by articles for hands-on reproduction. | [GitHub](https://github.com/Gracker/SystraceForBlog) |
<!-- android-performance-ecosystem:end -->

Expand Down
2 changes: 1 addition & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
| 分析 | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | 通过 AI 辅助 Web UI、CLI、报告、会话、对比和证据工作流分析 Trace。 | [GitHub](https://github.com/Gracker/SmartPerfetto) |
| Agent 分析 | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | 为 Agent 提供可移植的 Android、Linux、Chromium Perfetto 分析 Skill,并通过固定版本流程同步选定资产。 | [GitHub](https://github.com/Gracker/Perfetto-Skills) |
| 学习 | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | 通过文章、系统原理和案例复盘讲解 Perfetto 与 Systrace 分析。 | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) |
| 系统知识 | Android Internal Wiki | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | **Coming soon** |
| 系统知识 | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | [GitHub](https://github.com/Gracker/android-internals-wiki) |
| 复现 | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | 提供文章使用的 Perfetto、Systrace 及相关案例文件,支持动手复现。 | [GitHub](https://github.com/Gracker/SystraceForBlog) |
<!-- android-performance-ecosystem:end -->

Expand Down
4 changes: 2 additions & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

| 优先级 | 缺口 | 已采取的改进 | 下一验收条件 | 状态 |
| --- | --- | --- | --- | --- |
| P0 | 七个入口彼此独立,用户不知道从哪里开始 | 新建 Hub、统一中英文 README 表格,并给出可选端到端路径 | 六个公开仓远端 README 检查持续通过,私有 AIW 本地检查通过 | 已完成首版 |
| P0 | 重复表格容易漂移或泄露私有地址 | 用 `ecosystem.json` 生成 marker block;CI 只读检查公开仓;AIW 只输出 `Coming soon` | 周期 CI 通过且公开文件不含私有仓库元数据 | 已完成首版 |
| P0 | 七个入口彼此独立,用户不知道从哪里开始 | 新建 Hub、统一中英文 README 表格,并给出可选端到端路径 | Hub 与七个公开项目的远端 README 检查持续通过 | 已完成首版 |
| P0 | 重复表格容易漂移或泄露私有地址 | 用 `ecosystem.json` 生成 marker block;CI 只读检查公开仓;AIW 已公开并纳入检查,非公开项目只输出 `Coming soon` | 周期 CI 通过且公开文件不含私有仓库元数据 | 已完成首版 |
| P0 | 博客案例 Trace 只有文件,没有可审计元数据 | 为 SystraceForBlog 增加目录、哈希、来源、授权、隐私和压缩包边界校验 | 15 个既有 artifact 全部被 catalog 覆盖;未知项显式为 `null` / `pending` | 已完成首版,历史元数据待补 |
| P1 | 采集、分析、Skill、文章之间缺少稳定 case ID | 先在 Hub 和案例仓定义相同的 case/provenance 约束 | 至少一个 demo 用同一 case ID 连接抓取配置、Trace、期望证据、Skill 与文章 | 待实现 |
| P1 | 跨仓兼容性只在各自 CI 内验证 | 保留 SmartPerfetto corpus 与 Perfetto-Skills fixture 的独立职责,不再创建第三套重复语料 | 同一公开小型 fixture 能通过 Perfetto Tools 输出、SmartPerfetto 导入与 Perfetto Skills smoke | 待实现 |
Expand Down
11 changes: 7 additions & 4 deletions ecosystem.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,14 @@
"en": "An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel.",
"zh-CN": "处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。"
},
"public_url": null,
"public_url": "https://github.com/Gracker/android-internals-wiki",
"site_url": null,
"availability": "coming_soon",
"default_branch": null,
"readmes": []
"availability": "public",
"default_branch": "master",
"readmes": [
{ "path": "README.md", "language": "zh-CN" },
{ "path": "README.en.md", "language": "en" }
]
},
{
"id": "trace-for-blog",
Expand Down
2 changes: 1 addition & 1 deletion snippets/ecosystem.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ The [Android Performance Ecosystem](https://github.com/Gracker/android-performan
| Analyze | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | Investigate traces with an AI-assisted Web UI, CLI, reports, sessions, comparisons, and evidence workflow. | [GitHub](https://github.com/Gracker/SmartPerfetto) |
| Agent analysis | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | Give agents a portable Perfetto analysis Skill for Android, Linux, and Chromium, with selected assets synchronized through pinned workflows. | [GitHub](https://github.com/Gracker/Perfetto-Skills) |
| Learn | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | Teach Perfetto and Systrace analysis through articles, system explanations, and case studies. | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) |
| System knowledge | Android Internal Wiki | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | **Coming soon** |
| System knowledge | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | [GitHub](https://github.com/Gracker/android-internals-wiki) |
| Reproduce | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | Provide the Perfetto, Systrace, and related case files used by articles for hands-on reproduction. | [GitHub](https://github.com/Gracker/SystraceForBlog) |
<!-- android-performance-ecosystem:end -->
2 changes: 1 addition & 1 deletion snippets/ecosystem.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
| 分析 | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | 通过 AI 辅助 Web UI、CLI、报告、会话、对比和证据工作流分析 Trace。 | [GitHub](https://github.com/Gracker/SmartPerfetto) |
| Agent 分析 | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | 为 Agent 提供可移植的 Android、Linux、Chromium Perfetto 分析 Skill,并通过固定版本流程同步选定资产。 | [GitHub](https://github.com/Gracker/Perfetto-Skills) |
| 学习 | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | 通过文章、系统原理和案例复盘讲解 Perfetto 与 Systrace 分析。 | [AndroidPerformance.com](https://www.androidperformance.com/) · [GitHub](https://github.com/Gracker/Gracker.github.io) |
| 系统知识 | Android Internal Wiki | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | **Coming soon** |
| 系统知识 | [Android Internal Wiki](https://github.com/Gracker/android-internals-wiki) | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | [GitHub](https://github.com/Gracker/android-internals-wiki) |
| 复现 | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | 提供文章使用的 Perfetto、Systrace 及相关案例文件,支持动手复现。 | [GitHub](https://github.com/Gracker/SystraceForBlog) |
<!-- android-performance-ecosystem:end -->
21 changes: 19 additions & 2 deletions tests/test_ecosystem.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import copy
import unittest

from scripts import ecosystem
Expand Down Expand Up @@ -42,16 +43,32 @@ def test_public_targets_include_both_hub_and_perfetto_tools_readmes(self):
)

def test_private_project_exposes_no_repository_metadata(self):
project = next(item for item in self.catalog["projects"] if item["id"] == "android-internal-wiki")
catalog = copy.deepcopy(self.catalog)
project = next(item for item in catalog["projects"] if item["id"] == "android-internal-wiki")
project.update(public_url=None, default_branch=None, availability="coming_soon", readmes=[])
self.assertEqual([], ecosystem.validate_catalog(catalog))
self.assertIsNone(project["public_url"])
self.assertIsNone(project["default_branch"])
self.assertEqual([], project["readmes"])
for language in ecosystem.LANGUAGES:
snippet = ecosystem.render_snippet(self.catalog, language)
snippet = ecosystem.render_snippet(catalog, language)
self.assertIn("Coming soon", snippet)
self.assertIn("| Android Internal Wiki |", snippet)
self.assertNotIn("[Android Internal Wiki](", snippet)

project["public_url"] = "https://github.com/example/non-public-project"
self.assertTrue(ecosystem.validate_catalog(catalog))

def test_public_wiki_targets_use_its_default_branch_and_readme_languages(self):
targets = [
target for target in ecosystem.public_targets(self.catalog)
if target["repo"] == "android-internals-wiki"
]
self.assertEqual(
{("master", "README.md", "zh-CN"), ("master", "README.en.md", "en")},
{(target["branch"], target["path"], target["language"]) for target in targets},
)

def test_blog_uses_its_named_site_as_the_primary_address(self):
project = next(
item for item in self.catalog["projects"] if item["id"] == "android-performance-blog"
Expand Down
Loading