2013-08-28 42 views
25

Tôi mới phát triển Android và tôi đã có một số trải nghiệm với Java, C#, Python, v.v. Python là yêu thích của tôi, tôi muốn viết mã ứng dụng Android với nó.
Sau đó, tôi thấy câu hỏi này:
Is there a way to run Python on Android?
Phần lớn bình chọn câu trả lời nêu KivyASE (mà bây giờ là SL4A và bao gồm PY4A).
Tuy nhiên, sau một số googling, tôi không thể tìm thấy bất kỳ thông tin hữu ích nào về sự khác biệt giữa KivyPY4A. Tìm kiếm sự khác biệt giữa KivySL4A cũng không có kết quả.Sự khác biệt giữa Kivy và PY4A

Vì vậy, đối với KivyPY4A,
ai đó có thể giải thích, trong điều kiện dễ dàng:
- sự tương đồng và khác biệt giữa chúng là gì?
- Các bộ phận tốt và xấu của chúng là gì?
- Có bất kỳ lựa chọn thay thế tốt nào khác không?

+1

"Kivy - Mã nguồn mở ** Thư viện Python ** để phát triển nhanh các ứng dụng sử dụng giao diện người dùng sáng tạo, chẳng hạn như ứng dụng đa chạm." vs "Scripting Layer cho Android (SL4A) mang lại ngôn ngữ kịch bản cho Android bằng cách cho phép bạn chỉnh sửa và thực thi các tập lệnh và trình thông dịch tương tác trực tiếp trên thiết bị Android". Tôi không thể tìm thấy bất kỳ điểm chung nào giữa hai ... – Bakuriu

Trả lời

21

Đáng ngạc nhiên, có hai dự án được gọi là 'python for android'.

SL4A cho phép bạn chạy tập lệnh python trên Android. PY4A của họ là một bước trong toolchain của họ, nhưng tôi không biết nhiều về nó. Tôi hiểu có một số tích hợp với apis android (bạn có thể sử dụng một số phần cứng, vv), nhưng hạn chế về cách chạy các chương trình (chúng không phải là ứng dụng đầy đủ, không có gui, vv). Đây là thứ mà tôi suy ra từ việc xem các bài viết khác, tôi chưa thử nó, đừng nói về chi tiết. (Chỉnh sửa: thực sự có vẻ như có một số khả năng gói apks và nhiều cách để tạo một gui, tôi không biết chi tiết)

Kivy là một khung đồ họa hỗ trợ nhiều hệ điều hành (linux, windows, osx, android, ios, có thể đã có thêm). Bạn sử dụng nó để xây dựng guthon python. Dự án kivy cũng bắt đầu dự án python-for-android của riêng họ, cung cấp các cách biên dịch trình thông dịch python cho android và đóng gói nó như một ứng dụng android thực tế (bao gồm java api integration with pyjnius v.v.). Kivy được tích hợp tốt với nó để bạn có thể dễ dàng biên dịch một ứng dụng gui gui cho android, mặc dù tôi không nghĩ rằng python-for-android này bị giới hạn trong các ứng dụng kivy.

Vì vậy, chúng là các dự án hoàn toàn khác nhau xảy ra để có thành phần có cùng tên. SL4A là để chạy các kịch bản python trên Android, tôi không biết nhiều về những hạn chế hoặc chi tiết của nó. Kivy là một khung đồ họa python (không giới hạn ở android) có thể được biên dịch thông qua dự án python-for-android khác nhau của riêng mình để tích hợp đầy đủ các ứng dụng android gui.

Bạn có thể xem (ví dụ) kivy showcase để biết ví dụ về một số khả năng kivy đơn giản hoặc flat jewels để biết ví dụ về trò chơi đơn giản được thực hiện trong kivy. Đây chỉ là những ví dụ, nhiều hơn nữa là có thể.

+0

Bạn có thể làm GUI trên SL4A, bản địa và webviews. Các chàng trai kivy xuyên tạc SL4A ở khuyết điểm và các công cụ, vì vậy bạn phải mong đợi một số nhầm lẫn. –

+0

Xin lỗi vì sai lầm, quan niệm sai lầm của tôi là đọc tài liệu SL4A, chủ yếu nói về khả năng viết kịch bản. – inclement

+0

Không phải lo lắng. Nó vẫn là một câu trả lời hay. –

1

Bạn đã thử QPython chưa? Đó là một con trăn mới cho ví dụ android cung cấp nhiều chức năng hơn.

9

Tôi đã thấy điều này rất hữu ích (và gần đây):

Nhúng Python trong Android (loạt Tutorial)

http://techventura.wordpress.com/2014/04/21/embedding-python-in-android-series/

Nó mô tả làm thế nào để nhúng Python trong một ứng dụng Android, sử dụng Python-for-Android liên quan đến Kivy, nhưng không phải bản thân Kivy (không được mô tả trong tài liệu của Kivy cũng như Python-cho-Android, theo như tôi tìm thấy), rất hữu ích trong các kịch bản khác nhau (ví dụ: ứng dụng Java hiện có , sử dụng GUI gốc trực tiếp, v.v.)

Kể từ khi Python-for-Android của Kivy được tích cực phát triển hơn so với Py4A của SL4A (ASE), có vẻ như tôi là con đường để đi.

(tôi nghĩ nó sẽ rất có liên quan cũng có, và có lẽ thích hợp hơn, để Is there a way to run Python on Android?, nhưng câu trả lời đòi hỏi nhiều danh tiếng hơn tôi hiện có.)

Để điểm của câu hỏi ban đầu: Sự khác nhau phù hợp nhất Tôi thấy giữa Py4A của Python-for-Android và SL4A (ASE) của Kivy là sau này vẫn được cung cấp dưới dạng "chất lượng alpha", trong khi cái cũ dường như hoạt động hơn nhiều. Tất nhiên nếu bạn chọn Kivy như một tổng thể, đó là một thư viện GUI đa nền tảng.

Ngoài ra, các kết quả nghiên cứu của tôi trên các giải pháp khác nhau:

  • Py4A + SL4A của Google (ASE): sử dụng nhưng chất lượng alpha, không tích cực phát triển
  • Kivy:
    • cung cấp Python-cho-Android, để gọi mã python từ Java
    • cung cấp Pyjnius, để gọi mã Java từ python
    • dường như được tích cực phát triển
    • có hướng dẫn tôi liên kết ở trên để nhúng vào ứng dụng Java Android
    • nếu quan tâm, các cross-platform GUI (Kivy tự)
  • QPython:
    • chủ yếu là môi trường tương tác để khởi chạy các tập lệnh python trên Android
    • dựa trên Py4A, nhưng Pyjnius (xem bên trên) được cho là có thể sử dụng
    • nhúng vào một ứng dụng Java, nhưng có phần bị giới hạn: một công việc Python phải được bắt đầu với Ý định và kết quả được thu thập từ giá trị xuất phát; điều đó có nghĩa là sự tách biệt hơn có thể được mong muốn trong một số tình huống, tôi nghĩ vậy.
  • python.org: không đề cập đến ở tất cả Android
0

Ngoài các câu trả lời ở đây, tôi muốn thêm ngã ba của Py4A gốc mà dường như được tích cực phát triển: https://github.com/kuri65536/sl4a

tôi không thể xác minh cho chất lượng hoặc dễ sử dụng. Có .apks để cài đặt vì vậy nó có vẻ khá đơn giản.

Các vấn đề liên quan