Làm thế nào để tạo ứng dụng Android hoàn toàn bằng python? [đóng cửa]


104

Tôi muốn phát triển một ứng dụng android (khá đơn giản) để được phân phối qua Cửa hàng Play. Tôi muốn làm như vậy hoàn toàn trong python. Tuy nhiên, nghiên cứu trực tuyến đã không hoàn toàn khai sáng cho tôi: hầu hết các nhận xét hoặc đã lỗi thời (> 1 năm tuổi và tôi cảm thấy có thể có sự tích hợp tốt hơn của python kể từ đó) hoặc họ nói về việc chạy python trong Android (ví dụ: ở đây ).

Do đó, tôi đang tìm kiếm thông tin liên quan đến các câu hỏi:

  • liệu có khả thi để phát triển một Ứng dụng hoàn toàn bằng python - và công cụ để làm điều đó là gì? (Ví dụ như Kivy có được giới thiệu không?)
  • nếu vậy: môi trường phần mềm tốt nhất để thực hiện điều này là gì? (Tôi đã thử sử dụng Android Studio không thành công nhưng không thể tìm ra cách chạy mã python ở đó.)

Tôi còn khá mới đối với việc phát triển ứng dụng và sẽ đánh giá cao bất kỳ hướng dẫn nào về việc thực hiện điều này trong python hơn là trong Jave, v.v., mà tôi chưa biết.

Rất cám ơn bạn đã giúp đỡ trước.


trong quá khứ, tôi đã sử dụng kivy và chương trình buildozer của họ. họ có tài liệu ở đây kivy.org/docs/guide/packaging-android.html
es

Về cơ bản, bạn phải sử dụng Java hoặc Kotlin, tuy nhiên, như những người khác đã chỉ ra rằng có các "trình tạo ứng dụng" hoặc khung công tác của bên thứ ba mà bạn có thể sử dụng với python như PyMob hoặc Kivy.
Dominik Schmidt

6
Tôi đã tạo một trò chơi Android được phát triển hoàn toàn bằng Python bằng Kivy. Nó được gọi là CoinTex hiện có tại Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . Mã nguồn của trò chơi có tại đây tại GitHub: github.com/ahmedfgad/CoinTex . Tôi cũng đã viết một cuốn sách sẽ được xuất bản trong năm để xây dựng các ứng dụng Android bằng Python. Nó có tiêu đề "Xây dựng ứng dụng Android bằng Python bằng Kivy với Android Studio: Với Pyjnius, Plyer và Buildozer Ahmed Fawzy Gad" hiện có tại Amazon: amazon.com/dp/1484250303 .
Ahmed Gad

1
Không thể đăng câu trả lời, nhưng đây dường như là một giải pháp : Các công nghệ khác nhau sẽ được trình diễn, bao gồm các GUI QML dựa trên PySide bằng cách sử dụng cổng Qt N Cần thiết và phương pháp dựa trên Py4A / SL4A, có thể được kết hợp với WebKit của Android và tái -sử dụng các khuôn khổ web Python.
Basj

Câu trả lời:


111

Để trả lời câu hỏi đầu tiên của bạn: vâng, việc phát triển một ứng dụng Android bằng python thuần túy là hoàn toàn khả thi , để đạt được điều này, tôi khuyên bạn nên sử dụng BeeWare , chỉ là một bộ công cụ python , hoạt động cùng nhau rất tốt và chúng cho phép bạn phát triển các ứng dụng gốc nền tảng trong python.

hãy xem video này của người sáng tạo BeeWare giải thích và chứng minh hoàn hảo về ứng dụng của nó

Làm thế nào nó hoạt động

Ngôn ngữ triển khai ưa thích của Android là Java - vì vậy nếu bạn muốn viết một ứng dụng Android bằng Python, bạn cần có cách chạy mã Python của mình trên Máy ảo Java. Đây là những gì VOC làm. VOC là một trình chuyển tiếp - nó lấy mã nguồn Python, biên dịch nó thành CPython Bytecode, và sau đó chuyển đoạn bytecode đó thành bytecode tương thích với Java. Kết quả cuối cùng là các tệp mã nguồn Python của bạn được biên dịch trực tiếp sang tệp .class Java, tệp này có thể được đóng gói thành một ứng dụng Android.

