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 cơ sở mã AOSP, từ mã nguồn và tài sản, cho đến mã kiểm thử và cấu hình bản dựng.
Khi bạn bắt đầu một dự án mới, ASfP sẽ tạo cấu trúc cần thiết cho tất cả các tệp của bạn và hiển thị các tệp đó trong cửa sổ Project (Dự án). Để mở cửa sổ, hãy chọn View > Tool Windows > Project (Xem > Cửa sổ công cụ > Dự án).
Trang này cung cấp thông tin tổng quan về các thành phần chính trong cấu hình dự án của bạn.
Cấu hình dự án (.asfp-project)
Cấu hình dự án ASfP được kiểm soát bằng tệp .asfp-project, nằm ở gốc của thư mục dự án. Tệp YAML này rất cần thiết để kiểm soát những nội dung sẽ được đưa vào dự án và cách các tính năng quan trọng hoạt động. Bạn có thể mở tệp này thông qua trình đơn chính bằng cách sử dụng ASfP > Project > Open Config (ASfP > Dự án > Mở cấu hình) hoặc bằng cách tìm tệp này trong chế độ xem dự án.
Khi tạo dự án, một cấu hình sẽ được xây dựng dựa trên thông số kỹ thuật do người dùng cung cấp. Bạn có thể chỉnh sửa tất cả các tham số trong cấu hình bất cứ lúc nào để sửa đổi thông số kỹ thuật của dự án, chẳng hạn như cập nhật thư mục hoặc mô-đun dự án. Sau đó, bạn cần đồng bộ hoá để các thay đổi được phản ánh.
Tham số cấu hình
Dưới đây là các tham số chính mà bạn có thể định cấu hình trong tệp .asfp-project:
repo
Bắt buộc
Đường dẫn tuyệt đối đến gốc kho lưu trữ nền tảng Android.
repo: /path/to/aosp
lunch
Bắt buộc
Mục tiêu lunch sẽ được ghép nối với dự án của bạn. Tham số này được dùng cho tất cả các hành động xây dựng Soong, bao gồm cả cấu hình đồng bộ hoá và cấu hình chạy có liên quan.
lunch: your-product-variant-userdebug
directories
Không bắt buộc
Các thư mục để đưa vào hoặc loại trừ khỏi dự án của bạn. Đây phải là các đường dẫn tương đối liên quan đến gốc repo.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
Không bắt buộc
Các mô-đun để đưa vào hoặc loại trừ khỏi dự án của bạn. Các mô-đun này hoạt động cùng với directories đã chỉ định trước đó. Hỗ trợ cả tên đầy đủ và tên viết tắt.
modules:
include:
- SystemUIGoogle
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
Không bắt buộc
ASfP cố gắng phân biệt giữa nguồn sản xuất và nguồn kiểm thử, nhưng trong một số trường hợp, bạn có thể cần phải biểu thị rõ ràng nguồn kiểm thử. Cung cấp các nguồn này dưới dạng đường dẫn tương đối liên quan đến gốc repo. Mọi gốc nguồn là thư mục con của(các) đường dẫn đã chỉ định sẽ được đánh dấu là kiểm thử.
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
Không bắt buộc
Tính năng hỗ trợ Java được đưa vào theo mặc định. Bạn có thể thêm tính năng hỗ trợ cho các ngôn ngữ khác.
ASfP cũng hỗ trợ C/C++ (cpp) và Rust (rust).
other_languages:
- cpp
- rust
build_config
Không bắt buộc
Tham số này cho phép bạn thêm cờ tuỳ chỉnh hoặc biến môi trường vào các sự kiện bản dựng Soong. Cấu hình này áp dụng cho tất cả các hành động trong IDE dẫn đến bản dựng Soong, bao gồm cả cấu hình đồng bộ hoá và cấu hình chạy.
build_config:
flags:
- -j64
env:
SOONG_ALLOW_MISSING_DEPENDENCIES: true
MY_CUSTOM_VAR: value