2011-11-15 42 views

Trả lời

0

Bạn cần có NDK của Android được tìm thấy here Có các ví dụ được đưa vào trang web và tải xuống cách biên dịch mã C cho Android.

Từ NDK Website:

Các NDK cung cấp:

Một tập hợp các công cụ và xây dựng các file sử dụng để tạo các thư viện mã nguồn gốc từ C và C nguồn ++ Một cách để nhúng tương ứng có nguồn gốc thư viện vào tệp gói ứng dụng (.apk) có thể được triển khai trên thiết bị Android Một bộ tiêu đề hệ thống gốc và thư viện mà sẽ được hỗ trợ trong tất cả các phiên bản tương lai của nền tảng Android, bắt đầu từ Android 1.5. Các ứng dụng sử dụng hoạt động gốc phải được chạy trên Android 2.3 trở lên. Tài liệu, mẫu và hướng dẫn

Tôi cũng tìm thấy this nếu nó gần với những gì bạn muốn đạt được.

+0

Cảm ơn trả lời nhanh chóng của bạn. Tôi đã tải xuống NDK. Những gì tôi đang cố gắng làm là để biên dịch mã nguồn rsync thành một nhị phân thực thi để tôi có thể gọi mã nhị phân này bên trong mã java. – Macchiato

+0

Nếu tôi hiểu chính xác bạn không muốn biên dịch một thư viện nhưng thực hiện một tệp thi hành. Tôi nghĩ rằng điều này là khá khó khăn để đạt được và cá nhân tôi sẽ thấy nếu tôi có thể làm cho mã vào một thư viện và sử dụng nó theo cách đó. Tôi đã bao gồm một số liên kết và thông tin trong câu trả lời của tôi ở trên. – Kerry

+0

hi kerubu, xin lỗi tôi đã không nhận thấy liên kết thứ hai của câu trả lời của bạn. Tôi cũng tình cờ gặp trên trang đó. nhưng tôi sẽ biên dịch các mã bằng cách sử dụng các trình biên dịch chéo được cung cấp NDK. Cảm ơn. – Macchiato

10

Bạn có thể biên dịch mà không cần NDK giả sử bạn liên kết tĩnh. Điều này làm việc cho tôi trên Ubuntu 13.04 Raring Ringtail.

Cài đặt trình biên dịch chéo:

sudo apt-get install gcc-arm-linux-gnueabi 

Tải rsync:

wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz 
tar -zxv -f rsync-3.0.9.tar.gz 
cd rsync-3.0.9 

Compile với trình biên dịch chéo, sử dụng liên kết tĩnh:

./configure --host=arm-linux-gnueabi CFLAGS="-static" 
make 

Bạn sẽ nhận được một số cảnh báo cùng các dòng Using X in statically linked applications requires at runtime the shared libraries from the glibc version used for linking. Nhưng cho đến nay, rsync đã làm việc cho tôi.

Và cuối cùng, cài đặt vào điện thoại của bạn (giả sử bạn đang sử dụng SSHDroid):

scp -P 2222 rsync [email protected]$PHONE_IP:/data/data/berserker.android.apps.sshdroid/dropbear 
+0

Lưu ý rằng bạn phải di chuyển tệp nhị phân sang/dữ liệu (ví dụ:/data/local/tmp) và làm cho tệp thực thi (chmod 0777 rsync) trước khi nó chạy. – yanokwa

+0

nhị phân là gì. Bạn có thể giúp tôi http://stackoverflow.com/questions/22529567/compile-the-rsync-source-code-and-deploy-it-to-android-device – pengwang