Tổng quan về dự án và quy trình làm việc của Soong

Một dự án trong Android Studio cho Nền tảng (ASfP) chứa mọi thông tin giúp xác định không gian làm việc cho toàn bộ mã nguồn AOSP, từ mã nguồn và thành phần, cho đến mã kiểm thử và cấu hình bản dựng Soong.

Được xây dựng dựa trên Mô hình không gian làm việc IntelliJ, ASfP tạo các dự án nền tảng lớn và khôi phục mô hình dự án của bạn từ các ảnh chụp nhanh được lưu vào bộ nhớ đệm khi khởi động. Nội dung bên trong thư mục out/ và các tệp gen được tạo sẽ bị loại trừ khỏi phạm vi tìm kiếm dự án để quá trình điều hướng tệp và ký hiệu diễn ra nhanh chóng.

Cấu hình dự án (.asfp-project)

Tệp YAML .asfp-project nằm trong thư mục gốc của dự án, kiểm soát cấu hình dự án ASfP. Tệp này xác định những thư mục, mô-đun Soong, ngôn ngữ và cờ bản dựng được đưa vào không gian làm việc của bạn.

Bạn có thể mở cấu hình dự án bất cứ lúc nào bằng cách sử dụng một trong các lựa chọn sau:

  • Chọn ASfP > Project > Open Config (ASfP > Dự án > Mở cấu hình) trên trình đơn chính.
  • Nhấp đúp vào .asfp-project ở thư mục gốc của cửa sổ công cụ Project (Dự án).
  • Nhấp vào Open Config (Mở cấu hình) trong thanh công cụ của cửa sổ công cụ Soong.

Sau khi chỉnh sửa .asfp-project, hãy chạy quá trình đồng bộ hoá dự án để áp dụng các thay đổi.

Mẫu dự án có thể chia sẻ (xuất và nhập)

Các nhóm làm việc trên cùng một hệ thống con (chẳng hạn như SystemUI, Settings, SurfaceFlinger hoặc Automotive) có thể chia sẻ cấu hình .asfp-project tiêu chuẩn dưới dạng mẫu:

  • Export to template (Xuất sang mẫu): Nhấp chuột phải vào thẻ trình chỉnh sửa .asfp-project hoặc chọn ASfP > Project > Export Config to Template (ASfP > Dự án > Xuất cấu hình sang mẫu) để lưu tệp mẫu có thể chia sẻ.

    Xuất cấu hình dự án ASfP sang một mẫu có thể chia sẻ

  • Import from template (Nhập từ mẫu): Khi tạo một dự án mới trong trình hướng dẫn thiết lập dự án, hãy chọn Import from template (Nhập từ mẫu) rồi chọn tệp YAML .asfp-project được chia sẻ để điền sẵn các thư mục, mô-đun và chế độ cài đặt bản dựng.

Tham số cấu hình

Tệp .asfp-project hỗ trợ các tham số sau:

repo

Bắt buộc: Đường dẫn tuyệt đối đến thư mục gốc của kho lưu trữ nền tảng Android.

repo: /path/to/aosp

lunch

Bắt buộc: Mục tiêu lunch (bữa trưa) được ghép nối với dự án của bạn. Được dùng cho tất cả các thao tác xây dựng, đồng bộ hoá và triển khai Soong.

lunch: aosp_cf_x86_64_phone-aosp_current-userdebug

directories

Không bắt buộc: Các thư mục cần đưa vào hoặc loại trừ khỏi dự án của bạn (tương ứng với repo thư mục gốc). Hỗ trợ các thư mục được liên kết tượng trưng và thư mục gốc nguồn.

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

Không bắt buộc: Các mô-đun Soong cụ thể cần đưa vào hoặc loại trừ khỏi dự án của bạn. Hoạt động cùng với directories. Hỗ trợ cả tên mô-đun đầy đủ và tên mô-đun rút gọn.

modules:
  include:
    -   SystemUI
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