VOC cũng cho phép bạn truy cập các đối tượng Java bản địa như thể chúng là các đối tượng Python, triển khai giao diện Java với các lớp Python và các lớp Java con với các lớp Python. Bằng cách sử dụng này, bạn có thể viết một ứng dụng Android trực tiếp dựa trên các API Android gốc.

Khi bạn đã viết ứng dụng Android gốc của mình, bạn có thể sử dụng Briefcase để đóng gói mã Python của mình dưới dạng ứng dụng Android.

Briefcase là một công cụ để chuyển đổi một dự án Python thành một ứng dụng gốc độc lập. Bạn có thể đóng gói các dự án cho:

  • Mac
  • các cửa sổ
  • Linux
  • iPhone / iPad
  • Android
  • AppleTV
  • tvOS.

Bạn có thể kiểm tra Ứng dụng Android Tic Tac Toe này được viết bằng Python, sử dụng bộ BeeWare. trên GitHub

ngoài các công cụ BeeWare, bạn sẽ cần phải cài đặt SDK JDK và Android để chạy thử ứng dụng của mình.

và để trả lời câu hỏi thứ hai của bạn: một môi trường tốt có thể là bất cứ thứ gì bạn cảm thấy thoải mái, có thể là trình soạn thảo văn bản và dòng lệnh hoặc IDE, nếu bạn đang tìm kiếm một IDE python tốt, tôi khuyên bạn nên thử Pycharm , nó có một phiên bản cộng đồng miễn phí và nó có môi trường tương tự như android studio, do thực tế là do cùng một công ty sản xuất.

Tôi hy vọng điều này đã được hữu ích


1
Là tôi, hay VOC đã bị bỏ rơi?
Vụ kiện của Fund Monica

2
đây là một ngõ cụt (Lần cuối tôi kiểm tra: Tháng 12 năm 2018). Một hoặc nhiều thành phần trong giải pháp quá phức tạp này không hoạt động nữa hoặc không thể tự cập nhật.
Berry Tsakala

2
Chỉ là bản cập nhật cho điều này cho năm 2019, nhưng Kotlin hiện là ngôn ngữ ưa thích để phát triển Android.
DaveTheMinion

3
@Basj Tôi muốn nói rằng Beeware chắc chắn sẽ tồn tại trong một thời gian, bởi vì chỉ cần xem xét tài khoản GitHub của nó, bạn sẽ thấy rằng nó đang được phát triển tích cực và nếu bạn truy cập vào kênh Gitter, bạn có thể luôn tiếp cận với toàn bộ nhóm, đặc biệt là Tiến sĩ Russell (freakyboy), người sáng tạo và cộng đồng khá thân thiện, và cũng có một tweet rất gần đây (ngày 26 tháng 9 năm 2019) từ tài khoản chính thức của họ thông báo rằng họ đã nhận được tài trợ giáo dục từ Python nền tảng phần mềm. Tôi nghĩ rằng nó sẽ có giá trị thời gian của bạn, đặc biệt nếu bạn thích python như một ngôn ngữ
maroof Shittu

1
BeeWare dường như không hỗ trợ Android (Java) ở giai đoạn này trong bất kỳ sự kiện nào.
Mark Anderson

15

Bạn có thể thử BeeWare - như được mô tả trên trang web của họ:

Viết ứng dụng của bạn bằng Python và phát hành chúng trên iOS, Android, Windows, MacOS, Linux, Web và tvOS bằng cách sử dụng các giao diện người dùng gốc, phong phú. Một cơ sở mã. Nhiều ứng dụng.

Cung cấp cho bạn những gì bạn muốn ngay bây giờ để viết Ứng dụng Android bằng Python, ngoài ra còn có lợi thế là bạn sẽ không cần phải học thêm một khuôn khổ nào khác trong tương lai nếu cuối cùng bạn cũng muốn làm điều gì đó trên một trong những nền tảng được liệt kê khác.

