2012-01-22 30 views
47

Tôi vừa mới bắt đầu đi sâu vào thế giới Android. Tôi có rất nhiều ứng dụng lập trình kinh nghiệm bằng Python, vì vậy tôi đã tìm kiếm một sự kết hợp tốt "Android + Python", và tôi nghĩ rằng tôi đã tìm thấy nó: Kivy.Kivy cho các ứng dụng Android

Tôi cần làm cho các ứng dụng có thể tải xuống và tải lên nội dung từ internet, có thể một số kết nối với thành phần bản đồ được bao gồm trong Android và nhiều thứ khác để tạo ứng dụng Android tuyệt vời.

Nhưng tôi thực sự không muốn lãng phí thời gian của mình vào một thứ có thể không hoạt động. Vì vậy, có ai có kinh nghiệm phát triển các ứng dụng Android sử dụng Kivy không? Nó thực sự hữu ích, đơn giản, có thể? Hoặc là có một lựa chọn tốt hơn bạn có trong tâm trí?

+0

Trải nghiệm của bạn với Kivy cho đến thời điểm này là gì? Nó có hỗ trợ một số tính năng của Android, chẳng hạn như nhận vị trí GPS hoặc đọc danh sách liên lạc không? Bất kỳ suy nghĩ nào sau khi bạn có thể đã sử dụng Kivy một thời gian rồi? – Tadeck

+1

@Tadeck Tôi phải thừa nhận rằng, giống như nhiều người khác, tôi đã từ bỏ ý tưởng sử dụng Kivy, do tài liệu kém và cộng đồng gần như không tồn tại. – juliomalegria

+5

Kivy không gần như không tồn tại. Tôi nhận được câu trả lời cho câu hỏi của mình mỗi khi tôi hỏi họ trên kênh IRC của họ. – Joschua

Trả lời

3

Tôi có rất ít kinh nghiệm với nó. Nhưng tôi biết rằng

SL4A (Scripting Layer For Android) cũng hỗ trợ viết các ứng dụng Android bằng Python. Có thể đáng xem xét một chút trước khi bạn đưa ra quyết định của bạn về những gì để sử dụng.

+2

Tôi đã đọc rằng SL4A cho phép bạn chạy các tập lệnh Python trong Android nhưng nó không cho phép bạn tạo các ứng dụng Android thực sự, bạn có biết điều gì đó về điều đó không? và bạn biết gì về Kivy từ kinh nghiệm nhỏ của bạn? – juliomalegria

+0

cuối cùng tôi biết không có cách nào để bọc các tập lệnh python của bạn vào một tập tin apk trong sl4a. Tuy nhiên Dường như Tasker có khả năng khởi chạy các kịch bản lệnh sl4a riêng lẻ (bao gồm cả các tập lệnh python) có hoặc không hiển thị đầu ra của bàn điều khiển. Và nếu công việc có thể làm điều đó, có vẻ như khả thi rằng bạn bằng cách nào đó có thể tạo ra một gói ứng dụng có chứa các tập lệnh python và có thể khởi chạy chúng theo cùng một kiểu mà tác vụ có thể. – FoamyGuy

22

Tôi đã sử dụng và đóng góp cho kivy một thời gian và sử dụng nó cho một ứng dụng lớn dành cho thị trường. Mặc dù vẫn không hoàn chỉnh như phát triển bản địa (không chắc chắn nếu sử dụng bản đồ API Android là có thể ở tất cả, nhưng có lựa chọn thay thế), nó hoạt động rất tốt, với hiệu suất tốt. Ngôn ngữ kv cho việc tạo mẫu nhanh chóng thực sự tuyệt vời.

Và làm điểm thưởng, ứng dụng của bạn cũng hoạt động trên windows/linux/mac/ios… (chúng tôi vẫn phải cố gắng nhận được trên cửa hàng của Apple, nhưng về mặt kỹ thuật nó hoạt động). chỉnh sửa: cho đến ngày nay ít nhất một ứng dụng kivy đã được chấp nhận trên thị trường táo, hãy tìm "deflectouch" nếu bạn bị can thiệp.