Không bắt buộc: Đường dẫn tương đối để đánh dấu là thư mục gốc nguồn kiểm thử khi cần ghi đè thủ công các phương pháp phỏng đoán nguồn kiểm thử tự động của ASfP.

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

Không bắt buộc: Theo mặc định, tính năng hỗ trợ Java, Kotlin và Android.bp sẽ được bật. Thêm cpp cho C và C++ hoặc rust để hỗ trợ ngôn ngữ Rust:

other_languages:
  -   cpp
  -   rust

build_config

Không bắt buộc: Các cờ tuỳ chỉnh hoặc biến môi trường được truyền đến các lệnh gọi bản dựng Soong do IDE kích hoạt (bao gồm cả quá trình đồng bộ hoá, bản dựng gutter và cấu hình chạy):

build_config:
  flags:
    -   -j64
  env:
    SOONG_PARTIAL_COMPILE: true
    SOONG_ALLOW_MISSING_DEPENDENCIES: true

Chế độ đồng bộ hoá và cửa sổ công cụ Soong

ASfP cung cấp nhiều cách để đồng bộ hoá dự án IDE với quá trình kiểm xuất AOSP, tuỳ thuộc vào nhu cầu của quy trình làm việc. Truy cập các thao tác này trong trình đơn ASfP > Sync (ASfP > Đồng bộ hoá) hoặc cửa sổ công cụ Soong:

  • Sync Project (Đồng bộ hoá dự án): Phân tích các thư mục và mô-đun đã định cấu hình, đồng thời cập nhật chỉ mục và phần phụ thuộc của IDE.
  • Đồng bộ hoá một phần: Chỉ đồng bộ hoá một tập hợp con mô-đun hoặc thư mục được nhắm mục tiêu, giúp tiết kiệm thời gian khi làm việc trong một khu vực được bản địa hoá của cây.
  • No-Build Sync (Đồng bộ hoá không bản dựng): Làm mới cấu trúc dự án IDE và thư mục gốc nguồn mà không chạy bước bản dựng Soong – hữu ích khi bạn đã thêm hoặc di chuyển tệp nguồn hoặc đã xây dựng từ thiết bị đầu cuối.
  • Sync and Full Build (Đồng bộ hoá và xây dựng đầy đủ): Kết hợp quá trình đồng bộ hoá dự án với bản dựng Soong đầy đủ trong một bước duy nhất.

Cửa sổ công cụ Soong (View > Tool Windows > Soong (Xem > Cửa sổ công cụ > Soong)) hiển thị các chỉ báo trạng thái theo thời gian thực cho từng nút tác vụ đồng bộ hoá, các nút bản dựng truy cập nhanh và quá trình thực thi lệnh Soong.


Xây dựng, triển khai và điều hướng Android.bp trong trình chỉnh sửa

ASfP cung cấp tính năng hỗ trợ trình chỉnh sửa tích hợp cho các tệp Android.bp:

Xây dựng, chạy và gỡ lỗi mục tiêu từ gutter

Mở tệp Android.bp bất kỳ trong dự án của bạn để xây dựng hoặc chạy các mục tiêu từ hai biểu tượng gutter:

  • Biểu tượng Xây dựng (tất cả các mô-đun được đặt tên): Xuất hiện bên cạnh name: trên mọi mô-đun được đặt tên (cc_library_shared, java_library, rust_binary, android_app, và các mục tiêu kiểm thử) để xây dựng mục tiêu Soong đó (Build "<module>" (Xây dựng "<mô-đun>")).
  • Biểu tượng Chạy hoặc Gỡ lỗi (*_test, *_test_host và android_app): Nhấp vào Run (Chạy) bên cạnh một mô-đun kiểm thử hoặc khai báo android_app để chạy hoặc gỡ lỗi mô-đun đó. Các mô-đun android_test gỡ lỗi thông qua atest và các mô-đun cc_test* và rust_test* chạy trong LLDB tích hợp.

