Setting environment for NDK ( Cài đặt môi trường cho NDK)


Các công cụ cần thiết
1. Android ndk: https://developer.android.com/ndk/downloads/index.html#Downloads
2. Android sdk: https://developer.android.com/sdk/index.html (Kéo xuống SDK tools only)
3. Apache ant: http://ant.apache.org/
4. Jdk 1.6 trở lên: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Cài đặt Environment Variable
Thêm đường dẫn vào path variable:
<android-ndk_path>;
<apache-ant_path>\bin;
<android-sdk_path>\tools;
<android-sdk_path>\platform-tools;
<jdk_path>\bin

Build ứng dụng mẫu <android-ndk_path>\samples\hello-jni
Step 1: Tạo file build.xml
+ Mở cmd:
root-disk <enter>
cd <android-ndk_path>\samples\hello-jni <enter>
<android-sdk_path>\tools\android update project -t <target-id> -p <android-ndk_path>\samples\hello-jni -s <enter>

Untitled

Untitled

Chú ý: target-id là id tương ứng của từng phiên bản android đã được cài đặt trong SDK, để xem chi tiết, type lệnh sau trong cmd:
<android-sdk_path>\tools\android list targets

Step 2: Tạo file *.so
*.so (Share object file): là file giúp Java có thể đọc được code C++ được dạng trong chúng
+ Mở cmd:
root-disk <enter>
cd <android-ndk_path>\samples\hello-jni <enter>
<android-ndk_path>\ndk-build.cmd <enter>

Untitled

Untitled

Step 3: Build file apk
+ Mở cmd:
root-disk <enter>
cd <android-ndk_path>\samples\hello-jni <enter>
<apache-ant_path>\bin\ant.bat debug<enter>

Chờ khoảng 5s, nếu xuất hiện dòng BUILD SUCCESSFUL thì bạn đã thành công. File apk sẽ được lưu trong thư mục bin của project. Cấu trúc của thư mục bin này cũng giống với cấu trúc của 1 file apk thông thường khi decompile

Chú ý: Đến bước này nếu bị lỗi đường dẫn của SDK không đúng, bạn hãy tìm tới file local.properties trong thư mục <android-ndk_path>\samples\hello-jni, và edit lại đường dẫn của SDK tại biến sdk.dir

Step 4: Chạy thử file apk trên android device
Kéo thả file apk vào genymotion

Untitled
Hello JNI !

Happy coding ! 🙂

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s