Trang này thảo luận cách thiết lập để phát triển bằng Android 8.0 hoặc phiên bản thấp hơn. Để tìm hiểu cách xây dựng Android 9.0 trở lên, hãy xem Thiết lập để phát triển AOSP (Dự án nguồn mở Android).
Thiết lập để phát triển AOSP (5.0 – 8.0)
Đối với Android 5.0 đến 8.0, hãy cân nhắc sử dụng Tệp Docker để dễ dàng cài đặt tất cả các gói cần thiết.
Hệ điều hành
Android thường được xây dựng bằng một GNU Linux. Cũng có thể tạo Android trong máy ảo trên các hệ thống không được hỗ trợ như Mac OS X.
Google khuyên bạn nên xây dựng trên GNU Linux. Hệ thống xây dựng Android thường chạy ART trên máy xây dựng để biên dịch trước các tệp DEX của hệ thống. ART chỉ có thể chạy trên Linux, vì vậy hệ thống xây dựng bỏ qua bước biên dịch trước này trên nền tảng không phải Linux hệ điều hành, từ đó khiến bản dựng Android giảm hiệu suất.
GNU Linux
- Android 6.0 – Android 8.0: Ubuntu 14.04 (Đáng tin cậy)
- Android 5.x: Ubuntu 12.0
Mac OS X (Intel/x86)
- Android 6.0 – AOSP 8.0: Mac OS X v10.10 (Yosemite) hoặc sau này với Xcode 4.5.2 và Công cụ dòng lệnh
- Android 5.x: Mac OS X v10.8 (Sư tử núi) với Xcode 4.5.2 và Công cụ dòng lệnh
JDK
Android 7.0 – Android 8.0:
- Ubuntu: OpenJDK 8
- Mac OS X: JDK 8u45 trở lên
Android 5.x (Lollipop) – Android 6.0 (Marshmallow):
- Ubuntu: OpenJDK 7
- Mac OS X: jdk-7u71-macosx-x64.dmg
Thiết lập để phát triển AOSP (2.3 – 4.4)
Phần này cung cấp một số hướng dẫn về cách thiết lập Android 2.3 thông qua Android 4.4.
Hệ điều hành
Android thường được xây dựng bằng một GNU Linux. Cũng có thể tạo Android trong máy ảo trên các hệ thống không được hỗ trợ, chẳng hạn như Windows.
Google khuyên bạn nên xây dựng trên GNU Linux. Hệ thống xây dựng Android thường chạy ART trên máy xây dựng để biên dịch trước các tệp DEX của hệ thống. ART chỉ có thể chạy trên Linux, vì vậy hệ thống xây dựng bỏ qua bước biên dịch trước này trên nền tảng không phải Linux hệ điều hành, từ đó khiến bản dựng Android giảm hiệu suất.
GNU Linux
- Android 2.3.x - Android 4.4: Ubuntu 12.04 (Chính xác)
Mac OS X (Intel/x86)
- Android 4.1.x - Android 4.4.x: Mac OS X v10.6 (Tuyết) Leopard) hoặc Mac OS X v10.7 (Sư tử) và Xcode 4.2 (Công cụ dành cho nhà phát triển của Apple)
- Android 2.3 – Android 4.0.x: Mac OS X Phiên bản 10.5 (Leopard) hoặc Mac OS X v10.6 (Báo tuyết) và SDK Mac OS X v10.5
GNU make
Đối với Android 4.1.x đến 4.4, hãy sử dụng GNU make (gmake) 3.82. Đối với Android 2.3 sang 4.0.x, hoàn nguyên từ gmake 3.82 thành để tránh các lỗi bản dựng.
Xcode và các gói khác
Đối với Mac OS X v10.8 trở xuống, hãy cài đặt Xcode từ Trang web dành cho nhà phát triển của Apple. Nếu bạn không đã đăng ký là nhà phát triển của Apple, bạn phải tạo ID Apple để tải xuống.
Nếu sử dụng Mac OS X v10.4, cũng phải cài đặt Bison:
POSIXLY_CORRECT=1 sudo port install bison
Đối với MacPorts, vấn đề:
POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
Đối với Homebrew, vấn đề:
brew install gmake libsdl git gnupg2
Hoàn nguyên từ gmake 3.82
Trong Android 4.0.x trở xuống, gmake 3.82 có một lỗi ngăn Android xây dựng. Bạn có thể cài đặt phiên bản 3.81 bằng MacPorts với các bước sau:
Chỉnh sửa
/opt/local/etc/macports/sources.conf
và thêmfile:///Users/Shared/dports
lên trên dòngrsync
.Tạo thư mục
dports
:mkdir /Users/Shared/dports
Trong thư mục
dports
mới, hãy chạy:svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
Tạo chỉ mục cổng cho kho lưu trữ cục bộ mới của bạn:
portindex /Users/Shared/dports
Cài đặt phiên bản thấp hơn của gmake:
sudo port install gmake @3.81
JDK
- Android 2.3.x - Android 4.4.x:
- Ubuntu: Java JDK 6
- Mac OS X: Java JDK 6
JDK cho Linux
Chiến lược phát hành đĩa đơn
Dự án nguồn mở Android (AOSP)
đi kèm với các phiên bản tạo sẵn của OpenJDK trong prebuilts/jdk/
để không
cần cài đặt thêm.
Các phiên bản Android cũ hơn yêu cầu cài đặt JDK riêng. Bật Ubuntu, sử dụng OpenJDK
Dành cho Ubuntu 15.04 trở lên
Chạy lệnh sau:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Dành cho Ubuntu LTS 14.04
Không có gói OpenJDK 8 nào được hỗ trợ cho Ubuntu 14.04. Chiến lược phát hành đĩa đơn Các gói OpenJDK 8 của Ubuntu 15.04 đã được sử dụng thành công với Ubuntu 14.04. Các phiên bản gói cao hơn (ví dụ: những phiên bản cho 15.10, 16.04) thì không thành công vào ngày 14.04 theo hướng dẫn sau.
Tải các gói
.deb
xuống cho kiến trúc 64 bit từ old-releases.ubuntu.comopenjdk-8-jre-headless_8u45-b14-1_amd64.deb
bằng SHA2560f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
openjdk-8-jre_8u45-b14-1_amd64.deb
bằng SHA2569ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
openjdk-8-jdk_8u45-b14-1_amd64.deb
bằng SHA2566e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
Theo tuỳ chọn, hãy xác nhận giá trị tổng kiểm của các tệp đã tải xuống so với Chuỗi SHA256 được liệt kê với mỗi gói ở bước 1. Ví dụ: với giá trị Công cụ
sha256sum
:sha256sum {downloaded.deb file}
Cài đặt các gói:
sudo apt-get update
Chạy
dpkg
cho từng tệp.deb
mà bạn đã tải xuống. Việc này có thể gây ra lỗi do thiếu phần phụ thuộc:sudo dpkg -i {downloaded.deb file}
Cách khắc phục phần phụ thuộc bị thiếu:
sudo apt-get -f install
(Không bắt buộc) Cập nhật phiên bản Java mặc định
Đối với các phiên bản Ubuntu đã đề cập trước đó, (không bắt buộc) cập nhật giá trị mặc định Phiên bản Java bằng cách chạy:
sudo update-alternatives --config java
sudo update-alternatives --config javac
Cài đặt các gói bắt buộc cho Ubuntu 14.04
Chạy các lệnh sau để cài đặt các gói bắt buộc cho Ubuntu 14.04:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip$
Cài đặt các gói bắt buộc cho Ubuntu 12.04
Chạy các lệnh sau để cài đặt các gói cần thiết cho Ubuntu 12.04:
$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so