Tạo, chạy và gỡ lỗi các mô-đun từ biểu tượng trong rãnh Android.bp

Triển khai theo bối cảnh và cấu hình chạy flash

Đối với các mô-đun có thể triển khai trong tệp Android.bp, bạn có thể tạo và chạy cấu hình chạy Soong Deploy (Triển khai Soong) theo bối cảnh từ gutter hoặc trình đơn theo bối cảnh nhấp chuột phải với các tính năng sau:

  • Phương thức triển khai: Triển khai bằng adb, tập lệnh shell tuỳ chỉnh, adevice, hoặc flashall.
  • Móc bản dựng Soong trước khi chạy: Tự động xây dựng mô-đun Soong mục tiêu trước khi triển khai vào thiết bị được kết nối hoặc thiết bị ảo Cuttlefish.

Chọn cấu hình chạy Adevice hoặc Flashall trong ASfP

Chuyển đổi giữa mã nguồn và Android.bp

Từ bất kỳ tệp nguồn hoặc thư mục nào trong cửa sổ công cụ Project (Dự án), thẻ trình chỉnh sửa hoặc trình đơn theo bối cảnh của trình chỉnh sửa, hãy nhấp chuột phải rồi chọn Open Corresponding Android.bp File (Mở tệp Android.bp tương ứng). ASfP xác định vị trí và làm nổi bật khai báo mô-đun Android.bp biên dịch tệp đó, phân giải các khối defaults, mẫu srcs ký tự đại diện và liên kết tượng trưng.

Mở thao tác trong trình đơn theo bối cảnh của tệp Android.bp tương ứng

Thông tin chi tiết về trình chỉnh sửa Android.bp và tài liệu chú giải công cụ

  • Số lượng sử dụng và điều hướng giữa các tệp: Nhấn giữ phím Control rồi nhấp vào bất kỳ tham chiếu mô-đun , tệp srcs hoặc soong_config_module_type nào để chuyển đến khai báo của tệp đó. Gợi ý nội tuyến N Usages (N Lượt sử dụng) có thể nhấp sẽ xuất hiện bên cạnh tên mô-đun và các mục tiêu srcs được chia sẻ, đồng thời các mô-đun thư viện không được tham chiếu sẽ bị làm mờ trực quan.
  • Chú giải công cụ tài liệu về thuộc tính Soong: Giữ con trỏ trên bất kỳ thuộc tính nào trong tệp Android.bp – bao gồm cả các thuộc tính có phạm vi kiến trúc hoặc mục tiêu trong target, arch, và multilib – để xem chữ ký loại Soong và tài liệu nội tuyến của thuộc tính đó.

Chú giải công cụ thuộc tính Android.bp và Gợi ý sử dụng


Quản lý thiết bị ảo Cuttlefish và phản chiếu nhiều màn hình

ASfP bao gồm một trình bổ trợ Cuttlefish tích hợp cho các nhà phát triển nền tảng, Android Automotive OS (AAOS) và Xe được xác định bằng phần mềm (SDV) làm việc với các thiết bị ảo Cuttlefish được xây dựng cục bộ:

  • Thiết lập nhiều thiết bị trong Trình quản lý thiết bị: Tạo và quản lý thiết lập thiết bị ảo Cuttlefish nhiều thiết bị trong Trình quản lý thiết bị bằng cách sử dụng quá trình kiểm xuất AOSP cục bộ ($ANDROID_BUILD_TOP và $ANDROID_PRODUCT_OUT).
  • Phản chiếu màn hình hiển thị nhiều màn hình trong cửa sổ công cụ Cuttlefish: Mở View > Tool Windows > Cuttlefish để phản chiếu màn hình hiển thị nhiều màn hình Cuttlefish tích hợp để bạn có thể xem và tương tác với nhiều màn hình ô tô cùng lúc cho quy trình làm việc AAOS và SDV.

Cửa sổ công cụ Cuttlefish và tính năng phản chiếu màn hình trên nhiều màn hình trong ASfP