Làm cách nào tôi có thể biên dịch APK Android từ nguồn? [đóng cửa]


7

Có một vài hướng dẫn hoặc thậm chí câu hỏi ở đây về việc tạo một ứng dụng cho Android. Nhưng tôi đã tự hỏi, nếu tôi chỉ muốn biên dịch một ứng dụng từ nguồn có sẵn trên Github, tôi sẽ không phát triển gì cả, tôi có cần cài đặt Android SDK, Eclipse với plugin ADT và các công cụ và nền tảng SDK không?

Trong GNU / Linux, bạn chỉ cần cài đặt các công cụ xây dựng và thư viện phụ thuộc, không phải IDE, thường là để phát triển. Làm thế nào bạn sẽ tiến hành biên dịch APK? Không phải tôi muốn nó giống như GNU / Linux, nhưng các công cụ cần thiết chỉ để biên dịch là gì? Và tôi có cần hạ phiên bản Java của mình xuống 6 khi tôi đang biên dịch cho Android 4.1.2 (nếu cần Java) không?

Ngoài ra, không có hướng dẫn xây dựng nào về nguồn, bao gồm một vài bước về câu trả lời của bạn sẽ được đánh giá cao!

Câu trả lời:


9

Các yêu cầu tối thiểu để xây dựng một ứng dụng Android thường là SDK Android và ant. Sau đó, bạn có thể xây dựng phần lớn 1 dự án với các bước sau.

  • Nếu không có build.xmlnó tạo ra nó

dự án cập nhật Android -p. -n $ PRO DỰ_NAME -s

  • Sau đó xây dựng dự án với

ant debug

sẽ tạo một .apkký kết với khóa gỡ lỗi của bạn.

Tất cả các phụ thuộc khác nằm trong khoảng từ VCS đã sử dụng (ví dụ: git), qua các thư viện bên thứ 3 bắt buộc, cho đến các công cụ xây dựng bắt buộc khác (ví dụ: Android NDK).

1 Tại sao tôi viết đa số ? Bởi vì không có câu trả lời dứt khoát cho một câu hỏi như vậy, vì nó đơn giản phụ thuộc vào hệ thống xây dựng được sử dụng và thiết lập xây dựng tổng thể của dự án.

Chúng ta hãy xem siêu dữ liệu của F-Droid, một cơ sở dữ liệu lớn về các công thức xây dựng cho các ứng dụng FOSS Android. Bạn sẽ thấy rằng có nhiều cách để xây dựng một ứng dụng Android. Ví dụ, goo.TeaTimercó một công thức xây dựng rất gọn gàng và ngắn gọn, cụ thể là không có, mặc định về cơ bản là F-Droid sử dụng ant debugđể tạo .apk. Mặt khác, org.transdroid.fullyêu cầu thêm một vài bước để tạo .apk: Đầu tiên thư viện lõi transdroid cần được tạo, đó là ant -f ../lib/build.xmldòng trong prebuild, sau đó các tùy chọn bị vô hiệu hóa bằng sedlệnh. Bây giờ cuối cùng .apkcó thể được xây dựng.


Tôi đã cập nhật câu trả lời của mình. Lưu ý rằng đó prebuildlà F-Droid cụ thể. Đó là chỉ thị cho các lệnh được chạy trong giai đoạn tiền xây dựng.
Lưu lượng

Lệnh của bạn không hoạt động vì thiếu a AndroidManifest.xmlvà lỗi khi chạy là "Không thể tải khóa từ Google Drive, đang thử lại: null"
Teresa e Junior

Lệnh đã được kết xuất không chính xác. Tôi đã chỉnh sửa nó. Đó là cùng một lệnh F-Droid và tôi sử dụng trong dự án Android của mình để tạo build.xml. Tôi đã xem xét kỹ hơn về keepshare: Nó sử dụng sbt (công cụ xây dựng đơn giản) và là một ví dụ tốt cho một dự án không sử dụng antmà thay vào đó là một số công cụ xây dựng khác. Do đó, các lệnh và công cụ để xây dựng dự án khác nhau.
Lưu lượng

1
Câu trả lời của bạn vẫn không liên quan đến Keepshare. Câu trả lời thực sự được cung cấp trong bình luận # 3.
daithib8

1
Đúng rồi. Tôi nghĩ rằng nhiều người dùng được hưởng lợi từ một câu trả lời chung chung so với một câu trả lời cụ thể. OP đã tìm ra rằng SBT là công cụ xây dựng được sử dụng.
Lưu lượng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.