Đây là Hướng dẫn dành cho Ứng dụng Android .


4
Bạn đã tự mình xây dựng một ứng dụng với BeeWare?
Berry Tsakala

11

Có hai ứng cử viên chính cho ứng dụng python trên Android

Chaquopy

https://chaquo.com/chaquopy/

Điều này tích hợp với hệ thống xây dựng Android, nó cung cấp một API Python cho tất cả các tính năng của Android. Để trích dẫn trang web "API Android hoàn chỉnh và bộ công cụ giao diện người dùng trực tiếp theo ý của bạn."

Hãy coi chừng (bộ công cụ tiện ích Toga)

https://pybee.org/

Điều này cung cấp một trình chuyển tiếp đa mục tiêu, hỗ trợ nhiều mục tiêu như Android và iOS. Nó sử dụng một bộ công cụ widget chung (toga) ánh xạ tới các cuộc gọi giao diện máy chủ.

Cái nào?

Cả hai đều là các dự án đang hoạt động và tài khoản github của họ cho thấy lượng hoạt động gần đây khá lớn.

Hãy coi chừng Toga giống như tất cả các thư viện widget rất tốt để đưa những kiến ​​thức cơ bản ra nhiều nền tảng. Nếu bạn có thiết kế cơ bản và mong muốn mở rộng sang các nền tảng khác, điều này sẽ phù hợp với bạn.

Mặt khác, Chaquopy chính xác hơn nhiều trong việc ánh xạ API python sang Android. Nó cũng cho phép bạn kết hợp trong Java, hữu ích nếu bạn muốn sử dụng mã hiện có từ các tài nguyên khác. Nếu bạn có mục tiêu thiết kế nghiêm ngặt và chủ yếu muốn nhắm mục tiêu đến Android thì đây là một nguồn tốt hơn nhiều.


10

Android, Python!

Khi tôi thấy hai từ khóa này cùng nhau trong câu hỏi của bạn, Kivy là từ khóa xuất hiện trong đầu tôi đầu tiên.

Logo Kivy

Trước khi đến với phát triển Android gốc trong Java bằng Android Studio, tôi đã dùng thử Kivy . Nó thật tuyệt vời. Đây là một vài lợi thế mà tôi có thể tìm ra.


Đơn giản để sử dụng

Với kiến ​​thức cơ bản về python, bạn sẽ không gặp khó khăn khi học nó.


Cộng đồng tốt

Nó được ghi lại đầy đủ và có một cộng đồng lớn, năng động.


Nền tảng chéo.

Bạn có thể phát triển mọi thứ cho Android, iOS, Windows, Linux và thậm chí cả Raspberry Pi với khung công việc duy nhất này. Mã nguồn mở.


Đó là phần mềm miễn phí

Ít nhất một số đối thủ cạnh tranh của nó (Nền tảng chéo) muốn bạn trả phí nếu bạn muốn có giấy phép thương mại.


Hỗ trợ đồ họa tăng tốc

Công cụ đồ họa của Kivy được xây dựng trên OpenGL ES 2 làm cho nó phù hợp với các phần mềm yêu cầu kết xuất đồ họa nhanh như trò chơi.



Bây giờ đến với phần tiếp theo của câu hỏi, bạn không thể sử dụng Android Studio IDE cho Kivy. Đây là hướng dẫn chi tiết để thiết lập môi trường phát triển.


4
Hỗ trợ của Windows đang tụt hậu so với các tiêu chuẩn sản xuất (hoặc thậm chí là tiêu chuẩn dành cho người yêu thích). Ngoài ra, một nửa thế giới không thể sử dụng nó do thiếu hỗ trợ RTL.
Berry Tsakala

Tại sao bạn lại rời Kivy và thay đổi nó thành các công cụ phát triển gốc? Bạn cho rằng nó có một số nhược điểm.
igoemon
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.