Trái ngược với SL4A, bạn nhận được một gói ứng dụng thực để phân phối, với kivy cũng như api GUI rất đẹp và mượt mà, được trang bị cho các ứng dụng cảm ứng đa điểm.

+0

Kivy trông rất tốt, có tiềm năng lớn về mặt giao diện. Nhưng còn Android API thì sao? Có cách nào bạn có thể sử dụng nó (ví dụ như trong SL4A)? Tôi thực sự quan tâm đến Kivy, nhưng tôi không tìm thấy bất kỳ thông tin nào liên quan đến ví dụ. đọc dữ liệu vị trí GPS, tạo bánh mì nướng, đọc danh sách liên hệ, cũng như tôi không tìm thấy thông tin về các tính năng như vậy không khả dụng từ ứng dụng Kivy. Bạn có biết gì về điều đó không? – Tadeck

+2

cổng android kivy được dựa trên pgs4a, vì vậy bạn có quyền truy cập vào mô-đun này http://pygame.renpy.org/api.html#module-android nó không phải là một phần của kivy api vì nó không di động (chỉ dành cho Android). – Tshirtman

+0

@tshirtman, Xin chào, Cảm ơn bạn đã tạo video trên youtube, nó đã cho tôi một sự thúc đẩy trong Kivy trong khi cố gắng tìm đường đi của tôi. Tôi có thể thấy hầu hết các đóng góp của bạn trên StackOverflow đều có trên Kivy, điều đó thật tuyệt, chúng tôi sẽ sớm liên lạc trên SO :) – securecurve

12

Tôi tin rằng KivyMaps khá giống với những gì bạn đang cố gắng làm.

Nếu bạn tránh mã cụ thể nền tảng không phải của Android thì ứng dụng của bạn, nên chạy trên Android mà không gặp bất kỳ sự cố nào.

Tôi cũng đề xuất xem xét Python for Android, đó là một dự án chị em của Kivy nhằm giúp bạn tạo phân phối Python của riêng bạn bao gồm các mô-đun bạn muốn và tạo gói ứng dụng bao gồm python, libs và ứng dụng của bạn. Cụ thể xem xét trình bao bọc API gốc của nó cho Android. Dự án này mới nên chỉ một vài API gốc được hỗ trợ nhưng nó có thể cung cấp cho bạn một ý tưởng về cách tạo một trình bao bọc cho API dịch vụ vị trí Android nếu bạn cần.

Đối với thư viện bên ngoài bản đồ của Google, tôi đồng ý với tshirtman. Tôi không chắc nó có thể được sử dụng như thế nào nhưng khi liên kết KiviMaps ở trên nổi bật thì có những cách tiếp cận thay thế có sẵn.

1

Kivy là khung nền tảng đa nền tảng cho phát triển NUI. Nó là tốt cho một số mẫu ứng dụng Android. Bạn có thể sử dụng Kivy Launcher để kiểm tra nhanh hơn. Bạn có thể sử dụng thư viện python để phát triển nhanh chóng tính năng này. Bạn có thể sử dụng pyjnius để truy cập các lớp java cho tính năng dựa trên java.

Tôi đề nghị bạn đọc Kivy Interactive Applications in Python cuốn sách dành cho người mới chơi.

Nhưng ở một số độ sâu sâu hơn, bạn nên biết cách sử dụng tiện ích cơ bản một cách cẩn thận. Bởi vì một số khái niệm khó hiểu là có.Đối với canvas, đó là khái niệm khác nhau trong html5. Quy tắc và lớp học của ngôn ngữ Kivy là một số khó hiểu đối với người mới.

Và đối với ứng dụng android, có một số khó sử dụng thư viện không được hỗ trợ cơ bản như Beautiful Soup (thư viện html và xml phân tích cú pháp nổi tiếng).

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