2014-11-17 36 views
23

Tôi đã xem câu trả lời này Using your own XMPP server for android chat app (Smack API) để tìm hiểu về các API XMPP có sẵn. Smack có vẻ như là một lựa chọn tốt.Làm thế nào để sử dụng Smack 4.1 trong Android?

Trước khi Smack 4.1, người ta phải dựa vào aSmack. Bắt đầu với phiên bản 4.1, Smack sẽ chạy tự nhiên trên Android. Tôi có một vài câu hỏi "bắt đầu".

Câu hỏi 1:
Làm thế nào để bao gồm Smack 4.1 trong dự án Android của tôi trong Eclipse?
Các hướng dẫn tại đây https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide dường như là dành cho Android Studio

Câu hỏi 2:
sẽ mã giữ nguyên cho Android?
Tôi đang tham khảo tài liệu chính thức của họ tại đây: https://www.igniterealtime.org/builds/smack/docs/latest/documentation/index.html
Điều tôi muốn biết là liệu việc sử dụng API có giữ nguyên trong Android hay không.

+1

có giao diện https://github.com/fangzhen/androidxmppclient –

+0

@NaveenTamrakar Tôi không thấy cách liên quan đến câu hỏi của mình. –

+0

http://im-a-developer-too.blogspot.ca/2014/04/creating-android-xmpp-client-using.html –

Trả lời

26

Làm cách nào để bao gồm Smack 4.1 trong dự án Android của tôi trong Eclipse?

Giống như bạn sẽ bao gồm mọi thư viện Java khác trong dự án Eclipse Android. Bằng cách đặt các tệp .jar vào thư mục libs/, plugin Android của Eclipse hệ thống xây dựng Android Ant sẽ cung cấp chúng cho đường dẫn lớp dự án và đưa chúng vào kết quả .apk.

Điều với Smack 4.1 là, nó được mô đun hóa rất nhiều. Nếu bạn muốn một Smack đầy đủ tính năng trên Android, bạn cần một cái gì đó xung quanh 11 .jar tệp. Giờ đây, bạn có thể sử dụng Android Studio bằng cách sử dụng gradle, theo cách này bao gồm Smack đơn giản như thêm

dependencies { 
    compile "org.igniterealtime.smack:smack-android:4.1.0-rc1" 
    compile "org.igniterealtime.smack:smack-tcp:4.1.0-rc1" 
    // optional features 
    compile "org.igniterealtime.smack:smack-android-extensions:4.1.0-rc1" 
} 

và gradle sẽ chăm sóc giải quyết các phụ thuộc transitive.

Nhưng, Android Studio hoặc plugin Gradle Android chính xác, không hỗ trợ tải xuống và gỡ lỗi với tệp đính kèm nguồn . Và đây là điều bạn muốn rõ ràng khi làm việc với thư viện nguồn mở.

Đó là ví dụ một trong những lý do tôi không tự mình sử dụng plugin gradle. Tôi không thể phát triển Smack sau đó (tôi cũng giống như Eclipse, nhưng đó là một câu chuyện khác).

Vì vậy, chúng tôi đang trở lại làm việc với Eclipse/Ant cho dự án Android của chúng tôi. The Smack 4.1 README cho bạn biết sử dụng tập lệnh MavenToAndroidAnt Python3, sẽ tự động tải xuống các tạo phẩm và xóa các tệp cũ trên bản cập nhật. Nếu bạn móc nó vào quá trình xây dựng của bạn, nó gần như tốt bằng cách sử dụng gradle mà còn hỗ trợ tệp đính kèm nguồn.

Tất nhiên bạn cũng có thể thêm 11 .jar tệp theo cách thủ công, nhưng ai muốn làm điều đó và có các tệp nhị phân trong kho lưu trữ nguồn của chúng?

Mã sẽ giữ nguyên cho Android không?

Có, bắt đầu với Smack 4.1, Smack là Smack. Vì vậy, bạn có thể tham khảo cùng một javadoc, không có vấn đề nếu bạn đang ở trên Android hay không. Lưu ý rằng điều này cũng đúng với aSmack, vì nó chỉ là một cổng Smack cho Android.

1: Đúng với tôi nếu tôi sai, nhưng lần cuối tôi thử là không thể. Tình hình có thể tốt hơn trong thời gian chờ đợi.

+0

* tải xuống và gỡ lỗi với tệp đính kèm nguồn *. Đó là gì? :) –

+0

Về cơ bản: Khi trình gỡ lỗi có thể hiển thị nguồn của thư viện trong khi bước qua nó. – Flow

+0

@Flow Tôi đã cố gắng làm cho nó hoạt động trên các thiết bị Android của mình. Người xây dựng mất một thời gian dài (~ 3 giây) nhưng nhanh chóng sau đó. –

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